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 is shipping as NVIDIA cuMotion with NVIDIA Isaac Manipulator in Q2 2024!

For business inquiries, please submit this form: NVIDIA Research Licensing


Updates

  • April 2024 (v0.7.1): Added mimic joint support, Improved joint space planning, added API documentation for IKSolver. Also added high precision (<1mm) option to IKSolver and MotionGen.

  • 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.