In the previous session, we built a complete MoveIt2 package from a URDF model using the MoveIt Setup Assistant, and realized motion planning and visual control of the robotic arm.
In this session, we will explain how to set up a co-simulation environment for MoveIt2 and Isaac Sim. By configuring the ROS Bridge, adjusting hardware interface topics, and integrating the URDF model, we will achieve seamless connection between the simulator and motion planning, providing a complete practical solution for robot algorithm development and system integration.
AbstractCo-simulation of MoveIt2 and Isaac Sim
TagsROS2, MoveIt2, robotic arm, Nero
Repositories- Navigation Repository: GitHub - agilexrobotics/Agilex-College: Agilex College · GitHub
- Project Repository: https://github.com/agilexrobotics/piper/piper_moveit2.git
System: Ubuntu 22.04ROS Version: HumbleIsaac Sim Version: 5.1
Download USD ModelWe use the Nero USD model provided by AgileX Robotics:
cd ~/nero_ws/src
git clone https://github.com/agilexrobotics/agx_arm_simIf you haven’t installed Isaac Sim or want to import your own URDF model, refer to:
Launch Isaac SimNavigate to the Isaac Sim folder, use the script to launch the ROS Bridge Extension, then click Start to launch Isaac Sim:
cd isaac-sim-standalone-5.1.0-linux-x86_64/
./isaac-sim.selector.shThen drag and drop the newly downloaded USD model into Isaac Sim to open it:
In the USD file, you need to add an ActionGraph for communication with the ROS side. The ActionGraph is as follows:
Modify targetPrim according to actual conditions; targetPrim is generally /World/nero_description/base_link:
Modify topicName according to actual conditions; topicName must correspond to the URDF, here it is isaac_joint_commands:
Modify targetPrim and topicName according to actual conditions; targetPrim is generally /World/nero_description/base_link; topicName must correspond to the URDF, here it is isaac_joint_states:
After starting the simulation, use ros2 topic list in the terminal; the following topics can be viewed:
Open nero_description.ros2_control.xacro and add topic parameters:
gedit nero_ws/src/nero_moveit2_config/config/nero_description.ros2_control.xacro<hardware>
<!-- By default, set up controllers for simulation. This won't work on real hardware -->
<!-- <plugin>mock_components/GenericSystem</plugin> -->
<plugin>topic_based_ros2_control/TopicBasedSystem</plugin>
<param name="joint_commands_topic">/isaac_joint_commands</param>
<param name="joint_states_topic">/isaac_joint_states</param>
</hardware>Then save and compile the code, then launch MoveIt2:
cd ~/nero_ws
colcon build
source install/setup.bash
ros2 launch nero_moveit2_config demo.launch.py



Comments