Skip to content

MoveIt Integration ​

This tutorial demonstrates how to use MoveIt to control the AgileBot robot in IsaacSim.

MoveIt Integration Demo

Overview ​

This example demonstrates how to use MoveIt to control the AgileBot robot with a gripper in IsaacSim. The gripper uses Robotiq open source URDF.

Principle ​

topic_based_ros2_control sends MoveIt planning results through specified topics and receives feedback from specified topics to achieve robot motion control.

Prerequisites ​

ROS 2 Python 3.11 Configuration ​

Since ros2-humble uses Python 3.10 and IsaacSim uses Python 3.11, you need to configure ROS 2 with Python 3.11.

Reference: https://github.com/camopel/isaacsim-ros2-python3.11

Install Dependencies ​

bash
sudo apt install ros-humble-topic-based-ros2-control

Quick Start Guide ​

Step 1: Add Project to ROS 2 Workspace ​

bash
# Terminal 1
source /opt/ros/humble/setup.bash  # python3.10 ros2
cp -r isaacsim_moveit {your_workspace}/src
cd {your_workspace}/
colcon build
source install/setup.bash

Step 2: Launch MoveIt 2 ​

bash
ros2 launch gbt_gripper_moveit_config demo.launch.py

Step 3: Launch IsaacSim ​

bash
# Terminal 2
source /opt/ros/humble_ws/install/setup.bash  # python3.11 ros2
cd ~/isaacsim
./isaac-sim.sh

Step 4: Load Scene in IsaacSim ​

  1. Click File -> Open
  2. Select the isaacsim_moveit folder in your workspace
  3. Open ./gbt_c7a_moveit.usd
  4. Click Play button to start simulation

Step 5: Control Robot ​

After completing the above steps, you can control the AgileBot robot in IsaacSim through MoveIt in RViz.

MoveIt Features ​

FeatureDescription
Motion PlanningPlan trajectories from start to goal positions
Collision DetectionDetect collisions between robot and obstacles in the environment
Trajectory OptimizationOptimize trajectories for better performance
Perception IntegrationIntegrate sensor data for perception

Configuration Parameters ​

MoveIt Parameters ​

ParameterDescriptionDefault Value
planning_timePlanning time limit5.0 s
num_planning_attemptsNumber of planning attempts10
planning_pipelinePlanning pipelineompl

Next Steps ​