[isaacsim.robot_motion.experimental.motion_generation] motion_generation#
Version: 6.1.2
Overview#
The isaacsim.robot_motion.experimental.motion_generation extension provides APIs for interfacing external motion generation code with Isaac Sim. This extension enables developers to build motion planning systems by providing core components for trajectory generation, controller composition, obstacle representation, and world synchronization.
Key Components#
Controllers#
The extension provides a flexible controller framework built around the BaseController interface. The ControllerContainer enables runtime switching between different controllers using selection keys, while ParallelController runs multiple controllers simultaneously and combines their outputs. The SequentialController chains controllers together, feeding the output of one controller as the setpoint to the next.
The TrajectoryFollower controller implements trajectory execution, requiring a trajectory to be set before use and handling timing bounds automatically.
State Representation#
Robot state is represented through composite data structures. The RobotState class aggregates joint states, root link states, rigid body states, and site states. JointState manages joint positions, velocities, and efforts using warp arrays for efficient computation. SpatialState handles pose and twist data for reference frames, while RootState specifically manages the robot’s root link state.
Trajectory and Path Planning#
The Path class represents joint-space waypoints connected linearly and provides conversion to minimal-time trajectories using velocity and acceleration constraints. The abstract Trajectory interface defines continuous-time trajectories with duration and state sampling capabilities.
Obstacle Management#
The ObstacleStrategy system manages obstacle representations for planning. ObstacleConfiguration pairs representation types with safety tolerances, while ObstacleRepresentation enumerates supported geometric primitives including spheres, cubes, capsules, meshes, and oriented bounding boxes.
World Interface#
The WorldBinding class synchronizes USD stage objects with planning world implementations through the WorldInterface. It uses USDRT change tracking to efficiently mirror tracked prims into planning representations, handling transforms, collision states, and shape properties.
The SceneQuery class provides spatial queries against the USD stage, enabling searches for objects with specific APIs within axis-aligned bounding boxes.
Integration#
The extension integrates with isaacsim.core.experimental.objects for shape definitions and isaacsim.core.experimental.utils for core functionality. The WorldBinding component specifically bridges USD scene data with motion planning algorithms by tracking CollisionAPI and RigidBodyAPI objects defined by TrackableApi.
Enable Extension#
The extension can be enabled (if not already) in one of the following ways:
Define the next entry as an application argument from a terminal.
APP_SCRIPT.(sh|bat) --enable isaacsim.robot_motion.experimental.motion_generation
Define the next entry under [dependencies] in an experience (.kit) file or an extension configuration (extension.toml) file.
[dependencies]
"isaacsim.robot_motion.experimental.motion_generation" = {}
Open the Window > Extensions menu in a running application instance and search for isaacsim.robot_motion.experimental.motion_generation.
Then, toggle the enable control button if it is not already active.
Python API#
Controllers
State Types
Trajectory and Path
World Interface
Obstacle Handling
Scene Query