Pose to Pose Planning#

Overview#

This tutorial demonstrates obstacle-aware trajectory planning using Isaac for Manipulation and cuMotion in Isaac Sim. The robot end effector moves between two predetermined poses, alternating between them while avoiding obstacles detected in the workspace.

This tutorial leverages the cuMotion plugin for MoveIt 2 provided by Isaac ROS cuMotion.

We use rectified image streams from simulation and do not need to perform lens distortion and rectification that would need to be performed on a real robot.

We use perfect ground truth depth from the simulation which drives up accuracy and allows one to focus on the software stack in a perfect albeit unrealistic environment.

Warning

The obstacle avoidance behavior demonstrated in this tutorial is not a safety function and does not comply with any national or international functional safety standards. When testing obstacle avoidance behavior, do not use human limbs or other living entities.

The example uses RViz for visualization. RViz is the default visualization tool when Isaac for Manipulation is running on the same computer that is displaying the visualization. Foxglove is recommended when visualizing a reconstruction streamed from a remote machine. However, that is not officially supported for the sim workflows.

Prerequisites#

Tutorial#

Launch Isaac Sim#

  1. Open Isaac Sim and load the scene:

    https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Samples/ROS2/Scenario/isaac_manipulator_scene.usd
    

    Tip

    We recommend setting a ROS_DOMAIN_ID via export ROS_DOMAIN_ID=<ID_NUMBER> for every new terminal where you run ROS commands, to avoid interference with other computers in the same network (ROS Guide).

  2. Hit Play in Isaac Sim to start the simulation.

Run the Pose to Pose Example#

  1. Open a new terminal and activate the Isaac ROS environment:

    isaac-ros activate
    
  2. Change workflow_type in the configuration file to POSE_TO_POSE. The configuration file path is:

    ${ISAAC_ROS_WS}/src/isaac_manipulator/isaac_manipulator_bringup/params/sim_launch_params.yaml
    

    The manipulator_workflow_config parameter points to the manipulator configuration file. Please refer to Create Manipulator Configuration File section.

  3. Launch the pose to pose example with the following configuration file:

    ros2 launch isaac_manipulator_bringup workflows.launch.py \
       manipulator_workflow_config:=$(ros2 pkg prefix --share isaac_manipulator_bringup)/params/sim_launch_params.yaml
    

Next Steps#