BFM:给人形机器人装一个「行为基础模型」
🎯 为什么重要:每个 WBC 任务都在重复造轮子
人形机器人控制(Whole-Body Control, WBC)常见的任务有三大类:
BFM 论文最关键的观察是:
论文 §II 说得很直白:「走路这个行为,既可以在「速度命令」下学到,也可以在「动捕追踪」下学到——它们本质上是同一个东西」。这给了 BFM 一个根本动机:预训练一次,下游任意接口都能用。
💡 核心思想:CVAE + 掩码蒸馏,把行为分布学进隐空间
BFM 不是简单地学一个「条件策略」 $\pi(a|s, g)$,而是用 条件变分自编码器(CVAE)来学习行为的分布 $P(\tau)$。原因有三:
- 同一个状态下,可能有多种合理动作(多模态),单峰回归会把它们平均掉;
- 需要一个结构化隐空间,方便做行为插值/外推(组合、调制);
- CVAE 给出可计算的 ELBO,能稳定训练。
🛠️ 工程关键设计
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① 统一控制接口(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) | HOVER | Specialist(专门策略) |
|---|---|---|---|
| 动作追踪 MPJPE ↓(AMASS Test) | 0.2226 rad | 0.2416 | 0.2247 |
| VR 遥操 MPJPE ↓(AMASS Test) | 0.2235 | 0.3055 | 0.2555 |
| 移动 $E_{lin,xy}$ ↓(100Style) | 0.1603 m/s | 0.1696 | 0.1496 |
| 移动 $E_{ang,z}$ ↓(100Style) | 0.4973 rad/s | 0.5707 | 0.5108 |
| 独特能力 | 说明 |
|---|---|
| 行为组合 | 两个模式隐变量线性插值(系数 0.5)→ 合成出「回旋踢」这种两个模式都做不出的新动作 |
| 行为调制 | classifier-free guidance 式外推(λ=0.5)→ 让原本会摔倒的「蝶踢」稳稳落地 |
| 残差学习 | 侧空翻这种 BFM 不会的动作,加残差后比 RL-from-scratch 更快收敛、更准 |
| 真机验证 | Unitree G1(1.3m,29 DoF,冻结手腕后 23 DoF)零样本部署 |
🌐 在领域中的位置
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 + 关键点 + 关节角)。作者在结论里说「未来会扩展到更抽象的控制接口」。