枢纽
上真机
物理感知
实时
输入模态vision

Locomotion Beyond Feet:让机器人「手脚并用」爬过椅子、翻过墙

Tae Hoon Yang, Haochen Shi, Jiacheng Hu 等(Stanford University)。arXiv:2601.03607v1(2026 年 1 月)。 项目页 · 全开源 · locomotionwhole-bodycontact-rich

🧠 一句话心智模型:双腿走不过去的地方——椅子底下、膝盖高的墙、陡楼梯——人会用手、膝盖、肘撑一下再过。机器人却一直被训练成「只用脚」。这篇论文把人「知道大致怎么动」的知识用关键帧画出来(不依赖动捕、没有 embodiment gap),再让 RL 在物理仿真里把它磨成可部署的策略。9 个技能用 4 个「标准姿势」串成一个状态机,加一个 3.1Hz 的视觉分类器做调度。

🎯 为什么重要:双足的「支撑多边形」实在太小了

论文 §II-A 给了一个干净的几何论证——「支撑多边形」(脚与地面接触面构成的凸包):

核心痛点:双腿走路的支撑多边形小到换脚瞬间只剩一个接触点。重心一旦出去就摔。所以现有双足 locomotion 遇到复杂地形只能「突然小步调整」或干脆放弃。而人/猴在难地形里会本能地增加接触点——手扶、膝跪、肘撑——把支撑多边形瞬间放大 3-5 倍,重心可以大幅度移动。
双腿-only:小支撑面 换脚瞬间:只剩 1 接触点 手脚并用:大支撑面 3+ 接触点:重心可大幅移动 9 个技能(论文 Fig.1) ① 下蹲(转蹲姿) ② 钻下(椅下) ③ 起身(转站姿) ④ 翻过墙 ⑤ 爬上平台 ⑥ 从平台下来 ⑦ 走 ⑧ 上楼梯 ⑨ 下楼梯
图 1:核心动机 + 任务集。:双脚支撑面小,换脚瞬间易摔;:加手/膝接触后支撑面变大,重心可大幅移动;:本论文 9 个全身接触式技能。

💡 核心思想:关键帧(人知识)+ RL(物理纠错)+ 4 个标准姿势(状态机接口)

论文最关键的 insight 是:关键帧动画和 RL 高度互补。关键帧把「人大致知道怎么动」编码成稀疏时间点,但开环跑不动;RL 把它磨成能应对扰动的闭环策略。这两个怎么咬起来?看 Fig.2 简化版:

阶段 1:关键帧设计 MuJoCo GUI 工具 人指定:pose + 到达时间 t=3s, 4, 5.5, 6.5, ... 线性插值 → 参考轨迹 每个关键帧静态稳定 → 插值后物理可行 设计 1 个技能:几小时 远快于 动捕+retarget+调 reward 阶段 2:RL 运动追踪 DeepMimic-style reward $r=r_{imi}+r_{reg}+r_{surv}$ r_imitate = Σ w·r (pose/vel/ee/CoM) PPO + domain rand 关键约束: 所有技能必须 起止于 {站/蹲/趴/仰} 之一 阶段 3:视觉规划 双目鱼眼 RGB Foundation Stereo ResNet 分类器 深度 → 技能标签 EMA 平滑 + 阈值 置信度足够才切 3.1 Hz 运行 (50Hz 底层控制) 阶段 4:状态机 4 个标准姿势 蹲 (crawl) 趴 (prone) 仰 (supine) 任意技能终点 = 下一技能起点 摔倒检测 → 恢复 IMU pitch 异常
图 2:管线四段。关键帧→RL 策略→视觉分类器→状态机。4 个标准姿势是「接口契约」,让 9 个独立训练的技能能无缝串起来。

🛠️ 四个工程关键:让「9 个独立技能」能串成一条路

设计心智为什么必要
① 关键帧直接在机器人状态空间设计 用 MuJoCo GUI 在机器人自己的关节角空间指定 pose + 到达时间,要求每帧静态稳定(CoM 在支撑多边形内);线性插值得参考轨迹 绕开「动捕数据 → retarget → embodiment gap」的死亡循环。设计师几小时出一个技能,比传统流水线快一个数量级
② DeepMimic 奖励 + 大量 domain rand $r_t = r^{imitate}_t + r^{reg}_t + r^{survival}_t$;imitate 含 pose / velocity / end-effector / CoM 四项;随机化摩擦、电机、初始状态、推力、IMU 噪声(含 colored noise + 随机游走 bias) 关键帧是开环的——任何扰动都会让物理追踪崩。RL 把它磨成闭环;IMU 噪声模型保证 sim-to-real 不翻车
③ 4 个标准姿势做接口契约 所有技能强制起止于 {站, 蹲, 趴, 仰} 之一;状态机切换只在「同姿势」间接 9 个策略独立训练,每个的终点分布跟下一个的起点分布天然对齐——不需要 terminal-aligned training 或 meta-composer,简单状态机就够
④ 视觉 3.1Hz / 控制 50Hz 解耦 双目鱼眼 RGB → Foundation Stereo(TensorRT float16,192×256)→ ResNet 分类 8 技能;EMA 平滑 + 置信度阈值切换;用 IMU pitch 检测摔倒触发 recovery 模式切换是「秒级」决策(地形不会突然变),但平衡是「20ms 级」反应——频率解耦让两件事互不阻塞
🔮 直觉:为什么「4 个标准姿势」这个约束是点睛之笔?
技能串联历来是 RL 的老大难——A 策略的终点状态分布跟 B 策略的起点分布对不上,强行切换就摔。以往工作要么精细工程化「终点=起点」,要么训一个 meta-composer 网络去桥接。Locomotion Beyond Feet 的回答是:直接立个规矩,所有技能必须停在这 4 个姿势之一。一个「蹲」姿势的分布对所有技能都一样,自然能无缝接力。这把一个复杂的学习问题变成了一个约束设计问题

📊 结果:4 类极端地形零样本过,且对尺寸鲁棒

地形尺寸(相对腿长)结果
椅下空间53 cm(<机器人身高)必须蹲伏才能过
膝盖高墙25 cm = 48% 腿长必须翻越
膝盖高平台44% 腿长必须爬上 + 爬下
陡楼梯(上下)每级 16% 腿长对机器人尺度极极端

视觉分类器(真机测试集 3,394 张,Tab./Fig.6 confusion matrix):

指标数字
整体准确率93.9%
主要混淆相邻技能切换瞬间(几何上本就模糊)
下游处理EMA 平滑 + 置信度阈值即可解决
训练数据22,389 张训练 + 5,598 张验证(18 分钟真机录制 + 150 分钟离线深度估计)

深度估计(Foundation Stereo,Fig.5):

分辨率像素 MAEChamfer 距离推理速度
480×640(原)59 mm17 mm0.5 Hz
192×256(部署)62 mm19 mm3.1 Hz(TensorRT float16,6× 提速)

系统鲁棒性(Fig.7):

维度结果
墙高度泛化设计于 12cm 墙 → 9~14cm 全部成功(仅靠 proprio,不用视觉)
平台高度泛化设计于 11cm 平台 → 8.5~13cm 全部成功
地形序列泛化5 种不同障碍顺序(含 2 连椅)零样本全过
真机平台ToddlerBot(30 DoF 开源小人形)
关键洞察:论文没有报一个 SOTA 数字——它的贡献是开启一个新任务集。「椅下、墙、平台、楼梯」这些必须用全身接触的地形此前根本没人做。所有指标都是这个新任务集上的首批参考点。作者明确说「期望框架能无缝迁移到全尺寸人形」——这是为下一代大人形机器人预备的能力地图。

🌐 在领域中的位置

四足 parkour(Extreme Parkour / ANYmal Parkour) 人形 parkour(Humanoid Parkour / HumanPlus)— 仅腿 + 少量手臂 Locomotion Beyond Feet(全身接触 + 关键帧 + 视觉调度)⭐ 全尺寸人形的 contact-rich locomotion

这篇是 T12 敏捷移动 线索里少数明确「人形用全身接触」的工作——和它最接近的是 BeyondMimic(扩散+追踪)和 Humanoid Parkour(仅腿)。区别是:前者管「任意参考动作」、后者管「腿能跳多远」,这篇管「腿走不过去的地方」——一个此前空白的细分。

❓ 常见误区

关键帧是手工调的,这算「学习」吗?

算——而且作者明确把这当成优点。关键帧是「人知识的最稀疏编码」,提供参考轨迹;RL 把它磨成能应对扰动的闭环策略。完全端到端学一个「爬墙」技能可能要数月,关键帧 + RL 只要几小时出参考、几天出策略。这是一种「人机协同设计」的范式,跟「全部让网络自己学」相反。

为什么不用动捕数据?

动捕路径有三个坑:(1) embodiment gap——人和机器人形态不同,retarget 会失真;(2) 缺动态信息——动捕只有运动学,没有接触力;(3) 采集+retarget+调 reward 周期长。关键帧在机器人自己的关节空间里设计,天然避开前两个问题,迭代速度快一个数量级。

9 个技能逐个训,是不是很费人力?

是。论文 §V 承认这是主要局限——「关键帧设计需要人工和领域专家」。但每个技能只花几小时(出关键帧)+ 标准 PPO 训练,全流程比传统动捕路径快。作者把「自动通过优化生成关键帧」列为未来方向。

线性插值不会让动作很机械吗?

会,作者也承认(§V 局限之二)。但只要每帧静态稳定,线性插值的轨迹就是物理可行的——RL 在追踪时会自然加上平滑的协调动作,最终真机上看不出「线性」。当然用 spline / learned interpolation 会更自然,这是改进空间。

视觉只在 3.1Hz 运行,够用吗?

够。论文的逻辑是「模式切换是秒级决策,平衡是 20ms 级反应」——两件事用不同频率。地形不会 0.3 秒内突变,所以 3.1Hz 看一眼「接下来该走/爬/翻?」完全够。底层 50Hz 控制独立运行,专心做平衡。这种频率解耦是 legged locomotion 系统设计的老套路。

翻墙有时候在真机会失败,为什么?

论文 §V 诚实承认:「接触建模近似导致墙翻技能在仿真成功但真机偶发失败」。原因是 MuJoCo 的接触模型跟真实软/硬接触有差异,尤其在多接触同时发生时。这是 sim-to-real 的通用问题,作者把它列为未来研究方向。