枢纽
机器人AgiBot X2
上真机
物理感知
实时
输入模态vision,language

WholeBodyVLA:让人形机器人「边走边干活」的统一 VLA

Haoran Jiang, Jin Chen(共同一作); Qingwen Bu, Li Chen, Modi Shi 等。OpenDriveLab & MMLab @ HKU + Fudan + AgiBot + SII。arXiv:2512.11047v2 (2025-12)。 项目页 · 部署于 AgiBot X2 · imitationVLAhumanoid loco-manipulation

🧠 一句话心智模型:让一个 VLA 大脑统一指挥「双臂 + 移动」的整体意图,但脚下不交给它直接控速度——而是交给一个只会按 discrete 命令精准走/转/蹲的 RL 小脑。同时,先从免动作标签的人类第一人称视频里偷学「走路和抓东西怎么配合」,再低成本迁移到真机上。

🎯 为什么重要:人形机器人卡在「边走边抓」这一步

把双臂操作(grasping、placing)和移动(stepping、turning、squatting)拼成一套自主策略,一直是人形机器人的硬骨头。论文把它归结成两条死路:

  • 模块化拼接(导航 + 抓取 切换):用高层 planner 在「移动」和「操作」之间切换。切换边界很脆,机器人移动完一站,姿态常常已经不是下一个动作想要的样子,误差一路累积。
  • 纯端到端 VLA:理论美好,但要训出来需要大规模全身遥操作数据——MoCap / VR 遥操极其昂贵,根本凑不齐。
核心矛盾:真正的 loco-manipulation 需要「为操作而移动」(manipulation-aware locomotion)——走过去的角度、停下时的站姿、蹲下来的高度,都得为接下来的抓/放/推做准备。但现有做法把「移动」和「操作」当两件事,且缺数据把它们合起来学。

更细一层:即便有了高层决策,下层 RL 控制器也接不住。传统的 velocity-tracking RL 是为「持续巡航」设计的,不是为「走到位精确刹停 / 转完角对齐 / 蹲下来稳住」设计的——结果就是 stumble、path deviation、advance 时乱转;论文 §4.4 实测:velocity 版相对 LMO 掉 24% 成功率,这 24% 的 gap 里 91.7% 来自移动段子目标的失败

💡 核心思想:统一 latent + 专用 RL 小脑 + 免动作视频预训练

WholeBodyVLA 的解法是「分三件事,统一在一个 latent 空间里」:

  1. 统一 latent 学习:用两个 Latent Action Model(LAM)—— 一个学操作(来自 AgiBot World),一个学移动(来自自己采的 egocentric 视频)—— 把「帧到帧的视觉变化」压缩成离散 latent action。然后让 VLA 同时预测这两类 latent,逼它在同一个动作空间里学会「移动 + 操作 怎么耦合」。
  2. LMO RL 小脑:下层换掉 velocity-tracking,改用离散命令接口 $u_t = [s_x, s_y, s_\psi, h^\star] \in \{-1,0,1\}^3 \times \mathbb{R}$(前进/侧步/转向 + 站立高度),让 RL 精确执行 start/stop/turn/squat。
  3. 真机接地:latent 学完后挂一个轻量 decoder,把 latent 落成「上半身关节角 + 下半身 locomotion 命令」,下半身命令交给 LMO。
① 预训练:从「无动作标签」视频学统一 latent 第一人称移动视频 单人 + 头戴相机 ~300h AgiBot World 真机双臂操作数据 Locomotion LAM (VQ-VAE + DINOv2) Manipulation LAM (VQ-VAE + DINOv2) 统一 latent 监督 $c^{mani}_t, c^{loco}_t$ VLA 主干 Prismatic-7B 联合预测两类 latent ② 接地:latent → 上半身关节 + 下半身命令 Action Decoder 上半身关节 ~10 Hz Action Decoder loco 命令 $u_t$ ~10 Hz ③ 执行:LMO RL 小脑(50 Hz)+ AgiBot X2 AgiBot X2 双臂 Omnipicker 7-DoF × 2 LMO RL Policy(50 Hz) 离散命令 → 下半身力矩
图 1:WholeBodyVLA 全管线。上方:免动作的人类视频 + AgiBot World 经两个独立 LAM 编码成统一 latent,联合训练 VLA 主干。下方:latent 落到「上半身关节」和「loco 命令」两路,loco 命令交由 50 Hz 的 LMO RL 小脑精确执行。

两个 LAM 必须分开训——这是论文的关键发现。因为操作视频里相机静止、视觉变化来自手臂;移动视频里相机在动、视觉变化来自整个场景。混在一起会让模型注意力打架,且把「相机移动」误判成「手臂在动」,latent 编码变模糊(§3.1)。

🛠️ 工程实现:三件事各自的关键设计

组件设计要点为什么这样做
① 统一 latent 预训练
(双 LAM + VLA 联合)
两个 VQ-VAE LAM(基于 DINOv2 特征),分别在移动视频 / AgiBot World 上学「帧间视觉变化」的离散码;VLA 主干(Prismatic-7B)以 MLE 联合预测 $c^{mani}_t$ 和 $c^{loco}_t$。 视频没有动作标签,但「视觉变化」本身就是动作的 proxy。联合预测逼模型学「走路 + 抓取 如何在同一个动作空间里耦合」。两 LAM 分开避免注意力打架。
② LMO RL 小脑
(discrete 命令 + 两阶段课程)
命令 $u_t = [s_x, s_y, s_\psi, h^\star] \in \{-1,0,1\}^3 \times \mathbb{R}$(前/侧/转 的 ±1 flag + 站立高度)。Stage I:基础步态,关节范围课程化放宽。Stage II:固定巡航速度 + 方向精度损失 $J_{dir}$ + 从 AgiBot World 采的手臂扰动片段 + 静止惩罚 $J_{stand}$。 velocity-tracking 是为巡航设计的,对 loco-manipulation 的「精确 start/stop、对齐航向、站稳」语义不对。离散 flag 自带 start/stop 语义,配合两阶段课程先稳后精。
③ 低成本数据采集 单个操作员 + 头戴相机(RealSense D435i 或 GoPro),做「前进 / 转向 / 蹲下」并走向可抓取目标直到接触(不必须真抓)。共采集 ~300 小时 免除 MoCap / 遥操成本,且采集的「目标导向移动」直接对齐 loco-manipulation 语义。
④ 真机集成 AgiBot X2(7-DoF 双臂 Omnipicker / 6-DoF 腿 / 1-DoF 腰 / 头戴 RealSense)。VLA 在 RTX 4090 上跑 ~10 Hz,LMO 在 NanoPi 板载 50 Hz,ZeroMQ over Ethernet 通信。 分工算力:感知/推理在工控机,实时闭环在板载,避开「云感知」带来的延迟。
⑤ 训练规模 LAM 30k steps / batch 256;VLA 20k steps / batch 1024;LoRA 微调 10k steps / batch 64。8×H100 训 LAM+VLA,单 H100 训 RL。 标准 VLA recipe:大规模预训练 + 真机微调。三任务共训一个模型(非任务专用)。
🔮 关键直觉:把「移动」和「操作」绑在一个 latent 空间里学,本质是在告诉模型——「你的脚步是在为下一次伸手做准备」。而 LMO 这只 RL 小脑的存在,恰恰是因为脚步的执行精度要求远高于 VLA 主干能直接输出的精度:走偏 5cm、转偏 5° 就会让目标够不着。所以「大脑懂意图,小脑懂执行」的分工是必须的。

📊 结果:相对 baseline +21.3%,工作空间 >5m / 负载 >50kg

维度数字(PDF 校验)
主结果(三任务均分)WholeBodyVLA 78.0%,领先 Modular Design 64.0%、OpenVLA-OFT w/LMO 56.7%、GR00T w/LMO 42.0%
绝对提升论文声称相对 prior baseline 提升 21.3%(以及 24.0%)(Abstract / §1)
工作空间大空间 loco-manipulation,工作半径 > 5 m(Fig.1 标注)
负载能力Cart Pushing 任务推送 > 50 kg 的推车(Fig.1 / §4.1)
泛化(unseen loads)Cart Pushing 在 60 kg 杠铃片 替换负载下仍最优(Fig.6 / §C.2)
真机平台AgiBot X2 humanoid(7-DoF 双臂 Omnipicker / 6-DoF 腿 / 1-DoF 腰 / RealSense D435i)
w/o LAM 掉点去掉 latent 预训练,成功率 ↓ 38.7%(Table 2: 78.0% → 39.3%)
只用 manipulation LAM比 full pretraining 低 14.7%(移动段掉得最多)
LMO vs velocity-based RLvelocity 版成功率低 24%,其中 91.7% 的 gap 来自移动段(§4.4)
数据效率用 >50% 人类视频预训练 + 25 条真机轨迹 ≈ <25% 视频 + 200 条轨迹(Fig.3a)
扩展任务(Fig.3c)Terrain Traversal 76.0 · Long Horizon 32.0 · Vacuum Cleaning 64.0 · Stains Wiping 88.0 · Visual Navigation 80.0
执行频率VLA 主干 ~10 Hz;LMO 控制器 50 Hz
关键洞察:消融的两个数字最值得记住——w/o LAM 掉 38.7% 说明「免动作视频预训练」不是锦上添花而是支柱;LMO vs velocity 掉 24% 且 91.7% 集中在移动段 说明「小脑精度」才是 loco-manipulation 的隐形杀手,VLA 大脑再聪明也救不了脚滑。

🌐 在领域中的位置

RT-2 / OpenVLA / π0 / RDT(VLA 但只管桌面双臂) HOMIE / AMO / FALCON(RL 全身控制,velocity-tracking) LeVERB / Humanoid-VLA / GR00T(人形 VLA,但只偏移动 或 只偏操作) WholeBodyVLA(统一 latent + LMO 小脑)⭐ 通用全身人形智能体(mapping + 主动感知 + 长程任务)

WholeBodyVLA 把自己放在「把 VLA 真正塞进人形全身」的节点上:相比之前「模块拼接」(R2 S2 / Being-0 / HEAD)或「单边 VLA」(Humanoid-VLA 偏移动、GR00T 偏操作),它是第一个在 AgiBot X2 上做端到端大空间 loco-manipulation 的统一框架(论文自评,Table 1)。其「统一 latent + LMO」组合可能成为后续 generalist humanoid agents 的标准背骨。

❓ 常见误区

它是不是「又一个 VLA」?换个 backbone 跑人形?

不是。论文的重点不在 backbone,而在「统一 latent 预训练 + LMO 小脑」这个组合。前者用免动作视频解决数据稀缺,后者用离散命令 RL 解决执行精度。没有这两件事,Prismatic-7B 直接套在人形上跑不动 5m 级任务。

下半身为什么要单独一个 RL 策略?VLA 不能直接输出关节吗?

能,但跑不稳。论文的「w/o RL」变体就直接预测下肢关节,效果显著下降。原因:loco-manipulation 对「精确刹停、转向对齐、蹲位稳定」的要求是厘米/度级的,10 Hz 的 VLA 主干根本跟不上。LMO 以 50 Hz 闭环、且只接收离散意图(前进/侧步/转向/高度),把高层语义直接变成可执行的步态。

「免动作视频」真的能学到机器人能用的东西吗?

能,但有条件。LAM 学的不是「关节角」,而是「帧间视觉变化的离散码」。同一码在人和机器人上语义一致——论文 §C.5 展示了 latent「Go Forward / Turn Left / Squat」跨域检索的一致性。微调阶段再用真机遥操数据把 latent 接地成关节命令。所以视频不是直接当监督,而是「先学意图分布,再接地到具体机器人」。