深度⏱ ~3 min
里程碑
⭐ 为何重要

full-stack humanoid 系统:单 RGB 相机抓人体动作→retarget→RL 策略→真机 Unitree H1 执行,同时支持 shadowing(实时模仿)与 imitation learning(自主任务)。它与 OmniH2O 并列为 2024 人形 teleop/imitation 的旗舰工作,验证了「消费级相机 + sim-to-real」即可把生成/捕获的人体动作送上真机的可复制范式。

机器人Unitree H1
数据集AMASS, HumanPlus dataset
上真机
实时
输入模态vision,proprioception

论文:Zipeng Fu, Qingqing Zhao, Qi Wu, Gordon Wetzstein, Chelsea Finn(Stanford). HumanPlus: Humanoid Shadowing and Imitation from Humans. ICML 2025(PMLR v270 fu25a);arXiv:2406.10454。🌐🌐 · 硬件:基于 Unitree H1 的定制 33 DoF humanoid(19 body + 2×6 hand + 2 wrist;双臂 Inspire-Robots RH56DFX 手 + 自定义 wrist)。

一句话直觉

让人用一台相机遥控全身机器人。

再让它从演示学会自己干。

秘诀是两层 transformer

低层管"怎么动得稳",高层管"看图想下一步"。

HumanPlus 之于机器人教学,就像学开车。

先跟教练影子驾驶,再独立上路。

是什么·为什么

要解决的问题:让人形机器人学会做有用的事。

比如穿鞋走路、叠衣服、敲键盘。📎

这需要先解决两件事。

一是怎么把人的技能"教"给 33 自由度的全身机器人。

二是怎么从演示学到能自主执行的策略

老办法的痛点:传统 MoCap 服、外骨骼、ALOHA 双臂都贵。

ALOHA 要 7050 美元,且只能控双臂。

2024 年中之前,没人解决"单人单相机全身遥操"。📎

HumanPlus 的转身:用一台普通 RGB 相机当全身遥控器。

再用两个 transformer 把"采集"和"学习"都做了。

低层 transformer(HST)在仿真学会怎么稳稳跟动作。

高层 transformer(HIT)从遥操数据学会看图做任务。📎

方法核心(大白话):分三步。

Step A 训低层 HST。

仿真里给 HST 看 40 小时真人动捕 AMASS

它学会"给一个目标姿态、保持平衡地跟过去"。

HST 输出 19 维身体关节目标。

PD 控制器把目标转成扭矩,1000 Hz 跑。

手部目标直接 passthrough 不走 HST。

Step B 单相机 shadowing 采数据。

RGB 视频进,WHAM 实时估人体姿态(25 Hz)。

HaMeR 实时估手部姿态(10 Hz)。

重定向成机器人目标,喂给 HST。

人动一下机器人跟着动。

人就这样"影子驾驶"机器人完成任务,记录轨迹。

Step C 训高层 HIT。

输入双目图像加当前姿态。

输出未来 50 步目标姿态。

关键 trick 是 image feature 辅助损失。

逼 transformer 不仅预测动作,还要在对应位置预测未来图像特征。

不然它会偷懒只记姿态序列、忽略图像。

到关键步骤(如抓鞋)就抓空。

📎

关键 trick 详解BC(行为克隆)容易过拟合本体感觉

意思是策略只看关节角、不看图像也能降训练 loss。

但部署时它就"看不见"东西。

image-feature 辅助损失强制 transformer 真的用图像。

没有它 ACT baseline 在穿鞋任务直接 0%。

有它 HIT 到 60%。📎

一句话类比:HumanPlus 之于机器人教学,就像学开车。

shadowing 是跟教练影子驾驶,imitation 是独立上路。

image-feature loss 是教练逼你"边开边描述路况"。

不然你会只记方向盘角度、不看路。

你会看到:单相机全身遥操成本 50 美元,比 ALOHA 便宜 140 倍。

穿鞋走路 40 个 demo 学到 60% 成功率。

HST 让机器人能抗 100 N 推力、深蹲、跳、起身。

远超 H1 出厂默认控制器。📎

怎么做

核心机制·两层 transformer📎

HST 在仿真用 PPO 训低层控制。

HIT 从真机遥操数据做行为克隆。

HST 输入输出📎

  • 输入:proprioception + humanoid target pose。

proprioception 含 root 状态、关节角、关节速度、last action。

target pose 含速度、roll/pitch、yaw 速度、目标关节角。

  • 输出:19 维 body joint position setpoints。
  • 手部目标直接 passthrough 到 PD 控制器,不经 HST。
  • policy 50 Hz。PD 控制器 1000 Hz。context length 8(仅 0.16 s 历史)。

HST 的 reward(Table 1):tracking 多项加平滑/能量惩罚。

target xy 速度、yaw 速度用 $\exp(-|...|)$ 形式。

关节角、roll/pitch 用 L2。

energy 是 $|\tau \dot q|^2$。

feet contact 要匹配,stance 时足速度惩罚(防滑动)。

这套 reward 让 HST 不靠参考姿态也能学自然步态。📎

Domain Randomization(Table 2):六项随机化。

base payload [−3, 3] kg。

end-effector payload [0, 0.5] kg。

CoM offset [−0.1, 0.1] m。

motor strength [0.8, 1.1]。

friction [0.3, 0.9]。

control delay [20, 40] ms。

📎

HIT 输入输出📎

  • 输入:双目 RGB + proprioception + fixed positional embedding

双目 RGB 用 pretrained ResNet 抽 feature。

  • 输出:50 步 target pose chunk(一次预测未来 50 步)。
  • 运行 25 Hz,异步把预测 target 喂给 HST(50 Hz)。
  • 架构:基于 ACT 改成 decoder-only transformer。

关键创新·forward-dynamics L2 feature loss:训练时 transformer 不仅预测 50 步 target poses。

还要在对应位置预测未来 image feature tokens。

用 ground-truth 未来 image feature 做 L2 监督。📎

部署时只用 predicted target poses。

丢弃 predicted image feature tokens。

Retargeting pipeline(Sec.4-5)📎

  • 离线(训练数据):AMASS 40 小时、11000+ 段动捕。

SMPL-X 参数。

body 直接拷贝 Euler 角到 19 个人形关节(hip/knee/ankle/torso/shoulder/elbow 对应)。

因为人形 body DoF 是 SMPL-X 的子集。

  • 在线(shadowing):body 用 WHAM 从单 RGB 实时估 SMPL-X。25 fps on RTX 4090。hand 用 HaMeR + MANO。每根手指取 middle joint 旋转。10 fps。

常见误区(先抛一个):以为 HIT 只要"图像 + 动作"对就够了。

错。这样训出来的策略会过拟合 proprioception,到关键步骤抓空。

必须加 image-feature 辅助损失强制 transformer 用图像。📎

深度

硬件细节(Sec.3):自研 humanoid,33 DoF。📎

body 19(2×4 arm + 2×5 leg + 1 torso)。

hand 每只 6(index/middle/ring/little 各 1,thumb 2)。

wrist 每侧 1。

感知:双目 RGB egocentric、IMU、关节编码器、onboard GPU

HST 的部署细节:50 Hz policy 推理。

proprioception 仅 onboard(IMU + 编码器),不需要相机。

zero-shot sim-to-real

坐着时直接发 target pose 到 PD(不走 policy,因为坐姿接触仿真难)。📎

Teleop 用户研究(Table 3,6 个被试):HumanPlus 对比 Kinesthetic Teaching / ALOHA / Meta Quest。

HumanPlus 是唯一支持全身遥操的。

cost 50 美元(vs ALOHA 7050)。

单人即可操作(其他至少 2 人)。

完成时间最短,站稳率最高(100%)。

能完成 Rearrange Lower Objects(要蹲下)——其他都不能。📎

Imitation 对比(Table 5):HIT vs Monocular HIT vs ACT vs Open-loop。

Wear a Shoe and Walk(40 demo):HIT 60%,Monocular/ACT/Open-loop 全部 0%。

其他子任务 HIT 普遍 75–100%。

ACT/Monocular 在需要视觉反馈的步骤掉到 0–20%。

关键失败模式:ACT "overfits to proprioception"(Pick up Shoe 之后反复抓空)。📎

鲁棒性(Table 4 + Fig.7):HST vs H1 出厂默认控制器。

最大耐受推力:forward 32 N(H1: 24)、backward 44 N(36)、leftward 70 N(40)、rightward 100 N(40)。

recovery time:1.2 s(H1: 15 s)。

squat:0.44 m(下蹲更深;H1: 0.85 m)。

jump:0.35 m(H1: 0)。

stand up:能(H1: 不能)。📎

6 个 imitation 任务(Sec.7)📎

  • Wear a Shoe and Walk(40 demos,每 50 s / 1250 步):10 步序列(flip → pick up → put on → press → tangle → grasp right/left → tie → stand up → walk forward)。最难,需双手机械 + 敏捷 locomotion
  • Warehouse(每 demo 20 s / 500 步)。
  • Fold Clothes(每 demo 20 s / 500 步):要保平衡。
  • Type "AI"(每 demo 8 s / 200 步)。
  • Rearrange Objects + variant Rearrange Lower Objects(桌高 0.55 m,要蹲下)。
  • Two-Robot Greeting(每 demo 5 s / 125 步):识别对方伸哪只手 → 握手 → 松开。

局限

  1. 手部 shadowing 仅 10 Hz:HaMeR 慢于 body(25 Hz),高频手指任务(弹琴、快抓)受限。📎
  2. HST 只控 body 19 DoF,hand 直接 passthrough:hand 没有 learned policy,碰到手的复杂接触(如捏小物体)无稳健性保障。
  3. 每个 skill 单独训一个 HIT:40 demo 一个 policy,6 个任务 6 个 policy,无统一架构。这正是 GR00T N1 / π0 / BFM 之后要解决的"one model many skills"问题。
  4. 依赖双目 RGB:单目(Monocular HIT)成功率高掉,说明深度感知是硬需求。
  5. Wear-a-Shoe 仅 60%:长程多阶段任务仍脆弱,单步失败整个 episode 失败。
  6. 论文未明示:transformer 层数、hidden dim、attention head 数、SLERP 重定向细节、hand-body 异步同步策略、训练硬件规格。

研究者视角

图谱定位:HumanPlus 是 T07 人形遥操栈的关键节点。📎

它是第一个"单 RGB 相机 + 全身遥操 + imitation"完整闭环。

把 ALOHA 的双臂 teleop 思路扩展到人形全身,且成本极低(50 美元 vs 7050 美元)。

HST 把 AMASS 用作低层 policy 训练数据——这成为后续 humanoid RL 的标准做法(ExBody、HOVER、BeyondMimic 全部这么做)。

演化谱系

  • 建立在:ACT / ALOHA(action chunking + transformer BC)、AMASS(人类动捕数据集)、WHAM(单 RGB 人体姿态估计)、HaMeR(手部估计)、PPO。
  • 同期:OmniH2O(teleop 路线对照)、ExBody(AMASS 训 humanoid 低层)。
  • 直接引出:HOVER(多模式统一)、BeyondMimic(可扩展 tracking + diffusion)、HumanoidVLA、GR00T N1(一个模型多技能)。

副产品·image-feature auxiliary loss:这个看似简单的 trick 解决了 BC 过拟合 proprioception 的通病。📎

后续被多种 VLA 借鉴。

另一个副产品是"AMASS + PPO 训低层 transformer WBC"的范式——后续 humanoid RL 全部沿用。

Open problems

  1. one model many skills:HumanPlus 6 个任务 6 个 HIT policy。

统一架构(GR00T N1 / π0 / BFM 路线)仍在解决。

  1. 长程任务鲁棒性:Wear-a-Shoe 仅 60%。

单步失败整个 episode 失败,需要错误恢复机制。

  1. 手部 policy:hand 直接 passthrough 是阶段性妥协。

学习式 hand policy(尤其接触丰富场景)仍开放。

  1. 单目 vs 双目:单目掉点说明深度感知是硬需求。

如何用单目达到双目性能是开放问题。

常见误区

"HST 是高层策略" —— 错。

HST 是低层 whole-body controller(运动跟踪)。

HIT 才是高层技能学习策略(看图、决策)。

HST = 脊髓反射,HIT = 大脑皮层。📎

"HIT 只要图像加动作对就能训好" —— 错。

这样训会过拟合 proprioception。

到关键步骤(如抓鞋)就抓空。

必须加 image-feature 辅助损失强制 transformer 用图像。📎

"手部也走 HST" —— 错。

HST 只控 body 19 DoF。

手部目标直接 passthrough 到 PD 控制器,不经 policy。

所以碰到手的复杂接触无稳健性保障。📎

"HIT 输出 50 步动作,所以它每步都重新预测" —— 错。

HIT 25 Hz 异步把 50 步 chunk 喂给 HST(50 Hz)。

HST 在 chunk 内逐帧跟踪。

这是 action chunking 思路,减少高频决策。📎

"HumanPlus 用了多相机阵列" —— 错。

shadowing 只用单 RGB 相机(WHAM)。

HIT 训练用双目(egocentric),这是不同的阶段。

shadowing 单相机是成本 50 美元的关键。📎

检查点

Q1

HumanPlus 用两个 transformer。HST 和 HIT 各管什么?哪一个在仿真里训、哪一个从真机遥操数据训?

💡 参考答案

  • 分工:HST 是低层 whole-body controller,管运动跟踪(怎么动得稳);HIT 是高层技能学习策略,管看图想下一步。
  • 训练来源:HST 在仿真里用 PPO + AMASS 数据训;HIT 从真机 shadowing(遥操)采的数据做行为克隆(BC)。
  • 部署链路:HIT 25 Hz 输出 50 步目标姿态 chunk,异步喂给 HST 50 Hz;HST 输出 19 维关节目标到 PD。
Q2

HIT 训练时除了预测 50 步目标姿态,还要预测什么东西?为什么必须加这个辅助任务?

💡 参考答案

  • 辅助任务:在对应 input position 预测未来 image feature tokens,用 ground-truth 未来 image feature 做 L2 监督。
  • 原因:BC 容易过拟合 proprioception——只看关节角就能降训练 loss,导致策略'看不见'图像。
  • 没有它:ACT baseline 在穿鞋任务上反复抓空(Pick up Shoe 之后抓不到),直接 0% 成功率;加它 HIT 到 60%。
Q3

用"学开车——先影子驾驶、再独立上路"或自己举的类比,用自己的话解释 HumanPlus 的两阶段(shadowing + imitation)。

💡 参考答案

  • 影子驾驶阶段(shadowing):人做动作,单 RGB 相机实时估人体+手部姿态,重定向成机器人目标姿态喂给 HST;机器人跟着人动,记录轨迹。
  • 独立上路阶段(imitation):从遥操轨迹训 HIT,让它从双目图像自主输出 50 步动作 chunk;HIT 真正'看图做任务'。
  • 关键映射:影子驾驶 = 教练带教(采集示范数据),独立上路 = HIT 自主决策;image-feature 辅助损失 = 教练逼你'边开边描述路况',防止你只记方向盘角度不看路。
Q4

HumanPlus 的 BC 策略不加辅助损失时,会过拟合什么信号?这种现象在穿鞋任务上具体表现为什么?

💡 参考答案

  • 过拟合信号:proprioception(关节角、关节速度等机器人自身状态)。策略发现只看这些就能降训练 loss,于是忽略图像。
  • 穿鞋任务上的具体表现:Pick up Shoe 之后机器人反复抓空(看不到鞋的当前位置),任务直接失败。
  • 对照数据:ACT baseline(无辅助损失)穿鞋任务 0%;HIT(加辅助损失)60%。
Q5

HumanPlus 用单 RGB 相机做 shadowing。手部姿态估计(10 Hz)比身体(25 Hz)慢,这意味着什么?

💡 参考答案

  • 意味:手部目标更新慢于身体目标,高频手指任务(弹琴、快抓)受限。
  • 原因:HaMeR(手部估计)比 WHAM(身体估计)慢——手部更精细、更难实时估。
  • 工程妥协:实际 shadowing 时手部目标会插值/降频;这是为什么 HumanPlus 没展示弹琴这类高频手指任务。

FAQ

Q1:HumanPlus 能直接装到我自己的机器人上吗?

不能直接装。开源的是 MarkFzp/humanplus 训练代码。🌐需要论文那套硬件:Unitree H1 机身 + 双臂 Inspire-Robots RH56DFX 手 + 自定义 wrist(合起来即 33 DoF:19 body + 2×6 hand + 2 wrist)+ 双目 RGB + AMASS 数据库。

Q2:HST 真的需要 transformer 吗?MLP 行不行?

HST 是 decoder-only transformer,context length 8。

transformer 的好处是时序建模比纯 MLP 强。

但 HST 不算大(论文未给层数)。

后续工作(HOVER)用 MLP 也跑通——所以 HST 用 transformer 不是必需,是当时工程选择。[未确认]

Q3:为什么 HIT 预测未来 image feature,部署时却丢弃?

预测 image feature 是辅助任务。

目的是逼 transformer 学会用图像、不只过拟合 proprioception。

部署时不需要预测图像(自回归生成图像太贵且不必要)。

只用 predicted target poses 喂 HST。📎

Q4:单目和双目差多少?

Wear-a-Shoe 任务上:Monocular HIT 直接 0%,HIT(双目)60%。📎

深度感知是硬需求。

Fold Clothes 时单目还会撞桌——没深度信息。

Q5:训练需要多少算力?

HST 在 IsaacGym 用 PPO 训练(论文未明说但开源代码用 IsaacGym)。

RTX 4090 级 GPU 跑 shadowing 实时(WHAM 25 fps + HaMeR 10 fps)。

HIT 训练规模论文未明示。📎