一句话定位
H2O 是首个基于学习(RL)的实时全身人形遥操作系统:一个人站在一台普通 RGB 摄像头前做任意全身动作,一台全尺寸人形机器人(Unitree H1)零样本地实时复现——走路、后跳、踢球、转身、挥手、推车、拳击等,靠的是在仿真里训练、经域随机化迁移到实体的单个运动模仿策略,配合一套「sim-to-data」把大规模人体动作数据筛成人形可行动作的流程。
背景与定位
全身人形遥操作是机器人学的长期难题。此前主流是基于模型的控制器(model-based,[6,7,8,9]):为压计算量必须用简化动力学模型,且高度依赖接触测量,需要外骨骼(TABLIS [9])或力传感器 [8,14] 等外设,难以规模化到动态动作与实验室之外。
H2O 走的是强化学习 + 运动模仿(motion imitation / tracking)范式:把遥操作形式化为 goal-conditioned RL,用单一策略跟踪多样的人体参考动作。它把图形学社区成熟的物理仿真角色控制方法(DeepMimic [15]、ASE [17]、PHC [18]、PULSE [32])第一次搬到真实全尺寸人形硬件上,克服了仿真 avatar「高自由度、大力矩、非物理外力」不落地的问题。
最接近的并行工作是 ExBody(exbody,[22]):它只精确跟踪上半身、下半身用 root 速度跟踪,且面向离线动作而非实时遥操作。H2O 的差异是下半身也做精确跟踪、且实时——这正是腿式机器人相对轮式/四足的价值所在(踩石、踢腿、劈叉)。遥操作三分类里(任务空间 / 上半身重定向 / 全身),H2O 属第三类,且是首个学习式全身方案;不需要标记点或力传感器,直接用 RGB 相机 + 3D 人体姿态估计。
数据侧沿用 exbody/PHC 一系的 SMPL + AMASS 技术栈;数据清洗思想(剔除不可行动作提升训练)延续自 PULSE [32]。
模型架构
硬件本体:Unitree H1 全尺寸人形,19 个自由度;动作 $\bm{a}_t\in\mathbb{R}^{19}$ 为各关节目标位置,由 PD 控制器转成力矩 $\tau=K_p(\bm{a}_t-\bm{q}_t)-K_d\dot{\bm{q}}_t$。
策略骨干(EMB policy backbone):H2O 是纯 MLP 的低层运动模仿策略(无 VLM、无历史窗口——历史/RNN/蒸馏是后续 OmniH2O 的东西),goal-conditioned,PPO 训练,单策略跟踪全部动作。动作头是连续关节位置(19 维),无离散 token、无 diffusion。
状态空间设计(关键:只用真实世界能拿到的量):
- 本体感受 $\bm{s}^{\text{p}}_t=[\bm{q}_t,\dot{\bm{q}}_t,\bm{v}_t,\bm{\omega}_t,\bm{g}t,\bm{a}{t-1}]$:关节位置(19)、关节速度(19)、根线速度(3)、根角速度(3)、根投影重力(3)、上一动作(19)。
- 目标状态 $\bm{s}^{\text{g}}_t=[\hat{\bm{p}}^{\text{kp}}_t,\ \hat{\bm{p}}^{\text{kp}}_t-\bm{p}^{\text{kp}}_t,\ \hat{\dot{\bm{p}}}^{\text{kp}}_t]$:8 个跟踪关键点(双肩、双肘、双手、双踝)的参考位置(8×3)、位置差(8×3)、参考线速度(8×3),全部归一化到人形自身坐标系。
- H2O 完整状态 $\mathcal{S}\subset\mathbb{R}^{138}$;对比消融 H2O-reduced(目标态只留参考位置)$\mathbb{R}^{90}$;仅用于数据筛选的特权策略 $\mathbb{R}^{778}$。
感知前端:RGB 图像 → HybrIK [27](off-the-shelf 3D 人体姿态估计)→ 全局人体关键点位置作为 goal。人体用 SMPL 参数模型表示(24 关节、$\beta\in\mathbb{R}^{10}$、6890 顶点 mesh)。
跨本体:重定向流程按机器人写前向运动学(codebase 里 torch_h1_humanoid_batch.py),原理上可换本体;本文只在 H1 上实测。
数据
动作源:AMASS [26],40 小时 MoCap,以 SMPL 参数表达;论文口径含 13k 条动作序列。
重定向流水线(人 → H1):
- 先用梯度下降拟合一个最接近 H1 结构的 SMPL 体型 $\beta’$(在 rest pose 下最小化 12 个人–机对应关节的距离)。用 $\beta’$ 而非平均体型很关键——H1 双脚间距大,直接匹配会得到「内八字」不稳定动作。
- 对每条序列用 Adam 优化,最小化这 12 个关节位置差(匹配末端执行器:踝、肘、腕),保留整体动作模式;同时用启发式过滤剔除不安全序列(如坐地)。
- 结果:从 13k 条算出 10k 条重定向序列 $\hat{\bm{Q}}^{\text{retarget}}$。
「sim-to-data」可行性清洗:训练一个特权运动模仿器 $\pi_{\text{privileged}}$(PHC/PULSE 式,全刚体状态可见、无域随机化)去模仿全部 10k 条;它代表模仿性能上界,它跟不上的序列即判为对 H1 不可行并剔除。清洗后 10k → 约 8.5k 条可行序列 $\hat{\bm{Q}}^{\text{clean}}$。
数据规模消融(Table IV):随机取 $\hat{\bm{Q}}^{\text{clean}}$ 的 0.1% / 1% / 10% / 100% 训练,成功率 52.0% → 58.8% → 61.3% → 72.5%,单调上升;仅用 0.1% 数据也能到 52%,作者归因于强域随机化(尤其推机器人)扩大了状态覆盖。
Sim vs real:训练全在仿真;实体部署零样本迁移。
训练方法
两阶段策略:
- 特权模仿器(仅作数据过滤,不部署):沿 PULSE [32] 的状态空间、控制参数与 hard-negative mining,本体感受含全刚体的全局 3D 位置、朝向、线/角速度;目标态含参考与当前的逐帧差 + 下一帧参考朝向/位置。无任何 sim-to-real 正则/随机化,故性能高但不可迁移。
- H2O sim-to-real 策略:PPO,goal-conditioned RL,直接 RL 训练(H2O 不做蒸馏;DAgger 蒸馏出学生策略是后续 OmniH2O 的做法)。
奖励设计(Table I,三类求和):
- 惩罚:力矩越界 $-2e^{-1}$、关节位置越界 $-1e^{2}$、终止 $-2e^{2}$。
- 正则:关节加速度 $-8.4e^{-6}$、关节速度 $-3e^{-3}$、动作变化率 $-9e^{-1}$、力矩 $-9e^{-5}$、feet air time $+8e^{2}$、足接触力 $-1e^{-1}$、绊倒(stumble) $-1e^{3}$、打滑(slippage) $-3e^{1}$。
- 任务奖励(6 个全身项,即便状态里只有 8 关键点也给全关节稠密信号):DoF 位置 $2.4e^{1}$、DoF 速度 $2.4e^{1}$、身体位置 $4e^{1}$、身体旋转 $1.6e^{1}$、身体速度 $6e^{1}$、身体角速度 $6e^{1}$。
域随机化(Table II,sim-to-real 关键):摩擦 $\mathcal{U}(0.2,1.1)$、基座质心偏移 $\mathcal{U}(-0.1,0.1)$ m、连杆质量 $\mathcal{U}(0.7,1.3)\times$默认、P/D 增益各 $\mathcal{U}(0.75,1.25)\times$默认、力矩 RFI $0.1\times$力矩上限、控制延迟 $\mathcal{U}(20,60)$ ms、每 5 s 推机器人 $v_{xy}=0.5$ m/s、地形 flat/rough/low-obstacles。连杆质量与 PD 增益逐连杆/逐关节独立随机化,其余按 episode 随机。
早停条件(提升样本效率):base 高度 < 0.3 m;投影重力在 x 或 y 轴 > 0.7;机器人与参考的平均连杆距离 > 0.5 m。
Infra(训练 / 推理工程)
训练:仿真器为 Isaac Gym(Preview 4),基于 legged_gym + RSL RL 代码栈;并行环境 num_envs = 4096(来自开源 codebase)。GPU 型号 / 卡数 / GPU-hours 论文与仓库均未披露;训练精度未披露。
推理 / 部署(实体,零样本):
- RGB 相机:标准 1080P 网络摄像头。
- 3D 姿态估计:HybrIK [27],30 Hz(提供遥操作 goal)。
- 根线速度估计:动捕系统 50 Hz(作者称可换成板载视觉/LiDAR 里程计,本文为简便用 MoCap)。
- 其余本体感受:Unitree H1 内置传感器 200 Hz。
- 策略控制频率、端上算力、端到端时延:论文正文未明确给出具体数字(仅定性称实时)。
评测 benchmark
仿真定量(Table III,在未清洗的 10k 重定向 AMASS 上评测;指标:成功率 Succ↑,全局/根相对 MPJPE↓ mm,加速度/速度误差↓):
| 方法 | 状态维度 | Sim2Real | Succ↑ | Eg-mpjpe↓ | Empjpe↓ | Eacc↓ | Evel↓ |
|---|---|---|---|---|---|---|---|
| 特权策略 | $\mathbb{R}^{778}$ | ✗ | 85.5% | 50.0 | 43.6 | 6.9 | 7.8 |
| H2O-reduced | $\mathbb{R}^{90}$ | ✓ | 53.2% | 200.2 | 115.8 | 11.2 | 13.8 |
| H2O-w/o-sim2data | $\mathbb{R}^{138}$ | ✓ | 67.9% | 176.6 | 95.0 | 10.2 | 12.2 |
| H2O(完整) | $\mathbb{R}^{138}$ | ✓ | 72.5% | 166.7 | 91.7 | 8.9 | 11.0 |
关键结论:① 「sim-to-data」清洗有效——H2O(8.5k 清洗数据)比 H2O-w/o-sim2data(10k 全量)成功率 72.5% > 67.9%,用更少数据反而更好;② 目标态设计有效——H2O(含位置差 + 参考速度)远超只留参考位置的 H2O-reduced(72.5% > 53.2%);③ 特权策略 85.5% 是上界,H2O 与之的差距来自「更弱可观测的真实世界状态空间 + sim-to-real 正则/随机化」的必要代价。
数据规模消融(Table IV):0.1%/1%/10%/100% $\hat{\bm{Q}}^{\text{clean}}$ → Succ 52.0/58.8/61.3/72.5%。
实体演示(定性):实时遥操作完成踢球(左右/右左)、走路、连续后跳、拳击、上步出拳、推婴儿车+转身、递箱子;鲁棒性测试中被人用力踢/推仍能保持平衡(动态与静态动作皆可)。无实体端的量化 benchmark 表。
创新点与影响
贡献:
- 首个基于学习(RL)的实时全身人形遥操作——把图形学的物理仿真角色控制第一次落到真实全尺寸人形硬件。
- 「sim-to-data」可行性过滤:用特权模仿器自动剔除对特定本体不可行的重定向动作,把 13k→10k→~8.5k,实测提升下游 RL 成功率(+4.6 个点 vs 不过滤)。
- 面向真实世界的状态空间设计:只用实体可获取量 + 大量域随机化,实现零样本 sim-to-real。
- 仅需 RGB 相机(无标记点/外骨骼/力传感器),配 off-the-shelf HybrIK 姿态估计,为大规模采集人形操作数据(供模仿学习)铺路。
影响:H2O 开启 LeCAR Lab 的 human-to-humanoid 系列,直接催生 OmniH2O(CoRL 2024,加入头/手 6-DoF 跟踪、Vision Pro/RGB/语言多入口、DAgger 蒸馏学生策略、灵巧手,并做自主学习),成为学习式人形全身控制的代表性起点之一(IROS 2024 Oral,ICRA 2024 Agile Robotics Workshop Spotlight)。
作者自陈局限:
- 表示 gap:更表达力的运动 goal 提升精细度,但维度膨胀会拖累可扩展 RL 的样本效率——存在权衡。
- 本体 gap:动作可行性因机器人而异,缺乏系统性判定可行动作的算法;训练在不可行/损坏动作上会明显伤性能。
- sim-to-real gap:正则与域随机化必需,但过度会阻碍动作学习,最佳权衡未知。
- 实时 gap:RGB + 姿态估计的延迟与误差带来「效率 vs 精度」权衡;操作者仅有视觉反馈,缺力/触觉与语言反馈。
- 根线速度依赖 MoCap(可被板载里程计替代但本文未做)。
原始链接
- arXiv(摘要 / v1 全文):https://arxiv.org/abs/2403.04436
- PDF:https://arxiv.org/pdf/2403.04436
- 项目主页(含视频、演示、方法图):https://human2humanoid.com/
- 官方代码(H2O + OmniH2O 合仓):https://github.com/LeCAR-Lab/human2humanoid
- 视频:https://youtu.be/0W4N2q7xtcQ
- 会议:IROS 2024(Oral Presentation)
一手源存档(sources/)
- h2o-human2humanoid—project-page — 项目主页快照(human2humanoid.com,摘要 / 演示技能 / 方法三阶段 / OmniH2O 关联)
- h2o-human2humanoid—github-readme — 官方 GitHub README 快照(安装、重定向流程、训练/部署命令、硬件清单)
- arXiv 全文 PDF(2403.04436)不入 git,见上「原始链接」