弥合虚实差距: 主动探索如何让足式机器人敏捷且精准

如果你曾见过机器人戏剧性地失败——试图行走时摔倒,或者跳跃时偏离目标几英寸——你就见证了“Sim-to-Real 差距 (仿真与现实的差距) ”。在物理模拟器中,机器人是完美的。它们拥有无限的电池寿命,电机响应瞬间完成,地面也完美平坦。而在现实世界中,电机有延迟,摩擦力各不相同,质量分布也鲜少与规格表完全一致。

多年来,机器人社区一直依靠 强化学习 (RL) 来教机器人行走。我们在模拟环境 (Sim) 中训练它们,然后将它们部署到现实世界 (Real) 。当这两个世界的物理特性不匹配时,机器人就会失败。

今天,我们将深入探讨一篇题为 “Sampling-Based System Identification with Active Exploration for Legged Sim2Real Learning” (简称 SPI-Active )的新论文。这项研究提出了一个迷人的解决方案: 我们不应该为了让机器人适应 任何 可能的世界 (一种称为域随机化的常用技术) 而进行训练,而应该教机器人对自己进行实验,以弄清楚它究竟处于 哪个 世界中。

结果如何?机器人能够进行高精度的跑酷,在没有外部动作捕捉系统的情况下,以厘米级的精度穿梭于杆子之间并跨越间隙。

SPI-Active 实现了跨多种运动任务的高保真 Sim-to-Real 迁移。

问题所在: 为什么 Sim-to-Real 如此困难

要理解这篇论文的重要性,我们首先需要了解当前方法的局限性。

域随机化的局限性

弥合差距的标准方法是 域随机化 (Domain Randomization, DR) 。 在 DR 中,你在数千个模拟环境中训练 RL 策略,每个环境的参数都略有不同。一个模拟环境中的机器人可能很重;另一个可能地板很滑。希望在于,如果策略在所有这些随机版本中都能奏效,那么它在真实机器人上也能奏效。

DR 的问题在于,它往往迫使机器人变得 保守 。 如果你训练一个机器人在冰面 混凝土上行走,它可能会采取一种在这两种表面上都可行但都不出色的缓慢跺脚的步态。它为了鲁棒性牺牲了精度。

系统辨识 (Sys-ID) 的挑战

另一种方法是 系统辨识 (System Identification) 。 这涉及获取机器人的真实数据,对其进行分析,并更新模拟器参数 (如质量、质心和电机强度) 以匹配现实。如果你的模拟器是准确的,你的策略就会有效。

然而,对于足式机器人来说,传统的 Sys-ID 是一场噩梦,原因有二:

  1. 可微性: 许多现代优化技术需要“可微”的模拟器 (你可以计算梯度来指导调整) 。大多数鲁棒的物理引擎并非可微的,尤其是在涉及复杂的接触力 (脚撞击地面) 时。
  2. 数据质量: 要辨识机器人的参数,你需要好的数据。如果你只是让机器人原地踏步,你就无法了解它的转动惯量。你需要 激励 系统——让它做动态动作——来揭示其真实的物理特性。

SPI-Active 登场

研究人员提出了一个名为 SPI-Active 的两阶段框架。它结合了大规模并行计算来估计参数 (不需要梯度) 和一个“主动探索”阶段,在这个阶段,机器人智能地决定如何移动以收集尽可能最好的数据。

SPI-Active 工作流程概览,显示了数据收集、参数辨识和主动探索。

如上图所示,该过程流程如下:

  1. 第一阶段: 使用标准策略收集初始数据。辨识出一个粗略的模型。
  2. 第二阶段: 使用该粗略模型计算一个“主动探索”策略。该策略迫使机器人执行特定的机动动作,以最大化信息增益。
  3. 优化: 使用探索策略收集新数据并优化参数。
  4. 部署: 在高度精确的模拟器上训练最终的运动策略。

让我们分解一下使这一切成为可能的技术创新。

第一阶段: 基于采样的参数辨识 (SPI)

第一个核心贡献是一种鲁棒的方法,无需可微模拟器或昂贵的扭矩传感器即可辨识物理参数。

优化问题

目标很简单: 找到一组参数 \(\theta\) (质量、惯量、电机强度) ,使得模拟机器人的轨迹与真实机器人的轨迹相匹配。

在数学上,他们将其表述为一个最小化问题:

通过最小化状态预测误差来寻找最优参数 theta 的方程。

这里,\(\mathbf{x}\) 代表机器人的状态 (位置、速度、关节角度) 。项 \(f(\mathbf{x}_t, \mathbf{u}_t; \theta)\) 代表模拟器根据当前状态和动作 \(\mathbf{u}_t\) 预测下一个状态。

处理“黑盒”模拟器

由于他们使用的是 Isaac Gym (一种高性能但不可微的模拟器) ,他们无法使用梯度下降来寻找 \(\theta\)。相反,他们使用了 CMA-ES (协方差矩阵自适应进化策略)

可以将 CMA-ES 想象成一种增强版的“猜测并验证”策略。它对一组参数设置进行采样,并行运行数千次模拟 (这在现代 GPU 上很容易实现) ,检查哪些设置与真实数据最匹配,然后将其“猜测分布”向好的结果移动。

物理可行性: Log-Cholesky 分解

Sys-ID 中一个微妙但关键的挑战是确保辨识出的参数在物理上是可能的。例如,质量矩阵 (惯量) 必须是 正定 的。如果优化算法预测出负质量或不可能的惯性张量,物理引擎就会崩溃或爆炸。

为了防止这种情况,作者没有直接辨识惯量矩阵。相反,他们使用了 Log-Cholesky 分解 。 他们优化一个下三角矩阵 \(\mathbf{U}\),并用它来构建伪惯量矩阵 \(\mathbf{J}\)。

确保半正定惯量矩阵的 Log-Cholesky 分解方程。

这种数学技巧保证了无论优化器得出什么数字,生成的机器人模型都遵守物理定律。

执行器动力学建模

在标准模拟中,我们假设如果我们指令 10 Nm 的扭矩,电机就会输出 10 Nm。实际上,电机有摩擦、反电动势和饱和限制。这种差异是 Sim-to-Real 差距的一个巨大来源。

作者引入了一个双曲正切 (tanh) 模型来捕捉指令扭矩 (\(\tau_{PD}\)) 和实际输出扭矩 (\(\tau_{motor}\)) 之间的非线性关系。

使用双曲正切模拟扭矩饱和的执行器动力学模型。

参数 \(\kappa\) 决定了饱和极限。通过将其包含在辨识过程中,系统能够确切地了解到真实电机与理想电机相比有多“弱”或多“强”。

代价函数

用于评估参数集的实际代价函数是综合性的。它不仅关注机器人的位置,还关注一段时间 \(H\) 内的速度、方向和关节状态。

整合状态和参数正则化的综合代价函数 J。

这个方程本质上是在说: “找到一组参数,使得真实状态 (\(\mathbf{x}^r\)) 和模拟状态 (\(\mathbf{x}\)) 之间的差异最小,同时保持参数接近合理的先验值 (\(\theta_0\))。”

第二阶段: 主动探索

上述方法效果不错,但它有一个缺陷: 它依赖于你恰好拥有的数据。如果你只有机器人静止不动的数据,你就不可能辨识出它的转动惯量。你需要 激励 系统。

但是随机晃动对于足式机器人来说是危险的——它可能会摔倒。这就是 主动探索 发挥作用的地方。

费雪信息矩阵 (FIM)

研究人员使用了信息论中的一个概念,称为费雪信息矩阵 (FIM)。简单来说,FIM 量化了一系列数据为一个未知参数提供了多少信息。

“Cramér-Rao 界”指出,参数估计的方差下界是 FIM 的逆矩阵。因此, 最大化 FIM 可以最小化不确定性。

基于轨迹对数似然定义的费雪信息矩阵 F。

优化指令序列

作者没有从头开始训练一个神经网络进行探索 (这会导致不稳定的行为) ,而是优化现有运动策略的 输入指令

他们采用了一个预训练的策略,该策略可以根据输入 (速度 \(v_x\)、航向 \(w_z\)、步态频率等) 进行行走、小跑或跳跃。然后,他们搜索一系列指令 \(\mathbf{c}_{1:T}\),以最大化 FIM 的迹。

寻找最大化逆 FIM 迹的指令序列 c 的优化目标。

这实际上是在问: “什么样的快速行走、转弯和步态切换组合会对机器人的物理特性施加最大的压力,从而揭示其真实参数?”

计算精确的 FIM 很困难,因此他们使用了基于动力学对参数敏感度的近似计算:

使用动力学函数梯度的费雪信息矩阵近似。

这个计算量很大,但由于 SPI 框架的并行特性,它可以被高效地计算出来。

实验与结果

这个复杂的流程真的比仅仅随机化域效果更好吗?作者在 Unitree Go2 四足机器人和 Unitree G1 人形机器人上进行了测试。

1. 预测精度

首先,他们检查辨识出的模型是否可以预测未来。他们在真实机器人上收集验证数据,并检查模拟器 (使用新参数) 是否与现实相符。

如下表 1(a) 所示, SPI-Active (完整方法) 在根部位置、关节角度和速度方面均实现了最低的预测误差,优于基于梯度的方法 (GD) 和没有主动探索的标准 SPI。

对比不同方法的预测精度和任务性能的表 1。

2. 任务性能

真正的考验是部署 RL 策略。他们为四个不同的任务训练了策略:

  1. 前跳 (Forward Jump): 精准跳跃至 0.85m 外的目标。
  2. 偏航跳跃 (Yaw Jump): 跳跃的同时旋转 135 度。
  3. 速度跟踪 (Velocity Tracking): 跟随复杂的速度指令。
  4. 姿态跟踪 (Attitude Tracking): 精确倾斜身体。

四个运动任务的图示: 前跳、偏航跳跃、速度跟踪和姿态跟踪。

结果非常鲜明。如下面的性能表 (表 1b) 所示,SPI-Active 始终优于“Vanilla” (默认 URDF) 和“Heavy DR” (激进的域随机化) 。

显示不同任务的归一化性能指标的表格。

前跳 任务中,Vanilla 策略经常跳得不够远或失去平衡。而在“知道”机器人确切执行器限制和惯量的模拟器上训练出来的 SPI-Active 策略,则始终能成功落地。

任务性能指标对比,显示 SPI-Active 显著优于 Vanilla。

我们可以在图 4 中看到轨迹跟踪的情况。红线 (现实世界 SPI-Active) 比 Vanilla 方法更紧密地跟随蓝线 (模拟) 和灰线 (参考) ,特别是在运动的相位方面。

对比 Vanilla 与 SPI-Active 策略的俯仰角跟踪折线图。

3. 为什么主动探索很重要

第二阶段真的有必要吗?作者进行了一项消融研究,将 SPI-Active 与“SPI-Random” (探索阶段使用随机指令) 进行了比较。

数据揭示了一些有趣的事情: FIM 优化的轨迹诱导出了 更高的速度 和更 多样的步态模式 (如四足腾空跳 Pronking) ,这与随机指令相比有显著差异。

显示速度分布和步态模式的图表,对比了基于 FIM 和随机探索。

在图 (a) 中,你可以看到 FIM 策略 (蓝色) 将机器人推向了更高的速度幅度。在图 (b) 中,它更频繁地选择了“Pronking” (一种高冲击力的步态) 。这种高能量数据为系统辨识算法提供了更清晰的信号,从而在最终的前跳任务中显著降低了误差 (图 c) 。

4. 电机建模的重要性

最后,研究人员验证了他们对电机模型的选择。他们将基于 Tanh 的模型与简单的线性模型和统一模型 (假设所有电机都相同) 进行了比较。

对比不同电机模型性能的表格。

“Ours” (前文提到的公式 3) 方法产生了最低的误差。这证明了将电机视为非线性的、关节特定的组件对于高性能任务至关重要。

结论

SPI-Active 框架代表了我们对机器人学习思考方式的转变。与其试图让策略对 一切 都具有鲁棒性 (这会导致它在所有方面都表现平平) ,我们不如利用机器人自身的智能来探索其物理现实。

通过结合大规模并行模拟和信息论探索,我们可以构建对物理世界极其忠实的“数字孪生”。这使我们能够在模拟中训练策略,并以通常保留给硬编码控制理论的精度,零样本迁移到现实世界。

随着足式机器人从实验室走向现实应用,像 SPI-Active 这样的技术对于确保它们在复杂环境中安全、高效和精准地运行将至关重要。


参考文献

Sobanbabu, N., He, G., He, T., Yang, Y., & Shi, G. (2025). Sampling-Based System Identification with Active Exploration for Legged Sim2Real Learning. 9th Conference on Robot Learning (CoRL 2025).