Ostrich simulator speeds up robotic contact tasks with large timesteps

Ostrich: Taking Large Strides Through Stiff Contact in Differentiable Dynamics

RoboticsGraphicsMachine Learning

Summary

Simulating robots moving and interacting with objects is tricky because the computer must handle contacts and friction, which are hard to model accurately and quickly. The authors created Ostrich, a new simulator that uses bigger time steps and a special math technique to keep simulations accurate and fast, even with many parallel simulations at once. Ostrich can produce reliable gradients for optimization more quickly and use less memory than previous methods. This helps improve robot movement planning over complicated surfaces.

What this means in practice

  • For robotics engineers: Run faster and more accurate robot motion planning simulations involving contacts using large timestep differentiable rigid-body dynamics.
  • For computer graphics developers: Simulate complex contact and friction interactions in parallel on GPUs with improved speed and memory efficiency for animation or virtual testing.

Authors

Aleš Kučera, Karel Zimmermann

Abstract

Three properties determine whether a differentiable simulator can drive gradient-based optimization through contact: simulation accuracy, gradient reliability, and per-iteration cost. Tape-based engines such as MJX and Newton Semi-Implicit require timesteps small enough to keep contacts numerically tractable, and their backpropagation memory grows linearly with the number of timesteps T. Surrogate models bound memory by approximating contact away, but the resulting gradients lose the geometry the optimization depends on. We present Ostrich, a GPU-accelerated rigid-body simulator that resolves hard contacts and friction with non-smooth Newton iteration at large timesteps (h ~ 0.1 s), and differentiates the converged residual via the implicit function theorem, reusing the forward Schur complement to compute the adjoint at O(1) memory per timestep. On real-robot trajectories over a pallet obstacle, Ostrich holds MuJoCo's sim-to-real accuracy up to a 50x larger timestep. Its gradients converge from random initializations where MJX descends slowly and Newton Semi-Implicit stalls; a warm iteration runs 211x faster than MJX's and 4.7x faster than Semi-Implicit's. On the same scene Ostrich differentiates 8,192 parallel worlds on a single 24 GB GPU, sustaining 29x checkpointed MJX's optimization throughput; without checkpointing both baselines exhaust memory at far fewer worlds. We close with a gradient-based trajectory optimization demonstration over triangle-mesh terrain across a 10 s horizon, a setting where prior engines either restrict to primitive geometry or face the convergence and memory limits shown above.