Ostrich accelerates robot simulation with efficient large step contact handling

Ostrich: Taking Large Strides Through Stiff Contact in Differentiable Dynamics

RoboticsGraphicsMachine Learning

Summary

Simulating how robots move and interact with objects accurately and quickly is difficult, especially when they touch or push things. The authors present Ostrich, a new simulation tool that can handle these contacts with larger time steps while still giving reliable information for improving robot movements. Unlike other simulators that need tiny steps to avoid errors or forget important details, Ostrich uses advanced math and graphics processing to speed up calculations and save memory. This makes it much faster and can work with many simulations at once, helping design robot actions over longer times and complex terrains.

differentiable simulationgradient-based optimizationrigid-body dynamicscontact and frictionnon-smooth Newton iterationimplicit function theoremSchur complementGPU accelerationtrajectory optimization

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.