冻结G1行为空间,CrossBFM一小时蒸馏三台人形,跟踪仅差0.025弧度

CrossBFM: Distilling a Shared Latent Behavior Space Across Humanoid Embodiments

Tan-Dzung Do, Tuan Dat Phuong, Nico Bohlinger, Cuc T. Trinh, Siwei Ju, Vien Anh Ngo, Jan Peters, Xinchao Wang, An T. Le

cs.RO

2026-09-30

冻结G1的BFM潜空间,用无专属参数编码器蒸馏到三台人形,不到一GPU小时;跟踪只比关节条件差0.025 rad,未见相近形态最高收回89%。

这篇在解决什么

人形全身控制现在有两条命令接口。一条是关节空间参考轨迹,每一帧告诉机器人每个关节该到哪,TWIST2 这类 tracker 就是这么训的。另一条是 Behavior Foundation Model(BFM,行为基础模型):用 Forward-Backward 表示(把「策略会走到哪」做成低秩分解的无监督方法)学出一个潜空间 Z,测试时一个向量 z 就能代表「跟这段动作」「到这个姿态」或「最大化这个奖励」,策略 π(·|z) 不用重训。

BFM-Zero 把这套从仿真角色搬到真机,UFO 把 FB 预训练压到消费级 GPU 上一百多小时。但一次训练只服务一台机器人。换一台就要从头跑无监督 RL,得到的潜空间坐标和上一台对不上:几何上看着像,同一点对应的行为却不同。下游任务全绑在这个潜空间上,换机体等于白训一遍,还没法共用 prompt。先前的跨机体工作多半让一个策略同时吃多台形态,通常只覆盖速度跟踪这类单任务,共享的是形态编码器,没有「奖励闭式变成 z」这层语义。

方法

CrossBFM 把潜空间当成可迁移资产。源模型是冻结的 Unitree G1 BFM,只留 backward map(后向映射) BS。LAFAN 动作按同一时间轴 retarget 到每台目标机,源帧和目标帧对应同一行为。跨机体对应由 retarget 包办,目标侧变成监督学习:把新机器人本体感觉回归到源潜空间的 z★。

统一编码器没有机器人专属参数。输入做成固定 163 维:8 个关键刚体(左右膝、脚、肘、臂尖)、骨盆高度/朝向/线速度、33 个规范关节槽。缺的关节零填充加 mask,好区分「在零位」和「不存在」。长度除以该机骨盆高度中位数。窗口 64 帧(30 fps 约 2.13 秒),4 层 pre-LayerNorm Transformer,输出投影到半径 √256 的球面。目标是逐帧余弦回归。3.27M 参数,消费级 GPU 一小时内训完。

Post-LayerNorm 会塌成常数潜向量,余弦救不回来,所以必须 pre-LN。离线可用双向注意力看约一秒未来;真机改因果 mask,验证余弦从 0.8695 降到 0.8420,闭环关节 MAE 从 0.2068 到 0.2043 rad,和 oracle 条件打平。

第二阶段每台训一个 PPO tracker:actor 只看 [z | proprio],没有逐帧关节参考;critic 留仿真特权参考,部署丢掉。每台 RTX 4090 约十小时。目标侧没有源模型访问分布 ρ,就用 retarget 数据当缓存,按关键刚体特征打分再奖励加权平均得到 zrew。绝对高度按分位数搬运:G1 举手 1.0 m 落到 T1 约 0.820 m、M3 约 1.157 m。

共享 Z 上再训 rectified-flow 生成器,按行为模式、历史 16 帧和可选逐帧动作条件采样 64 帧潜向量,20 步去噪后直接喂冻结 tracker。推理时没有参考动作,也没有 backward map。

结果

三台目标机:自研 M3(27 DoF)、Booster T1(23)、Fourier N1(23)。三种 BFM prompt 都转过去了。

机器人关节条件 MAE潜空间条件差距目标到达 MAE
M30.1777 rad0.2024+0.02470.2345
T10.18440.1901+0.00570.1967
N10.13620.1391+0.00290.1512

对照是同一套 PPO、同一环境的关节条件 tracker(TWIST2 设定)。0.025 rad 是差距最大的 M3。关节条件无法在姿态之间插值,硬切参考会大力矩并提前终止;潜空间插值做目标到达,无摔倒,相对跟踪最多再多 0.032 rad。

41 个奖励 prompt 全部能跑。源侧真实 BS 算出的 zrew,在目标机上归一化回报均值 0.183;目标侧缓存加分位数阈值得到 0.431,是前者的 2.35 倍。G1 能到的状态别的机到不了,按源分布加权会选错该去的状态。

蒸馏语料缩到 25%,M3 闭环关节 MAE 从 0.2132 升到 0.2241,只差 5%;10% 垮到 0.2706,随机潜向量是 0.4411。未见 clip(同类行为)关键刚体误差多 1.4 到 6.7 mm。

编码器训两台测第三台:形态接近的 M3 收回 89.3% 跟踪信号(相对全三台编码器和随机 z 的间隙),N1 55.5%,更矮、形态更远的 T1 只有 12.8%。M3 上余弦也只有 0.625,但 tracker 对落在正确行为簇里的 z 够鲁棒。

真机 M3:跟踪关节条件 0.1985 rad、潜空间 0.2206,仿真为 0.1777 / 0.2024;目标到达 0.2675,仿真 0.2345;奖励 0.562,仿真 0.508。统一编码器对源潜空间略差(M3 余弦 0.8899 对 0.9026),三机同意度 0.938–0.965 对 0.867–0.913。

为什么重要

BFM 贵在无监督 RL 学 backward map。retarget 对齐之后,这件事变成一小时余弦回归。新机体不用再跑 discriminator、replay、域随机化那套约 10² GPU 小时。已有一台 BFM 和 retarget 管线时,加机体主要再花十小时训 PPO tracker。

同一条 z 可以指挥多台,flow 生成器还可以只给行为模式、不给参考动作。比每台一个错位的潜空间更接近能运营的多机接口。

仍是渐进:tracker 还是每机体一份 PPO,未见机体只对形态近的有效,奖励特征砍掉了关节构型项。

局限与存疑

结论点了两条轴:更细的行为空间要更丰富的数据,未见机体泛化要更大的机器人集。T1 那一折已经说明第二条:没有近亲时信号间隙只关上 12.8%,余弦掉到 0.25。三台数据撑不住「任意人形都能插值」。

蒸馏默认 retarget 提供帧级对应。附录里 GMR 量级系统偏差(×1 为 0.027 rad rms)还能扛,到 ×8 对齐和跟踪一起掉。逐 clip 随机时间错位没有全局相位可搜,编码器学不好。retarget 质量是静默依赖,主实验没有两套独立 retarget 管线对照。

Flow 生成潜向量在正文里只有走、跑、跳舞的定性结果,没有和参考条件对等的 MAE 表。真机定量只有 M3。源 BFM 固定为 G1,从更小机体蒸到更大、或换源模型,都没验证。

每台仍要训自己的 tracker。共享的是 z,不是 π。跨机体策略没有做。

术语

原文与代码

相关论文

全部论文解读