ETH人形靠头戴固态雷达荡猴架,15次里14次全流程成功

Learning Agile Perceptive Traversal of Sparse 3D Structures for Humanoids

Efe Ongan, Chong Zhang, Boyang Sun, Andrei Cramariuc, Cesar Cadena, Marco Hutter

cs.RO

2026-08-30

ETH 给 PM-01 换被动挂钩和头戴固态雷达,注意力策略直接吃原始扫描,三种杠距 15 次成功 14 次,臂荡最快 0.5 米每秒。

这篇在解决什么

腿式机器人过复杂地形,主流是先建中间地图再控。2.5D 高程图便宜,头顶细杆和悬空薄结构会被抹掉;体素网格能保住三维,分辨率一升,内存和算力跟着涨。直接喂深度图或点云的策略已经能处理稠密地面和大体量障碍,厘米级稀疏结构上的精确接触还几乎没人做。

这篇拿猴架臂荡当极限场景:杆细、接触少、全身还得又快又准。更早的臂荡系统要么是两连杆、三连杆专用样机,要么假定杆的位置已知。LadderMan 用深度视觉做了人形爬梯,但没有把跳上、臂荡、跳下接到机载感知上。苏黎世联邦理工 Robotic Systems Lab 在通用人形 EngineAI PM-01 上把这条链路跑通了。

方法

手上的手被一块水刀切割的不锈钢被动挂钩换掉。开口能容 60 mm 圆,训练里杆半径只有 1 到 3 cm,摆荡平面上的落点误差有余量。脱杆只转手腕偏航,把挂钩转出杆平面,不必把身体抬起来,力矩更小,也更不容易顶到热极限。对称外形还能反向走。

头上是 RoboSense E1R 固态激光雷达,原生扫描 192×144,视场 120°×90°,带着 IMU。固态是电子扫描,全身猛加速时比机械旋转雷达少一层运动畸变。策略吃降采样网格:臂荡 36×35×4,低头钻障 36×48×4,10 Hz,每个格子是相对传感器的命中位置加距离。臂荡只裁上半视场,钻障留全视场。

训练分两层。先在 IsaacLab 里用 PPO 训三个有特权的 MLP 老师:跳上、臂荡、跳下。老师能看见杆端点真值,还有接触、基座速度、电池和热状态。臂荡老师跟平面目标走;跳上跳下用接触奖励,不灌人体动作先验。地形是程序生成的梯子,几何随机,旁边再撒杂物。跳上跳下用升高课程,臂荡用加间距、减杆宽课程。

学生只看机载量,按任务阶段切换当前老师,分三步蒸馏。第一步是纯 DAgger 行为克隆。第二步给 critic 热身,回归未裁剪 GAE,actor 继续克隆。第三步上正则 PPO,代理目标加上逐渐衰减的克隆锚,让学生按自己的感知缺陷改动作。不同阶段奖励量级差很大,优势按阶段标准化,value 损失按回报方差加权。

感知骨干把 AME-2 的注意力编码器从高程图改接到点云上,点云保持雷达原生二维网格,不当无序集合。特征跟本体感觉、命令一起进 GRU,隐状态再由 MLP 解成 23 维关节位置目标,50 Hz。本体感觉带 4 帧历史。蒸馏时再加一个辅助头,从 GRU 隐状态预测最近一根杆的相对位置和朝向。

同一套 AME-2 加 GRU 另训一个低头钻障策略。老师用带向上射线的高程图,学生仍然只吃原始 E1R。

仿真到真机卡在三件事:电池电压跌落、执行器热、雷达噪声。跳上时机械关节功率峰值 2.11 kW,端电压最低掉到 34.7 V;18 个低力矩关节(含 10 个臂关节)在电压跌落时顶到限位的 93%。不加电压模型,跳上会把机器人拉到掉电;加了电压惩罚之后,实机试验里没有一次掉电。热模型是低力矩关节上的漏积分器,持续负载比超过 0.2 就会饱和。雷达主噪声是 0.625° 光束锥在深度跳变处的边缘渗色:训练用 IsaacLab 里 Warp 写的轻量射线,距离高斯噪声 σ=2 cm;验证换 MuJoCo,每像素锥内打 16 条射线。

结果

编码器消融看蒸馏第一阶段的行为克隆损失,表中数字均乘了 10²,越小越好。注意力网格编码器 1.38 万参数,比 CNN 的 10.67 万少一个数量级,比 MLP 的 131 万少两个数量级,三个阶段都最低;加上杆中心线辅助损失再降一截。盲学生最差,光靠本体感觉过不去。

编码器参数量总损失跳上臂荡跳下中心线
AME-2 + 辅助13.8k2.352.481.953.200.71
AME-213.8k2.432.562.003.261.62
CNN106.7k2.622.732.163.571.79
MLP1.31M2.762.922.283.621.85
2.903.182.303.512.07

实机在三种梯子上跑完整跳上、臂荡、跳下。操作员只在里程计坐标系里给一个平面目标,位姿用 SE(3) 激光惯性里程计。15 次里成功 14 次,全流程成功率 93%,臂荡最快 0.5 米每秒。唯一失败发生在跳上成功之后,挂钩没有荡到下一根杆。

配置高度 (m)间距 (m)跳上臂荡跳下全流程次数
Ladder A1.690.26100%100%100%100%9
Ladder B1.720.31100%100%100%100%2
Ladder C1.750.33100%75%100%75%4

MuJoCo 仿真到仿真把间距固定在 0.35 m,高度从 1.65 m 扫到 1.90 m,每档 10 次。全流程成功率在 70% 到 90% 之间,掉点几乎都在跳上;臂荡和跳下各档都是 100%。高度越高,第一根杆越接近弹跳极限,跳上从 90% 掉到 70%。

低头钻障在仿真里对直径 1 到 5 cm、净空 1.1 到 1.5 m 的圆柱杆,只要机器人物理上钻得过,成功率 100%。实机用训练时没见过朝向的 2 cm×2 cm 木条,10 次全部无接触通过,示例净空 1.2 m。

为什么重要

做人形控制的人能拿走三件事。厘米级稀疏结构不必先建成体素地图,头戴固态雷达加注意力选点、GRU 攒时间,撑得住跳上这种爆发动作。仿真到真机的关键是把掉电和热写进模型和奖励:没电压模型会直接掉电。挂钩是工程选择,不是通用抓取;同一套感知骨干能另训低头钻 2 cm 截面的悬空障碍,编码器对细杆这类几何是通的。

这是一篇系统论文。钩子换掉了手,目标位置还是人给的,几何分布也窄。该跟进的是原始雷达加接触控制这条路。

局限与存疑

论文自己写了:任务策略是分开训的一小撮,几何多样性还没铺开;部分可观测、要靠长程空间记忆的结构是下一步。

实机 15 次里 Ladder B 只有 2 次,Ladder C 的 4 次里臂荡掉了 1 次,93% 的分母不大。失败模式是钩子没荡到下一根,接触容差靠 60 mm 开口,不是靠手去抓。训练杆半径 1 到 3 cm、间距 0.25 到 0.5 m,换更乱的脚手架还没有数。训练时雷达距离门卡在 0.3 到 1.5 m,更远的杆这篇没测。

「据我们所知的首次」只覆盖「通用人形、机载感知、跳上臂荡跳下」这个组合。专用臂荡机器人和已知杆位置的系统不在这句话里。

术语

原文与代码

社区讨论

相关论文

全部论文解读