里程碑
数据集large-scale MoCap
上真机
物理感知
实时
输入模态proprioception

BFM:给人形机器人装一个「行为基础模型」

Weishuai Zeng, Shunlin Lu, Kangning Yin 等(北大 + 港中深 + 上交 + 复旦 + 上海 AI Lab)。arXiv:2509.13780(2025 年 9 月)。 项目页 · motion_priorbehavior foundation model

🧠 一句话心智模型:把人形机器人「走路、跳舞、打拳、跳跃」这些看似无关的任务,统一看成「输出一段合理的身体行为」。然后用一个大模型(CVAE)在大规模人类动作数据(AMASS 等)上预训练出一个「行为库」——下游任何任务(追踪、遥操、导航)都只是从同一个库中用不同方式取货,新动作还能靠残差学习快速加上去。

🎯 为什么重要:每个 WBC 任务都在重复造轮子

人形机器人控制(Whole-Body Control, WBC)常见的任务有三大类:

核心痛点:每个团队都针对自己的控制接口训一个专门策略——做走路的有「速度命令」策略,做动捕追踪的有「参考姿态」策略,做 VR 遥操的有「关节角」策略。这些策略之间互不通用,每加一个新任务就要从头训一次。

BFM 论文最关键的观察是:

速度命令 「往前走 1m/s」 VR 遥操信号 「头/手位置」 参考动捕姿态 同一种「行为」 走路序列 τ BFM 行为基础模型 (CVAE)
图 1:三种控制模式(速度、VR、动捕)都只是指定同一个行为的不同方式。BFM 用一个统一接口把它们解耦出来。

论文 §II 说得很直白:「走路这个行为,既可以在「速度命令」下学到,也可以在「动捕追踪」下学到——它们本质上是同一个东西」。这给了 BFM 一个根本动机:预训练一次,下游任意接口都能用

💡 核心思想:CVAE + 掩码蒸馏,把行为分布学进隐空间

BFM 不是简单地学一个「条件策略」 $\pi(a|s, g)$,而是用 条件变分自编码器(CVAE)来学习行为的分布 $P(\tau)$。原因有三:

  • 同一个状态下,可能有多种合理动作(多模态),单峰回归会把它们平均掉;
  • 需要一个结构化隐空间,方便做行为插值/外推(组合、调制);
  • CVAE 给出可计算的 ELBO,能稳定训练。
阶段 1:Proxy Agent 训练(用「特权」状态 + PPO) AMASS 动捕 Retarget 到机器人 Proxy Agent(RL+PPO) 「特权」行为数据集 能看机器人所有内部状态(刚体位置、速度等),产生大量 (s, a) 对 阶段 2:BFM 预训练(CVAE + DAgger 掩码蒸馏) 真实可观测状态 随机掩码 m BFM (CVAE) 先验 P + 编码器 Q + 解码器 D 输出动作 a ↕ KL 约束 隐空间 z
图 2:BFM 的两阶段训练。先训一个「特权」proxy agent 在仿真里看一切信息产生行为数据;然后用 CVAE + DAgger 蒸馏出一个只看真实可观测信息的 BFM。掩码 m 决定哪些控制通道被激活——0.5 概率随机屏蔽,让它学会「任意模式」。

🛠️ 工程关键设计

设计心智为什么必要
① 统一控制接口(root + 关键点 + 关节角)把不同模式看成同一个目标向量的不同维度,用 0/1 掩码激活避免「每任务一接口」,所有任务共享一个张量入口
② Bernoulli(0.5) 随机掩码训练时每个通道有 50% 概率被屏蔽,从冷启动 1.0 退火到 0.5让模型见过所有可能的控制组合,部署时「任意子集」都能驱动
③ CVAE + 隐空间结构用编码器把 (状态, 目标) 压到隐变量 z,再由解码器生成动作隐空间 t-SNE 显示出明确的方向性 + 对称性,可以做行为插值/外推
④ 残差学习冻结 BFM,只训一个输出 $\Delta a$ 的残差解码器:$a' = a + \Delta a$新动作(如侧空翻)只需小幅修正,不必重训整个模型
⑤ 在线 DAgger 蒸馏BFM 自己 rollout,每步拿 proxy agent 的动作当监督避开行为克隆的分布偏移;分布与 BFM 自身一致
🔮 直觉:「掩码 = 控制模式」的巧妙之处
旧工作(HOVER)用两阶段掩码:先训某些模式,再训另外一些,本质上还是「优先某几个固定模式」。BFM 直接 Bernoulli(0.5) 全随机——每个维度一半时间开一半时间关,相当于把所有可能模式都覆盖到。冷启动退火只是为了让初期训练稳定。这是一个「以乱制胜」的思路。

📊 结果:一个模型打三个任务,多数指标超过专门策略

任务(数据集)BFM (Ours)HOVERSpecialist(专门策略)
动作追踪 MPJPE ↓(AMASS Test)0.2226 rad0.24160.2247
VR 遥操 MPJPE ↓(AMASS Test)0.22350.30550.2555
移动 $E_{lin,xy}$ ↓(100Style)0.1603 m/s0.16960.1496
移动 $E_{ang,z}$ ↓(100Style)0.4973 rad/s0.57070.5108
独特能力说明
行为组合两个模式隐变量线性插值(系数 0.5)→ 合成出「回旋踢」这种两个模式都做不出的新动作
行为调制classifier-free guidance 式外推(λ=0.5)→ 让原本会摔倒的「蝶踢」稳稳落地
残差学习侧空翻这种 BFM 不会的动作,加残差后比 RL-from-scratch 更快收敛、更准
真机验证Unitree G1(1.3m,29 DoF,冻结手腕后 23 DoF)零样本部署
训练规模:IsaacGym,8192 个并行环境;数据集 AMASS + 100STYLE;预训练的 BFM 在仿真(Mujoco)和真机都验证。

🌐 在领域中的位置

任务专门策略(一个任务一个网络) HOVER / MaskedMimic(多模式掩码) BFM(任意掩码 + 行为分布 + 残差扩展)⭐ 通用具身基础模型(VLA + 运动先验)

BFM 把 HOVER 的「固定模式集合」推到「任意模式组合」,并加入结构化隐空间用于行为合成与外推。它与线索 T-行为基础模型 中的 Motivo、MaskedMimic 同属一个家族,但唯一明确面向真实人形机器人 + 提供 CVAE 隐空间分析的工作。

❓ 常见误区

BFM 是 RL 还是模仿学习?

两者都用。Proxy agent 用 RL(PPO)+ 动作模仿在仿真里学;BFM 本身用 DAgger(行为克隆的在线变体)从 proxy agent 蒸馏出来。所以 BFM 推理时不需要 reward,是生成式策略。

它和 HOVER 有什么本质区别?

HOVER 用两阶段 mask,本质还是「优先某些模式」;BFM 用 Bernoulli(0.5) 一步到位支持任意模式组合。更重要的是,BFM 用 CVAE 给出了一个结构化的隐空间,可以做行为插值/外推(HOVER 没有)。BFM 在几乎所有指标上都超过 HOVER。

残差学习和「全量微调」有什么区别?

残差学习冻结 BFM,只训一个小的 $\Delta a$ 头。好处:(1) 不破坏已学到的行为知识;(2) 数据需求小;(3) 训练快。论文 §V-D 显示,对于「侧空翻」这种全新动作,残差学习比 RL-from-scratch 收敛得更快且最终精度更高。

BFM 能直接接语言指令吗?

论文里有展示「文本指令」作为控制模式之一(图 2c),但当前实现主要还是底层控制(root + 关键点 + 关节角)。作者在结论里说「未来会扩展到更抽象的控制接口」。