精读笔记
Problem Setting
论文实际要解决的是:当 quadruped 已经有一个可用的 RL locomotion policy 时,如何在不重训 policy 的情况下,抵抗超出训练分布的负载、外力和地形变化,并尽量保持原有 gait 和速度跟踪。困难不在于“能不能走”,而在于 policy 学到的动作分布和真实接触力之间存在脆弱耦合,一旦扰动改变了接触条件,原来在仿真里成立的动作-平衡关系就失效。以前方法要么依赖 domain randomization 做覆盖,要么用更重的模型控制栈重新编码力分配,但都缺少一个能在 deployment 时快速、低成本修正 dynamics shift 的层。这个问题的关键矛盾是:补偿越强,越可能破坏 policy;补偿越保守,又救不回来失配。
Motivation
作者真正的动机不是要替代 RL,而是意识到“纯 RL locomotion 的脆弱性”大多来自低层力学偏差没有被实时修正。domain randomization 只能扩大训练覆盖,不能保证遇到更大扰动时仍然维持原有平衡;而重新训练或在线 finetune policy 又太慢、太重,而且容易把已有能力弄坏。作者的关键观察是:训练好的 policy 其实已经在动作里编码了与 GRF 有关的结构,只是这个结构在 sim-to-real gap 下被打乱了。于是最缺的不是更多数据,而是一个能把这个隐式力学结构在新环境里迅速拉回来的机制。
Core Idea
论文的核心思想可以概括成一句话:把 RL locomotion policy 看成“生成参考步态和隐式接触力调节”的高层意图层,再在低层用在线自适应补偿器去修掉 policy 与现实之间的动力学偏差。它不是把 RL 和控制拼接起来,而是重新解释 RL 已学到的 action 结构:action 不是纯粹的轨迹命令,而是已经编码了 stance phase 下的力平衡信息。因此,补偿器只需要围绕 action 与参考关节位置的误差做快速线性修正,就有机会恢复原来在仿真中学到的平衡点。这个重写的意义在于:它把 sim-to-real 问题从“重学策略”变成了“在线恢复原平衡点”,这是一个明显更轻、更适合部署的 inductive bias。
Method
方法的必要部分其实只有一个:在线估计一个补偿增益,把未知扰动压回到原始 PD 控制框架里。之所以要引入 [1mq_r[0m,是为了把动作命令和“参考平衡点”拆开,避免补偿器直接干扰 policy 的动作语义;之所以要用 [1m(a-q_r)[0m 作为补偿特征,是因为作者认为它比原始状态更接近接触力的表征;之所以需要 composite adaptive update,是为了同时利用 tracking error 和 prediction error,让补偿增益收敛更快。整体上,方法的核心变化不是增加了一个新网络,而是把补偿写成一个低层、线性的、可在线更新的 torque residual。这个设计的价值在于:它尽量不破坏原 RL policy 的输出分布,却能在 deployment 时快速修正 mismatch。
Key Insight / Why It Works
这篇工作真正有效的原因,极可能不是“更聪明的控制理论”本身,而是它找到了一个很强的结构先验:RL policy 的 joint tracking error 与接触力之间存在可利用的可线性化关系。也就是说,它利用了 policy 已经学到的隐式 representation,而不是重新从原始观测里估计扰动。这一点非常关键:补偿器不是从零推断环境,而是直接在 policy 的误差空间里做在线 fitting,因此比纯粹的 state-based observer 更贴近闭环行为。换句话说,它的提升更像是 [1mbetter inductive bias + test-time adaptation[0m,而不是算法范式上的巨大突破。真正的核心贡献可能是“把动作误差当成接触力的可迁移表征”这一假设;而具体的 composite adaptive update 更像是把这个假设工程化成一个稳定、可运行的 online module。反过来说,如果这个表征假设不成立,后面的控制律再漂亮也没用。
Relation To Prior Work
它最接近的谱系其实有三条:一条是传统模型控制/自适应控制,把未知扰动当成可参数化 residual 来估;一条是 RL+PD 的 legged locomotion 工作,默认 policy action 经过低层跟踪后产生 locomotion;第三条是 sim-to-real / test-time adaptation 路线,试图在部署时修正 policy 与现实的偏差。RL2AC 的真正不同点在于:它没有把适应性放进 policy 网络里,也没有重新学一个观测到 torque 的黑箱映射,而是明确假设“policy action error 本身就是接触力的可用表征”,然后用经典 adaptive control 去做在线 residual compensation。所以它不是简单的模型控制回归,也不是纯 RL 的再包装,而是把 RL policy 解释成一个有物理语义的低层结构,再用控制理论补齐缺失项。这里的新意更多是“重组已有思想并找到了可在线落地的接口”,而不是提出了完全新的学习范式。
Dataset / Evaluation
评估覆盖的是典型的 locomotion robustness 场景:重载、单腿外扰、侧向扭矩、不同地形,以及真机部署。这个评估的价值在于它不是只看平均走得好不好,而是专门检验“原策略在遭遇未见扰动时是否还能维持原有轨迹/姿态”的 claim,和论文的核心主张是对齐的。真机实验也确实补上了 sim-only 工作常见的缺口。不过,从验证力度看,它更像是在验证“补偿器对已知类型扰动很有效”,而不是验证“对任意未知环境都能稳健泛化”。所以它支持的是 robustness augmentation,而不是 general locomotion intelligence。
Limitation
最大的限制是它强依赖已有 RL policy 已经足够好这一前提。RL2AC 更像是在恢复原策略性能,而不是创造新能力;如果 policy 本身在某任务上就不好,补偿器也救不了。其次,它主要在 stance phase 上起作用,作者自己也指出 swing phase 的 tracking error 很小,所以补偿很弱——这意味着它对某些扰动模式天然盲区。第三,所谓鲁棒提升可能有一部分来自“低层 torque fitting”或“更合适的 gain shaping”,本质上仍是 test-time control tuning,而不是 policy 真的学会了更强泛化。最后,增益来源不清:[1m\hat K_u[0m 是否反映真实物理参数、接触变化还是仅仅是 task-specific compensation,文中没有严格辨析;因此把它解释成“机制发现”要谨慎。
Takeaway
- 最值得记住的不是它又做了一个 robust locomotion system,而是它给了一个很实用的判断:很多 legged RL policy 的脆弱性,可以不通过重训 policy,而是通过在 action/error 空间里做低层 adaptive residual compensation 来修正。
- 这个 insight 可迁移到其他 embodied control 任务:如果 policy 已经学到稳定的隐式结构,部署时优先考虑恢复这个结构,而不是直接端到端再学一遍。
- 另一个可迁移点是:把“动作误差”而不是“原始观测”当成补偿对象,往往更接近闭环控制的有效表征。
一句话总结
RL2AC 不是在做更强的 locomotion RL,而是在把已训练的 RL policy 视为可被自适应控制补足的隐式前馈/反馈系统,用在线 torque residual compensation 把 sim-to-real 与外扰从低层闭环里直接消掉。
