ANYmal-C:让四足机器人「看路」——视觉靠谱时加速,看不清时退回本体感觉
🎯 为什么重要:四足「野地运动」最后的瓶颈是感知
四足机器人的 sim-to-real 在 2019 年(同作者的 Hwangbo et al.)就被攻破了,但那时只用本体感觉(proprioception)——机器人不知道前面是什么,只能脚先迈出去,踩到障碍再修正。这意味着:
· 纯本体感觉:稳,但慢——遇到台阶、大障碍,得物理试错,常常卡住、滑倒;
· 纯视觉:快——可以提前抬腿规划,但视觉在野外几乎处处失败——雪(高反射)、植被(软的非刚体)、反光地面、灰尘、雾、透明表面、传感遮挡。一个深度异常值就可能让机器人直接摔。
所以 2022 年前的四足控制器,要么干脆不用视觉(慢但稳),要么用启发式规则规避视觉失效(脆)。这篇给出了一个原则性方案:让网络端到端学会「视觉可信度评估」——它不是显式规则,而是从大量「带噪声的视觉 + 真值地形」训练样本里隐式学出来的。
💡 核心思想:Belief State Encoder = 注意力 + 循环 + 双感知
训练用privileged learning(特权学习)两阶段:先在仿真里训一个 teacher,它能看到真值地形高度、摩擦系数等(真实机器人看不到的特权信息),所以能学到「最优行为」;再用模仿学习训一个 student,它只有真机上能拿到的带噪声观察(高度采样 + 本体感觉),目标是复现 teacher 的动作。Student 里那个 belief encoder 就这么被「逼」着学会从噪声观察里推断真值。
🛠️ 让控制器「野地可靠」的几个关键设计
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① Elevation map 作抽象层 | 不直接吃深度图,而是先把点云融合成以机器人为中心的高度图,控制器吃高度采样 | 解耦传感器:LiDAR、主动立体相机都能接,换传感器不用重训;高度图也方便注入噪声 |
| ② 注意力门融合双模态 | GRU 循环核编码本体感觉+外感知特征+隐状态 → 注意力门 α 决定外感知特征有多少进入 belief(而非简单拼接) | 让网络动态决定视觉权重——不可信时门趋近 0 自动降权,不用手写规则 |
| ③ 循环结构 | 编码器是 RNN,有时间记忆 | 1) 信度更新需要时间(脚踩上去后才修正视觉误判);2) 即使传感器被完全遮挡,记忆也能撑一段时间 |
| ④ Teacher-Student 训练 | Teacher 看真值 → Student 蒸馏,只看带噪观察 | 把「在带噪信号下推断真值」这个逆问题变成模仿学习,避免 student 学不出复杂感知推理 |
| ⑤ 大规模噪声注入 | 训练时模拟雪、反光、遮挡、漂移、缺失、传感失效等 | belief encoder 只在见过的失效模式下鲁棒——要覆盖野外,就得在仿真里全打过 |
显式标量看似直观,但它不够细粒度——「可信」是空间和时间相关的:可能左前方可信、右前方不可信;可能现在可信、刚才不可信。Belief state 是一个高维隐变量,网络自由地把「这里此刻能不能信」编码进不同维度。论文 Fig. 5 可视化了 belief:遇到不靠谱地形时它真的在内部「重写」对地形高度的估计。这种隐式融合比任何 hand-coded 规则都更精细。
📊 结果:阿尔卑斯山 1 小时徒步,零摔倒
| 维度 | 数字 |
|---|---|
| Etzel 山徒步 | 2.2 km,海拔上升 120 m,坡度最大 38%;登顶 31 分钟(官方人步 35 分钟),全程 78 分钟(徒步规划器估 76 分钟——「difficult」级) |
| 摔倒次数 | 0(全程所有部署,包括雪、植被、地下、城市) |
| 台阶可翻越高度 | 可靠到 30.5 cm(baseline 20 cm 就开始掉);32 cm 以上自动犹豫——学到这是物理上限 |
| 平地行走速度 | 1.2 m/s(baseline 0.6 m/s,翻倍) |
| 转向角速度 | 3 rad/s vs baseline 0.6 rad/s(5× 差距) |
| 跨障碍速度 | 无明显减速通过 20 cm 障碍,baseline 直接卡住 |
| DARPA SubT 挑战赛 | 4 台 ANYmal 在隧道/城市/洞穴三类环境累计探索 1700m+,零摔倒;Team Cerberus 用此控制器夺得决赛冠军 |
| 传感器无关性 | LiDAR 和主动立体相机都验证过,无重训无微调 |
论文也坦诚了局限:elevation map 仍是 2.5D 表示,无法表达悬空物体(树枝、低天花板会被误认为高障碍);不能区分软硬材质(植被被当成刚体障碍);依赖经典位姿估计模块,没和策略联合训练。后续工作(如直接吃原始点云、学习显式不确定性)顺着这些缺口继续推进。
🌐 在领域中的位置
这是「四足机器人真正能在野外工作」的标志性节点。它和 OpenAI Dactyl(2018,同年 sim-to-real 在灵巧手上的应用)一起把「domain randomization + privileged learning」的配方推广到几乎所有机器人域。后续的 ANYmal Parkour(2023)、Extreme Parkour(2023)把「视觉 + RL」推到更极端;人形机器人(Perceptive Humanoid, H1 loco-manip)也继承了 belief encoder 这条思路。关联:OpenAI Dactyl(同年的 sim-to-real 奠基)。
❓ 常见误区
它是直接吃深度图吗?
不是。控制器吃的是「高度采样」——从 elevation map 里提取的一组地形高度点。Elevation map 是中间层,把 LiDAR 或立体相机的点云融合而成。这种抽象让方法传感器无关,LiDAR / 主动立体相机都可以接,不用重训。
「零摔倒」是不是只在好天气?
不是。论文 Fig. 1 / Fig. 3 明确展示了在雪、植被、地下、雾、反光地面、水流、低光、灰尘等多种感知恶劣条件下的部署,以及这些条件的组合(如雪覆台阶)。DARPA SubT 挑战赛(灰尘、烟雾、水汽、地下)四台 ANYmal 累计 1700m+ 也是零摔倒。零摔倒是在所有这些条件下累计的。
teacher-student 不就是「知识蒸馏」吗?
思路类似,但细节不同:teacher 学的是从特权信息(真值地形)到最优动作;student 学的是从有限观察(噪声高度采样 + 本体感觉)到 teacher 的动作。这个差距逼着 student 的 belief encoder 学会「从噪声反推真值」——这是普通的端到端 RL 学不出来的,因为 reward 只看动作不看推断质量。
为什么不用显式不确定性估计?
论文最后明确讨论了这个未来方向:当前策略隐式使用不确定性(融合进 belief)。显式不确定性输出会让策略在悬崖边、踏脚石等部分可观察场景下「更谨慎」(比如用脚去试探)。作者承认这是当前方法的局限之一。