cuRobo: CUDA Accelerated Robot Library¶
[API] [GTC Talk] [Research] [Code] [Arxiv] [PDF]
This is a Preview Release highlighting the results obtained in our Technical Report
cuRobo’s collision-free motion planner is available for commercial applications as a MoveIt plugin: Isaac ROS cuMotion.
For business inquiries of cuRobo python library, please submit this form: NVIDIA Research Licensing
Updates¶
July 2024 (v0.7.4): Added support for Isaac Sim 4.0.0. Experimental support for Windows and cuda graph reset.
May 2024 (v0.7.3): Improved joint space planner success and accuracy.
April 2024 (v0.7.2): Added re-timing to change planned trajectory speed between planning calls. Higher-level API documentation. Improvements for smoother trajectories.
April 2024 (v0.7.1): Added mimic joint support, improved joint space planning, added API documentation for IKSolver. Also added high precision (
<1mm
) option toIKSolver
andMotionGen
.March 2024 (v0.7.0): ESDF voxel grid collision checker, partial support for Isaac Sim 2023.1.1, improved collision kernels.
Feb 2024 (v0.6.3): New: Constrained Planning, Robot Segmentation, Update Locked JointState.
Dec 2023 (v0.6.2): New features and quality improvements.
Nov 2023 (v0.6.1): Added support for Isaac Sim 2023.1.0, x86, aarch64, and isaac sim dockerfiles.
Oct 2023 (v0.6.0): Released cuRobo Technical Report and Source Code.
See CHANGELOG for details.
Overview¶
cuRobo is a CUDA accelerated library containing a suite of robotics algorithms that run significantly faster than existing implementations leveraging parallel compute. cuRobo currently provides the following algorithms: (1) forward and inverse kinematics, (2) collision checking between robot and world, with the world represented as Cuboids, Meshes, and Depth images, (3) numerical optimization with gradient descent, L-BFGS, and MPPI, (4) geometric planning, (5) trajectory optimization, (6) motion generation that combines inverse kinematics, geometric planning, and trajectory optimization to generate global motions within 30ms.
cuRobo generates motions for a UR10 within 100ms on a NVIDIA Jetson Orin.
cuRobo performs trajectory optimization across many seeds in parallel to find a solution. cuRobo’s trajectory optimization penalizes jerk and accelerations, encouraging smoother and shorter trajectories.
cuRobo leverages nvblox for collision avoidance with obstacles from a Depth camera.
Comparison of cuRobo’s motion generation on the left to a BiRRT planner for the motion planning phases in a pick and place task.
cuRobo can constrain different axes and allow for planning in the remaining axes leveraging trajectory optimization.
Example motions generated by cuRobo on the motionbenchmaker and motion policy networks datasets.