HumanoidMimicGen:1 段人类演示 → 1000 段人形机器人数据
🎯 为什么重要:VLA 时代的人形机器人,卡在「没数据」
VLA 模型(RT-1/2、π0、GR00T)让桌面机械臂已经能听懂人话做活,但放到人形机器人上就卡死在数据采集这一步:
① 自由度高(腿 + 躯干 + 双臂 + 双手),遥操作要求操作员同步控制全身;
② 平衡本身就是一个 RL 级别难问题,操作员稍不留神机器人就摔倒;
③ 既有数据生成工具(MimicGen、DexMimicGen)都假设「每条腿独立稳定地控制末端执行器」——这条假设对人形直接失效。
所以领域里出现了一个尴尬的鸿沟:VLA 模型越做越大,但人形机器人的训练数据增长跟不上。HumanoidMimicGen 就是来填这条鸿沟的。
💡 核心思想:把人形机器人拆成「会走的部分」+「能抓的部分」
既有 MimicGen 系列对人形失效的根因,是腿不能像手臂那样独立做任务空间控制——腿得随时维持平衡。HumanoidMimicGen 给出的关键 insight 是:分而治之。把人形的动作空间拆成「下半身(RL 控)」+「上半身(规划控)」,再把任务拆成「走过去(locomotion)」+「站着抓(manipulation)」两个阶段。
具体怎么把 1 段演示「重放到新场景」?靠一个漂亮的几何不变式:把原演示的末端轨迹表示成「相对于物体坐标系」的位姿。新场景中只要物体摆在新位置 $s'[f]$,就把整段轨迹按 $s'[f] \cdot s_0[f]^{-1}$ 这个体变换「平移过去」。这就是 MimicGen 系列的核心 trick,HumanoidMimicGen 在它上面加了「全身协调」这一层。
🛠️ 四个关键设计,让它真的能在人形上跑
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① 混合动作空间 | 下半身用 RL locomotion controller(Homie),输入骨盆速度;上半身用关节位置控制 | 腿不能像手臂那样做任务空间控制——必须随时保平衡。RL 学一个 locomotion policy 比手写控制稳得多 |
| ② 解耦规划(两阶段) | 每个技能拆成「走过去(locomotion)」+「站着抓(manipulation)」,中间设一个「切换配置」$q'$ | 动态稳定(走)和静态稳定(抓)的物理特性完全不同,分开规划才不会互相打架 |
| ③ 技能 DAG + 在线拓扑排序 | 把双臂技能表示成有向无环图:定义「先后」$\mathcal{P}$ 和「同时」$\mathcal{C}$ 约束,贪婪地选当前可执行技能 | 双臂任务(如双手抬箱)要求两只手同步或顺序;用 DAG 自动求解执行顺序 |
| ④ 运动噪声 + 初始位姿随机化 | rollout 时给动作加 $\epsilon \sim \mathcal{N}(0, \sigma^2 I)$,但 label 存原动作;同时随机初始基座位姿 | 让策略见到 off-nominal 状态但监督信号仍是「专家动作」——缩小 train/test gap |
你抓杯子时,脚是不能乱动的——否则手就够不准。但你走过去时,手也不能不动——否则平衡差。所以「走路时下半身忙、抓东西时上半身忙」是物理事实。HumanoidMimicGen 不是在玩工程 trick,而是在建模这个物理事实:用「切换点」$q'$ 做两阶段的交接。这一点和经典控制里的 hybrid zero dynamics 是同一种思路。
📊 关键结果:平均成功率 0.89,真机 +20%
| 数据来源(每个任务 1000 段) | 平均成功率(9 任务) | 说明 |
|---|---|---|
| 1 段人类演示 | 0.26 | 严重欠拟合 |
| 100 段人类演示 | 0.48 | 仍不足 |
| DexMimicGen+(基线) | 0.33 | 既有方法对人形失效 |
| HumanoidMimicGen(本文) | 0.89 | 从 1 段 → 1000 段,提升 +0.56 |
| 策略架构(同样数据) | 平均成功率 |
|---|---|
| Diffusion Policy | 0.51 |
| Flow Matching(AdaFlow) | 0.86 |
| VLA(GR00T N1.6 微调) | 0.89 |
| 真机任务(sim+real co-training) | 仅真机 | 混合训练 | 提升 |
|---|---|---|---|
| ThrowBottle | 0.60 | 0.75 | +0.15 |
| BoxToCart | 0.35 | 0.60 | +0.25 |
| PickCanister | 0.50 | 0.75 | +0.25 |
| PickCanisterWithObstruction | 0.60 | 0.75 | +0.15 |
| 平均 | 0.51 | 0.71 | +0.20 (+20%) |
· vs 100 段人类演示(0.89 vs 0.48):1 段人类 + 自动扩增,吊打 100 段纯人工;
· vs DexMimicGen+(0.89 vs 0.33):把 MimicGen 系列原封不动搬来是不够的,必须做「全身规划」这一层。
🌐 在领域中的位置
谱系很清晰:MimicGen 这条线一直在解决「怎么把少量演示变成大量数据」,每一代都在拓展可处理的机器人形态。HumanoidMimicGen 是这条线进入「人形时代」的里程碑——它把 RL locomotion policy 接进了数据生成管线,这意味着未来的人形 VLA 可能根本不需要大规模真机遥操作。同时它和 GR00T N1.6、π0 这一代 VLA 形成正反馈:VLA 越强 → 越需要数据 → HumanoidMimicGen 越有价值。
❓ 常见误区
HumanoidMimicGen 是一种新策略(policy)吗?
不是。它是一种数据生成方法——产出演示数据集,再拿去训练任意策略(论文里测了 VLA、Flow Matching、Diffusion Policy 三种)。策略架构是可插拔的。
那「1 段演示」真的就能跑通所有任务吗?
有前置条件:这 1 段演示要带技能标注(哪段是抓、哪段是放、用哪只手)和约束(先后/同时)。这是它的主要局限(论文 §7 自己也提了)——未来可能用 foundation model 自动标注。
为什么不直接在仿真里用 RL 训练 humanoid,而要走模仿学习?
论文明确说:「我们用模仿学习,以避免 reward 调参」。人形 loco-manipulation 的 reward 极难设计——既要走稳又要抓准,RL 奖励工程成本可能比采数据还高。模仿学习绕过了这个坑。
「1000× 放大」是不是有点夸张?
字面上确实是 1 → 1000,但要理解两点:① 这 1000 段不是「全新任务」,而是「同一任务的 1000 种物体位姿/初始位姿变体」;② 这是「数据扩增」而非「信息创造」——它把人脑里的「不变性」(相对物体的轨迹)显式化并批量应用。