SONIC:让人形机器人「超级模仿」的 scalable motion tracking
🎯 为什么重要:humanoid 控制一直 scale 不起来
foundation model 时代,LLM 用 25,000+ GPU 训万亿 token,视频模型用上千 GPU 处理十亿图像。但 humanoid 控制还是「三层 MLP + 几张 GPU + 单任务」。SONIC 抓住的核心瓶颈是 task selection:
💡 核心思想:Universal Token Space + 多输入编码器
SONIC 不只是个 tracker。它要做「一个 policy 解决所有 humanoid 应用」——包括 teleop / 导航 / VR 控制 / 视频驱动 / VLA 自主控制。核心 trick 是把所有可能的指令来源都映射到一个共享的离散 token 空间。
关键设计:用 Finite Scalar Quantization (FSQ) 而不是 VQ-VAE——因为 FSQ 不会 codebook collapse,且支持 PPO 联合训练(梯度通过 straight-through estimator 直接回传到 encoder)。一致损失($\mathcal{L}_{token}$, $\mathcal{L}_{cycle}$)让三种编码器在 latent 空间对齐。
🛠️ 怎么做到的:三个 scaling 轴 + 一套训练 trick
| 维度 | 心智 | 关键数字(来自 PDF) |
|---|---|---|
| ① 数据规模 | 大规模 mocap 数据集(男女均衡;主要来自 Bones Studio 商业库,BONES-SEED 子集已公开),用 GMR + PyRoki retarget 到 G1 后过滤掉物理不可行 | 源数据 ~700 小时;过滤后 611 小时训练(100M+ 帧 @ 50 Hz);33 大类、8,447 子类 |
| ② 模型规模 | 1.2M → 16M → 42M 参数 sweep | 1.2M: 98.0% 成功 / 27.7mm;42M: 99.6% / 23.8mm(test-content OOD) |
| ③ 算力规模 | 2K → 9K → 21K GPU 小时(16 / 32 / 128 GPU) | 21K GPU 小时 = 128 GPU × 7 天 × 50k iter;所有跑用同样超参 |
| ④ Asymmetric Actor-Critic | Critic 看 privileged sim 状态;Actor 只看部署可得的 proprioception + 命令 | actor: noisy proprio + 10 步历史;critic: 全 body link pose + base velocity |
| ⑤ Bin-based 自适应采样 | 把数据按失败率分 bin,对难点加权采样(既覆盖又聚焦难点) | capped failure rate weighting |
| ⑥ Domain Randomization | 物理参数(摩擦、弹性、扰动)+ 命令扰动一起做 | 对 command 加噪声 → tracker 对 planner 输出更鲁棒 |
AMP / ASE 用 discriminator 区分真假动作——数据集越大越杂,discriminator 越难学,反馈越稀疏,最终 mode collapse。Motion tracking 的监督是逐帧的、显式的目标 pose——数据越多,监督信号越稠密、越稳定。所以它表现出类似 LLM 的「scale law」:数据 / 参数 / 算力三者翻倍,性能稳定上升(Fig.2abc)。
实时 kinematic planner:让 tracker 听话
光有 tracker 不够——它需要有人喂「未来动作参考」。SONIC 配了一个 autoregressive latent generative planner,用 masked token prediction 做 motion inbetweening(给定起点 + 终点关键帧,填补中间)。每段 0.8–2.4s,5ms 笔记本 / 12ms Jetson Orin就能推理一次,每 100ms 重规划。配合一个 critically damped spring 模型过滤不合理的命令(比如从 6m/s 突然变 -6m/s)。
📊 关键结果:scaling 全面起作用,吊打专家与 specialist
| 评估 | 关键数字 |
|---|---|
| vs BeyondMimic / Any2Track / GMT | test-content 成功率 98.7%(BeyondMimic 81.6%, Any2Track 31.1%);MPJPE-L 23.2mm(BeyondMimic 39.1mm,-41%) |
| 跨数据集(PHuMA) | 97.0% 成功(BeyondMimic 73.4%)——PHuMA 来自完全不同的 retargeting 管线,是强 OOD |
| vs OpenHomie(速度专家) | 速度跟踪整体存活率 98.5% vs 43.0%;OpenHomie 在 ~1.5 m/s 后崩盘,SONIC 维持近 100% 直到 4 m/s |
| 真机 sim-to-real | 123 个动作序列,真机成功率 99.2%(sim 100%),MPJPE-L 25.7mm(sim 22.3mm);上身 gap 最小,脚部 gap 最大(53.7mm vs 29.0mm) |
| VLA loco-manipulation(5 任务) | 平均 75%(apple-to-plate 90% / 开垃圾桶 70% / 易拉罐进桶 60% / 钻和箱子 70%);FSQ token 比 SMPL pose 平均 +42% |
| 开源 | 代码 + BONES-SEED 数据集(142,220 序列 / 522 演员 / 288 小时)公开 |
🌐 在领域中的位置
SONIC 把 humanoid 控制从「单任务专家」推向「通用 foundation controller」。它的 universal token 设计是连接低层 tracker 和高层 VLA 的关键桥梁——GR00T N1.5 VLA 直接预测这个 token 就能驱动全身。关联线索:T04 运动先验谱系。
❓ 常见误区
SONIC 是 RL 还是模仿学习?
是 RL + 生成式模仿的混合。tracker 本身用 PPO 训,但奖励来自「与 mocap 参考的偏差」——逐帧 pose / orientation / velocity error,不是手工任务奖励。planner 部分用 masked token prediction(生成式)。整体可视为「以 mocap 为 dense supervision 的 RL」。
100M 帧的数据哪来的?
主要来自大规模商业 mocap 采集(Bones Studio),公开子集为 BONES-SEED(288 小时,142k 序列,522 演员)。原始 700 小时经过 retargeting 和物理可行性过滤后剩 611 小时训练。
它真的能做「VLA 直接控制」吗?
可以——这是它和 SONIC 之前 tracker 工作的最大区别。GR00T N1.5 VLA 被 fine-tune 去预测 78 维动作(64 维 universal token + 14 维手指)。因为 token 离散低维,VLA 学起来比连续 SMPL pose 容易得多(+42% 成功率)。
能直接跑到家里用吗?
部署友好(Jetson Orin 1-2ms 推理),但论文坦承局限:未处理安全性和能量效率;对极端动态动作仍可能失平衡;也没有处理长时间运行的电机发热问题。是个 research platform,不是产品。