枢纽
机器人Unitree A1
上真机
物理感知
实时
输入模态proprioception

DreamWaQ:让四足机器人「闭着眼」走楼梯——靠想象地形

I Made Aswin Nahrendra, Byeongho Yu, Hyun Myung(KAIST)。ICRA 2023 / arXiv:2301.10602v2。 项目页 · quadruped locomotionlocomotion 线索 T03proprioception-only

🧠 一句话心智模型:人闭着眼走楼梯为什么不会摔?因为脚刚一接触台阶,你的身体就能从冲击和姿态变化里「推断」出台阶长什么样,再调整下一步。DreamWaQ 给四足机器人装了同样的能力——不要相机 / 激光雷达,只靠本体感觉(IMU + 关节编码器)+ 一个能逼 actor「想象地形」的 critic 训练机制(critic 训练时看 height map,actor 看不到,被迫从历史本体感觉里推断),就让 A1 机器人在真实的山地 / 楼梯 / 泥地上长距离行走。

🎯 为什么重要:外部传感器不可靠,本体感觉被低估

四足机器人走复杂地形的常规解法是「装相机 / 激光雷达 → 地形感知 → 规划脚步」。但外部传感器有致命弱点:

核心问题:相机在坏天气 / 强光 / 阴影下失效;激光雷达难分辨「雪看似坚硬实际是软的」「高草看似不可通行其实能过」。而且外部传感器笨重、耗电、易损。反过来,本体感觉(IMU + 关节编码器)轻、稳、几乎免费——但 prior work 只在短距离 / 受控环境验证过。能否只用本体感觉走长距离复杂地形?这是 DreamWaQ 要回答的。

💡 核心思想:Asymmetric Actor-Critic = 「学生踩眼罩,老师开天眼」

这是论文的核心 insight。先理解 asymmetric actor-critic 这件事的本质:

DreamWaQ 的 asymmetric actor-critic 心智 学生 Policy(Actor) 部署时上机器人 输入: ·5 帧历史本体感觉 ot-5:t ·估计的身体速度 v̂t ·隐变量 zt(context) 「蒙着眼」 老师 Value(Critic) 只在训练时存在 输入(privileged): ·本体感觉 ot ·真实身体速度 vt ·外部扰动 dt ·地形高度图 ht 「开天眼看地形」
图 1:Actor-Critic 不对称——actor 部署时看不到地形,但 critic 训练时能看。critic 用「地形可见」时学到的 value 反向传播,逼着 actor 学会从本体感觉里「猜出地形」。

关键 trick:critic 看得到地形,actor 看不到。为了在训练时让 actor 的价值估计能追上 critic,actor 必须从 5 帧历史本体感觉里(脚的冲击、姿态变化、速度波动)推断出地形属性(摩擦 / 高度 / 障碍)。这就形成了「implicit terrain imagination」——隐式地形想象。论文发现 $H=5$ 帧就够。

🛠️ 怎么做到的:CENet + AdaBoot 两个关键设计

组件心智关键数字(来自 PDF)
① Asymmetric ACactor 看 partial obs,critic 看 privileged obs(含 height map)CENet body vel. head: 128×64×19actor (policy): 512×256×128×12critic (value): 512×256×128×1;H=5 帧历史
② CENet(Context-Aided Estimator)共享 encoder,两 head:一个估身体速度 v̂t,一个 VAE 重建下一帧 obs(学到 terrain 隐变量 z)VAE 损失 = MSE + β-KL;encoder: 64×128×48
③ AdaBoot(Adaptive Bootstrapping)训练早期 actor 还没学好,CENet 噪声大;用奖励的变异系数(CV)动态调 bootstrap 概率pboot = 1 − tanh(CV(R));早期不 bootstrap,后期再 bootstrap
④ 课程学习地形难度逐步上升(10 级坡度 0°–22°);grid-adaptive 课程改善低速转向1000 iter / 4096 agents 并行
⑤ Reward 设计12 项(线速度/角速度跟踪、稳定性、功率分布等);特别加 power distribution 防电机过热权重见 Tab.I;动作空间 12-DoF(A1 关节角)
⑥ Domain Randomizationpayload / Kp / Kd / 电机强度 / COM 偏移 / 摩擦 / 延迟摩擦 [0.2, 1.25];payload [-1, 2] kg;延迟 [0, 15] ms
🔮 直觉:为什么 CENet 要 VAE?
单做「估计身体速度」学不到「地形是什么样」——它只学会「我现在在加速」。VAE 部分(重建下一帧 obs)逼着 encoder 学到前向 + 后向动力学:「我现在的状态,接下来会怎么演化」。要预测准这个,就必须隐式理解我在什么地形上。这是「地形想象」的来源——隐变量 z 编码了「我现在踩的东西」。
🔮 直觉:为什么要 AdaBoot?
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 的「implicit terrain imagination」不是一种妥协(没传感器只能这么搞),而是一种优势——它学到的 policy 几乎追平「显式有 height map」的 oracle。这说明本体感觉里其实已经包含了足够的地形信息,只是 prior work 没把它逼出来。Asymmetric AC 就是那个「逼」的机制。

🌐 在领域中的位置

RMA(rapid motor adaptation) AdaptationNet(teacher-student 隐式环境编码) DreamWaQ(asymmetric AC + CENet + AdaBoot)⭐ Walk-These-Ways / 任意地形 locomotion

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。