RMA: Rapid Motor Adaptation for Legged Robots 文献解读
论文标题 : RMA: Rapid Motor Adaptation for Legged Robots
作者 : Ashish Kumar (UC Berkeley), Zipeng Fu (CMU), Deepak Pathak (CMU), Jitendra Malik (UC Berkeley, Facebook)
发表会议 : RSS 2021 (Robotics: Science and Systems)
项目主页 : https://ashish-kmr.github.io/rma-legged-robots/
代码: https://github.com/antonilo/rl_locomotion
文章摘要 :本文对 RSS 2021 发表的 RMA(Rapid Motor Adaptation)算法进行系统解读。RMA 提出了一种基础策略 + 自适应模块 的两阶段解耦架构,使四足机器人能够在不到 1 秒内实时在线适应未知环境。该方法完全在仿真中训练,无需任何域知识或真实世界数据,即可零微调部署到 Unitree A1 机器人上。在沙地、泥地、草地、楼梯、可变形表面等多样化真实地形上,RMA 均达到 state-of-the-art 性能,成功率最高达 100%。文章详细分析了其两阶段训练流程、异步部署架构、生物能量学启发的奖励函数设计,以及丰富的室内外实验结果,并讨论了局限性与未来方向。
一、研究背景与核心问题
1.1 研究背景
足式机器人(Legged Robots)在过去四十年中通过物理动力学建模与控制理论工具取得了长足进步。然而,传统基于模型的控制方法(如MPC、简化动力学模型等)存在以下局限:
- 依赖精确建模:需要准确的真实世界动力学模型;
- 人工设计负担重:需要深入的机器人先验知识和手动调节步态;
- 任务特定特征工程:针对不同地形和任务需要重新设计控制器。
近年来,深度强化学习(Deep RL)为足式机器人运动控制提供了替代方案,有望降低对人类专业知识的依赖。标准范式是在物理仿真环境中训练RL控制器,然后通过sim-to-real技术迁移到真实世界。
1.2 关键科学问题与技术挑战
核心问题 :如何实现足式机器人在真实世界中的实时在线自适应(Real-time Online Adaptation)?
具体挑战包括:
-
Sim-to-Real 差距(Reality Gap):
- 物理机器人与其仿真模型存在显著差异;
- 真实世界地形与仿真模型差异巨大;
- 物理仿真器难以准确捕捉真实世界的接触力、可变形表面等复杂物理现象。
-
实时自适应的时间约束:
- 人类行走时能在不同土壤、上下坡、负重、肌肉疲劳等情况下快速自适应;
- 机器人也必须在不到1秒的时间尺度内完成自适应;
- 没有足够时间在物理世界中进行多次实验、 rollout和参数优化。
-
避免真实世界数据采集:
- 若将机器人置于陌生环境(如岩石表面)收集数据以自适应,策略可能频繁失败,导致机器人损坏;
- 收集3-5分钟的行走数据以自适应策略在实际中不可行。
-
无需领域知识:
- 现有方法依赖预定义轨迹生成器、参考轨迹或电机模型等人工设计的领域知识;
- 目标是在完全不使用这些先验知识的情况下实现鲁棒运动。
二、研究方法与技术路线
2.1 总体框架
RMA(Rapid Motor Adaptation)算法由两个核心子系统组成:
- 基础策略(Base Policy)π:负责生成机器人关节目标位置;
- 自适应模块(Adaptation Module)φ:负责在线估计环境外在参数(Extrinsics)。
两个模块协同工作,使机器人能够在极短时间内适应新环境。
2.2 两阶段训练流程
阶段一:基础策略与环境因子编码器训练
输入:
- 当前状态 xt∈R30x_t \in \mathbb{R}^{30}xt∈R30(关节位置12维 + 关节速度12维 + 躯干roll/pitch 2维 + 足部接触指示4维)
- 前一时刻动作 at−1∈R12a_{t-1} \in \mathbb{R}^{12}at−1∈R12(目标关节角度)
- 环境外在向量 zt∈R8z_t \in \mathbb{R}^8zt∈R8(由环境因子编码器生成)
环境因子编码器(Environment Factor Encoder)μ:
- 将特权环境配置向量 et∈R17e_t \in \mathbb{R}^{17}et∈R17 编码为低维外在向量 ztz_tzt:
zt=μ(et)z_t = \mu(e_t)zt=μ(et) - ete_tet 包含:质量及位置(3维)、电机强度(12维)、摩擦系数(1维)、局部地形高度(1维)
基础策略输出:
- 预测下一时刻目标关节角度 ata_tat:
at=π(xt,at−1,zt)a_t = \pi(x_t, a_{t-1}, z_t)at=π(xt,at−1,zt) - 通过PD控制器转换为力矩:τ=Kp(q^−q)+Kd(q˙^−q˙)\tau = K_p(\hat{q} - q) + K_d(\hat{\dot{q}} - \dot{q})τ=Kp(q^−q)+Kd(q˙^−q˙)
训练方法:
- 使用 PPO(Proximal Policy Optimization) 进行端到端的无模型强化学习训练;
- 训练15,000次迭代,batch size 80,000,学习率 5×10−45 \times 10^{-4}5×10−4;
- 约24小时模拟12亿步。
阶段二:自适应模块训练
核心思想:
- 真实世界中无法获取特权环境信息 ete_tet,因此需要通过历史状态-动作序列在线估计 ztz_tzt;
- 类比卡尔曼滤波器:从可观测历史推断隐含的环境参数。
自适应模块输入:
- 最近 k=50k=50k=50 步(对应0.5秒)的状态-动作历史:
z^t=ϕ(xt−k:t−1,at−k:t−1)\hat{z}t = \phi(x{t-k:t-1}, a_{t-k:t-1})z^t=ϕ(xt−k:t−1,at−k:t−1)
训练方法:
- 使用监督学习 (MSE损失)最小化预测误差:
MSE(z^t,zt)=∥z^t−zt∥2\text{MSE}(\hat{z}_t, z_t) = \|\hat{z}_t - z_t\|^2MSE(z^t,zt)=∥z^t−zt∥2 - 其中目标值 zt=μ(et)z_t = \mu(e_t)zt=μ(et) 来自阶段一训练好的编码器。
On-Policy 数据收集策略(关键设计):
- 若仅使用完美轨迹训练,自适应模块对偏离专家轨迹的情况不鲁棒;
- 采用迭代on-policy训练 :用当前自适应模块预测 z^t\hat{z}_tz^t 展开策略,收集状态-动作历史,与真实 ztz_tzt 配对训练;
- 迭代重复直至收敛,确保自适应模块见过足够的探索轨迹。
网络架构:
- 2层MLP将状态和动作嵌入32维表示;
- 3层1D CNN沿时间维度卷积捕捉时序相关性:
- 层配置:[32,32,8,4], [32,32,5,1], [32,32,5,1](输入通道, 输出通道, 核大小, 步长)
- 展平后线性投影到8维外在向量估计。
2.3 异步部署架构
关键设计决策 :基础策略与自适应模块异步运行
| 模块 | 运行频率 | 功能 |
|---|---|---|
| 基础策略 π | 100 Hz | 根据当前状态、前一动作和最新 z^t\hat{z}_tz^t 生成目标关节角度 |
| 自适应模块 φ | 10 Hz | 根据最近0.5秒历史更新外在向量估计 z^t\hat{z}_tz^t |
设计优势:
- 自适应模块处理50步历史较慢,但基础策略可高频运行;
- 无需中央时钟同步,两个子系统独立运行;
- 基础策略始终使用自适应模块最新预测的最新的 z^t\hat{z}_tz^t;
- 对低成本机器人(如Unitree A1)的有限机载计算资源友好。
替代方案对比:
- 若直接训练一个接收历史状态-动作序列的策略,会导致:
- 仿真中步态不自然、性能差;
- 在机载计算上只能以10Hz运行;
- 缺乏异步设计,部署困难。
2.4 奖励函数设计(生物能量学启发)
RMA采用生物能量学启发的自然约束替代人工仿真噪声:
| 奖励项 | 公式 | 权重 | 物理意义 |
|---|---|---|---|
| 前进速度 | min(vxt,0.35)\min(v_x^t, 0.35)min(vxt,0.35) | 20 | 鼓励以最大0.35m/s前进 |
| 横向移动与旋转 | −(vyt)2−(ωyawt)2-(v_y^t)^2 - (\omega_{yaw}^t)^2−(vyt)2−(ωyawt)2 | 21 | 抑制横向漂移和偏航旋转 |
| 做功 | −∣τT⋅(qt−qt−1)∣-|\tau^T \cdot (q_t - q_{t-1})|−∣τT⋅(qt−qt−1)∣ | 0.002 | 最小化关节做功(能量效率) |
| 地面冲击 | −∣ft−ft−1∣2-|f_t - f_{t-1}|^2−∣ft−ft−1∣2 | 0.02 | 减小地面冲击力 |
| 平滑性 | −∣τt−τt−1∣2-|\tau_t - \tau_{t-1}|^2−∣τt−τt−1∣2 | 0.001 | 力矩变化平滑 |
| 动作幅度 | −∣at∣2-|a_t|^2−∣at∣2 | 0.07 | 抑制过大动作 |
| 关节速度 | −∣q˙t∣2-|\dot{q}_t|^2−∣q˙t∣2 | 0.002 | 抑制过高关节速度 |
| 姿态 | −∣θroll,pitcht∣2-|\theta_{roll, pitch}^t|^2−∣θroll,pitcht∣2 | 1.5 | 保持躯干水平 |
| Z轴加速度 | −(vzt)2-(v_z^t)^2−(vzt)2 | 2.0 | 抑制垂直跳动 |
| 足部滑动 | −∣diag(gt)⋅vft∣2-|\text{diag}(g_t) \cdot v_f^t|^2−∣diag(gt)⋅vft∣2 | 0.8 | 减少支撑足滑动 |
训练课程(Curriculum):
- 初始使用很小的惩罚系数,随训练逐渐增加;
- 线性增加质量、摩擦、电机强度等扰动难度;
- 地形难度从固定分布随机采样,无额外课程。
2.5 环境随机化与地形生成
环境参数范围(训练 vs 测试):
| 参数 | 训练范围 | 测试范围 |
|---|---|---|
| 摩擦系数 | [0.05, 4.5] | [0.04, 6.0] |
| PD控制器 KpK_pKp | [50, 60] | [45, 65] |
| PD控制器 KdK_dKd | [0.4, 0.8] | [0.3, 0.9] |
| 负载 (Kg) | [0, 6] | [0, 7] |
| 质心偏移 (cm) | [-0.15, 0.15] | [-0.18, 0.18] |
| 电机强度 | [0.90, 1.10] | [0.88, 1.22] |
| 重采样概率 | 0.004 | 0.01 |
地形生成:
- 使用RaiSim内置的分形地形生成器;
- 参数:fractal octaves=2, lacunarity=2.0, gain=0.25, z-scale=0.27;
- 地形高度取四足下方最大值并离散化到小数点后1位。
三、实验设计与结果分析
3.1 实验平台
- 硬件:Unitree A1四足机器人(12自由度,重约12kg)
- 传感器:电机编码器(关节位置/速度)、IMU(roll/pitch)、足部接触传感器
- 仿真器:RaiSim
- 控制方式 :位置控制 + PD控制器(Kp=55,Kd=0.8K_p=55, K_d=0.8Kp=55,Kd=0.8)
3.2 基线方法
- A1 Controller:厂商默认的基于MPC的力控方案;
- Robust(域随机化) :不使用 ztz_tzt 训练鲁棒策略;
- Expert :仿真中使用真实 ztz_tzt 的上界性能;
- RMA w/o Adaptation:消融实验,无自适应模块;
- System Identification [55] :直接预测系统参数 ete_tet;
- AWR [40] :使用真实世界rollout离线优化 z^t\hat{z}_tz^t。
3.3 室内实验结果
| 任务 | RMA | RMA w/o Adapt | A1 Controller |
|---|---|---|---|
| 不平整泡沫 (180cm) | 100% | 0% | 20% |
| 记忆棉床垫 (60cm) | 100% | 0% | 0% |
| 6度斜坡 | 100% | 36% | 36% |
| 15cm台阶下降 | 80% | 0% | 0% |
| 6cm台阶上升 | 100% | 0% | 0% |
| 8cm台阶上升 | 80% | 0% | 0% |
| 油性表面 | 90% | - | - |
| 负载5Kg | 100% | 100% | 100% |
| 负载8Kg | 100% | 60% | 100% |
| 负载12Kg | 100% | 0% | 40% |
关键发现:
- RMA在所有任务上均优于基线;
- 无自适应模块时性能急剧下降,证明自适应模块的关键作用;
- A1控制器在不规则/可变形表面上表现差(不稳定 foothold 导致失稳);
- RMA可承载100%体重(12Kg)负载,A1控制器在8Kg后开始下坠。
3.4 室外实验结果
| 地形 | 成功率 | 说明 |
|---|---|---|
| 沙地 | 100% | 无失败,处理下陷和粘附 |
| 泥地 | 100% | 无失败 |
| 土堆 | 100% | 无失败 |
| 高草/灌木丛 | 100% | 处理足部缠绕和阻碍 |
| 徒步楼梯(下行) | 70% | 训练中从未见过楼梯 |
| 水泥堆 | 80% | 斜坡侧向倾斜 |
| 鹅卵石堆 | 80% | 斜坡侧向倾斜 |
3.5 仿真对比结果
| 方法 | 成功率(%) | TTF | 奖励 | 距离(m) | 样本数 | 力矩 | 平滑性 | 地面冲击 |
|---|---|---|---|---|---|---|---|---|
| Robust | 62.4 | 0.80 | 4.62 | 1.13 | 0 | 527.59 | 122.50 | 4.20 |
| SysID | 56.5 | 0.74 | 4.82 | 1.17 | 0 | 565.85 | 149.75 | 4.03 |
| AWR | 41.7 | 0.65 | 4.17 | 0.95 | 40k | 599.71 | 162.60 | 4.02 |
| RMA w/o Adapt | 52.1 | 0.75 | 4.72 | 1.15 | 0 | 524.18 | 106.25 | 4.55 |
| RMA | 73.5 | 0.85 | 5.22 | 1.34 | 0 | 500.00 | 92.85 | 4.27 |
| Expert | 76.2 | 0.86 | 5.23 | 1.35 | 0 | 485.07 | 85.56 | 3.90 |
分析:
- RMA接近Expert上界,仅轻微性能下降;
- AWR需要40k样本且性能差(环境持续变化导致离线优化失效);
- Robust策略过于保守,牺牲最优性;
- SysID直接预测参数困难且不必要。
3.6 自适应过程分析
油性表面实验(图4分析):
- 机器人在约2秒时进入滑溜区域,滑倒干扰正常运动;
- 外在向量 z^t\hat{z}_tz^t 的第1和第5分量在滑倒时发生显著变化,表明自适应模块检测到滑倒事件;
- 自适应后:力矩幅度略微增加、步态周期恢复、z^t\hat{z}_tz^t 持续捕捉表面滑溜特性;
- RMA在油性表面90%成功率。
四、主要创新点与学术贡献
4.1 核心创新
-
实时在线自适应的两阶段解耦架构
- 首次将策略分解为高频基础策略和低频自适应模块;
- 自适应模块从状态-动作历史推断环境外在参数,无需真实世界数据收集;
- 实现<1秒的快速自适应,相比AWR等方法(需4-8分钟)提升数个数量级。
-
仿真中完全训练、真实世界零微调部署
- 无需参考轨迹、预定义步态生成器或电机模型等域知识;
- 无需仿真校准或真实世界微调;
- 在简单环境(木地板)上直接部署成功,与现有方法形成鲜明对比。
-
生物能量学启发的自然奖励函数
- 通过最小化做功和地面冲击学习真实步态;
- 在不平整地形上训练替代额外奖励(如足 clearance),实现自然约束下的稳定迁移。
-
异步部署设计
- 基础策略100Hz + 自适应模块10Hz的异步架构;
- 无需同步或校准,适配低成本机器人有限计算资源;
- 解耦慢变外在参数与快变机器人状态。
4.2 技术贡献
-
端到端的外在向量估计
- 不直接预测物理参数(如摩擦、质量),而是预测低维非线性投影 ztz_tzt;
- 避免系统辨识中的可辨识性问题(协变参数产生相同观测);
- 无需"正确"的物理参数估计,只需导向正确动作。
-
On-Policy 自适应模块训练
- 迭代使用当前自适应模块预测展开策略,收集on-policy数据;
- 增强对偏离专家轨迹情况的鲁棒性;
- 类似DAgger的迭代训练策略。
-
分形地形生成与广泛域随机化
- 结合分形地形和物理参数随机化创造多样化训练环境;
- 确保训练分布覆盖真实世界场景。
4.3 实验贡献
- 在最广泛的真实世界地形上评估:沙地、泥地、草地、高植被、混凝土、鹅卵石、岩石、楼梯、记忆棉、泡沫、油性表面等;
- 证明在Unitree A1等低成本机器人上的可行性;
- 系统消融实验验证各组件贡献。
五、局限性与未来方向
5.1 局限性
-
纯本体感知(Proprioception)限制:
- 盲机器人无法应对突发跌落或多足同时被岩石阻碍等大扰动;
- 无法提前感知前方地形变化。
-
楼梯成功率70%:
- 训练中从未见过楼梯,纯靠自适应处理;
- 更大跌落或更复杂地形可能失败。
-
固定PD增益:
- 使用固定 Kp=55,Kd=0.8K_p=55, K_d=0.8Kp=55,Kd=0.8,未自适应调整。
5.2 未来方向
-
融合视觉(Exteroception):
- onboard视觉传感器引导长距离快速运动;
- 提前感知地形变化,规划落脚点。
-
更复杂的自适应机制:
- 元学习(Meta-Learning)初始化实现更快自适应;
- 在线优化与神经网络估计结合。
-
扩展到其他机器人平台:
- 双足机器人、人形机器人等;
- 更复杂的操作-运动耦合任务。
六、总结
RMA提出了一种快速电机自适应 算法,通过基础策略+自适应模块 的两阶段解耦架构,实现了足式机器人在不到1秒内 对未知环境的实时在线自适应。该方法完全在仿真中训练,无需任何域知识或真实世界数据,即可在A1机器人上零微调部署,在沙地、泥地、草地、楼梯、可变形表面等多样化真实地形上达到 state-of-the-art 性能。其核心贡献在于:
- 将环境自适应解耦为高频动作生成和低频外在参数估计;
- 通过监督学习从历史观测推断隐含环境参数,避免真实世界危险探索;
- 生物能量学启发的奖励函数实现自然步态学习;
- 异步架构适配资源受限的低成本机器人。
RMA为足式机器人的sim-to-real迁移和真实世界部署提供了重要的技术范式。
七、关键术语表
| 术语 | 英文 | 解释 |
|---|---|---|
| 快速电机自适应 | Rapid Motor Adaptation (RMA) | 本文提出的实时在线自适应算法 |
| 基础策略 | Base Policy | 接收状态和外在向量生成动作的策略网络 |
| 自适应模块 | Adaptation Module | 从历史状态-动作序列估计外在向量的网络 |
| 外在向量 | Extrinsics Vector | 编码环境配置的低维潜在向量 |
| 环境因子编码器 | Environment Factor Encoder | 将特权环境参数编码为外在向量的网络 |
| 域随机化 | Domain Randomization | 在训练中随机化环境参数以增强鲁棒性 |
| Sim-to-Real | Simulation to Reality | 从仿真到真实世界的策略迁移 |
| 本体感知 | Proteroception | 机器人通过内部传感器感知自身状态 |
| PPO | Proximal Policy Optimization | 近端策略优化算法 |
| 1D CNN | 1-Dimensional Convolutional Neural Network | 一维卷积神经网络,用于处理时序数据 |