.. _isaac_sim_app_tutorial_ros_moveit: ================================= MoveIt Motion Planning Framework ================================= Learning Objectives ======================= This tutorial is demonstrating |isaac-sim| integrated with the MoveIt Motion Planning Framework using the Franka Emika Panda robot. Getting Started =========================== **Prerequisite** - Install MoveIt from pre-built binaries (Debian): .. code-block:: bash sudo apt install ros-$ROS_DISTRO-moveit - Installed and built ``panda_moveit_config`` package in your :ref:`ROS workspace ` by following the steps outlined `here `_. - This tutorial requires ``isaac_moveit`` ROS package provided under the directory ``noetic_ws/`` in our ROS repo. It contains the required launch and config files. Complete :ref:`isaac_sim_app_install_ros`, make sure ROS environment is setup correctly and those packages are inside your ``ROS_PACKAGE_PATH``. - Completed :ref:`isaac_sim_app_tutorial_ros_manipulation`. - ``roscore`` is running before running |isaac-sim|. Running MoveIt =========================== 1. Load the environment by going to `Isaac Examples -> ROS -> MoveIt`. Once the stage is loaded completely, the simulation should automatically be playing. 2. In a ROS sourced terminal, launch the execution launch file with the following command: .. code-block:: bash 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. .. 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 (``/src/isaac_moveit/launch/franka_isaac_execution.launch``) and **remove** the following line: ````. 2. Open a new terminal sourced to ROS and `noetic_ws`. 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, there should already be a MotionPlanning tab open. If not, add the MotionPlanning Plugin by clicking ``Add``. Then, under the `moveit_ros_visualization` folder, choose ``MotionPlanning`` and press ``Ok``. 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 ```` under ``Goal State``. 6. Under ``Commands``, click on ``Plan`` to see the robot in Rviz play out the planned trajectory. Press ``Execute`` to execute the planned trajectory on the robot in |isaac-sim_short|. | .. figure:: /content/images/isaac_sample_ros_moveit_arm.gif :align: center :alt: MoveIt planning and execution of Hand 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. | .. figure:: /content/images/isaac_sample_ros_moveit_hand.gif :align: center :alt: MoveIt planning and execution of Hand group Summary ======== In this tutorial, we covered running MoveIt with |isaac-sim|. Next Steps ^^^^^^^^^^^^^^^^^^^^^^ Continue on to the next tutorial in our ROS Tutorials series, :ref:`isaac_sim_app_tutorial_ros_custom_message` to learn to setup and use custom messages in |isaac-sim|. Further Learning ^^^^^^^^^^^^^^^^^^^^^^ - To learn more about `MoveIt `_. - Alternatively, to load this sample environment from python directly, follow the steps outlined :ref:`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.