论文:DreamWaQ: Learning Robust Quadrupedal Locomotion With Implicit Terrain Imagination via Deep Reinforcement Learning
目标:不依赖视觉/LiDAR,仅用本体感知实现四足机器人在复杂非结构化地形上的鲁棒行走,并完成真实户外长距离验证。


0. 核心

DreamWaQ用Asymmetric Actor–Critic把“地形高度图/外力扰动”等特权信息只喂给Critic,让只看本体感知序列的Actor在训练中被迫学会隐式推断地形/扰动;再用一个共享编码器的CENet(速度估计 + β-VAE 下一观测重建)提供(v~t,zt)(\tilde v_t, z_t)(v~t,zt),并用AdaBoot在训练早期抑制估计器噪声对策略学习的破坏。


1. 背景

1.1 外部感知路线(相机/LiDAR)

  • 优点:能“看路”提前规划
  • 问题:受光照/天气影响;LiDAR可分割地面但难估计地形物理属性(雪/草等“看起来能走≠物理可走”)

1.2 仅本体感知路线

  • 优点:鲁棒、轻量
  • 难点:存在representation learning bottleneck
    策略要鲁棒必须理解地形;但要学地形表征又需要策略能探索大量地形与失败状态 → 学习互相掣肘

1.3 论文明确批评的两类训练范式

  • Teacher–Student + BC:学生性能被教师“上界”束缚;顺序训练数据低效;BC阶段学生只看“好动作”难覆盖失败状态
  • 并行训练策略+估计器:bootstrap估计器能提升sim2real,但早期估计器噪声大,可能反过来伤害策略学习(因此提出AdaBoot)

2. DreamWaQ 方法

2.1 POMDP设定

  • 环境:M=(S,O,A,d0,p,r,γ)M=(S,O,A,d_0,p,r,\gamma)M=(S,O,A,d0,p,r,γ),无限时域POMDP
  • 时间序列观测:otH=[ot,ot−1,...,ot−H]To_t^H=[o_t,o_{t-1},...,o_{t-H}]^TotH=[ot,ot1,...,otH]T,文中取 H=5H=5H=5

2.2 三块核心模块

  1. Actor(Policy):输入本体感知当前量 + CENet输出,输出动作
  2. Critic(Value):训练时额外输入特权信息(高度图、外力扰动等)
  3. CENet:输入本体感知历史,输出速度估计v~t\tilde v_tv~t与上下文ztz_tzt,并重建下一步观测o~t+1\tilde o_{t+1}o~t+1

训练时:Policy、Value、CENet在仿真中同步学习(单阶段),PPO更新Policy,CENet用监督/自编码损失更新,AdaBoot调节bootstrap强度。
部署时:只运行Policy + CENet(无特权信息,无外部感知)。


3. 关键定义

3.1 本体观测 oto_tot(Policy可见)

论文定义:

  • ot=[ωt,gt,ct,θt,θ˙t,at−1]To_t=[\omega_t, g_t, c_t, \theta_t, \dot\theta_t, a_{t-1}]^Tot=[ωt,gt,ct,θt,θ˙t,at1]T

含义:

  • ωt\omega_tωt:机体角速度(IMU)
  • gtg_tgt:机体系重力方向(IMU融合量)
  • ctc_tct:速度指令(命令)
  • θt,θ˙t\theta_t,\dot\theta_tθt,θ˙t:关节角/角速度(编码器)
  • at−1a_{t-1}at1:上一时刻动作

3.2 特权完整状态 sts_tst(Critic训练可见,部署不可见)

论文定义:

  • st=[ot,vt,dt,ht]Ts_t=[o_t, v_t, d_t, h_t]^Tst=[ot,vt,dt,ht]T

含义:

  • vtv_tvt:真实机体速度(仿真真值)
  • dtd_tdt:随机施加的机体扰动力
  • hth_tht:地形高度扫描(height map scan)

关键:Actor被要求在不直接看到(dt,ht)(d_t,h_t)(dt,ht)的情况下仍能学会鲁棒行为——这就是“隐式地形想象”。


4. Asymmetric Actor–Critic:隐式地形想象的机制解释

  • Actor输入贫瘠:只看本体感知序列(部分可观)
  • Critic输入富足:训练时看完整状态(含地形高度图、扰动)
  • 在Actor–Critic耦合优化中,优势函数/价值估计会把“地形/扰动导致的回报差异”反馈到Actor更新
  • 结果:Actor为了最大化回报,必须从本体感知序列里挖掘可预测地形/扰动的线索,形成等效的隐式表示(imagination)

5. CENet:共享编码器的“速度+上下文”估计器

5.1 为什么要CENet

  • Policy需要速度与上下文输入:(vt,zt)(v_t, z_t)(vt,zt)
  • 直接用传统估计会漂移;仅显式估计速度不足以解释地形交互
  • 论文发现:地形上下文与状态估计互相促进,联合学习能提高速度估计稳定性

5.2 结构(文字化可复现)

  • 输入:时间序列 otHo_t^HotH
  • 共享 Encoder:编码为两个输出
    • v~t\tilde v_tv~t:速度估计(显式头)
    • ztz_tzt:上下文隐变量(VAE隐空间)
  • 解码器(VAE头):重建下一观测 o~t+1\tilde o_{t+1}o~t+1

5.3 CENet损失

总损失:

  • LCE=Lest+LVAEL_{CE}=L_{est}+L_{VAE}LCE=Lest+LVAE

速度估计损失(MSE):

  • Lest=MSE(v~t,vt)L_{est}=\text{MSE}(\tilde v_t, v_t)Lest=MSE(v~t,vt)

β\betaβ-VAE损失:

  • LVAE=MSE(o~t+1,ot+1)+βDKL(q(zt∣otH) ∥ p(zt))L_{VAE}=\text{MSE}(\tilde o_{t+1}, o_{t+1})+\beta D_{KL}(q(z_t\mid o_t^H)\ \|\ p(z_t))LVAE=MSE(o~t+1,ot+1)+βDKL(q(ztotH)  p(zt))

先验:

  • p(zt)=N(0,I)p(z_t)=\mathcal N(0,I)p(zt)=N(0,I)(论文理由:所有观测已归一化为零均值单位方差)

6. 动作空间与低层控制

  • 动作:at∈R12a_t\in\mathbb R^{12}atR12(12关节的目标角增量)
  • 期望关节角:
    • θdes=θstand+at\theta_{des}=\theta_{stand}+a_tθdes=θstand+at
  • 低层:关节PD跟踪 θdes\theta_{des}θdes

7. 奖励函数(Table I )

总奖励:

  • rt(st,at)=∑iriwir_t(s_t,a_t)=\sum_i r_i w_irt(st,at)=iriwi

主要奖励项(按论文表格语义整理):

  1. 平面线速度跟踪:exp⁡(−4(vxycmd−vxy)2)\exp(-4(v^{cmd}_{xy}-v_{xy})^2)exp(4(vxycmdvxy)2),权重 1.01.01.0
  2. 偏航角速度跟踪:exp⁡(−4(ωyawcmd−ωyaw)2)\exp(-4(\omega^{cmd}_{yaw}-\omega_{yaw})^2)exp(4(ωyawcmdωyaw)2),权重 0.50.50.5
  3. 竖直线速度惩罚:vz2v_z^2vz2,权重 −2.0-2.02.0
  4. 横滚/俯仰角速度惩罚:ωxy2\omega_{xy}^2ωxy2,权重 −0.05-0.050.05
  5. 姿态(重力投影)惩罚:∣g∣2|g|^2g2,权重 −0.2-0.20.2
  6. 关节加速度惩罚:θ¨2\ddot\theta^2θ¨2,权重 −2.5×10−7-2.5\times 10^{-7}2.5×107
  7. 关节功率惩罚:∣τ∣∣θ˙∣|\tau||\dot\theta|τ∣∣θ˙,权重 −2×10−5-2\times 10^{-5}2×105
  8. 机体高度误差:(hdes−h)2(h^{des}-h)^2(hdesh)2,权重 −1.0-1.01.0
  9. 足端净空相关项:(pf,z,kdes−pf,z,k)2⋅vf,xy,k(p^{des}_{f,z,k}-p_{f,z,k})^2\cdot v_{f,xy,k}(pf,z,kdespf,z,k)2vf,xy,k,权重 −0.01-0.010.01
  10. 动作变化率惩罚:(at−at−1)2(a_t-a_{t-1})^2(atat1)2,权重 −0.01-0.010.01
  11. 二阶平滑惩罚:(at−2at−1+at−2)2(a_t-2a_{t-1}+a_{t-2})^2(at2at1+at2)2,权重 −0.01-0.010.01
  12. 功率分布惩罚var(τ⋅θ˙)2\text{var}(\tau\cdot \dot\theta)^2var(τθ˙)2,权重 −10−5-10^{-5}105

论文强调引入功率分布项是为了降低现实中电机过热不均衡风险(只最小化总功率可能导致个别电机长期高负载)。


8. Curriculum & Domain Randomization

8.1 地形课程

  • 地形:smooth / rough / discretized / stairs
  • 坡度等级:10级,范围 [0∘,22∘][0^\circ,22^\circ][0,22]
  • 低速转向:采用grid-adaptive curriculum可减少绊脚、提升稳定转向

8.2 域随机化范围(Table II)

  • Payload:[−1,2][-1,2][1,2] kg
  • KpK_pKp factor:[0.9,1.1][0.9,1.1][0.9,1.1]
  • KdK_dKd factor:[0.9,1.1][0.9,1.1][0.9,1.1]
  • Motor strength factor:[0.9,1.1][0.9,1.1][0.9,1.1]
  • COM shift:[−50,50][-50,50][50,50] mm
  • Friction coefficient:[0.2,1.25][0.2,1.25][0.2,1.25]
  • System delay:[0,15][0,15][0,15] ms

9. AdaBoot:自适应Bootstrapping(核心公式 + 直觉)

定义回报变异系数:

  • CV(R)=std(R)mean(R)\text{CV}(R)=\frac{\text{std}(R)}{\text{mean}(R)}CV(R)=mean(R)std(R)

自适应bootstrap概率:

  • pboot=1−tanh⁡(CV(R))p_{boot}=1-\tanh(\text{CV}(R))pboot=1tanh(CV(R))

直觉:

  • 训练早期:不同环境回报差异大(CV大)→ pbootp_{boot}pboot小,减少依赖估计器,避免噪声伤害策略
  • 训练后期:CV变小 → pbootp_{boot}pboot增大,增强bootstrap,提高对估计误差的鲁棒性与sim2real表现

论文 II-C 中的 bootstrapping 不是指GAE里对V(st+1)V(s_{t+1})V(st+1)的TD bootstrap强度,而是指在训练policy时对其输入进行“真值/估计值替换”的bootstrap

  • 训练时在仿真中可以拿到某些真值特权量(例如基座速度 vtv_tvt 的仿真真值 vtgtv_t^{gt}vtgt
  • 部署时真机上无法拿到真值,只能用估计器网络 CENet从本体感知历史估计得到 v~t\tilde v_tv~t

因此,DreamWaQ提出在训练阶段让policy逐步从真值输入过渡到估计器输入,以减小训练-部署的观测分布差异(sim-to-real observation mismatch):

  • 以概率 pbootp_{boot}pboot 使用估计器输出(更贴近部署)
  • 以概率 1−pboot1-p_{boot}1pboot 使用仿真真值(更干净稳定)

一个最直接的写法是对每个环境/episode采样门控变量:b∼Bernoulli(pboot)b \sim \text{Bernoulli}(p_{boot})bBernoulli(pboot),并构造policy的速度输入为vtin=b⋅v~t+(1−b)⋅vtgtv_t^{in}=b\cdot \tilde v_t + (1-b)\cdot v_t^{gt}vtin=bv~t+(1b)vtgt,然后policy按πϕ(at∣ot, vtin, zt)\pi_\phi(a_t \mid o_t,\ v_t^{in},\ z_t)πϕ(atot, vtin, zt)生成动作(其中 ztz_tzt 同样由 CENet 从 otHo_t^HotH 推断)。


10. 实验对比与主要结论

10.1 对比方法(全为proprioception-only)

  1. Baseline:无适应机制
  2. AdaptationNet:teacher-student隐式环境因子编码(RMA类)
  3. EstimatorNet:并行训练策略+显式状态估计(无上下文)
  4. DreamWaQ w/o AdaBoot
  5. DreamWaQ w/ AdaBoot

10.2 训练配置(Isaac Gym + PPO)

  • 同步训练policy/value/CENet,1000 iterations
  • 并行4096个domain-randomized agents
  • PPO:clip=0.2,GAE=0.95,γ=0.99\gamma=0.99γ=0.99
  • Adam学习率 10−310^{-3}103

10.3 定量结果(最该引用的三条)

  1. 学习曲线:DreamWaQ持续优于对比方法,且接近oracle(oracle可用高度图)
  2. 命令跟踪误差:DreamWaQ显著更低;AdaBoot进一步提升
  3. 抗扰动鲁棒性(Table III):DreamWaQ w/ AdaBoot 最强
    • 最大推扰速度:1.121±0.1641.121\pm0.1641.121±0.164 m/s
    • 30分钟生存率:95.23±1.61%95.23\pm1.61\%95.23±1.61%

11. 真机部署细节(报告/复现实验常用)

  • 机器人:Unitree A1
  • 推理:Policy与CENet同步运行 50 Hz
  • 低层PD:200 Hz,Kp=28, Kd=0.7K_p=28,\ K_d=0.7Kp=28, Kd=0.7
  • 户外两条路线:Course A约430 m(yard含多坡、植被、楼梯、泥地/湿地);Course B约465 m(hill含asphalt、gravel、坡,爬升至山顶)
  • 轨迹测量:RTK GPS 10 Hz(用于记录户外行走轨迹)

12. 贡献(三条)

  1. Asymmetric actor–critic在proprioception-only条件下实现“隐式地形想象”,避免teacher–student BC的上界与低效问题
  2. 提出CENet:共享编码器联合学习速度估计与β\betaβ-VAE下一观测重建,提供更稳健的(v~t,zt)(\tilde v_t,z_t)(v~t,zt)供策略使用
  3. 提出AdaBoot:用回报统计自适应调节bootstrap,显著提升跟踪性能与鲁棒性,并完成Unitree A1真实户外长距离验证

13. 局限(按论文原文口径写)

  • 适应机制需要先“碰到障碍物”(腿部接触后)才能触发有效适应
  • 对更复杂结构(如更高的楼梯)需要引入外部感知实现接触前规划与更强的前瞻能力

14. “流程”

训练(仿真)

  1. 在curriculum terrains + domain randomization中采样rollout
  2. 更新Critic:输入st=[ot,vt,dt,ht]s_t=[o_t,v_t,d_t,h_t]st=[ot,vt,dt,ht]回归V(st)V(s_t)V(st)
  3. 更新CENet:最小化
    • MSE(v~t,vt)\text{MSE}(\tilde v_t,v_t)MSE(v~t,vt)
    • MSE(o~t+1,ot+1)+βDKL(⋅)\text{MSE}(\tilde o_{t+1},o_{t+1})+\beta D_{KL}(\cdot)MSE(o~t+1,ot+1)+βDKL()
  4. 更新Actor(PPO):输入(ot,v~t,zt)(o_t,\tilde v_t,z_t)(ot,v~t,zt)输出ata_tat
  5. AdaBoot:按pboot=1−tanh⁡(CV(R))p_{boot}=1-\tanh(\text{CV}(R))pboot=1tanh(CV(R))调节bootstrap强度

部署(真机)

  1. 采集IMU/编码器得到oto_tototHo_t^HotH
  2. CENet输出(v~t,zt)(\tilde v_t,z_t)(v~t,zt)
  3. Policy输出ata_tat
  4. 设定θdes=θstand+at\theta_{des}=\theta_{stand}+a_tθdes=θstand+at,PD在200Hz跟踪
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐