Isaac cuMotion Accelerated Planning#

Overview#

NVIDIA Isaac cuMotion provides GPU-accelerated trajectory planning as an alternative to the default MoveIt2 OMPL planners. It plugs into MoveIt2 as the planning pipeline, so the rest of the stack is unchanged: planned trajectories still flow through the moveit2_api services and execute on the WMX joint_trajectory_controller. cuMotion is provided by the movensys_manipulator_isaac_ros_config package in the movensys-manipulator repository.

Prerequisites#

  • An NVIDIA GPU with CUDA (NVIDIA desktop GPU or Jetson)

  • Isaac ROS prerequisites (see the Isaac ROS getting-started guide)

  • The movensys-manipulator container built with an Isaac ROS image, i.e. MOVENSYS_ROS_VERSION=isaac-ros_4.1 or isaac-ros_3.2

  • For Isaac Sim scenes, the movensys-simulation repo

See MoveIt2 Motion Planning for the shared MoveIt2 setup and the mros container workflow.

Running cuMotion#

Important

isaac_cumotion.launch.py replaces moveit.launch.py. It starts its own move_group, robot_state_publisher, RViz, MoveIt Servo, and the moveit2_api services, with the cuMotion planner in place of OMPL. Do not run both — they would fight over move_group.

Every walkthrough in movensys-manipulator offers them as step 3a (OMPL) or step 3b (cuMotion), never both.

Commands run through the mros container helper.

Real robot:

# Isaac cuMotion: move_group with the cuMotion planner, plus the
# moveit2_api services
mros ros2 launch movensys_manipulator_isaac_ros_config isaac_cumotion.launch.py

# Run a trajectory
mros ros2 launch movensys_manipulator_moveit_config trajectory_test.launch.py

Simulation / hardware-in-the-loop: start the simulator bridge first and add use_sim_time:=true to each command:

mros ros2 launch movensys_manipulator_moveit_config sim_bridge.launch.py use_sim_time:=true
mros ros2 launch movensys_manipulator_isaac_ros_config isaac_cumotion.launch.py \
     use_sim_time:=true
mros ros2 launch movensys_manipulator_moveit_config trajectory_test.launch.py \
     use_sim_time:=true

Add rsp:=false when the robot description is already published by Gazebo or by ros2_control.

Obstacle Avoidance (Nvblox)#

For collision-aware planning against a live depth reconstruction, use the combined cuMotion + Nvblox launch together with the obstacle-avoidance demo:

mros ros2 launch movensys_manipulator_isaac_ros_config \
     isaac_cumotion_nvblox.launch.py use_sim_time:=true
mros ros2 launch movensys_manipulator_moveit_config \
     obstacle_avoidance.launch.py use_sim_time:=true

Additional Isaac ROS launch files include isaac_apriltag.launch.py, isaac_nvblox.launch.py, and isaac_cumotion_apriltag.launch.py for the AprilTag and combined perception scenarios.

cuMotion vs. MoveIt2 OMPL#

Aspect

cuMotion

Planning pipeline

GPU-accelerated planner that replaces OMPL inside MoveIt2

Execution

Same moveit2_api services and WMX joint_trajectory_controller

Best for

Collision-constrained planning, obstacle avoidance with Nvblox

Hardware

Requires an NVIDIA GPU and an Isaac ROS image

See Also#