一句话定位

Masked Humanoid Controller(MHC)用同一个 LSTM 策略在 Digit V3 真机上跟踪”任意子集被 mask 掉”的目标姿态序列——手柄只给根速度、VR/视频只给上半身关节、或两者叠加——把 joystick、VR 遥操、视频模仿这三种输入模态统一成”部分指定的运动指令”这一种接口,不需要为每种模态单独训练控制器。

背景与定位

这篇工作站在两条既有路线的交叉点上:

  • 图形学式全身模仿(fully-specified motion tracking,如 PHC、ASE、CALM 等)——擅长在仿真里精确复现完整动作,但每次只服务一种固定的输入规格,切换到新的稀疏化模式(如换成 VR 手柄那种”只给几个关键点”的输入)通常需要重新训练。
  • 人形 whole-body 遥操/模仿h2o-human2humanoidomnih2ohumanplusexbody)——这些工作各自把上下半身目标解耦(如 ExBody 的”上半身严格模仿+下半身只跟根速度”),但支持的输入模态种类和”稀疏程度”通常是训练时就定死的一种搭配。

MHC 的核心提案是用统一的 mask 机制把”到底给了哪些关节的目标”变成策略输入的一部分(而不是训练时固定的架构选择),使同一个网络在推理时既能吃 joystick 的纯根速度指令,也能吃 VR/视频给出的上半身姿态,也能吃 MoCap 给出的全身姿态,且可以在这些模态间任意组合、动态切换而无需重训。这是相对 ExBody 一类”上下半身二选一解耦”的进一步泛化:mask 是逐关节、逐时刻任意的,而不是固定的”上半身 vs 下半身”二分。

模型架构

非视觉、纯本体感知的 RL 全身控制器(不是 VLA,没有 VLM)。

  • 骨干网络:LSTM 循环网络,共 2 层、每层 64 个 recurrent unit
  • 指令编码:目标运动指令 $d_i=(\hat q_i, I_i)$(masked 姿态 + 二值 mask)先经过单层前馈编码器产出 160 维的 directive embedding,与当前机器人状态 $s_t=(\theta_t,\dot\theta_t,\omega_t)$(关节角、关节角速度、姿态四元数)拼接后送入 LSTM。
  • 动作头:LSTM 输出经一个线性解码层,为每个被驱动关节输出一个 offset;该 offset 加到指令中对应关节的目标值 $\hat q_i$ 上得到最终 PD setpoint —— 对于被 mask 掉的关节,$\hat q_i$ 本身为 0,offset 就直接是 PD setpoint(等价于网络”从零填空”)。
  • 机器人本体:Digit V3 人形机器人,20 个驱动关节
  • 控制频率:MHC 网络以 50 Hz 输出 PD setpoint,下发给以 2 kHz 运行的底层 PD 控制器。
  • 动作空间:单一网络覆盖 locomotion-only、upper-body-only(下半身站立)、upper-body+locomotion、full-body 四类指令稀疏度,训练/推理不做架构切换。

数据

  • 运动来源:人体动捕 AMASSReallusion(3D 动画资产库)、以及视频演示(video demonstrations);此外还纳入了自研的 pre-trained policy rollout 与 optimized reference trajectories(如既有的 SaW 站立/行走策略)。
  • 重定向(retargeting):对每个数据帧求解一个逆运动学(IK)非线性规划(NLP)——用 Drake 的 IK 模块搭建代价/约束、SNOPT 求解;支撑脚锁地、Digit 闭链腿部拓扑作为硬约束,躯干姿态与手部位置等风格性目标作为代价项引导收敛;IK 无可行解的帧直接丢弃,再对状态序列做线性插值得到时间参数化轨迹。
  • 数据集规模:IK 重定向共产出 75 条运动轨迹,划分为三个不相交子集用于测试跨集泛化:
    • setA(20 条):AMASS Boxing 5、AMASS misc 9、Reallusion 2、optimized 2、video 2
    • setB(20 条):AMASS Boxing 6、AMASS misc 6、Reallusion 5、optimized 3
    • setC(35 条,含论文认定的”最难”动作,如网球扣杀、高难度拳击组合):AMASS Boxing 19、AMASS misc 12、Reallusion 1、optimized 3
  • 过滤原则:主动排除跳跃、踢腿、大幅度肢体甩动等高动态动作,因其在真实 Digit 上的可行性存疑。
  • 动作标注:无需人工动作标签——训练信号直接来自逐关节角度/速度/根运动的连续轨迹(IK 重定向输出本身即是监督目标)。
  • 仿真 vs 真机:全部训练在 MuJoCo 仿真中完成,真机(Digit V3)只用于 sim-to-real 定性验证,不参与训练。
  • 协同训练:无额外任务协同训练;三个 curriculum 阶段共享同一套动作库,只是每阶段采样的 mask 模式/扰动强度不同。

训练方法

  • 算法:PPO(Proximal Policy Optimization),仿真引擎为 MuJoCo,机器人模型为 Digit V3。
  • 指令/episode 生成:每个 episode 从站立姿态开始,随机采样一个指令窗口长度 $w$ 和一条来自当前 curriculum 阶段分布的指令 $d$;MHC 循环执行 $d$ 直到窗口结束,再重新采样新的 $w,d$,直到达到最大 episode 长度或机器人跌倒——通过窗口内切换多个指令,策略学会在不同动作间平滑过渡。
  • 三阶段课程(curriculum)
    1. Stage 1 · Locomotion:只给 root 运动指令(线速度/转向速率/base 姿态),mask 掉其余全部关节;瞬时躯干扰动 80–800 N,每步 1% 概率触发;episode 长度 300 policy step(6 秒),指令窗口 $w\in[40,100]$。
    2. Stage 2 · Stability:在 Stage 1 基础上加入持续躯干扰动 20–150 N(持续 20–50 个 policy step);episode 延长到 800 policy step(16 秒),$w\in[100,400]$。
    3. Stage 3 · Whole-Body Directives:训练全指定与三类部分指定指令 —— (a) 纯 locomotion(对应 joystick)、(b) 仅上半身+原地站立(对应 VR/视频模仿)、(c) 上半身+locomotion(对应带移动接口的 VR 手柄);episode 长度维持 800 step,$w\in[100,400]$ 不变。
  • 奖励函数:当指令 mask 掉下半身时(纯 locomotion 或 locomotion+上半身),$r=r_{task}+r_{style}+r_{reg}+r_{track}$;当下半身未被 mask(如全身模仿)时去掉 style 项,$r=r_{task}+r_{reg}+r_{track}$(因为 style 奖励鼓励的”自然站姿/步态”可能与被显式指定的下半身目标冲突)。其中追踪奖励 $r_{track}=\exp(-1.5\cdot\lVert(\theta-\hat\theta_i)\cdot I_i\rVert)$,只对未被 mask 的关节计误差。Task 奖励沿用 van Marum et al. (2024) 的 SaW 站立/行走控制器奖励(xy 速度项权重 0.15,yaw 朝向 0.1,roll/pitch 朝向 0.2,base 高度 0.05);Style 奖励含脚部朝向/位置、腾空时间、触地判定、手臂偏移等项(权重 0.03–1.0 不等);Regularization 奖励含 base 加速度(权重 0.1)、动作差分(0.02)、力矩(0.02)。
  • 域随机化(domain randomization):全程施加于关节阻尼 [-50%, 250%]、body 质量 [-25%, 25%]、质心位置 [-5%, 5%]、弹簧刚度 [-10%, 10%]、地面摩擦 [-20%, 20%]、编码器噪声 [-0.05, 0.05] rad、地面坡度 [-0.05, 0.05] rad。
  • PPO 超参:actor/critic 学习率 3e-4;buffer size 50000;每次更新 5 epoch;batch size(按 episode 计)8;PPO log-clip range 0.2;最大梯度范数 0.05;折扣因子 γ=0.95;GAE λ=0.95
  • 无蒸馏 / 无 RL-微调分离阶段:三阶段课程共用同一 PPO 循环持续训练,不是分离的 teacher-student 蒸馏流程。

Infra(训练 / 推理工程)

  • 训练硬件:论文未披露 GPU 型号、GPU 数量、GPU-hours 或总训练墙钟时长;仅说明仿真引擎为 MuJoCo、算法为 PPO。
  • 并行策略 / 精度:未披露。
  • 推理:MHC 网络推理频率 50 Hz(对应策略侧的 policy step),输出的 PD setpoint 下发给以 2 kHz 运行的底层电机 PD 控制器;真机为 Digit V3,板载计算硬件规格未披露。
  • 部署平台:Digit V3 人形机器人(Agility Robotics),真实场地测试。

评测 benchmark

评测协议:对每条动作生成 3 类指令(全身 / 上半身+站立 / 上半身+locomotion),每类指令跑 200 个 episode,每个 episode 最长 50 秒(2500 步),从指令内随机起点开始、循环执行指令 3 遍后再重置到新起点。指标:Fail%(50 秒内跌倒的比例)、E[MPJPE](末端关节相对躯干的平均逐关节位置误差,partial 指令只算未 mask 关节)、Root Δ(根位置相对指令期望位置的漂移量)。

对基线的比较(均在 setA 上训练,论文 Table 1;三者均为作者自建的 baseline,因为此前无方法能处理 masked 输入):

模型Fail %E[MPJPE]Root Δ
Locomotion+Offsets(只训 Stage1-2,未见到的关节直接用 IK offset 当 PD setpoint)49.2130.1560.168
LocomotionTrain(同上,但训练时输入里包含 IK offset)4.8000.2270.203
MHC(本文)0.4500.0880.134

MHC 在三项指标上全面优于两个基线,失败率不到 1%,显著低于两个消融基线。

训练集多样性对泛化的影响(论文 Table 2,分别在 setA / setA+setB / setA+setB+setC 上训练出 MHC$A$、MHC${AB}$、MHC$_{ABC}$,交叉评测三个测试集):

模型Fail%(A/B/C)EMPJPERootΔ(A/B/C)
MHC$_A$0.450 / 0.588 / 7.2500.088 / 0.436 / 0.5890.134 / 0.461 / 0.245
MHC$_{AB}$0.963 / 2.225 / 1.8430.092 / 0.435 / 0.5980.133 / 0.383 / 0.211
MHC$_{ABC}$1.488 / 0.550 / 3.9570.098 / 0.431 / 0.6050.155 / 0.428 / 0.260

MHC$A$ 在训练集外的 setB 上泛化良好,但对 setC 里的高动态动作(网球扣杀等)失败率骤升至 7.25%;加入 setB 训练(MHC${AB}$)大幅改善了对 setC 的泛化(失败率降到 1.843%),但代价是自身在 setB 上的失败率反而上升;纳入全部三集训练的 MHC${ABC}$ 在各集上表现”过得去”但并未全面超过 MHC${AB}$,作者推测最难的一批动作在物理上可能本就不完全可行,相当于在”带噪标签”上训练。

课程消融(论文 Figure 2、Figure 3,均在 setA 上训练):去掉课程直接从头训练(NoCurriculum)在 Stage-1 等价的 locomotion 学习上明显更慢、且最终性能不及有课程版本;去掉 Stage 2 稳定性阶段(LocoMask)的策略更不稳定,平均 episode 长度更短。论文未给出具体数值,仅以学习曲线图呈现。

真机 sim-to-real(Digit V3,定性):成功案例包括——跟踪完整指定的拳击 directive、joystick 纯 locomotion 指令下的鲁棒行走、locomotion+上半身部分指令下的搬箱子取放(box pickup/place)、以及非常规的”僵尸走”步态。失败模式包括:单脚长时间承重的舞蹈动作平衡失败;箱子搬运时手臂完全伸展导致的持续失衡与站姿漂移。

创新点与影响

贡献

  1. 提出统一的 masked-directive 接口——用同一套 (masked motion, binary mask) 表示 joystick、VR、视频模仿、MoCap 等所有输入模态,使单一策略能”填空”补全未指定的关节,而非为每种稀疏模式单独设计/训练控制器。
  2. 三阶段课程(locomotion → stability → whole-body directives),论文消融证明课程设计(尤其是稳定性阶段)对最终鲁棒性至关重要。
  3. 论文自称是首个能在真实人形机器人上、用单一学习控制器同时支持如此广泛多模态目标指令的工作(作者原话:“first instance of a learned controller that can realize whole-body control of a real-world humanoid for such diverse multi-modal targets”)。
  4. 系统性对比了训练集组成(setA/AB/ABC)对跨集泛化的影响,揭示”更难的动作数据未必总能带来更好的整体泛化”这一现象。

作者自述局限

  • 显著的 sim-to-real gap,尤其是宽步态或单脚长时间悬空的动作,作者认为需要更通用的 sim-to-real 研究方向(可能需引入真实数据)。
  • 训练时只考虑了有限的 mask 模式集合(joystick / 上半身 / 上半身+locomotion / 全身),支持完全通用的任意 mask 组合可能带来额外鲁棒性,是未来方向。
  • MHC 不建模与外部物体的交互(如搬箱子时手中的箱子),当前箱子搬运纯粹是盲目跟踪运动轨迹、不感知箱子本身,作者认为把物体显式纳入输入与训练是重要的后续方向。

原始链接

一手源存档(sources/)

  • masked-humanoid-controller—project-page — 项目页快照(能力演示分区、训练课程示意图、BibTeX、资助信息)
  • arXiv 原文 PDF(arXiv 2408.07295,不入 git;正文 Section 1-6 + 附录 A/B/C 全读)