.. raw:: html .. _isaac_sim_app_ext_demos: ========================================== Interactive Demos ========================================== .. _leonardo_sample_application: Leonardo Sample Application =============================== To run the sample, first load the Franka Block Stacking scene by selecting the option `Isaac Examples -> Demos -> Leonardo Demo`. Example 1: Ghost Block Stacking ------------------------------- This sample application shows a complex scenario using multiple hierarchical state machines to perform a multi-block stacking operation with the Franka robot. How to run ############################ 1. Press `Create Scenario` and it will load the environment. 2. After the environment loads, press the `Play` button. 3. Press `Perform Task` and it will start stacking blocks. Once all blocks are stacked, the blocks and robot will reset after a fixed period of time and stacking will repeat. .. raw:: html
You can also select the ``/environments/env_0_0/Rubiks_cube`` prim and drag it around via the translation gizmo. The main Franka robot and ghosts will avoid it. .. raw:: html
At any time you can press the ``Stop/Reset Task`` and the robot will return to its default position and all blocks will be reset back to the table. .. _ur10_palletizing_application: UR10 Sample Applications =============================== Below are two examples with step-by-step instructions on how to simulate complex behaviors with |isaac-sim|. To run the sample, first load the UR10 Palletizing scene by selecting the option `Isaac Examples -> Demos -> UR10 Palletizing`. Example 1: Fill Bin -------------------- This example demonstrates a UR10 robot picking a bin from the ground and filling it with components until the suction gripper fails to support the bin in place. .. note:: If the bin becomes too heavy due to the number of objects filling it, the gripper will be unable to successfully pick it up. This is expected behavior as the force/torque limits for the gripper are set low to demonstrate breaking behavior. For more information on the tuneable parameters for the surface gripper see :ref:`isaac_surface_grippers` How to run ############################ #. Select `Fill Bin` task from drop down at the UR10 Preview screen. #. Press `Create Scenario` and it will load the environment. #. After the environment loads, press the `Play` button. #. Press `Perform Task` and it will start picking up the bin. #. Once the bin is picked up, it will lift it close to the dispenser, and objects will start falling into the bin. #. Eventually the bin will become too heavy, or the impulse generated by the falling objects will be too strong, and the surface gripper will not stand and lose vacuum, making the bin fall to the ground and spill its contents. #. The robot arm will try to locate and pick up the bin again, but if it falls too far from the arm's reach, the robot may get stuck. #. Pressing the `Pause Task` button in the UR10 Preview window will pause the robot automation, and provide a gizmo on screen where the user can manipulate the end effector target and make the robot move to a desired position. #. Pressing on the `Drop Parts` button will drop more objects from the dispenser, at any time during the simulation. .. raw:: html
#. Press the `Stop` button, or `Reset Task` to reset the demo. Things to try ######################## #. Move the robotic arm with task paused #. Press the play button #. Press `Perform Task` #. Once robot starts to move, press `Pause Task` #. click in one of the arrows in the target gizmo that showed on screen, and drag it with the mouse - If you want to rotate the orientation, select the rotate tool on the toolbar, and click on the circles corresponding to the rotation axis you want to change. .. raw:: html
.. note:: A few scenarios to avoid while running the sample application: 1. When the bin is moved to an unreachable location for the robot to pick, press `Stop/Reset Task` button to reset the environment. 2. When the bin falls off at an angle that would cause the robot to be stuck and not grab it again, press `Stop/Reset Task` button to reset the environment. Example 2: Bin Stacking ------------------------ This example shows the UR10 performing an elaborate behavior of stacking the bins on top of a pallet How to run ################ #. Select `Stack Bins` task from drop down at the UR10 Preview screen. #. Press `Create Scenario` and it will load the environment. #. After the environment loads, press the `Play` button. #. Press `Perform Task`. A bin will start rolling in the conveyor, and once it reaches the bottom, the robot will start picking it up. #. Once the bin is picked up, if it's upside down, it will be placed on the stack, otherwise it will first be placed on the flipping base so the robot can re-grip from the bottom. #. After the bin is placed on the pile, the arm will return to its rest pose, and if another bin is already waiting on the conveyor, it will be picked up and the process will continue. #. The robot will stop once all 36 bins have been stacked. #. Pressing the `Pause Task` button will stop the robot automation, and provide a gizmo on screen where the user can manipulate the end effector target and make the robot move to a desired position. #. Pressing on the `Add bin` button will make another bin appear on the conveyor. .. raw:: html
#. Press the `Stop` button, or `Reset Task` to reset the demo. Things to try ######################## #. Manually stack a bin #. Press the play button #. Press `Perform Task` #. Once robot starts to move, press `Pause Task` #. Click in one of the arrows in the target gizmo that showed on screen, and drag it with the mouse * If you want to rotate the orientation, select the rotate tool on the toolbar, and click on the circles corresponding to the rotation axis you want to change. #. Pick a bin in the conveyor belt. * Once the gripper is touching the surface of the bin, click on `Close/Open Gripper` #. Move it either to the stack or to the flipping station to pick it up from the bottom #. Drop the bin on the desired pose by clicking on `Close/Open Gripper`. .. note:: A few scenarios to avoid while running the sample application: #. When the bin is moved to an unreachable location for the robot to pick, press `Stop/Reset Task` button to reset the environment. #. In Manual override, avoid rotating the arm too much to either side, as the robot's joints have a limit of one full turn to each side, making the robot get stuck. .. _isaac_sim_app_robot_navigation_application: Navigation Sample Applications =============================== Getting Started ---------------- To run the ``Robot Navigation`` sample, select the option ``Isaac Examples->Demos->Robot Navigation``. A window with the Robot Navigation extension will show up, like the below: .. figure:: /content/images/isaac_sample_navigation_1.png :align: center :alt: Robot Navigation Menu Setup Environment ########################### Before running the below examples, you will need to load and setup the environment 1. Select the robot - ``Transporter`` or ``Carter`` from drop down. 2. Press ``Load`` and it will load and setup the environment. .. note:: Please wait for materials to get loaded. You can track progress on the bottom right corner of UI. 3. After the environment loads, you will observe that the editor is already in ``Play`` mode. Examples ---------------- Below are two examples demonstrating non-obstacle based robot navigation with |isaac-sim|. Example 1: Primitive Tasks ########################### This example demonstrates robot performing primitive movements. How to run ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Once the environment is loaded with the editor in ``Play`` mode, press ``Move`` button in the ``Robot Navigation`` extension window. This will prompt the robot to move forward. .. raw:: html
Press ``Rotate`` button to prompt the robot to rotate in-place. .. raw:: html
Example 2: Robot Navigation ############################# This example demonstrates goal-driven navigation in an environment with no obstacles. The robot uses a quintic path generator to reach the goal, using control commands for a differential base. How to run ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Once the environment is loaded with the editor in ``Play`` mode, follow the below steps. - Define the goal for robot in the ``Target Pose`` section. ``(X,Y)`` represents the position coordinates along x-axis and y-axis respectively. ``Z`` represents the yaw orientation of robot's goal. - Press ``Move`` to prompt the robot to navigate towards the goal. The Speed coefficient and Acceleration coefficient are first and second order parameters to increase the curvature response of the planned path. Setting them to zero will result in a straight line path with the robot turning in place at the beginning and at the end of the paths, while as the values increases, the path curvature radius also increases. The max speed setting will determine how fast the robot will move on a straight line. The speed profile is computed inversely proportional to the path curvature radius, slowing down near the end of the path. .. raw:: html
.. note:: For both examples, press ``Stop`` button to bring the robot to a stationary state. .. note:: The walls in the background do not have physics or collision enabled and are not meant to behave as obstacles, the robot will pass through the walls if driven through them.