10. MoveIt Motion Planning Framework

10.1. Learning Objectives

This tutorial is demonstrating Omniverse Isaac Sim integrated with the MoveIt Motion Planning Framework using the Franka Emika Panda robot.

10.2. Getting Started

Prerequisite

  • Install MoveIt from pre-built binaries (Debian):

sudo apt install ros-$ROS_DISTRO-moveit
  • Follow the steps outlined here to install the panda_moveit_config package in your ROS workspace and then build it.

  • This tutorial requires isaac_moveit ROS package provided under the directory ros_workspace/. It contains the required launch and config files. Complete ROS & ROS 2 Installation, make sure ROS environment is setup correctly and those packages are inside your ROS_PACKAGE_PATH.

  • Completed Joint Control: Extension Python Scripting.

  • roscore is running before running Omniverse Isaac Sim.

10.3. Running MoveIt

  1. Load the environment by going to Isaac Examples -> ROS -> MoveIt.

  2. Launch the execution launch file with the following command:

    roslaunch isaac_moveit franka_isaac_execution.launch
    
  3. The robot should now automatically move to the ready state and a separate RViz window will open up.


    Franka robot initializing

    Note

    Due to a sync issue with roslaunch, sometimes the robot may not automatically move to the ready state. If this happens, stop the launch file and follow these steps to manually run the panda_combined_joints_publisher node before running the launch file:

    1. Open the launch file (ros_workspace/src/isaac_moveit/launch/franka_isaac_execution.launch) and remove the following line: <node pkg="isaac_moveit" name="panda_combined_joints_publisher" type="panda_combined_joints_publisher.py" />.

    2. Open a new terminal sourced to ROS and ros_workspace. Run the following command to manually run panda_combined_joints_publisher ROS node: rosrun isaac_moveit panda_combined_joints_publisher.py

    3. Finally, run the newly modified launch file: roslaunch isaac_moveit franka_isaac_execution.launch

  4. In the RViz window, add the MotionPlanning Plugin by clicking Add. Then, under the moveit_ros_visualization folder, choose MotionPlanning and press Ok.


    Add MotionPlanning Plugin
  5. Plan the movement for the arm by selecting panda_arm, found under Planning Group. Use the displayed arrows and rotation disks to set a goal position for the robot. Alternatively you can choose to select <random_valid> under Goal State.

  6. Under Commands, click on Plan followed by Execute to visualize the planned motion of the arm and then move it!


    MoveIt planning and execution of Panda Arm group
  7. To plan the movement of the hand, under Planning Group select the hand option. Under Goal State, select close.

  8. Click on Plan followed by Execute. The finger joints will start moving to the closed state.


    MoveIt planning and execution of Hand group

10.4. Summary

In this tutorial, we covered running MoveIt with Omniverse Isaac Sim.

10.4.1. Next Steps

Continue on to the next tutorial in our ROS Tutorials series, Custom Message to learn to setup and use custom messages in Omniverse Isaac Sim.

10.4.2. Further Learning

  • To learn more about MoveIt.

  • Alternatively, to load this sample environment from python directly, follow the steps outlined here. With this approach you have the ability to manually add different ROS components as well as manually control the timestep and rate at which ROS components are published.