DreamWaQ:让四足机器人「闭着眼」走楼梯——靠想象地形
🎯 为什么重要:外部传感器不可靠,本体感觉被低估
四足机器人走复杂地形的常规解法是「装相机 / 激光雷达 → 地形感知 → 规划脚步」。但外部传感器有致命弱点:
💡 核心思想:Asymmetric Actor-Critic = 「学生踩眼罩,老师开天眼」
这是论文的核心 insight。先理解 asymmetric actor-critic 这件事的本质:
关键 trick:critic 看得到地形,actor 看不到。为了在训练时让 actor 的价值估计能追上 critic,actor 必须从 5 帧历史本体感觉里(脚的冲击、姿态变化、速度波动)推断出地形属性(摩擦 / 高度 / 障碍)。这就形成了「implicit terrain imagination」——隐式地形想象。论文发现 $H=5$ 帧就够。
🛠️ 怎么做到的:CENet + AdaBoot 两个关键设计
| 组件 | 心智 | 关键数字(来自 PDF) |
|---|---|---|
| ① Asymmetric AC | actor 看 partial obs,critic 看 privileged obs(含 height map) | CENet body vel. head: 128×64×19;actor (policy): 512×256×128×12;critic (value): 512×256×128×1;H=5 帧历史 |
| ② CENet(Context-Aided Estimator) | 共享 encoder,两 head:一个估身体速度 v̂ | VAE 损失 = MSE + β-KL;encoder: 64×128×48 |
| ③ AdaBoot(Adaptive Bootstrapping) | 训练早期 actor 还没学好,CENet 噪声大;用奖励的变异系数(CV)动态调 bootstrap 概率 | p |
| ④ 课程学习 | 地形难度逐步上升(10 级坡度 0°–22°);grid-adaptive 课程改善低速转向 | 1000 iter / 4096 agents 并行 |
| ⑤ Reward 设计 | 12 项(线速度/角速度跟踪、稳定性、功率分布等);特别加 power distribution 防电机过热 | 权重见 Tab.I;动作空间 12-DoF(A1 关节角) |
| ⑥ Domain Randomization | payload / Kp / Kd / 电机强度 / COM 偏移 / 摩擦 / 延迟 | 摩擦 [0.2, 1.25];payload [-1, 2] kg;延迟 [0, 15] ms |
单做「估计身体速度」学不到「地形是什么样」——它只学会「我现在在加速」。VAE 部分(重建下一帧 obs)逼着 encoder 学到前向 + 后向动力学:「我现在的状态,接下来会怎么演化」。要预测准这个,就必须隐式理解我在什么地形上。这是「地形想象」的来源——隐变量 z 编码了「我现在踩的东西」。
Bootstrapping(用 CENet 输出当输入训练 actor)通常能提升 sim-to-real 鲁棒性。但训练早期 CENet 自己还很烂——拿它当输入会污染 actor。AdaBoot 用「多 agent 奖励的变异系数(CV = std/mean)」当信号:CV 大说明 actor 还在乱来(不应该 bootstrap,免得学错),CV 小说明 actor 稳定了(可以 bootstrap 提升 robustness)。
📊 关键结果:在 A1 上长距离真实户外行走
| 维度 | 关键数字 |
|---|---|
| 训练效率 | 1000 iter / 1 小时训练 ≈ 46 天真实世界时间(4096 并行 agents) |
| 鲁棒性(Tab.III) | 最大推动速度 1.121 m/s(DreamWaQ w/ AdaBoot)vs Baseline 0.511,2.2 倍;存活率 95.23% vs 20.51% |
| 命令跟踪(Fig.4) | ATE 显著优于 Baseline / AdaptationNet / EstimatorNet(p < 10-4) |
| CENet 估计精度(Fig.5) | 正常行走差距小;踩楼梯时 EstimatorNet 崩,CENet 仍准(catastrophic failure 防御) |
| 真机长距离(Course A/B) | Course A:430 m 不结构化自然地形(院子,含泥泞 / 雨后);Course B:465 m 山路 10 分钟登顶,22 m 爬升 |
| 适应性 gait | 下楼梯时身体压低 + 前脚远离;上楼梯时显著加大步幅;打滑时立即检测异常触点并调整 |
| vs Oracle(有 height map) | DreamWaQ 几乎追平 oracle——说明「隐式想象」基本等价于显式地形感知 |
🌐 在领域中的位置
DreamWaQ 是 proprioception-only locomotion 流派里把「asymmetric AC」范式做扎实的一篇——它把 teacher-student 的两阶段训练压缩成单阶段(更数据高效),且让 A1 这种小机器人在真实长距离户外场景中可持续行走。关联线索:T01 locomotion 谱系。
❓ 常见误区
它真的「不需要任何外部传感器」吗?
训练时 critic 看得到 height map;部署时只保留 actor,actor 的输入只有 IMU + 关节编码器 + 估计速度 + context 隐变量。部署时确实没有外部传感器。但训练时用到了 sim 里的 height map——所以本质是「在 sim 里学会了想象地形,部署时不需要再感知」。
asymmetric actor-critic 是 DreamWaQ 发明的吗?
不是。Asymmetric AC 来自 Pinto et al. 2018。DreamWaQ 的贡献是把它用在 quadruped locomotion 并配合 CENet / AdaBoot,证明「critic 看 height map,actor 不看」能让 actor 自动学会 implicit terrain imagination。
CENet 和 RMA / AdaptationNet 有什么区别?
RMA / AdaptationNet 用 teacher-student 两阶段:先训 teacher(带 privileged obs),再 BC(behavior cloning)训 student。BC 有上限——student 不会超过 teacher。CENet 是单阶段同步训练(actor + value 由 PPO 优化,CENet 由自己的 hybrid loss = MSE + β-KL 优化,三网同步 1000 iter),student 可以探索到 teacher 未见过的轨迹,所以更鲁棒。
它能上下「高楼梯」吗?
不能。论文坦承局限:adaptation 必须「脚先碰到障碍物」才能触发——也就是说,它不能像有相机的系统那样提前规划脚步。对高层楼梯这种需要预先规划的场景,仍需要加 exteroception。