Isaac cuMotion Accelerated Planning#
Overview#
NVIDIA Isaac cuMotion provides GPU-accelerated trajectory planning as an alternative to the default MoveIt2 OMPL planners. It leverages CUDA parallel processing to achieve significantly faster planning times, especially for collision-constrained environments. cuMotion integrates as a drop-in MoveIt2 planning pipeline replacement – no changes to the WMX ROS2 nodes are required.
Prerequisites#
NVIDIA GPU with CUDA support (RTX 5070 or better recommended)
Ubuntu 22.04 with NVIDIA drivers installed
ROS2 Humble
Isaac ROS packages installed in a Docker container (see
movensys_isaac_manipulator/doc/2_docker.mdfor setup)movensys_manipulator_isaac_configworkspace built inside the containerWMX ROS2 application built on the IPC (see Getting Started)
Integration#
cuMotion sends planned trajectories to the same
/movensys_manipulator_arm_controller/follow_joint_trajectory action server
that MoveIt2 uses. The follow_joint_trajectory_server node executes them
identically – no WMX node changes are needed.
The Orin platform config (orin_manipulator_config_cr3a.yaml) enables the
isaacsim_joint_topic parameter so joint states are forwarded to Isaac Sim.
See wmx_ros2_package for configuration details and
ROS2 Actions for action server details.
Aspect |
cuMotion (Stage 2) |
|---|---|
Planning pipeline |
cuMotion replaces OMPL as the MoveIt2 planner backend |
Robot description |
XRDF (Extended Robot Description Format) loaded for GPU optimization |
Execution environment |
Planner runs inside the Isaac ROS Docker container with GPU access |
Hardware interface |
Same |
Planning speed |
Typically faster due to GPU parallelism |
Stage 2a – Simulation#
Run cuMotion with Isaac Sim on the same machine (no physical robot).
Step 1: Open Isaac Sim
Open the simulation scene:
~/robotics_isaac_sim/isaac_manipulator/simulation_1_to_3.usd
Step 2: Launch the Simulation Bridge
ros2 run movensys_manipulator_isaac_config simulation_action \
--ros-args -p use_sim_time:=true
Step 3: Launch cuMotion Planner (Docker)
docker exec -u admin -it movensys_isaac_manipulator_container \
bash -lc 'source /opt/ros/humble/setup.bash && \
source /home/admin/ws/install/setup.bash && \
ros2 launch movensys_manipulator_isaac_config \
isaac_cumotion.launch.py use_sim_time:=true'
Step 4: Execute Trajectory Test
ros2 launch movensys_manipulator_isaac_config \
stage1and2_trajectory.launch.py use_sim_time:=true
Stage 2b – Hardware-in-the-Loop (HiL)#
Run cuMotion planning in Isaac Sim while executing on the physical robot (IPC).
Step 1: Open Isaac Sim [Desktop]
Open the HiL scene:
~/robotics_isaac_sim/isaac_manipulator/hil_1_to_3.usd
Step 2: Launch WMX ROS2 Manipulator [IPC]
sudo --preserve-env=PATH,AMENT_PREFIX_PATH,COLCON_PREFIX_PATH,PYTHONPATH,\
LD_LIBRARY_PATH,ROS_DISTRO,ROS_VERSION,ROS_PYTHON_VERSION,ROS_DOMAIN_ID,\
RMW_IMPLEMENTATION \
bash -c "source /opt/ros/humble/setup.bash && \
source ~/wmx_ros2_ws/install/setup.bash && \
ros2 launch wmx_ros2_package \
wmx_ros2_cr3a_manipulator.launch.py"
Step 3: Launch cuMotion [IPC]
docker exec -u admin -it movensys_isaac_manipulator_container \
bash -lc 'source /opt/ros/humble/setup.bash && \
source /home/admin/ws/install/setup.bash && \
ros2 launch movensys_manipulator_isaac_config \
isaac_cumotion.launch.py'
Step 4: Launch Trajectory [IPC]
ros2 launch movensys_manipulator_isaac_config stage1and2_trajectory.launch.py
Stage 2c – Real Robot (No Simulation)#
Run cuMotion planning and execute on the physical robot with no Isaac Sim digital twin. Uses the same launch sequence as HiL but with a different USD scene.
Step 1: Open Isaac Sim [Desktop]
Open the real-robot scene:
~/robotics_isaac_sim/isaac_manipulator/demo_full.usd
Step 2: Launch WMX ROS2 Manipulator [IPC]
Same command as Stage 2b Step 2.
Step 3: Launch cuMotion [IPC]
Same command as Stage 2b Step 3.
Step 4: Launch Trajectory [IPC]
ros2 launch movensys_manipulator_isaac_config stage1and2_trajectory.launch.py
See Also#
Isaac Sim Manipulator – Full stage-by-stage Isaac manipulator demo
ROS2 Actions – FollowJointTrajectory action details
wmx_ros2_package – CR3A configuration file parameters
MoveIt2 Motion Planning – Stage 1 MoveIt2 OMPL planning