← Paper Digest

cuRobo: Parallelized Collision-Free Minimum-Jerk Robot Motion Generation

Balakumar Sundaralingam, Siva Kumar Sastry Hari, Adam Fishman, Caelan Garrett, Karl Van Wyk, Valts Blukis, Alexander Millane, Helen Oleynikova, Ankur Handa, Fabio Ramos, Nathan Ratliff, Dieter Fox

Seminal October 2023

A real UR10 moves through a sequence of poses around a traffic cone, with an on-screen timer.

TL;DR A GPU library that plans collision-free, minimum-jerk arm trajectories by running many IK, geometric-planning and trajectory-optimization seeds in parallel. On 2600 Franka benchmark problems it plans in 50 ms on average, 60x faster than Tesseract, and solves 99.8% of them.

What they do

cuRobo treats arm motion generation as a global optimization problem: it optimizes many seeds in parallel on a GPU and keeps the best, with every stage (kinematics, collision checking, inverse kinematics (IK), geometric planning, trajectory optimization) on the GPU. The output is a collision-free, minimum-jerk trajectory within joint position, velocity, acceleration and jerk limits.

How it works

  • Spheres and fast kernels. The robot is approximated by spheres. Kinematics and signed distances run in single CUDA kernels and are differentiable in PyTorch. The world can be cuboids, meshes or an nvblox distance field built from a depth camera.
  • Collision cost. The cost becomes active within a buffer distance of obstacles and is scaled by sphere speed. A continuous check sweeps each sphere between timesteps using only point distance queries.
  • Parallel solver. Many collision-free IK solves seed the trajectories. Two iterations of particle-based optimization come first, then L-BFGS with a line search that evaluates a fixed set of step sizes in parallel. If no step size passes, it takes a small noisy step.
  • Geometric planner. A GPU sampling planner that steers between many node pairs in parallel. It is called only after three failed attempts with straight-line seeds.

Results

  • On 2600 Franka Panda problems, cuRobo succeeds on 99.8% (Tesseract 98.53%). Under the cuboid approximation of the scenes, its 5 failures are problems with no valid solution.
  • Mean planning time is 50 ms against Tesseract’s 2.95 s (60x). On a Jetson AGX Orin it is 28x faster at 60 W and 21x faster at 15 W.
  • Its trajectories have 4x lower jerk and 10% shorter paths than Tesseract’s, and 1.23x lower mean motion time.
  • IK runs at 37,134 solutions/s (23.4x TracIK) and collision-free IK at 7611/s (80x TracIK with rejection sampling). On a real UR5e, mean tracking error of min-jerk trajectories is 0.00085 rad, below the 0.0017 rad encoder accuracy.

Limitations

Planning starts and ends at rest, so it is not reactive at a fixed rate, and hard problems are slower (260 ms at the 98th percentile). Constraints are soft costs and the optimization is kinematic only, with no contacts or dynamics. It assumes a complete world model, and the benchmark used only the cuboid collision checker.

Figures

From Figure 1: A Franka Panda moves a grasped object around obstacles to a target location; each motion is generated ...
From Figure 1: A Franka Panda moves a grasped object around obstacles to a target location; each motion is generated within 30 ms.
From Figure 2: The pipeline from start configuration and goal pose to trajectory. Many collision-free IK solutions se...
From Figure 2: The pipeline from start configuration and goal pose to trajectory. Many collision-free IK solutions seed trajectories by linear interpolation, via a retract configuration, or from the geometric planner; many seeds are optimized in parallel (a few particle-based iterations, then L-BFGS) and the result is re-optimized with an estimated time step.
From Figure 13: Problems solved against motion generation time (log scale) for Tesseract and cuRobo on a desktop PC a...
From Figure 13: Problems solved against motion generation time (log scale) for Tesseract and cuRobo on a desktop PC and on a Jetson AGX Orin at MAXN and 15 W. cuRobo on the Orin at 15 W is faster than Tesseract on the desktop PC.
Abstract

This paper explores the problem of collision-free motion generation for manipulators by formulating it as a global motion optimization problem. We develop a parallel optimization technique to solve this problem and demonstrate its effectiveness on massively parallel GPUs. We show that combining simple optimization techniques with many parallel seeds leads to solving difficult motion generation problems within 50ms on average, 60x faster than state-of-the-art (SOTA) trajectory optimization methods. We achieve SOTA performance by combining L-BFGS step direction estimation with a novel parallel noisy line search scheme and a particle-based optimization solver. To further aid trajectory optimization, we develop a parallel geometric planner that plans within 20ms and also introduce a collision-free IK solver that can solve over 7000 queries/s. We package our contributions into a state of the art GPU accelerated motion generation library, cuRobo and release it to enrich the robotics community. Additional details are available at https://curobo.org

Summaries are written automatically from each paper's text. Figures and videos come from the paper and its project page; all credit goes to the authors.