一句话定位

ExBody 让 Unitree H1 人形机器人用单一策略网络实时复现从 CMU MoCap / 文本扩散 / YouTube 视频得到的多样人类上半身动作,同时腿部只被要求鲁棒地跟踪 root 速度命令——通过**“上半身严格模仿、下半身放松只跟速度”的目标解耦**,把图形学里的角色动画技能真正落到真机上(RSS 2024)。

背景与定位

这是基于学习的真机人形全身表现性控制的开山工作之一(作者自称”first work on learning-based real-world humanoid control with diverse motions”)。它站在两条线的交叉点:

核心洞见(作者反复强调):不要精确模仿参考动作。人类动作的下半身特征直接套到形态差异巨大的 H1 上会过约束,导致脆弱、抖动的策略。ExBody 的范式是 goal-conditioned RL 模仿——把目标空间拆成”表现目标 $\mathcal{G}^e$(只管上半身关节+keypoint)“与”根运动目标 $\mathcal{G}^m$(管全身的速度/姿态/高度)“,前者要严格追踪、后者可用手柄任意指令,从而既保留表现力又保住行走鲁棒性。该解耦思路后续被 H2O/OmniH2O/HumanPlus 等一系列 humanoid teleoperation/imitation 工作继承。

模型架构

这是一个 RL 全身控制器(不是 VLA),非视觉、纯本体感知闭环。

  • 策略主干:Actor-Critic MLP,用 PPO 训练(代码基于 rsl_rl / legged_gym,README 证实)。论文正文未披露 actor 隐藏层维度。无 VLM、无视觉编码
  • 目标条件(goal-conditioned) $\pi:\mathcal{G}\times\mathcal{S}\mapsto\mathcal{A}$,$\mathcal{G}=\mathcal{G}^e\times\mathcal{G}^m$:
    • 表现目标 $\mathcal{G}^e=\langle\mathbf{q},\mathbf{p}\rangle$:$\mathbf{q}\in\mathbb{R}^{9}$ 是上半身 9 个执行器的关节角,$\mathbf{p}\in\mathbb{R}^{18}$ 是 6 个 keypoint 的 3D 位置(左右肩、左右肘、左右手)。刻意排除下半身(髋/膝/踝)的关节与 keypoint。
    • 根运动目标 $\mathcal{G}^m=\langle\mathbf{v},rpy,h\rangle$:线速度 $\mathbf{v}\in\mathbb{R}^3$、身体 roll/pitch/yaw $\in\mathbb{R}^3$、根链接高度 $h$。部署时可直接由手柄给出。
  • 观测 $\mathcal{S}$(proprioception,全部真机可得):$s_t=[\omega_t, r_t, p_t, \Delta y, q_t, \dot q_t, \mathbf{a}_{t-1}]^T$——根角速度、roll、pitch、期望-当前 yaw 差、关节位置、关节速度、上一步动作。故意不观测当前线速度 $\mathbf{v}$、绝对高度 $h$、绝对 yaw——这些是真机特权信息(见与 PHC/ASE 的对比表)。
  • 动作 $\mathbf{a}_t\in\mathbb{R}^{19}$:19 个关节 PD 控制器的目标位置,PD 用每关节 $k_p^i, k_d^i$ 算力矩(具体增益值论文正文未给)。
  • 机器人本体:Unitree H1,总质量 ~51.5 kg、身高 ~1.8 m、19 DoF;肩/髋各 3 个相互垂直的旋转电机(等效球关节),其余关节各 1 DoF。
  • 一致性/记忆:单网络、单步反应式;行走步频不是预定义的,策略在回放上半身动作时自主学会把步频与上半身姿态同步

对比图形学工作(论文 Table I):

指标ExBody(本文)PHCASE
DoF196937
动作片段数78011000187
动作总时长(h)3.7400.5
真机
单网络
观测线速度(特权)
观测 keypoint(特权)
观测机器人高度(特权)

数据

  • 训练集:从 CMU MoCap 里半自动筛选出 780 个片段、共 13383.0 s ≈ 3.7 h 的单人平地动作。类别分布:
    • Walk 546 片段 / 9076.6 s
    • Dance 78 / 1552.3 s
    • Basketball 36 / 766.1 s
    • Punch 20 / 800.0 s
    • Others 100 / 1188.0 s
  • 筛选规则(附录明确列出关键词):保留含 walk / navigate / basketball / dance / punch / fight / push / pull / throw / catch / crawl / wave / high five / hug / drink / wash / signal / balance / strech / leg / bend / squat / traffic / high-five / low-five 的动作;排除含 ladder / suitcase / uneven / terrain / stair / stairway / stairwell / clean / box / climb / backflip / handstand / sit / hang 的动作(因框架无法处理明显环境交互/粗糙地形/坐姿)。
  • 数据先验的价值:作者画出 root movement 目标的分布(CMU 采样 1338 个数据点)——前进偏多、侧走对称、roll 小、pitch 偏向前倾、高度窄集中在标称值附近。与”在球坐标里随机采样再查碰撞”(如 [13])相比,来自真人的分布天然不违反自碰撞约束,且很多动作”先原地站、再起步走”,形成天然课程。实验证明这个先验对策略学习帮助巨大。
  • 动作重定向(retargeting):直接把局部关节旋转映射到机器人骨架。肩/髋的 3 个垂直旋转电机视作 1 个球关节,用四元数 $\mathbf{q}_m=(q_x,q_y,q_z,q_w)$ 经四元数→轴角→指数映射转成 3 个旋转关节角 $\mathbf{m}=\theta\mathbf{a}$;肘/躯干/膝/踝等 1D 关节则把旋转角投影到对应轴。重定向代码派生自 ASE。
  • 真机测试集:11 个 CMU 动作(共 202.3 s,含 Punch / Wave Hello / Mummy Walk / Zombie Walk / 夸张步幅 / High Five / Basketball Signals / Adjust Hair / Drinking / Direct Traffic / Hand Signal / Russian Dance)+ 3 个文本扩散动作(MDM 生成的 Boxing / Hug / Shake Hands,各 4.0 s)。项目页还展示了从 YouTube 舞蹈视频(Uptown Funk、Hiphop)重定向的动作。
  • 多来源可插拔:部署时目标动作可来自静态 MoCap、扩散生成模型(Text2Motion)、或 video-to-pose 模型——训练/推理解耦。

训练方法

  • 框架:goal-conditioned RL,massively parallel 仿真(isaac-gym),4096 个并行环境,PPO。
  • RSI(Reference State Initialization)——关键组件:每个环境在初始化/reset 时,从动作数据集里随机采一个状态 $\mathbf{g}=[\mathbf{g}^e,\mathbf{g}^m]$ 并把机器人置于该状态。消融显示这是策略能学起来的决定性因素(去掉后策略”自杀”,见评测)。
  • 奖励(表现 + 根运动追踪,Table III)
    • 上半身 DoF 位置 $\exp(-0.7|\mathbf{q}_{ref}-\mathbf{q}|)$,权重 3.0
    • 上半身 keypoint 位置 $\exp(-|\mathbf{p}_{ref}-\mathbf{p}|)$,权重 2.0
    • 线速度 $\exp(-4.0|\mathbf{v}_{ref}-\mathbf{v}|)$,权重 6.0(全奖励里最高)
    • roll & pitch $\exp(-|\mathbf{\Omega}_{ref}^{\phi\theta}-\mathbf{\Omega}^{\phi\theta}|)$,权重 1.0
    • yaw $\exp(-|\Delta y|)$,权重 1.0
  • 正则奖励(Table VI,保证可 sim2real 的步态):脚抬高 $\max(|h_{feet}|-0.2,0)$ 权重 2.0、腾空时间 10.0、拖地 -0.1、接触力 -3e-3、绊倒(水平力>4×竖直力) -2.0、关节加速度 -3e-7、动作变化率 -0.1、能量 -1e-3、自碰撞 -0.1、关节限位违反 -10.0、下半身关节偏离默认位 -10.0(把腿约束在合理姿态)、竖直线速度 -1.0、水平角速度 -0.4、投影重力 -2.0。
  • PPO 超参(Table VII):折扣 0.99、GAE 0.95、每 rollout 21 步、5 epoch、4 minibatch、熵系数 0.01、value loss 系数 1.0、clip 0.2、reward normalization、LR 1e-3、Adam。
  • AMP 基线超参(Table VIII,仅用于对比):判别器隐层 [1024,512]、replay buffer 1e6、demo buffer 2e5、demo fetch 512、learning batch 4096、LR 1e-4、reward 系数 4.0、梯度惩罚 1.0。
  • Text2Motion:用预训练 transformer-based MDM 从文本生成动作,每次请求 10 个 repetition、人工挑最合理的一个重定向到 H1。
  • sim2real:在高度随机化的挑战性地形上训练以保证迁移与”不只是复读”;README 显示在 8k 迭代后加入 delay 以贴近真机时延。

Infra(训练 / 推理工程)

  • 仿真/训练硬件:Isaac Gym GPU 并行,4096 环境;论文未披露 GPU 型号、卡数、GPU-hours、总训练迭代数或墙钟时长(README 提到 delay 在 8k 迭代后加入,可推知训练远超 8k 迭代,但未给确切数)。
  • 精度 / 并行策略:未披露。
  • 推理 / 部署:控制频率、推理 FPS、时延、板载算力(onboard 计算硬件)均未披露(论文只描述部署效果与手柄指令,未给控制 Hz)。策略用 save_jit.py 导出 TorchScript 部署(README)。
  • 代码栈legged_gym + rsl_rl + Isaac Gym,PyTorch 1.10 / CUDA 11.3,Python 3.8;重定向依赖 ASE 的 poselib + fbx SDK。

评测 benchmark

主要是仿真定量消融 + 真机定性/稳定性对比,作者明确表示”单个 tracking error 数字没有对比就无意义”,故用分布可视化 + 消融表。

仿真消融(Table IV,4096 环境采 10000 条轨迹,报 mean episode 指标;指标越高越好)——列出 Motion Sample / Random Sample 两种命令来源下的 MEL(回合长)、MELV(线速度追踪)、MERP(roll-pitch 追踪)、MEK(key body 追踪):

| 方法 | MEL | MELV | MERP | MEK |(Motion Sample) |---|---|---|---|---| | ExBody(本文) | 16.87 | 318.67 | 754.92 | 659.78 | | ExBody+AMP | 17.28 | 205.60 | 765.85 | 635.51 | | ExBody+AMP NoReg | 16.16 | 87.83 | 714.74 | 561.56 | | No RSI | 0.23 | 0.63 | 10.09 | 7.25 | | Random Sample | 16.50 | 181.85 | 704.73 | 326.66 | | Full Body Tracking | 13.28 | 246.11 | 584.40 | 397.25 |

结论:

  • ExBody 的线速度追踪 MELV 全场最高(Motion Sample 318.67 / Random Sample 132.14),得益于 RSI 带来的探索。
  • No RSI 直接崩溃(MEL 0.23)——策略学会”尽快自杀”以避免负奖励,找不到正奖励状态。
  • Random Sample 命令(不用数据集分布而均匀随机采 $\mathbf{g}^m$)会退化成”初始化后立即跪下保持稳定、完全放弃根运动目标”。
  • Full Body Tracking(连下半身一起严格模仿)所有指标都更差:腿部出现大量伪影,“参考是单步、机器人却走多步来稳住”。
  • AMP 作为正则能小幅提升 MEL/MERP,但以牺牲线速度追踪(MELV)为代价;且 AMP 步态膝屈少、抬脚净空不足、脚趾非水平、易绊倒,不利 sim2real;AMP NoReg 出现高频抖动,不可迁移——说明”AMP 奖励本身不足以替代正则”。
  • 分布匹配:ExBody rollout 的 root movement 分布与训练集一致,且能泛化到比训练集更大的随机速度命令范围;采样 10000 个手部相对位置,重定向数据集与学到策略的分布”几乎一致”。

真机稳定性(Table V,14 个动作各 10 s,报 mean absolute roll+pitch,越低越稳):ExBody 均值 0.051 rad vs ExBody+AMP 0.087 rad——本文在几乎每个动作上都更稳(如 Shake Hand 0.036 vs 0.099、Direct Traffic 0.037 vs 0.094)。真机 High Five 时本文膝屈更大、抬脚净空更足,AMP 则直腿易绊。

真机演示:dance(含与真人共舞)、hug、highfive、punch、shake hand、traffic/basketball 手势、挥手开波感应门;在碎石、木屑、斜坡混凝土、草地、路缘等地形以 zombie/mummy/夸张步幅等风格鲁棒行走;并在 NVIDIA GTC 2024 现场 live demo。

创新点与影响

贡献

  1. 提出 ExBody(Expressive Whole-Body Control)——首个基于学习、能在真机人形上复现多样表现性全身动作的框架。
  2. 上/下半身目标解耦:上半身严格模仿人类动作换取表现力,下半身放松为”只鲁棒跟踪 root 速度命令”,绕开人机形态差异导致的过约束,是全文最核心的设计。
  3. 从大规模人类 MoCap 学习:用 780 片段 / 3.7 h 的 CMU 子集(远大于此前腿足 RL 的小参考集)+ RSI,同时提升表现力与行走鲁棒性;证明真人动作分布是比手工采样更好的先验/课程。
  4. 可插拔动作来源:训练与动作生成解耦,部署时目标可来自 MoCap、文本扩散(MDM)、YouTube 视频重定向,用户也可用手柄直接给根命令。
  5. 系统性论证图形学角色动画为何难迁真机(特权信息、无力矩限、DoF 过多、AMP mode collapse),并给出可 sim2real 的正则/奖励配方。

影响:奠定了”人类 MoCap → 重定向 → goal-conditioned RL → 真机 humanoid whole-body”这一范式,是后续 H2O / OmniH2O / HumanPlus / 各类 humanoid teleoperation & motion imitation 工作的重要前身;RSS 2024 录用。

作者自述局限

  • 重定向把 MoCap 关节角直接映到 DoF 更少的 H1 会丢信息,导致重定向行为偏离原动作;需要更高保真的重定向方法。
  • 人形机器人又重又贵,摔倒会损坏部件,亟需可靠的保护与恢复系统以减少维修成本。
  • (方法固有)下半身不做精确模仿,因此无法复现需要精确腿部动作的动作(如踢腿、复杂舞步的脚部细节)。

原始链接

一手源存档(sources/)

  • exbody—github-readme — GitHub README(安装 / 数据重定向 / 训练 / 部署流程,legged_gym+rsl_rl+Isaac Gym,8k 迭代后加 delay)
  • exbody—project-page — 项目页快照(RSS 2024、YouTube 舞蹈重定向、演示分区、BibTeX)
  • arXiv 原文 PDF(arxiv 2402.16796,不入 git;正文 + 附录 A/B/C 全读)