Skip to main content
QUICK REVIEW

[论文解读] Dojo: A Differentiable Physics Engine for Robotics

Taylor A. Howell, Simon Le Cleac’h|arXiv (Cornell University)|Mar 2, 2022
Model Reduction and Neural Networks被引用 10
一句话总结

Dojo 是一种用于机器人学的可微分物理引擎,通过变分积分器和自定义的原始-对偶内点法求解非线性互补问题(NCP),实现了在硬接触和摩擦条件下稳定、精确的刚体动力学仿真。它通过隐式微分实现接触事件中的平滑、解析梯度,从而支持高精度仿真和高效优化,适用于规划、策略学习和系统辨识,且在低采样率(例如 65 Hz)下几乎无穿透和无蠕变伪影。

ABSTRACT

We present Dojo, a differentiable physics engine for robotics that prioritizes stable simulation, accurate contact physics, and differentiability with respect to states, actions, and system parameters. Dojo models hard contact and friction with a nonlinear complementarity problem with second-order cone constraints. We introduce a custom primal-dual interior-point method to solve the second order cone program for stable forward simulation over a broad range of sample rates. We obtain smooth gradient approximations with this solver through the implicit function theorem, giving gradients that are useful for downstream trajectory optimization, policy optimization, and system identification applications. Specifically, we propose to use the central path parameter threshold in the interior point solver as a user-tunable design parameter. A high value gives a smooth approximation to contact dynamics with smooth gradients for optimization and learning, while a low value gives precise simulation rollouts with hard contact. We demonstrate Dojo's differentiability in trajectory optimization, policy learning, and system identification examples. We also benchmark Dojo against MuJoCo, PyBullet, Drake, and Brax on a variety of robot models, and study the stability and simulation quality over a range of sample frequencies and accuracy tolerances. Finally, we evaluate the sim-to-real gap in hardware experiments with a Ufactory xArm 6 robot. Dojo is an open source project implemented in Julia with Python bindings, with code available at https://github.com/dojo-sim/Dojo.jl.

研究动机与目标

  • 解决现有物理引擎在机器人学中的局限性,包括低采样率下的不稳定性、穿透现象、蠕变以及接触过程中的非平滑梯度。
  • 通过物理与优化优先的设计方法,实现硬接触和摩擦动力学的稳定且精确的仿真。
  • 通过接触事件提供平滑、解析的梯度,以支持机器人应用中高效基于梯度的优化。
  • 通过最小化仿真伪影(如穿透和蠕变)并保持计算鲁棒性,提升仿真到现实的迁移性能。
  • 开发一种支持系统辨识、轨迹优化和策略学习的可微分物理引擎,实现高保真度仿真。

提出的方法

  • 使用变分积分器确保能量和动量守恒,并在低时间步长(例如 65 Hz)下保持稳定性,避免对高频采样需求。
  • 通过带二阶锥摩擦的非线性互补问题(NCP)建模接触动力学,实现对硬接触和冲击的精确仿真。
  • 采用自定义的原始-对偶内点法可靠且稳健地求解NCP,且在不同系统间几乎无需超参数调优。
  • 对内点求解器应用隐式微分,计算仿真状态相对于状态、动作和系统参数的平滑、解析梯度。
  • 原生支持最大坐标状态表示,并原生处理锥约束和四元数约束,提升机器人系统的建模保真度。
  • 通过将链式法则应用于NCP的隐式解,实现高效的梯度计算,避免使用有限差分近似或次梯度。

实验结果

研究问题

  • RQ1可微分物理引擎是否能在低采样率(例如 65 Hz)下实现稳定仿真,同时保持物理准确性并避免穿透现象?
  • RQ2带有二阶锥摩擦模型的非线性互补问题是否比软接触或基于LCP的求解器提供更精确的接触动力学?
  • RQ3对原始-对偶内点求解器进行隐式微分是否能产生接触事件中的平滑、解析梯度,从而在机器人学中实现更优的优化?
  • RQ4与现有引擎相比,Dojo在系统辨识和策略学习中对仿真到现实迁移的改善程度如何?
  • RQ5Dojo能否在最小化伪影的前提下,支持复杂机器人任务(如行走和操作)的高保真仿真与优化?

主要发现

  • 在Atlas下落实验中,Dojo在 65 Hz 下实现了零穿透的稳定仿真,而MuJoCo则出现厘米级地板穿透和不稳定性。
  • 系统辨识任务中,从真实轨迹数据中学习的盒子几何和摩擦锥参数误差低于 5%。
  • Dojo学习到的系统参数与真实值高度吻合,且仿真轨迹与真实轨迹匹配度极高(如图10所示)。
  • Dojo的梯度是平滑且解析的,支持规划和策略学习中高效可靠的优化,优于次梯度或有限差分近似。
  • 得益于内点法的数值稳定性,该引擎在无需超参数调优的情况下,对各类系统均表现出稳健性能。
  • Dojo能够以机器精度约束实现硬接触的精确仿真,消除了滑动运动中的蠕变伪影。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。