cuMotion: GPU-Accelerated Motion Generation for Robotics#
NVIDIA cuMotion is a high-performance motion generation library for robotics, focused mainly on manipulation. GPU acceleration is leveraged throughout where beneficial for performance.
In this Developer Preview, capabilities include:
Kinematics and inverse kinematics (IK)
Collision-aware IK
Collision-aware graph-based path planning
Collision-aware trajectory optimization and end-to-end motion generation
Reactive control via the mathematical framework of RMPflow
Time-optimal (collision-unaware) trajectory generation for paths given by any number of moves in configuration space (joint space) and/or task space
Collision sphere generation, for approximating a closed mesh by a set of spheres
Robots with any number of degrees of freedom are supported.
cuMotion is implemented in C++ and provides a complete set of Python bindings. Although developed as a standalone library, cuMotion will also soon serve as the motion generation backend for Isaac ROS cuMotion and the manipulation reference workflows in Isaac ROS.
cuMotion is descended from two libraries:
Lula was released for a number of years as part of Isaac Sim. It has been entirely subsumed by cuMotion, and Python users of Lula will find that
import cumotion as lulawill suffice for running most client code with only a few modifications.cuRobo was developed by NVIDIA Research and continues to be maintained as a library for robotics researchers. cuMotion incorporates optimized and hardened implementations of algorithms first introduced in cuRobo, including those for collision-aware IK and trajectory optimization.
Table of Contents#
- Getting Started
- Tutorials
- C++ API
- Logging and Error Handling
- Rotations and Poses
- Robot Specification
- World Specification
- Kinematics
- Inverse Kinematics (Collision-Unaware)
- Collision-Aware Inverse Kinematics
- Trajectory Representation
- Trajectory Optimization
- Path Specification
- Path Generation (Collision-Unaware)
- Trajectory Generation (Collision-Unaware)
- Graph-Based Path Planning
- RMPflow
- Collision Sphere Generation
- Python API
- Logging
- Rotations and Poses
- Robot Specification
- World Specification
- Kinematics
- Inverse Kinematics (Collision-Unaware)
- Collision-Aware Inverse Kinematics
- Trajectory Representation
- Trajectory Optimization
- Path Specification
- Path Generation (Collision-Unaware)
- Trajectory Generation (Collision-Unaware)
- Graph-Based Path Planning
- RMPflow
- Collision Sphere Generation
- Release Notes