一句话定位
谷歌团队把系统辨识、物理级直流电机执行器建模、控制回路延迟仿真三者叠加进 PyBullet,再用 PPO 配合动力学随机化和推力扰动训练策略,使得完全在仿真里从零学出的 trotting(对角小跑)与 galloping(飞奔)步态无需任何真机微调即可直接部署到 Minitaur 四足机器人上,且比工程师手调的步态省电 23%–35%;这是”仿真中训练、真机零样本部署”这一四足 sim-to-real 范式的奠基性工作之一(发表于 RSS 2018,据 PyBullet 环境仓库 README 确认)。
背景与定位
设计敏捷的四足步态长期依赖专家经验和繁琐的手工调参。深度强化学习(deep RL)已能在仿真中从简单奖励信号自动学出复杂运动行为,但此前大多数研究(如 Heess et al. 2017 的 rich-environment locomotion、Peng et al. 的 DeepLoco 分层控制器等)都只在仿真里训练和评测,是否能安全部署到真实机器人尚不清楚。直接在真机上学习(如机器人抓取任务已证明可行)对四足运动并不现实——难以自动化重置实验、连续采集数据,且每次摔倒都可能损坏机器人。
本文的定位是构建一套”仿真训练 + 真机部署”的完整系统,直面”现实差距”(reality gap)问题:仿真与真实物理系统之间的模型偏差,会因四足敏捷运动中频繁的接触状态切换而被急剧放大。论文提出两条互补路径来缩小差距:提升仿真保真度(系统辨识 + 精确执行器模型 + 延迟建模)与学习鲁棒控制器(动力学随机化 + 随机扰动 + 精简观测空间)。
与同期的感知侧域随机化工作 domain-randomization(Tobin et al. 2017,随机化仿真渲染纹理/光照/相机来做零样本视觉迁移)相呼应,本文把”随机化换鲁棒性”的思路用在了动力学参数(质量、摩擦、执行器强度、延迟等)而非视觉外观上,二者共同构成了 2017–2018 前后”训练时随机化 = 免疫真实世界不确定性”这一 sim-to-real 通用配方的两个源头。本文也是后续谷歌 / CMU 一脉四足 sim-to-real 强化学习研究(如 learning-quadrupedal-locomotion-challenging-terrain 把同一套思路扩展到复杂地形盲走、rma-rapid-motor-adaptation 引入在线快速运动适应、learning-to-walk-in-minutes-massively-parallel-rl 用大规模并行仿真把训练时间从数小时压缩到数分钟)的直接前身:本文用的执行器建模、延迟建模、动力学随机化三件套至今仍是绝大多数腿式机器人 sim-to-real RL 流水线的标准模板。
范式命名:sim-to-real transfer via accurate actuator/latency modeling + dynamics randomization(区别于纯系统辨识路线,也区别于纯视觉域随机化路线)。
模型架构
本文早于视觉-语言-动作(VLA)范式,策略是纯本体感知(proprioceptive)、不含视觉输入的经典强化学习控制器,无 VLM、无跨本体设计,只针对单一机器人平台 Minitaur。
- 问题建模:部分可观测马尔可夫决策过程(POMDP),用策略梯度方法求解;因缺少机身位置与足端接触力传感器,观测 o 是状态 s 的子集。
- 算法:Proximal Policy Optimization(PPO,Schulman et al. 2017),选择理由是稳定的 on-policy 方法且易并行。
- 混合策略公式:a(t, o) = ā(t) + π(o),ā(t) 是用户可指定的开环参考信号(通常为周期信号),π(o) 是神经网络学出的反馈分量。令 ā(t)=0 且给 π(o) 宽输出范围 → 完全从零学习(galloping 实验);给定固定正弦 ā(t) 且把 π(o) 输出范围收窄 → 用户引导特定风格步态(trotting 实验,参考信号为 s̄(t)=0.3sin(4πt)、ē(t)=0.35sin(4πt)+2,对角腿对相位相差 180°)。该公式可连续插值于”完全脚本化”与”完全从零学习”之间。
- 动作空间:腿部空间(leg space)表示——每条腿的姿态分解为摆动 s 与伸展 e 两个分量,再映射到该腿两个电机角 θ₁=e+s、θ₂=e−s;相比直接用 8 个电机角作动作空间(存在自碰撞导致的非凸无效区域),腿部空间可用简单矩形边界剔除无效动作,显著降低学习难度。执行器用位置控制模式(而非力矩控制),兼顾安全与易学习性。
- 观测空间:刻意精简、只用本体感知信息——机身 roll、pitch 及其沿两轴的角速度,可选再加 8 个电机角度;显式排除 yaw(漂移快)与电机速度(噪声大)。Trotting 最终成功版本用 4 维观测(仅 IMU 的 roll/pitch + 2 个角速度,不含电机角);Galloping 用 12 维观测(IMU 4 维 + 8 个电机角)。消融显示观测维度越大在仿真里表现越好,但真机迁移越差(见评测)。
- 策略 / 价值网络:均为两层全连接网络,尺寸经超参搜索确定——策略网络 trotting (125, 89)、galloping (185, 95);价值网络 trotting (89, 55)、galloping (95, 85)。
- 回合终止:满 1000 步或机身倾角超过 0.5 弧度(约 28.6°)视为失衡终止。
数据
本文不使用任何人工示教数据或预录轨迹,全部数据来自 PyBullet 仿真中的在线策略采样(on-policy RL)。
- 仿真器:PyBullet(对 Bullet Physics Engine 的 Python 封装),Minitaur 环境已开源(见 GitHub 链接)。
- 采样规模:每次策略更新迭代并行采集 25 条 rollout(每条最多 1000 步);每个任务训练上限为 700 万仿真步(7 million simulation steps)。
- URDF / 系统辨识数据:拆解一台真实 Minitaur,测量各连杆尺寸、称重、定位各连杆质心,并入 URDF;转动惯量因难以直接测量,改用连杆形状+质量在均匀密度假设下估算;另设计实验专门测量电机摩擦。
- 动力学随机化参数分布(每回合开始独立均匀采样,Table I):
参数 下界 上界 质量 80% 120% 电机摩擦 0 N·m 0.05 N·m 转动惯量 50% 150% 电机强度 80% 120% 控制步长 3 ms 20 ms 延迟 0 ms 40 ms 电池电压 14.0 V 16.8 V 接触摩擦系数 0.5 1.25 IMU 偏置 −0.05 rad 0.05 rad IMU 噪声(标准差) 0 rad 0.05 rad - 随机推力扰动:训练中每隔 200 仿真步(1.2 s)对机身施加一次扰动力,持续 10 步(0.06 s),方向随机、幅值在 130 N–220 N 间均匀采样。
- 真机评测数据:不参与训练,仅用于零样本评测——每个实验组训练 100 个(不同超参数/随机种子)控制器,按仿真回报选出前 3 个部署到真机,每个各跑 3 次,共 9 次真机试验取平均作为”期望回报”。真机评测未做任何微调(fine-tuning)。
训练方法
- 目标函数:最大化期望回报,奖励 r = (pₙ − pₙ₋₁)·d − w·Δt·|τₙ·q̇ₙ|,第一项为朝目标方向的位移(前进速度),第二项为能耗惩罚(力矩×角速度),权重 w=0.008 在所有实验中固定不调(论文称算法对 w 取值范围鲁棒)。
- 两阶段流水线:(1) 提升仿真保真度——系统辨识(URDF 校准)+ 新执行器模型 + 延迟建模;(2) 在改进后的仿真里用 PPO 训练鲁棒策略——动力学随机化 + 随机扰动 + 精简观测空间。三者叠加缺一不可(见评测消融)。
- 执行器模型:替换 Bullet 默认的基于约束的 PD 位置控制(用当前步末的角度/速度满足约束方程,导致大增益下真机振荡)为理想直流电机动力学:τ=Kt·I,I=(Vpwm−Vemf)/R,Vemf=Kt·q̇;并用分段线性函数刻画力矩-电流饱和的非线性关系(理想线性关系导致仿真中电机”沉腿”或抬不起腿的现象);PWM 由当前步 PD 伺服给出 Vpwm=V(kp(q̄−qₙ)+kd(q̇̄−q̇ₙ)),参照 Ghost Robotics 微控制器实现将目标速度 q̇̄ 固定为 0。
- 延迟建模:维护观测历史 {(tᵢ, Oᵢ)},对当前控制步所需的滞后观测在历史中线性插值得到;实测微控制器 PD 伺服延迟约 3 ms,Nvidia Jetson TX2 上运行的运动控制器延迟约 15–19 ms,二者分别建模。
- 无模仿学习 / 无蒸馏:纯在线 PPO 直接输出连续动作,不涉及动作离散化或分词。
- 超参搜索与部署协议:每个实验组训练 100 个使用不同超参数/随机种子的控制器;按仿真回报选前 3 个部署真机,每个各跑 3 次。
- 零样本部署:策略完全在仿真中训练完成后直接部署,“控制器无需在物理系统上做任何额外微调即可直接工作”。
Infra(训练 / 推理工程)
- 训练侧:PyBullet 仿真,每次策略迭代并行 25 条 rollout;训练用的 GPU/CPU 数量、集群规模、机器学习框架并行策略均未披露(仅提及用 TensorFlow Agents 类似基础设施做批量化 RL,引用 Hafner et al. 2017,但本文正文未给出具体算力配置)。
- 训练时长(墙钟):trotting 4.35 小时、galloping 3.25 小时(均训练至 700 万仿真步);对应硬件规格未披露。
- 推理侧硬件:机载 Nvidia Jetson TX2 执行训练好的神经网络策略推理;STM32 ARM 微控制器负责底层 PD/执行器控制与传感器读取,通过 UART 与 TX2 通信。
- 控制频率:由于 TX2 不运行实时操作系统,策略控制回路频率在约 150–200 Hz 间变化(非恒定);微控制器级 PD 伺服延迟 ~3 ms,TX2 级策略推理延迟 ~15–19 ms(用于仿真延迟建模的实测值,见上)。
- 其余训练超参(batch size、学习率、PPO clip 系数等):未披露,正文只给出网络层宽度的超参搜索结果(见”模型架构”)。
评测 benchmark
论文未使用任何外部基准套件或第三方基线模型,评测完全基于自建的真机 Minitaur 实验与内部消融,另与 Ghost Robotics 工程师手调的步态做真机对比。
真机学习步态 vs 手调步态(Table III,真实机器人):
| 步态 | 速度 (m/s) | 平均机械功率 (W) |
|---|---|---|
| Trotting(手调) | 0.56 | 92.72 |
| Trotting(学习) | 0.60 | 71.78 |
| Galloping(手调) | 1.21 | 290.00 |
| Galloping(学习) | 1.18 | 188.79 |
学出的步态在同等或更快速度下分别省电约 23%(trotting)与 35%(galloping)(论文原文表述)。
仿真 vs 真机速度:galloping 仿真 1.34 m/s(2.48 体长/秒)、真机 1.18 m/s(2.18 体长/秒);trotting 仿真 0.50 m/s(0.93 体长/秒)、真机 0.60 m/s(1.11 体长/秒,真机略快于仿真)。
消融 1——仿真改进的必要性(Fig. 6):三组对照——(a) baseline 仿真(无执行器模型、无延迟建模)、(b) baseline 仿真+随机扰动、(c) 本文方法(改进仿真+随机扰动)。仅 (c) 组在仿真与真机上的期望回报表现相当;(a)(b) 两组均出现明显现实差距(真机回报远低于仿真回报)。执行器模型与延迟建模缺一,学到的控制器在真机上都无法工作。
消融 2——转动惯量鲁棒性(Fig. 7):在 40%–160% 名义转动惯量的测试环境范围内,用随机化训练的控制器表现基本持平;未用随机化训练的控制器在名义值处峰值更高,但偏离名义值后性能大幅下滑。
消融 3——鲁棒性 vs 最优性权衡(Fig. 8):跨全部随机化测试环境聚合统计显示,随机化训练的控制器均值更低(趋于保守)但标准差也更低(更鲁棒),在小/大观测空间下结论一致。
消融 4——观测空间 × 随机化(Fig. 9):大观测空间(12 维,含电机角)在仿真中回报更高,但真机迁移更差;小观测空间(4 维,仅 IMU)配合随机化取得最佳真机效果——3 个入选控制器各跑 3 次、共 9 次真机试验全部能行走超过 3 米并在完整 1000 步(约 6 秒)回合内保持平衡。
执行器模型验证(Fig. 4):给定正弦期望轨迹驱动单个电机,新执行器模型下的仿真电机轨迹与真机实测轨迹吻合(定性对比图,正文未给出具体数值误差)。
创新点与影响
- 贡献:(1) 首次把系统辨识、基于直流电机物理的分段线性执行器模型、控制回路延迟仿真三者整合进同一仿真管线,定位并消除了四足 sim-to-real 现实差距的两个主要成因(执行器失真、延迟缺失);(2) 证明动力学随机化 + 随机推力扰动 + 精简本体观测空间可让 PPO 训练的策略鲁棒到足以零样本迁移,且给出定量消融(Fig. 6–9)逐一验证各组件的必要性;(3) 提出 a(t,o)=ā(t)+π(o) 混合策略公式,让用户在”完全脚本化”与”完全从零学习”之间连续调节控制权,用简单开环正弦信号即可引导出特定步态风格(如 trotting)而无需复杂奖励塑形;(4) 证明学出的步态在速度不降的前提下比专家手调步态省电 23%–35%。
- 改变了什么:与同期视觉侧的域随机化工作共同确立了”仿真中训练、真机零样本部署”作为四足/腿式机器人 sim-to-real 的标准范式;本文的执行器建模+延迟建模+动力学随机化三件套被后续同一脉络的研究直接继承和扩展,如 learning-quadrupedal-locomotion-challenging-terrain(把该范式扩展到复杂地形盲走)、rma-rapid-motor-adaptation(引入在线快速运动适应替代离线随机化)、learning-to-walk-in-minutes-massively-parallel-rl(用大规模 GPU 并行仿真将训练时间从本文的数小时压缩到数分钟)。
- 作者自陈局限 / 未来方向:本文聚焦于平地上单一”最大化前进速度”的简单奖励与简单环境;机器人尚不能感知环境、动态调整速度或灵活转向。论文明确提出两个未来方向:(a) 学习可动态改变速度和方向的运动策略;(b) 将视觉纳入感知输入以应对复杂地形结构。
原始链接
- arXiv 摘要:https://arxiv.org/abs/1804.10332
- arXiv PDF:https://arxiv.org/pdf/1804.10332
- 配套视频(arXiv 评论字段声明):https://www.youtube.com/watch?v=lUZUr7jxoqM
- 开源仿真环境(Bullet3 / PyBullet Minitaur envs):https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym/pybullet_envs/minitaur/envs
一手源存档(sources/)
- sim-to-real-agile-locomotion-quadruped—github-readme — PyBullet Minitaur 环境 README 快照(sources/embodied/2018/sim-to-real-agile-locomotion-quadruped—github-readme.md),确认发表会议为 RSS、环境文件名(minitaur_reactive_env.py / minitaur_trotting_env.py)与作者名单
- arXiv 原文 PDF(1804.10332v2,不入 git):正文六维数字均取自该 PDF,引用 arXiv URL