引言

在机器人领域,我们一直在追逐高效学习的梦想。如果你曾经训练过用于图像识别的神经网络,你就会知道反向传播 (backpropagation) 的威力。你计算误差,计算梯度 (即调整参数以减小误差的方向) ,然后更新网络。这一过程优雅、符合数学逻辑且高效。

然而,当我们试图将同样的逻辑应用于与物理世界交互的机器人——特别是需要行走的腿式机器人时——我们遇到了一堵巨大的墙: 接触 (Contact)

当机器人的脚触碰到地面时,物理上会发生突然的碰撞。用数学术语来说,这是一个不连续性 (discontinuity) 。标准的物理模拟器可以很好地处理模拟中的这些硬接触,但它们破坏了反向传播所需的微积分运算。因为动力学不平滑,我们无法轻易计算导数 (梯度) 来告诉机器人如何改进。

因此,大多数现代机器人学习依赖于强化学习 (RL) 算法,如 PPO (近端策略优化) 。这些方法将模拟器视为一个“黑盒”,通过尝试数百万次随机动作来估计梯度。这种方法行之有效,但样本效率极低。

但是,如果我们能够对物理模拟器进行微分呢?

在这篇文章中,我们将深入探讨一篇引人入胜的论文: “Learning Deployable Locomotion Control via Differentiable Simulation” 。 研究人员提出了一种新颖的接触建模方法,该方法在物理上足够精确以适用于现实世界,但又足够平滑以允许进行高效的、基于梯度的学习。

图 1: 在可微模拟中训练的行走四足机器人。

他们不仅是在计算机中运行了它。如上图所示,他们成功地将策略零样本 (zero-shot) 迁移到了真实的物理四足机器人上。这标志着一个重要的里程碑: 这是首次成功地将在可微模拟器中完全学习到的腿式行走策略实现“仿真到现实 (sim-to-real) ”的迁移。

问题所在: 梯度 vs. 现实世界

要理解这里的创新,我们需要先了解“梯度瓶颈”。

零阶 vs. 一阶

在标准的强化学习中,我们使用零阶梯度 (ZoG) 估计。想象你在晚上站在一座山上 (损失地形) ,想要找到山谷 (最优策略) 。你看不见坡度。所以,你在周围随机跺脚,看看哪边是向下的。你根据这些样本来估计坡度。这很稳健,但需要数百万次跺脚 (样本) 。

可微模拟 (Differentiable Simulation) 提供了一阶梯度 (FoG) 。 这就好比开了灯。你可以解析地计算出山坡的确切坡度,并直接向下迈出一步。这承诺了极大的效率提升。

接触不连续性

当我们引入地面时,问题就出现了。在刚体模拟器中,接触通常被建模为“硬接触 (Hard Contact) ”。

  • 如果脚在地面上方 (\(distance > 0\)) ,力为零。
  • 如果脚接触地面 (\(distance = 0\)) ,力瞬间跳变以防止穿透。

这种“跳变”造成了不连续性。如果你试图在这个撞击点计算梯度,数学运算就会失效。

图 2: 目标函数及其在随机噪声下的期望值。

如上图所示,标准 RL (ZoG) 通过引入噪声 (随机性) 来处理这个问题。通过对噪声进行平均 (橙色线) ,急剧的跳变变成了平滑的曲线。

然而,如果你试图在原始不连续函数 (蓝色线) 上计算解析梯度 (FoG),你会得到要么为零 (无用) 要么为无穷大 (爆炸) 的梯度。底部图表显示了解析梯度 (橙色实线) 基本上是平坦的——它没有提供任何信息——而随机估计 (绿色线) 则提供了一条有用的曲线。

“软”接触的失败

为了解决这个问题,研究人员以前使用的是软接触 (Soft Contact) 模型。想象地板是由看不见的弹簧制成的。当脚靠近时,力会逐渐增加。这提供了漂亮、平滑的梯度。

问题是什么?这不真实。真正的地板不是用棉花糖做的。在软接触模型上训练的策略往往学会利用这些“弹簧”来移动。当你把这种软件放到坚硬混凝土地面的真实机器人上时,机器人就会失败。

解决方案: 解析平滑

研究人员提出了一个“恰到好处”的解决方案。他们希望拥有硬接触模型的物理保真度 (以便在真实机器人上工作) ,但也需要基于梯度的优化所需的数学平滑度。

他们引入了解析平滑接触模型 (Analytically Smoothed Contact Model)

他们不依赖随机采样 (像 RL 那样) 来平滑不连续性,而是使用 Sigmoid 函数对接触力的数学公式本身进行平滑处理。

平滑的数学原理

在传统的硬接触求解器中 (具体来说是 Gauss-Seidel 方法) ,我们通过截断数值来防止穿透。研究人员通过使用 Sigmoid 函数缩放接触冲量来修改这一点:

Sigmoid 缩放函数的方程。

在这里,\(d\) 是穿透深度,\(\kappa\) 控制刚度。

  • 当脚离得很远时,缩放比例接近零。
  • 随着脚接近并轻微穿透,力会平滑地按比例增加,而不是瞬间增加。

这引入了“距离产生的力”。即使在脚技术上接触地面之前,优化器也可以通过梯度“感觉”到地面的到来。这指导了优化过程,告诉机器人: “如果你这样移动你的腿,你会产生接触。”

物理过程可视化

让我们看一个简单的例子: 一个质量块下落并撞击地面。

图 3: 重力作用下下落质量块的最终高度、最终速度及其关于初始高度的梯度。

这张图对于理解这一贡献至关重要。看左上角 (硬接触 - 蓝线) 。 球的最终高度在撞击地面处有一个尖锐的转角。

  • 蓝线 (硬接触) : 梯度 (底部图表) 是尖锐且无信息的。
  • 绿线 (随机/RL) : 噪声平滑了曲线,使其可学习,但需要高方差采样。
  • 橙线 (解析平滑 - 本文方法) : 注意橙色线是如何紧密跟随绿色“随机”线的。

核心洞察: 解析平滑模型模仿了 RL 随机性的有益平滑效果,但是以确定性的方式实现的。这为我们提供了无偏且信息丰富的梯度 , 而无需数百万个随机样本。

实现: 基于 Warp 的可微模拟

团队使用 NVIDIA Warp 实现了这个物理引擎,这是一个编写 Python 代码但将其编译为高性能 GPU 内核的框架。至关重要的是,Warp 支持自动微分 (AD)。

改进的求解器

大多数刚体模拟器使用如下运动方程:

刚体动力学的运动方程。

为了求解接触力 (\(f_c\)),他们使用了时间步进方案。核心创新在于改进的高斯-赛德尔迭代 (Modified Gauss-Seidel Iteration)

标准的高斯-赛德尔通过迭代接触点来解析力。研究人员展开了这个循环 (使其可微分) 并注入了他们的 Sigmoid 平滑。

改进的冲量更新方程。

通过使用依赖于深度 \(d\) 的 Sigmoid 函数缩放冲量 \(p\),求解器允许梯度通过接触事件反向传播。如果机器人踏空了一步,梯度可以通过这个平滑函数回传给策略: “你应该早点放下腿。”

学习策略

有了可微模拟器,我们要如何训练机器人呢?

简单地对长模拟 (例如 10 秒的行走) 进行反向传播是不稳定的。这就是所谓的“梯度爆炸”问题。物理学是混沌的;现在力的微小变化可能会导致 5 秒后位置的巨大差异。

为了管理这一点,作者使用了短视距演员-评论家算法 (SHAC)

  1. 短视距 (Short Horizons) : 它只观察未来几步 (例如 32 步) 来计算精确的解析梯度。
  2. 评论家 (Critic) : 它使用一个学习到的“评论家” (价值函数) 来估计短视距之外的长期回报。

这种混合方法稳定了训练,同时仍然利用了来自可微模拟器的精确梯度。

实验结果

它真的有效吗?研究人员进行了广泛的比较,对比了软接触模型和传统的硬接触模型。

比较 1: 接触模型

他们使用三种不同的接触模型训练机器人行走,然后在真实的“硬接触”环境中对它们进行评估。

表 1: 不同接触模型的平均回合表现和标准差。

表 1 的主要结论:

  1. 软接触 (Soft Contact) : 在其自身的训练环境中表现良好 (回报 2231) ,但在迁移到硬接触时完全失败 (回报 325) 。机器人学会了利用地板的软弹簧来“作弊”。
  2. 硬接触 (Hard Contact) : 学习是可能的,但梯度充满噪声。
  3. 平滑接触 (Smoothed Contact - 本文方法) : 在训练中表现最好,并且几乎完美地迁移到了硬接触评估中 (回报 2255) 。

这证实了解析平滑弥合了差距: 它创造了足够平滑以供学习的梯度,但在物理上足够逼真以进行部署。

比较 2: 运动质量

数字是一回事,但动作看起来如何?

图 7: 比较平滑接触 (左) 与硬接触 (右) 训练的策略下,四足机器人四条腿的关节位置轨迹。

左侧 (平滑接触) , 注意那些干净、周期性的环。机器人学会了一致、平滑的步态。 在右侧 (硬接触) , 轨迹混乱且不稳定。因为硬接触模型中的梯度是不连续的,优化器难以收敛到一个干净的解,导致了“抽搐般的”行为。

比较 3: 样本效率

可微模拟的主要承诺之一是速度——具体来说,就是需要更少的样本来学习。

图 4: SHAC 和 PPO 算法在训练过程中的回合回报。

图 4 (底部) 中,我们看到回报 vs. 样本数量。

  • 蓝色 (SHAC/DiffSim): 几乎立即飙升。
  • 绿色 (PPO/RL): 需要多出近一个数量级的样本才能达到相同的性能。

虽然 SHAC 每次迭代花费的时间稍长 (计算解析梯度的计算量比单纯采样大) ,但所需数据的巨大减少使其对复杂问题极具吸引力。

仿真到现实: 终极测试

团队将在可微模拟器中学习到的策略,零样本部署到了 ANYmal 四足机器人上。

这比听起来要难。ANYmal 机器人腿部较重且执行器扭矩大,这产生了“刚性”动力学,如果不发生梯度爆炸,很难对其进行微分。

图 5: ANYmal 与 Warp 四足机器人的梯度范数。

图 5 所示,如果优化视距太长,重型 ANYmal 机器人 (上图) 的梯度会爆炸。作者必须仔细调整视距长度 (使用 \(h=12\)) 以保持梯度稳定。

尽管存在这些挑战,迁移还是成功了。

图 6: 目标速度 vs 真实速度。

机器人能够在现实世界中跟踪目标速度 (绿线) ,这与模拟 (橙线) 非常匹配。现实世界的行为非常稳健,能够处理地板复杂的摩擦接触,而没有出现以前作品中看到的“软接触”失败现象。

图 8: ANYmal 左前腿的关节位置轨迹。

图 8 中的关节轨迹进一步验证了该模型。真实 (蓝色) 、平滑模拟 (绿色) 和硬模拟 (橙色) 都紧密对齐。平滑模拟与硬模拟重叠得如此之好,证明了平滑技巧并没有破坏物理精度。

结论与启示

这篇论文代表了机器人学习向前迈出的重要一步。多年来,一直存在一种二分法: 使用精确物理但学习缓慢 (RL) ,或者使用近似物理但学习快速 (DiffSim) 。

通过引入解析平滑 , 这项工作表明我们可以两者兼得。我们可以保留现实世界中坚硬、无情的物理特性,同时提供优化器所渴望的平滑、信息丰富的梯度。

主要收获:

  • 解析平滑在可微性和物理真实感之间架起了一座桥梁。
  • 距离产生的力 (通过 Sigmoid 缩放) 有助于引导优化器处理接触事件。
  • 以这种方式学习的策略具有样本效率 , 并且比在硬接触模型上学习的策略产生更平滑、更自然的步态
  • 使用可微模拟可以实现到复杂硬件的零样本迁移

随着可微模拟器的成熟,我们要可能会看到一种转变: 从大规模 RL 运行的“试错”转向更优雅的、基于梯度的机器人控制优化。在黑暗的山上跺脚的日子可能即将结束;是时候开灯了。