Ostrich: Taking Large Strides Through Stiff Contact in Differentiable Dynamics

📄 arXiv: 2609.08800v1 📥 PDF

作者: Aleš Kučera, Karel Zimmermann

分类: cs.RO, cs.GR, cs.LG

发布日期: 2026-09-08

备注: 8 pages, 6 figures. Submitted to IEEE Robotics and Automation Letters. Code: https://github.com/aleskucera/ostrich


💡 一句话要点

提出Ostrich以解决大时间步长下的接触模拟问题

🎯 匹配领域: 支柱一:机器人控制 (Robot Control)

关键词: 可微分模拟 接触处理 非光滑牛顿迭代 GPU加速 机器人优化 物理仿真

📋 核心要点

  1. 现有的可微分模拟器在处理接触时需要小时间步长,导致内存消耗大且优化效率低。
  2. Ostrich通过非光滑牛顿迭代在较大时间步长下解决接触问题,并利用隐函数定理进行微分,显著降低内存需求。
  3. Ostrich在真实场景中实现了比MJX快211倍和比牛顿半隐式快4.7倍的优化速度,同时支持更高的并行计算能力。

📝 摘要(中文)

本文提出了一种名为Ostrich的GPU加速刚体模拟器,旨在解决可微分动态模拟中的接触问题。现有的基于带子的引擎如MJX和牛顿半隐式方法在处理接触时需要较小的时间步长,且其反向传播的内存需求随着时间步长的增加而线性增长。Ostrich通过非光滑牛顿迭代在较大时间步长下(h ~ 0.1 s)解决硬接触和摩擦问题,并利用隐函数定理对收敛的残差进行微分,显著提高了优化效率。实验结果表明,Ostrich在真实机器人轨迹上保持了MuJoCo的仿真精度,并在多个方面超越了现有方法。

🔬 方法详解

问题定义:本文旨在解决现有可微分模拟器在处理接触时对时间步长的严格限制,导致的内存消耗和优化效率低下的问题。现有方法如MJX和牛顿半隐式方法在大时间步长下无法有效处理接触,限制了其应用场景。

核心思路:Ostrich采用非光滑牛顿迭代方法,在较大时间步长下(h ~ 0.1 s)解决硬接触和摩擦问题。通过隐函数定理对收敛的残差进行微分,Ostrich能够在每个时间步长以O(1)的内存计算梯度,从而提高了优化效率。

技术框架:Ostrich的整体架构包括前向模拟模块、非光滑牛顿迭代模块和梯度计算模块。前向模拟模块负责物理仿真,非光滑牛顿迭代模块处理接触和摩擦,梯度计算模块利用隐函数定理进行反向传播。

关键创新:Ostrich的主要创新在于能够在较大时间步长下有效处理接触问题,并通过隐函数定理实现高效的梯度计算。这一设计使得Ostrich在内存使用和计算速度上显著优于现有方法。

关键设计:Ostrich在参数设置上优化了时间步长和迭代次数,确保在大时间步长下仍能保持高精度的接触模拟。同时,采用了高效的内存管理策略,使得在并行计算时能够支持更多的世界状态。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

Ostrich在真实机器人轨迹上实现了MuJoCo的仿真精度,且在优化速度上表现优异,运行速度比MJX快211倍,比牛顿半隐式快4.7倍。同时,Ostrich能够在单个24 GB GPU上并行处理8,192个世界状态,显著提升了优化吞吐量。

🎯 应用场景

Ostrich的研究成果在机器人控制、物理仿真和动画制作等领域具有广泛的应用潜力。其高效的接触模拟能力可以推动复杂物理场景下的优化算法发展,提升机器人在动态环境中的适应能力和操作精度。未来,Ostrich可能会在实时仿真和虚拟现实等领域发挥重要作用。

📄 摘要(原文)

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.