arXiv:2511.07820 · NVIDIA · 2026-05-22

SONIC: Supersizing Motion Tracking for Natural Humanoid Whole-Body Control

Zhengyi Luo, Ye Yuan, Tingwu Wang, Chenran Li, Fernando Castañeda, Sirui Chen, Zi-Ang Cao, Jiefeng Li, David Minor, Qingwei Ben ... NVIDIA
通用全身控制 运动追踪 · 可扩展 FSQ · Universal Token Unitree G1 100M 帧 · 21K GPU-h
§ 01

核心问题:人形控制为什么难以扩展?

一句话概括

SONIC 的论点:运动追踪(motion tracking)是人形控制的可扩展基础任务—— 它提供逐帧监督信号、可复用人类动作捕捉数据、天然与奖励工程解耦, 因此能像 LLM 一样随数据/模型/算力增长而稳定提升。

现有人形控制器的扩展性困境:每个新行为都需要手工设计奖励函数(locomotion 的奖励对 dancing 毫无用处), 对抗性模仿方法(AMP/ASE)在数据多样性增加时判别器易崩溃,导致 scaling 无法带来持续提升。

运动追踪的突破口:人类动作捕捉数据集(walking / running / dancing / fighting / tool-use …) 已经在数十年的研究中积累到规模——每帧都有明确的目标姿态,监督信号天然稠密, 模型收到的是"你现在离目标姿态有多远"的精确梯度,不需要稀疏奖励 shaping。

论文全称Supersizing mOtion tracking for Natural humanold Control(SONIC)
数据规模700 小时人类动作捕捉 → 过滤后 611 小时,100M+ 帧(50 fps),33 大类运动
模型规模1.2M → 42M 参数
计算规模2K → 21K GPU 小时(128 GPU 训练)
追踪结果99.6% 成功率(test-content OOD),99.2% sim-to-real 成功率
项目页nvlabs.github.io/GEAR-SONIC/
与 MotionWAM 的关系

SONIC 是 MotionWAM 的底层运动引擎。MotionWAM 的 Motion DiT 预测的"全身运动 latent $m_t$", 其中的离散部分 $k_t$ 就是 SONIC 的 universal token;SONIC 负责把这个 token 解码成 29-DoF 关节命令。 MotionWAM = 上层感知-推理(Video DiT + Motion DiT)+ 下层运动执行(SONIC)。

§ 02

通用控制策略:多编码器 + FSQ 量化器 + 双解码器

SONIC 的核心设计是一个通用控制策略(Universal Control Policy), 通过多专用编码器将异构的运动命令来源(机器人/人类/混合)统一映射到同一个量化 token, 再由单一策略解码为关节命令。整个系统架构如下:

Motion Generators Motions Encoders Quantizer Decoders Kinematic Planner gamepad / navigation PICO VR Toolkit VR whole-body teleop GEM Motion Generator video / text / music Robot Motion Hybrid Motion Human Motion Robot Encoder ℰ_r · joint pos/vel Hybrid Encoder ℰ_m · keypoints+lag Human Encoder ℰ_h · SMPL 3D joints FSQ Quantizer → Universal Token z 2 tokens × D_z × L_z Robot Control Decoder 𝒟_c(z, s^p) → joint cmd 驱动机器人 Robot Motion Decoder 𝒟_r(z) → robot motion 辅助重建监督 本体感受 s^p (q, q̇, ω, g, a_{t-1})× 10步历史
SONIC 通用控制策略:三种编码器 → FSQ 量化 → Universal Token → 机器人关节命令

2.1 状态空间

策略在每时刻接收两类输入:

$s_t^p$(本体感受) 关节角度 $q_t$、关节速度 $\dot{q}_t$、根节角速度 $\omega_t$、重力向量 $g_t$、上一步动作 $a_{t-1}$;拼接 10 步历史作为时序上下文
$s_t^g$(运动命令) 三选一:机器人运动 $g_r$(joint positions + velocities)/ 人类运动 $g_h$(3D SMPL 关节)/ 混合运动 $g_m$(上身 keypoint + 下身机器人运动)

所有量均在机器人局部坐标系下表示,采用 6D 旋转表示(Zhou et al. 2019)确保旋转不变性。

2.2 三种专用编码器

Robot Encoder · $\mathcal{E}_r$
机器人运动编码器
输入:未来 $F_r$ 帧的关节位置和速度,帧间隔 $\Delta t_r$。 适用于:Kinematic Planner 生成的运动命令,或已记录的机器人轨迹。
Human Encoder · $\mathcal{E}_h$
人类运动编码器
输入:未来 $F_h$ 帧的 3D 人类关节坐标(SMPL 格式)。 适用于:视频/文字/音乐驱动的运动生成(GEM),以及 VR 全身遥操作。 关键能力:把人→机器人的 retargeting 内化到编码器,无需显式对齐。
Hybrid Encoder · $\mathcal{E}_m$
混合运动编码器
输入:当前帧上身稀疏 keypoint(头 + 双腕)+ 未来 $F_m$ 帧下身机器人运动。 适用于:VR 三点遥操作(只有上身信号,下身由 Kinematic Planner 生成)。

三种编码器均为 MLP,将各自输入映射到共享 latent 空间——这是跨模态对齐的关键。

2.3 双解码器

Robot Control Decoder · $\mathcal{D}_c$(主要)
关节命令解码器
输入:universal token $\mathbf{z}$ + 本体感受 $s_t^p$,输出:目标关节位置 $a_t$。 由 PD 控制器跟踪执行。训练时和部署时输入相同,无 sim-to-real gap。
Robot Motion Decoder · $\mathcal{D}_r$(辅助)
运动重建解码器
输入:universal token $\mathbf{z}$,输出:机器人运动命令 $\hat{g}_r$。 作用:提供重建监督信号,改善 latent space 的信息丰富度; 同时作为隐式 retargeting 模块——从人类运动编码的 token 也能重建出机器人运动。
§ 03

FSQ Universal Token:通用运动隐变量

核心创新

SONIC 引入有限标量量化(Finite Scalar Quantization, FSQ)把连续 latent 压成一个 universal token $\mathbf{z}$,让来自不同输入模态(机器人 / 人类 / 混合)的运动命令 在同一个离散 token 空间里统一表达,单一策略用这个 token 驱动全身。

3.1 为什么选 FSQ 不选 VQ-VAE?

VQ-VAE 的问题 Codebook Collapse:大量 codebook 槽位空置不用,只有少数几个被激活。 需要额外的 commitment loss + EMA codebook 更新来缓解,训练不稳定, 且这些辅助损失与 PPO 优化不兼容(梯度干扰)。
FSQ 的优势 没有独立 codebook,直接用有界 tanh + 四舍五入把连续值卡到离散档位。 straight-through 梯度估计天然兼容 PPO,无需额外 EMA 或 commitment loss, 训练全程稳定,在所有模型规模下未出现不稳定。

3.2 Token 的结构

$$\mathbf{z} = \text{FSQ}(\text{Encoder output}) \in \left\{-1, -\frac{L_z-2}{L_z}, \ldots, \frac{L_z-2}{L_z}, 1\right\}^{2 \times D_z}$$ Universal Token 取值集合 · 2个token × 每token D_z维 × L_z档位
Token 数量2 个 token(每个独立量化)
每 token 维度$D_z$(论文验证了多种配置)
每维度档位$L_z$ 档(MotionWAM 中使用 32 档)
取值范围$[-1, 1]$ 均匀分 $L_z$ 档:$\{-1, -\frac{L_z-2}{L_z}, \ldots, 1\}$
梯度Straight-through estimation(前向 round,反向直接传梯度)
类比:音乐的音阶量化

把连续的声音频率量化为 12 个半音——FSQ 就在做类似的事:把连续的全身运动意图量化成 有限个离散"运动档位"。瓶颈化(只准 $L_z$ 档)是有意为之: 逼模型把全身运动压成紧凑、跨模态可复用的表示。 实验证明,预测 universal token 比直接预测 SMPL 姿态 产生更平滑、更安全的机器人行为(后者会有抖动和方向控制问题)。

3.3 训练目标(联合四项损失)

$$\mathcal{L} = \mathcal{L}_{\text{ppo}} + \mathcal{L}_{\text{recon}} + \mathcal{L}_{\text{token}} + \mathcal{L}_{\text{cycle}}$$ SONIC 总训练损失 · Eq. 1–4
各项损失含义
$\mathcal{L}_{\text{ppo}}$
标准 PPO 强化学习损失。奖励 = 追踪误差(关节位置/速度/方向)+ 末端执行器位置 + 反抖动惩罚 + 足部加速度惩罚(促进平滑落地)。
$\mathcal{L}_{\text{recon}} = \sum_{i \in \{r,h,m\}} \|\mathcal{D}_r(\mathbf{z}_i) - g_r\|^2$
重建损失:三种编码器路径产生的 token 都能被 $\mathcal{D}_r$ 重建回机器人运动。当输入是人类运动 $g_h$ 时,这就是 retargeting loss——让模型学会"把人类动作翻译成机器人可执行的版本"。
$\mathcal{L}_{\text{token}} = \|z_r - z_h\|^2 + \|z_r - z_m\|^2$
Token 对齐损失:强制三种编码器对同一底层运动产生相似 token,确保统一 token 空间真的统一。
$\mathcal{L}_{\text{cycle}} = \|\mathcal{E}_r(\mathcal{D}_r(z_h)) - z_r\|^2$
循环一致性:从人类 token $z_h$ 重建出机器人运动,再重新编码成机器人 token,应该等于原始 $z_r$。强化跨模态翻译的质量。
为什么用 PPO 而不是 BC?

运动追踪需要平衡稳定性(不摔倒)和精度(跟上参考姿态),单纯行为克隆无法保证物理可行性。 PPO 在物理仿真(Isaac Lab)中训练,自然获得稳定步态和接触动力学, 再用辅助损失(recon/token/cycle)约束 latent space。 PPO 梯度穿过 FSQ 的 straight-through estimator 更新编码器和量化器, 四项损失联合优化,端到端一个训练循环完成。

§ 04

可扩展性:三轴 Scaling 曲线

SONIC 在三个维度上系统验证了 scaling law(Fig. 2):数据规模、模型规模、算力规模。 所有测试集均隐藏于训练,用追踪成功率(Success Rate)和 MPJPE-L(关节位置误差)衡量。

Data Scaling
4M → 100M 帧
4M / 10M / 22M / 100M 帧对应 test-content(OOD)成功率稳步上升。 最大(100M)达 99.6%,最小(4M)仅 ~98.8%。 数据多样性获益最显著。
Model Scaling
1.2M → 42M 参数
1.2M / 16M / 42M 参数,42M 最优。 最大 vs 最小:OOD 成功率从 98.0% → 99.6%,MPJPE-L 从 27.7mm → 23.8mm。
Compute Scaling
2K → 21K GPU-h
2K / 9K / 21K GPU 小时(16 / 32 / 128 GPU,50K iter)。 更大 batch 带来更好的优化稳定性,成功率单调提升。

与基线的对比

SONIC(99.6%)
99.6%
BeyondMimic
81.6%
Any2Track
31.1%

test-content(OOD)成功率;SONIC MPJPE-L = 23.2mm,BeyondMimic = 39.1mm(41% 降低)

Sim-to-Real 迁移

测试条件123 条多样运动序列,真实 Unitree G1
真实 vs 仿真成功率99.2% (real) vs 100.0% (sim)
MPJPE-L 上身22.2mm (real) vs 21.8mm (sim),gap 极小
MPJPE-L 足部53.7mm (real) vs 29.0mm (sim),足部接触动力学差异最大
为什么运动追踪的 scaling 好于其他方法?

运动追踪的监督信号是稠密逐帧的——每一帧都告诉模型"你离目标姿态差了多少"。 对比 AMP/ASE(判别器随数据增加易崩溃),或任务特定奖励工程(每个行为需要重设计), 运动追踪的学习信号始终有效,所以 scaling 带来持续提升。 这也是 LLM 用 next-token prediction 能 scale 的同等道理:稠密监督 + 明确标签 = 可扩展任务。

§ 05

下游应用:一个 Token Space 支撑所有接口

Universal token 的威力在于:不修改策略权重,只换上游的运动生成模块, 同一个 SONIC 就能支撑完全不同的控制接口。

五大应用场景
1 / 5

① 互动导航控制(Kinematic Planner)

实时生成运动规划,支持 0–6 m/s 速度、360° 方向、多种风格(步行/奔跑/醉步/受伤步态)。 Planner 推理 <5ms(笔记本),每 100ms 重规划一次,保证高响应性。 还支持蹲下(骨盆高度 0.3–0.8m)、跪姿、匍匐(肘膝爬行,全向 0–0.5 m/s)。

② VR 全身遥操作(Whole-Body Interface)

PICO 头显 + 两个踝关节 tracker + 手柄 → SMPL 全身姿态 → 人类编码器 $\mathcal{E}_h$ → token。 覆盖完整身体动力学(侧展、前伸、单腿跪、劈叉、功夫步……)。 同时也支持"三点遥操"(只有头 + 双腕 keypoint,下身由 Planner 自动生成)。

③ 视频遥操作(Video Teleoperation)

单目摄像头实时估计人体姿态(≥60 FPS),通过 $\mathcal{E}_h$ 转为 token 驱动机器人。 无需专用 MoCap 硬件,高保真姿态和时序的精确模仿。

④ 文字/音乐控制(Multi-Modal,GEM 生成器)

GEM(Generative Embodied Motion)从自然语言或音乐生成目标运动, SONIC 追踪执行。"Acts like a monkey" / "Punches with his left arm" / 根据节拍和旋律跳舞——无需重新训练控制器,只需换运动生成模块。

⑤ VLA 驱动 Loco-Manipulation(GR00T N1.5)

将 GR00T N1.5 VLA 模型接到 SONIC universal token 接口, VLA 预测 78 维动作(64 维 universal token + 14 维手部关节)。 5 个 Loco-Manip 任务平均 75% 成功率,包括: 开踏板垃圾桶(需要精准单脚踩踏板 + 另一脚平衡,70%), 可乐罐扔垃圾桶(5 技能串联,60%)。

VLA 任务成功率(GR00T N1.5 + SONIC)

Apple→Plate (3-pt)
90%
Object Pickup (scrub)
95%
Object Pickup (carrot)
75%
Open Trash Can (foot)
70%
Drill & Box Relocation
70%
Soda→Trash (5 skills)
60%
Average (5 tasks)
75%
§ 06

与 MotionWAM 的关系:SONIC 作为底层运动引擎

核心关系

MotionWAM 不重新发明底层控制——它把 SONIC 的 universal token 直接作为 Motion DiT 的预测目标,把 SONIC 本身当作解码器(decoder)。 两篇工作是垂直分工:SONIC 负责"从 token 到身体运动", MotionWAM 负责"从视觉+语言到 token"。

SONIC 的 universal token $\mathbf{z}$ 对应 MotionWAM 中的 $k_t$($m_t$ 的离散部分,2 token × 32 levels × $D_z$ dim)
MotionWAM 的 $m_t^{\text{cont}}$ SONIC 覆盖不到的灵巧手通道(夹爪 / 灵巧手),MotionWAM 额外追加的连续部分
SONIC 的 $\mathcal{D}_c$ MotionWAM Stage 3 公式 (6) 中的 SONIC 解码步骤:$(m_t^{\text{cont}}, k_t) \xrightarrow{\text{SONIC}} \mathbf{a}_t$
Stage 3 遥操作流水线 PICO VR → SMPL 24 关节 → SONIC retarget → 29-DoF 关节命令(50 Hz),和 SONIC §2.4 VR 遥操作接口一致
Video DiT Cosmos-Predict2.5-2B egocentric视觉动力学先验 Motion DiT DiT-B,2560-dim 预测 m_t = (m^cont, k̃_t) SONIC 边界 round(k̃_t) → k_t 最近邻取整 离散→FSQ token SONIC 𝒟_c token → joint cmd 29-DoF,50 Hz MotionWAM 贡献 MotionWAM 贡献 SONIC 贡献
MotionWAM(上层感知推理)+ SONIC(下层运动执行)的垂直分工
局限性

SONIC 缺乏对安全性和能耗的正式处理,在极端动态运动下(如急速换向 6→-6 m/s)追踪器可能失衡。 足部接触精度(sim-to-real gap 最大:53.7mm real vs 29.0mm sim)仍是最大挑战。 上层 VLA(如 MotionWAM)如果依赖 SONIC,也继承了这些限制。

理解检验
SONIC 选择 FSQ 而非 VQ-VAE 作为量化器的核心原因是?