032|ANYmal:把学习到的敏捷运动带到真机
原论文:Learning Agile and Dynamic Motor Skills for Legged Robots,Jemin Hwangbo 等,2019。论文。
先接住前作的问题
动力学随机化提供一个阅读起点。参数随机化可以覆盖残余物理差异,但若执行器的中心模型连弹性和滞后都错了,训练仍可能围绕错误响应展开。ANYmal先用真实记录学习执行器,再把它嵌入物理仿真;系统辨识与随机化各自修补不同误差。
五个前置概念
五个前置概念:
- 系统辨识:根据输入输出记录建立系统动力学模型。
- 串联弹性执行器:传动路径中的弹性使力矩响应具有额外动态。
- 阻抗控制:通过位置误差等状态产生力,让运动与接触具有可调柔顺性。
- 信赖域策略优化:限制策略更新幅度以改善训练稳定性。
- 闭环稳定性:持续根据观测反馈行动后,系统是否保持可接受的行为。
进阶追问与参考答案(3题)
进阶问题1:执行器误差应按预测均方误差还是接触阶段的重要性加权?
参考答案:两者回答不同问题:均方误差衡量记录分布的整体拟合,接触加权更接近摔倒风险,但权重不能由测试结果反复调到最好。可先用独立数据标注支撑、离地和触地阶段,在等容量与等训练预算下比较均匀损失和预先确定的阶段权重,再报告各阶段力矩误差、峰值误差、能耗与闭环摔倒率。只有闭环指标改善,才支持任务加权更合适。
进阶问题2:关节历史与接触传感器如何互补?
参考答案:历史可间接揭示执行器滞后,接触传感器可更直接区分同一姿态下脚是否受力,但两者都可能有噪声和延迟。做仅历史、仅接触、二者组合的消融,并匹配参数量;另对接触信号加入丢失和延迟,检查组合是否仍改善触地过渡。若部署没有该传感器,就不能把训练时的仿真接触真值直接当成可用输入。
进阶问题3:在线检测模型失配后是否应切换到保守控制?
参考答案:只有在备用控制器的可恢复状态范围、切换延迟和检测误报率都明确时,这才是合理候选。预测残差变大也可能只是测量异常,直接切换可能制造新冲击。可先在仿真与受限测试中用持续超阈值加滞回触发,比较不切换、立即切换和渐变切换的跌倒率、恢复时间及最大力矩;这属于待验证的安全设计,不是原论文已证明的保证。
这些回答给出机制分析与待检验设计,不是已经运行的新实验结果。
一、问题设定:关节指令怎样经过真实执行器变成力矩
腿式机器人的困难不只是算出下一脚踩在哪里。策略发出关节指令后,电机、弹性机构、底层控制器和通信延迟一起决定真正产生的力矩。仿真若把这些过程当成立即响应,机器人可能在电脑里跑得很好,上机却剧烈振荡。
这是仿真训练、真实部署的在线强化学习;执行器建模则是监督学习。策略没有直接在真机上反复摔倒探索,不等于整个方法不使用真实数据。真实力矩记录参与建立训练环境,因此数据成本应该包括这部分。
论文研究的是 ANYmal 的速度命令跟踪、高速运动与跌倒恢复。它们使用同一训练框架,但对应分别训练的策略。不能把“换一个网络便能执行另一种技能”理解成一个网络已能自主切换所有技能。
观察包含机身姿态和速度、关节状态及短历史、上一动作与命令。动作是关节位置目标。移动任务奖励鼓励跟踪速度,同时约束力矩、运动与动作变化;跌倒恢复的目标改为恢复身体姿态。移动训练会因触地或违反关节限制提前终止。不同任务的可观察信息也不同:站立时可估计机身高度,翻倒时这类估计不能直接沿用。
从控制角度看,系统依然有闭环。神经网络每次根据当前身体状态重新产生目标,底层控制器再执行。它不是把一条预先写好的关节轨迹从头播放到尾。
二、把学习的执行器响应嵌入物理仿真
这篇论文把模型分成两部分:容易描述的刚体与接触动力学继续用物理仿真;难以准确手写的执行器响应用真实数据训练神经网络。然后在这个混合仿真器中训练关节位置策略,并加入随机化和逐渐增强的运动代价。它的重要性是让强化学习越过“动画看起来会走”的门槛,进入复杂四足硬件。
1. 两种模型承担不同责任
用 表示刚体状态, 表示策略的位置目标, 表示关节误差和速度历史。下面是帮助理解的统一写法:
是执行器网络,预测施加在关节上的力矩; 处理惯性、重力和接触。这里的划分很有实际意义:没必要让神经网络重新发现每一条刚体力学规律,但也没必要假装所有电机内部过程都能通过几个理想参数描述。
执行器训练可用回归目标理解:
这是教学表达,不是对论文实现中全部数据处理步骤的逐行复刻。 是真实测量值。它约束的是力矩预测误差,并不直接保证任务成功。
为什么要输入历史?同样的当前位置误差,在电机刚开始加速和刚经历反向制动时,实际响应可能不同。短历史提供了内部动态的线索,部分弥补不可直接观测的状态。历史太短会遗漏延迟,太密或太长又会增加计算与拟合难度。
2. 策略优化与执行器拟合不是同一个目标
策略仍然优化折扣回报:
论文采用 TRPO。其作用是控制策略更新幅度,避免一次更新把原来勉强可用的步态彻底破坏。本文真正新增的核心不是再发明一个策略梯度公式,而是使策略面对的动力学更接近硬件,并组织适合学习运动的训练过程。
执行器损失变小可能有利于回报,但两者没有简单的一一对应。假如误差主要发生在闲置关节,它对行走可能影响不大;若误差集中在落脚瞬间,即使总体均方误差不高,也可能导致摔倒。这是本文方法值得进一步研究的方向,而非论文给出的普遍定理。
3. 课程:先学会完成任务,再逐渐约束动作
一个新策略若从开始就受到很强的力矩惩罚,最容易找到的“好办法”可能是不动。于是需要区分任务误差与运动代价:
课程系数 随训练推进增大。早期允许较粗糙地探索运动,后期再推动策略以更经济、平滑的方式完成同样目标。原文使用幂次递推让系数逐渐趋近于一。这个机制改变的是优化路径,最终任务并没有因此变成“只要动起来”。
仿真随机化处理残余误差:质量、几何或观测噪声不能被执行器网络全部吸收。建模与随机化是互补关系;前者减少中心模型偏差,后者让策略对中心附近的变化不太敏感。
注意,最后一行不需要用执行器网络代替真实电机。该网络的主要职责是帮助训练环境呈现硬件响应;部署时真正推动机器人的是物理执行器。
执行器拟合误差应沿动力学传播理解。简化单关节中,惯量 、采样周期 下,力矩误差 造成下一步速度误差约 。若同方向偏差持续,位置误差还会累积;接触瞬间则可能改变脚是否滑动,使线性近似失效。这里的 是关节角,此式只是局部教学模型。
因此验证集平均力矩误差降低,有助于解释迁移,却不是步态稳定性证明。更有诊断力的是按速度、负载与接触阶段分组检查误差,再对照真机摔倒类型。原文把真实执行器模型与刚体接触模型结合,价值就在于把可测误差放到正确系统位置。原文执行器建模与图6
帮助建立理解
自构例子,未运行:假设抬腿指令实际延迟两个控制周期才产生足够力矩。理想仿真中的策略会在预期足已抬起时前移身体,真实脚却还贴地,于是拖拽和失衡。加入有历史的执行器模型后,训练可能学到提前抬腿或减小这段时间的机身推进。这里的关键不是给动作统一加一个固定延迟,而是学习响应还可能依赖速度与最近的误差。
三、先辨识执行器,再在混合仿真中训练运动
拟合与验证还要保持历史窗口的因果性:预测时刻的力矩只能读取当时已有的位置误差与速度,不能把的响应偷偷放入输入。若相邻滑窗随机拆进训练和验证集,同一次激励的高度重叠片段也可能跨集合泄漏。按完整采集段留出,再看跨速度、负载的误差,才更接近执行器模型在新策略下要面对的输入变化。
输入:机器人刚体模型、真实执行器记录、任务命令分布
拟合执行器网络:历史关节误差与速度 → 测量力矩
构建混合仿真器:执行器网络 + 刚体和接触计算
初始化策略、价值估计器与课程系数
重复:
随机抽取机器人参数、初始状态与目标命令
在混合仿真中:
根据当前观察和历史生成关节位置目标
用执行器网络预测力矩,再推进刚体状态
记录奖励、动作、下一观察和终止情况
估计优势,用 TRPO 更新策略
增强运动代价和相应训练难度
直到训练表现收敛
部署:真实传感器 → 策略 → 位置目标 → 真实执行器
四、连接力矩预测消融与真实运动结果
原图怎么读: 图6,原论文图注与图像。把测量力矩、学习模型预测与理想执行器模型三者对齐,再看验证数据和实际步行数据是否都吻合;不能只用训练分布上的拟合解释闭环稳定性。

| 实验 | 数据与对照 | 指标及希望检验的问题 |
|---|---|---|
| 执行器预测 | 真实记录;学习模型对理想执行器 | 力矩误差:训练环境是否更接近硬件 |
| 命令跟踪 | 同一 ANYmal、相同命令;已有运动控制器 | 速度误差与机械功率 |
| 高速策略 | 为高速另外训练 | 实测速度及是否达到硬件限制 |
| 跌倒恢复 | 多种真实初始姿态 | 能否自主恢复站立 |
| 执行器消融 | 理想模型、解析模型、学习模型 | 模型差别能否影响真实闭环稳定性 |
训练预算应分成真实辨识数据和仿真交互两列看。原文 Method 的执行器建模部分说明真实数据采集;策略训练细节则说明仿真时间与计算时间。两者不可相加后统称“真机训练小时”。主文给出的桌面训练与网络推理开销也分别属于训练阶段和执行阶段。
同一硬件和命令是较有说服力的控制变量,但不能据此认定两种控制范式使用了完全相同的研发和调参预算。既有控制器有自己的设计投入,学习系统也有奖励、初始状态和仿真模型的工程投入。
机械功率亦不同于电池续航。电机和驱动器的电损耗、计算平台功耗等,会使两者出现差别。读者若关心真实续航,应要求单独报告输入电能。
结果:把证据和外推分开
以下定位对应原文正文与 Method。
- 图6,执行器模型验证:比较预测与测量力矩,支持学习模型更准确地描述所测响应;不能证明训练数据未覆盖的温度、老化和负载下同样准确。
- 图2,运动控制比较:比较同机速度跟踪及机械代价,支持该实验配置下的运动收益;不代表所有传统控制器都被全面超过。
- 图3,高速运动:真实速度达到 1.5 m/s,原平台先前记录为 1.2 m/s;提升 。这是该平台纪录变化,不是四足机器人全领域速度纪录。
- 图4,恢复示例及对应结果段:展示跌倒后恢复;它是能力证据,不能单凭一段成功运动估计任意姿态分布的成功率。
- 命令跟踪结果中的执行器消融:替换模型后真实运动失败,说明仿真执行器假设具有决定性影响;不能推出解析建模在所有硬件上都不可行。



这些证据有一条很清楚的因果链:先检查局部动力学预测,再检查真实闭环运动,最后比较任务指标。只展示漂亮的步态视频会缺少第一环;只展示低预测误差则会缺少第二环。
原文随机命令段的线速度误差数值与紧随其后的相对提升措辞存在口径疑问。本文不据此重复那个百分比。对读者而言,保留实测量的定义和比较条件比放大宣传性比例更重要。
五、中心模型准确仍需闭环与接触验证
作者讨论的限制包括任务奖励和初始状态仍要人工设计,以及独立建模每个执行器的假设未必适合强耦合系统。多个液压关节若共享供压,某个关节的力矩可能依赖其他关节正在做什么,此时局部输入就不够了。
本文分析:它把大量控制计算提前放到了训练阶段,却没有取消模型依赖。世界变化超出训练分布后,一个前向计算极快的策略仍可能持续给出错误动作。部署速度和适应能力是两个不同维度。
还应区分“训练后多次在若干月中使用”与“连续自主运行若干月”。前者能够提供耐久性线索,后者才对应长期无人工干预的可靠性评估。论文中的硬件使用经历不能自动转换成后一个结论。
六、沿机制关系继续读
与动力学随机化是可组合的平行路线:本篇先缩小执行器中心模型误差,再随机化残余差异;后续RMA进一步研究部署时适应,不能用它的在线适应能力倒推本篇已有相同模块。
七、自测三题与参考答案
问题1:既然策略在仿真里训练,为什么不能说整个系统不需要真实数据?
答:真实执行器记录决定了仿真中的动作如何变成力矩。它没有作为策略试错轨迹直接更新回报,却通过环境模型影响所有策略训练。计算数据成本时必须把系统辨识计入,只是应与真实强化学习交互分开。
问题2:位置目标策略是否一定不如力矩策略,因为中间多了一层控制?
答:不一定。位置误差能够产生交互力,策略可以利用而不是消除这种误差。合适的动作参数化还会改善初始探索和动作平滑性。优劣取决于执行器、反馈频率、模型与任务,不能只数控制层数。
问题3:执行器预测误差更低,是否足以推出机器人更稳定?
答:不够。误差出现的位置、频率及闭环放大效应都很关键。需要把模型放回策略训练和真实执行中,检查回报、摔倒率与扰动响应。本文把预测验证与真实消融连起来,正是比单独报告回归误差更有说服力的地方。