CusADi2 speeds up robot motion math for low latency control
CusADi2: Latency-Optimized Batch Computation of Robot Kinematics, Jacobians, and Hessians on the GPU
Robotics
Summary
Robots often need to calculate how their parts move (kinematics) and how those movements change (Jacobians and Hessians) many times very quickly. This is important for planning and controlling robot motions in real time. The authors created CusADi2, a software that uses GPUs in a new way to speed up these calculations by doing many inside each task at once, not just running many tasks side by side. They tested it on many robot types and showed it is faster at smaller batch sizes than existing tools, which helps in quick robot decision-making.
What this means in practice
- •For robotics engineers: Cut latency when computing robot motion math in real-time controls, improving responsiveness in diverse robot types.
- •For animation software developers: Speed up physics calculations for complex animated characters by parallelizing kinematics and derivatives on GPUs.
Authors
John Viljoen, Lasse Peters, Masayoshi Tomizuka, Negar Mehr
Abstract
Trajectory optimization methods, from sampling-based zero-order to gradient-based first- and second-order approaches, require many evaluations of dynamical system functions, i.e., functions derived from a robot's dynamical model, such as forward kinematics and their Jacobians and Hessians. These evaluations are largely independent, e.g., across sampled trajectories or time steps, and can thus be evaluated in parallel as a batch. When used to make decisions online, these methods require low latency, i.e., each batch must complete in as little wall-clock time as possible. Existing frameworks utilize modern GPU hardware primarily to parallelize across batch instances, thereby optimizing throughput but not latency. We present CusADi2, a software library that reduces the batch evaluation latency by additionally parallelizing computation within each batch instance. We benchmark forward kinematics, Jacobians, and Hessians for all 67~robots in the MuJoCo Menagerie, including arms, hands, quadrupeds, humanoids, and biomechanical models, against MuJoCo XLA, MuJoCo Warp, frax, CusADi, and CasADi. CusADi2 achieves lower latency than all baselines at batch sizes of 64 to 4096, while matching them at larger batch sizes. We also demonstrate the performance advantage of CusADi2 in a sampling-based control application. All code is open-source at: https://github.com/johnviljoen/cusadi2