一句话定位
UniTracker 用一个三阶段训练流水线(特权 teacher → CVAE 学生策略 → 残差微调)取代传统 teacher-student 全身动作跟踪里的 MLP+DAgger 学生,靠条件变分自编码器(CVAE)显式建模人类动作的分布多样性,让 Unitree G1 人形机器人用单一策略跟踪 8179 条 AMASS 动作(含高动态动作),并在真机上验证了对未见动作(文本生成动作、单目视频估计动作)的泛化能力。
背景与定位
问题范式与 asap、gmt、kungfubot、beyondmimic 同属全身动作跟踪(whole-body motion tracking):给定参考动作序列,训练单一策略在人形机器人上精确复现(走路、踢腿、转身、跳舞等),区别于稀疏指令控制(hugwbc 一类的 task-command 范式)。
论文指出主流 teacher-student 框架(尤其用简单 MLP+DAgger 做学生蒸馏,如 h2o-human2humanoid、omnih2o)存在三个问题:
- 蒸馏过程中动作多样性丢失,学生策略退化为”平均化”行为;
- MLP 学生表征能力有限,对未见动作泛化差;
- 缺乏全局上下文信息(学生只能看局部 proprioception),导致部署到真机时出现朝向漂移(orientation drift)等全局不一致问题。
UniTracker 的方案是把 CVAE 引入学生策略:encoder 用与 teacher 相同的特权观测(含全局信息)推断隐变量,一个仅基于可部署(partial)观测的 prior network 与之对齐(KL 散度),使得最终部署的策略虽然只能看局部观测,但训练时学到的隐空间携带了全局上下文,从而缓解漂移问题。此外论文认为”学生策略应当通过隐变量而非显式参考信号获得动作多样性”——消融显示如果 actor 直接吃显式参考动作,隐变量 z 的影响会消失、退化为标准 DAgger 行为。
在此基础上再加一个第三阶段:轻量级残差解码器(residual decoder),针对通用策略跟不好的分布外/高动态动作做快速微调,思路上接近 asap 的残差修正范式,但 ASAP 修正的是 sim-to-real 动力学 gap,UniTracker 的残差微调修正的是通用策略本身对特定难动作的跟踪误差(仍在仿真里训练,未涉及真实 rollout 数据)。
训练数据集用 AMASS 经 gmt、asap 等工作也采用的 PHC 过滤协议筛选;对比基线包括 omnih2o、exbody2 与自建的 DAgger-without-CVAE、train-from-scratch 两个内部消融基线。
模型架构
三阶段流水线,均为低层全身控制策略(非 VLA,不含 VLM/语言模型):
动作空间与机器人:Unitree G1,29 自由度、身高 1.3m;锁定 6 个手腕关节,剩 23 维动作空间(目标关节位置,经 PD controller 驱动)。
Stage 1 — Oracle 策略(特权 teacher,仿真训练)
- 目标条件 RL,PPO 优化,最大化折扣累积奖励 $\mathbb{E}[\sum_t \gamma^{t-1} r_t]$。
- Proprioception:$s_t^{p-oracle}=[p_t,q_t,\theta_t,\dot p_t,\dot q_t,\omega_t,a_{t-1}]$(刚体位置、朝向、线速度、角速度、关节位置/速度、上一步动作)。
- Goal state:参考位姿与当前位姿的单帧差分(位置、关节位置、朝向、线/角速度差,以及相对 root 的位置/朝向差),全部旋转到当前位姿局部坐标系。
- Early Termination:朝向——重力投影在 x/y 轴超过 0.8;跟踪容差——机器人与参考动作平均连杆距离超过 0.5m。
- 采用 Reference State Initialization(RSI):参考动作起始点随机采样,机器人初始状态(根位置/朝向/线角速度、关节位置/速度)由对应参考位姿导出,使不同动作阶段可并行学习。
- Domain Randomization:与既往工作同时随机化资产属性(摩擦系数、质心偏移、连杆质量)与环境动力学(PD 增益、外部扰动)不同,本文将二者解耦——第一阶段(oracle 训练)仅随机化资产属性,以最大化策略对多样动作的跟踪精度上限;第二阶段(学生蒸馏)如何处理环境动力学随机化,论文正文未进一步展开(未披露)。
Stage 2 — CVAE 学生策略(可部署,在线蒸馏)
- Proprioception(可部署):$s_t^{p-deploy}=[q_{t-25:t},\dot q_{t-25:t},w^{root}{t-25:t},g{t-25:t},a_{t-25:t-1}]$,堆叠过去 25 步。
- Goal state(可部署):$[\hat h_{t+5},\hat\theta^{root}{t+5}\ominus\theta^{root}t,\hat v^{root}{t+5},\hat w^{root}{t+5},\hat p_{t+5}-\hat p^{root}_{t+5}]$,堆叠未来 5 步参考(对应消融里选出的最优 future window size = 5)。
- CVAE 三件套:encoder $\varepsilon(z_t|s_t^{p-oracle},s_t^{g-oracle})$(吃与 teacher 相同的特权观测)、可学习条件 prior $\rho(z_t|s_t^{p-deploy},s_t^{g-deploy})$(只吃可部署观测)、decoder $D(a_t|s_t^{p-deploy},z_t)$ 输出动作;三者均建模为对角高斯。
- 残差 KL 形式:encoder 被建模为 prior 的残差,$\varepsilon=\mathcal N(\mu^\rho+\mu^\varepsilon,\sigma^\varepsilon)$,而非独立高斯;消融显示这一设计显著优于无残差版本(SR 91.82 vs 85.39,MPKPE 82.57 vs 91.35,全 AMASS 训练集)。
- 损失:$L=L_{action}+\beta L_{KL}$,$L_{action}=|a_t^{deploy}-a_t^{oracle}|2^2$(用 oracle 输出的动作做在线蒸馏监督),$L{KL}$ 为 encoder 与 prior 的 KL 散度。
- 关键超参(消融选出的最优值):CVAE 隐维度 = 64(对比 32/128/256,64 最优,更大维度更难训练且无提升);future window = 5(对比 1/10/20);KL 系数 = 0.1(对比 1.0/0.01/0.001)。
- Actor 架构消融:decoder 若显式吃参考动作($s^{p-deploy},s^{g-deploy},z_t$ 之外再加参考信号)会导致隐变量 z 的影响消失、行为退化为标准 DAgger(SR 88.20 vs 不显式喂参考的 91.82)。
Stage 3 — 快速自适应(残差解码器,仍在仿真训练)
- 冻结 Stage-2 全部参数,只新增并训练一个轻量残差解码器 $D(\tilde a_t|s_t^{p-deploy},s_t^{g-deploy})$,输入与 prior network 相同(直接用显式动作参考而非隐变量,理由:分布外动作可能不在 CVAE prior 的建模范围内,且此阶段目标是对特定序列快速过拟合而非维持泛化)。
- 用与 Stage-1 相同的奖励函数以 RL 训练残差解码器。
- 最终执行动作 $a_t^{final}=a_t+\tilde a_t$(冻结通用策略输出 + 残差修正之和)。
- 支持单序列自适应与批量(batch)自适应两种模式。
数据
- 底层来源:公开 AMASS 数据集(SMPL 参数化,形状参数 β∈ℝ¹⁰、姿态参数 θ∈ℝ^{24×3}、根平移 p∈ℝ³)。
- 过滤流程:先剔除人-物交互序列和短于 10 帧的片段,再套用 PHC(Perpetual Humanoid Control)的过滤协议进一步筛除不适合人形机器人的高动态/物理不可行动作,最终得到 8179 条训练动作(v1 版本此前报告的是 11,313 条”过滤交互与短片段后”但未经 PHC 精筛的数据集;本文最终版实验与部署均基于 8179 条 PHC-过滤后的数据)。
- Retargeting(人体→机器人,两阶段,受 H2O 启发):
- 挑选 16 个对应身体连杆(body links),在静止姿态下最小化连杆间距离,优化出人形机器人专用形状参数 β′;
- 用 β′ 结合数据集原始 pose θ 与平移 p,对机器人根平移/根朝向/关节位置做梯度下降,逐帧最小化选定连杆间距离;额外加正则项抑制过激行为、保证时序平滑。
- 消融证实数据质量的重要性:未经 PHC 过滤的数据集训练出的策略关键点跟踪误差明显更高,动作速率/速度变化显著偏大,呈现过于激进、不适合真机部署的行为(定性结论,图 4 展示,无表格数值)。
- 无仿真到真实的域内数据混合说明(纯 sim 训练+真机零样本部署),无视频数据用于训练(视频估计只是下游应用,不用于训练集)。
训练方法
-
目标函数:Stage 1 是标准 goal-conditioned RL 的奖励最大化(PPO);Stage 2 是 ELBO 推导出的 CVAE 目标 $\log P(a_t|s_t^{p-d},s_t^{g-d}) \ge \mathbb E_{\varepsilon}[\log D(a_t|s_t^{p-d},z_t)] - D_{KL}(\varepsilon|\rho)$,转化为 $L=L_{action}+\beta L_{KL}$ 做在线蒸馏(学生边训练边从冻结的 oracle 策略拿监督信号,非离线数据集蒸馏);Stage 3 是标准 RL(与 Stage 1 同奖励)只更新新增的残差解码器。
-
课程学习:对正则项和惩罚项奖励施加 curriculum,使策略先专注动作跟踪本身,逐步再考虑合理性约束。
-
奖励构成与权重(Stage 1/2 共用同一套跟踪奖励,来自论文 Table I):
奖励项 形式 权重 tracking keypoints exp(‖p_ref − p‖) 1.6 tracking feet position exp(‖p_feet_ref − p_feet‖) 2.1 tracking body rotation exp(‖r − r_ref‖) 0.5 tracking joint position exp(‖q_ref − q‖) 0.75 tracking joint velocity exp(‖q̇_ref − q̇‖) 0.5 tracking body linear velocity exp(‖ṗ_ref − ṗ‖) 0.5 tracking body angular velocity exp(‖ṙ − ṙ_ref‖) 0.5 action rate −‖a_t − a_{t-1}‖ −0.5 torque −τ −1e-6 slippage −‖v_foot·F_contact‖ −1.0 termination 1.0 −200.0 -
蒸馏方式:在线蒸馏(online distillation),学生策略训练时实时查询 oracle 策略输出作为动作监督,而非先离线采集 teacher 轨迹再做行为克隆。
-
Baselines/消融对照组:train-from-scratch(不用 teacher-student)、DAgger-without-CVAE(同样两阶段蒸馏但学生是普通 MLP、无 CVAE)、以及外部基线 omnih2o、exbody2。
Infra(训练 / 推理工程)
- 仿真器:IsaacGym,8192 个并行环境,训练时施加域随机化。
- 验证链路:先在 IsaacGym 训练,再做 sim-to-sim 迁移到 MuJoCo 做消融/对比评测,最后部署真机 Unitree G1。
- GPU 型号、GPU 数量、训练时长(GPU-hours):论文正文未披露。
- 真机/仿真推理的控制频率(Hz)、单步推理延迟、边缘计算硬件:论文正文未披露。
评测 benchmark
评测指标:Success Rate (SR)、Mean Per-Keypoint Position Error (MPKPE,世界坐标系关键点误差)、Vel-Dist(关节速度与参考的差异)、Acc-Dist(关节加速度与参考的差异),分别在”全部 AMASS 训练集”与”(tracking 未失败的)成功子集”上报告。
主对比表(All AMASS Train Dataset / Successful AMASS Train Dataset,均值±标准差):
| 方法 | SR↑ (All) | MPKPE↓ (All) | Vel-Dist↓ (All) | Acc-Dist↓ (All) | MPKPE↓ (Succ.) | Vel-Dist↓ (Succ.) | Acc-Dist↓ (Succ.) |
|---|---|---|---|---|---|---|---|
| OmniH2O | 84.58±0.386 | 88.91±0.067 | 7.09±0.008 | 3.98±0.002 | 88.14±0.291 | 7.08±0.012 | 3.82±0.006 |
| Exbody2 | 86.39±0.143 | 86.77±0.199 | 6.10±0.071 | 3.63±0.001 | 86.25±0.045 | 6.03±0.001 | 3.48±0.006 |
| DAgger without CVAE | 88.03±0.221 | 85.01±0.185 | 5.63±0.003 | 2.95±0.001 | 84.78±0.141 | 5.05±0.003 | 2.40±0.001 |
| Train from Scratch | 72.22±0.262 | 104.49±0.453 | 8.79±0.008 | 6.33±0.005 | 98.94±0.396 | 8.44±0.003 | 6.34±0.003 |
| UniTracker (Ours) | 91.82±0.114 | 82.57±0.097 | 4.22±0.001 | 1.79±0.001 | 78.95±0.121 | 3.67±0.001 | 1.39±0.001 |
观测噪声鲁棒性(全 AMASS 训练集,SR / MPKPE):
| 噪声等级 | DAgger without CVAE | UniTracker |
|---|---|---|
| Level 0 | 88.23±0.105 / 84.75±0.091 | 91.81±0.048 / 82.69±0.116 |
| Level 1 | 85.78±0.191 / 88.61±0.312 | 90.29±0.094 / 83.83±0.168 |
| Level 2 | 79.58±0.066 / 93.79±0.019 | 86.78±0.212 / 87.31±0.182 |
UniTracker 随噪声等级上升的性能衰减明显慢于无 CVAE 基线。
定性结果(无表格数值,论文原话描述):
- MuJoCo 中一个训练未见过的”新月踢(crescent kick)“动作上,UniTracker 成功跟踪,无 CVAE 版本跟踪失败;
- MuJoCo 直线行走序列上,UniTracker 保持全局朝向一致(不偏航),无 CVAE 版本逐渐偏离参考轨迹(验证 CVAE 隐空间携带全局上下文的设计动机);
- Stage-3 快速自适应相比”从零训练”在单条难动作 + 全 AMASS 测试集上,episode 长度和累计奖励收敛显著更快(图 5,无具体数值);
- 下游应用(文本到动作 MDM 生成、单目视频 GVHMR 姿态估计)在 MuJoCo 与真机上均成功跟踪,未见量化指标,仅定性成功/失败描述。
真机部署:Unitree G1 上验证走路、踢腿、转身、跳舞、下蹲等动作,单一策略跟踪超过 8100 条动作序列(对应过滤后的 8179 条训练集,真机验证子集规模未单独披露)。
创新点与影响
- 把 CVAE 引入 teacher-student 全身跟踪的学生策略端,用结构化隐空间显式建模人类动作的分布多样性,替代此前 MLP+DAgger “平均化坍缩”的做法;
- 用”特权 encoder + 部分观测 prior 对齐”的设计隐式把全局上下文信息注入部署策略,缓解朝向漂移问题,这是相对纯粹动作多样性建模之外的额外贡献;
- 三阶段设计把”通用性”与”极端难例”解耦:Stage 2 的通用策略负责覆盖大多数动作,Stage 3 的轻量残差解码器只需针对分布外/高动态动作做快速专精微调(冻结主干、只训练一个小残差模块),思路上与 asap 的残差修正范式呼应,但用于弥补的是策略表达能力的缺口而非 sim-to-real 动力学 gap;
- 消融清楚证明了两个关键设计选择的因果贡献:(1) 残差 KL 形式(encoder 相对 prior 的残差参数化)对训练稳定性和最终精度至关重要;(2) actor 不能显式吃参考动作,否则隐变量会被显式信号”短路”、退化为普通 DAgger;
- 论文自陈局限:不要求(也不现实要求)CVAE 通用策略完美跟踪所有参考序列——尤其是罕见、高动态或严重分布外的动作,因此需要 Stage 3 兜底;论文正文未披露 GPU 规模/训练时长、真机控制频率与推理延迟,也未公开代码仓库。
原始链接
- arXiv: https://arxiv.org/abs/2507.07356 (v1: 2025-07-10;当前版本 v3: 2025-09-18,本页内容基于 v3)
- PDF: https://arxiv.org/pdf/2507.07356
- 项目主页: https://yinkangning0124.github.io/Humanoid-UniTracker/
一手源存档(sources/)
- unitracker—project-page — 项目主页快照(作者/单位、abstract、演示视频清单、BibTeX)
- arXiv 原文 HTML/PDF(v3,2507.07356)未入 git,通过上方 arXiv 链接可重新获取