Differentiable Simulation
- 又称: differentiable physics, differentiable simulator, differentiable dynamics
- 类别: Software & tooling › Simulation & twins
- 标签: simulation, automatic-differentiation, system-identification, trajectory-optimization, sim-to-real, physics-engine
一种能够计算其输出相对于输入和参数的梯度的物理仿真,使机器人控制器、设计和模型可以直接通过梯度下降进行优化。
定义
可微仿真(differentiable simulation)是一种以可对其求导的方式编写的物理仿真。传统仿真器接收一个状态、控制输入和物理参数,并返回下一个状态。可微仿真器还会返回下一个状态,或由整条仿真轨迹计算出的任何量,相对于这些输入如何变化。梯度通常借助 JAX、PyTorch 或 NVIDIA Warp 等框架中的自动微分获得,或来自动力学方程的解析导数。
通过物理过程求梯度开辟了多种用途。在轨迹优化中,可以沿着代价经由仿真展开(rollout)得到的梯度来改进一串控制量。在策略学习中,解析策略梯度将任务损失经由仿真器反向传播到策略网络中,所需样本可能远少于仅从奖励估计梯度的强化学习方法。在系统辨识中,质量、摩擦或刚度等参数被拟合到真实测量数据上;而在协同设计中,机器人的尺寸与其控制器一起被优化。
由于接触的存在,机器人对可微物理而言是一个要求很高的场景。撞击和摩擦会产生不连续性和刚性动力学,因此真实梯度可能为零、无定义或具有误导性。仿真器通过平滑或软接触模型、柔顺的惩罚力,或对用于求解接触的优化问题求导来处理这一问题。每种选择都在物理精度与梯度质量之间进行权衡。长时间展开带来第二个问题:梯度可能在许多时间步中爆炸或消失,而且即使梯度存在,优化地形也可能崎岖不平。
可微仿真常与学习型组件结合。神经网络可以对难以推导的那部分动力学建模,例如执行器行为或软体变形,而仿真器的其余部分仍基于物理,整个系统则端到端训练。可微渲染使梯度能够从相机图像回传到场景参数。可用的工具包括 MuJoCo MJX、Brax 和 NVIDIA Warp。
为何重要
梯度让优化能够利用物理的结构,而不是把仿真器当作黑箱,这可以使学习、标定和设计的数据效率大大提高。可微仿真也是让仿真器拟合真实硬件的一种实用方法,可缩小仿真行为与真实行为之间的差距。
主要应用
- 系统辨识 — 将机器人和物体的物理参数拟合到测量数据上
- 轨迹优化 — 通过仿真动力学进行梯度下降,以改进控制序列
- 策略学习 — 利用穿过仿真器的解析梯度训练控制器
- 软体机器人建模 — 对照真实硬件标定可变形体仿真
- 机器人协同设计 — 将机械参数与控制器一起优化
实际应用
使用可微仿真的团队可能会先记录机器人的运动和关节力矩数据,然后通过梯度下降最小化仿真轨迹与测量轨迹之间的差异,来拟合摩擦、阻尼和质量参数。有了标定后的模型,他们就可以通过在较短的仿真展开中反向传播任务损失来优化轨迹或训练策略,并常常截断时域或将解析梯度与强化学习混合使用,以保持梯度稳定。他们会仔细检查梯度质量,例如与有限差分进行对比,并留意接触设置,因为为获得平滑梯度而选择的软接触参数可能使仿真不那么忠实于真实机器人。
常见误解
- 可微仿真总是比强化学习提供更好的梯度 — 接触不连续性和长时域可能使解析梯度充满噪声或具有误导性
- 任何仿真器只要用自动微分包装一下就能变得可微 — 非光滑的接触处理、分支代码和迭代求解器需要特殊处理才能给出有用的梯度
- 可微意味着更准确 — 可微性关乎计算导数;为获得良好梯度而进行的平滑可能降低物理精度
谁需要了解
- 从事基于模型的控制与学习的机器人学习研究人员
- 构建物理引擎的仿真工程师
- 标定可变形模型的软体机器人研究人员
- 使用轨迹优化的控制工程师
相关技术
- 自动微分(Automatic Differentiation)
- JAX
- MuJoCo MJX
- NVIDIA Warp
- 轨迹优化(Trajectory Optimization)
- 系统辨识(System Identification)
相关术语
相关项目
- GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- MuJoCo: DeepMind physics engine for robotics and ML research
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- RLinf: Scalable infrastructure for post-training foundation models via RL
- Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
视频
- Finally, Differentiable Physics is Here!: Two Minute Papers
- Learning on the Fly: Rapid Policy Adaptation via Differentiable Simulation (RA-L 2026): UZH Robotics and Perception Group