PAPER DEEP DIVE
LEGS:无需遥操作的仿人操作策略微调
LEGS 用网格前景与三维高斯泼溅背景合成人形全身操作数据,并以运动基元自动生成演示。实验显示其训练策略在 Unitree G1 上匹敌或超过人工遥操作数据,跨场景泛化成本更低。
论文精读
LEGS 不采集人类遥操作演示,而是把 MuJoCo 物理前景与照片级 3DGS 背景合成起来,用程序化运动基元生成带标注的人形全身操作数据。在 Unitree G1 的三个任务和三个 VLA 骨干上,纯合成数据达到或超过 50 条遥操作数据的表现,并在外观变化下把重采数据成本降到约原来的十五分之一。
研究背景与动机
人形机器人之所以有长期吸引力,是因为它复用人类环境的尺寸、门洞、桌台、楼梯与工具。可一旦把这个观察落到策略训练,代价马上显形:适配一个特定机器人需要覆盖移动和操作的微调数据,遥操作把数据产量绑在操作员与机器人在线时间上,操作员疲劳还会让成本随时间非线性上升。
论文把数据来源分成三类。遥操作要求现场控制机器人;人类演示重定向不需要机器人,却仍要按场景采集第一视角;合成仿真可以并行生成,但普通网格渲染带来的视觉域差距让策略难以零样本迁移。LEGS 要解决的正是第三条路径。
单纯用 SAM3D 把场景重建成网格并不能解决问题。重建网格会带来材质反射错误、简化光照、几何粗糙和走样,这些误差集中在第一视角图像的高频区域,恰是 VLA 视觉编码器最敏感的地方。作者认为差距不来自“有没有仿真”,而来自渲染器是否以目标场景的真实照片为监督。
LEGS 的答案是把 MuJoCo 提供的物理保真和 3DGS 提供的外观保真拆开。3DGS 背景只在静态场景上优化真实照片的重建误差,机器人、可抓物体和道具作为动态前景仍由网格承载,既保住碰撞和接触,又让外观接近真实相机。
更重要的是,作者希望数据外观和运动解耦。这样一次运动流可以换背景、换物体、换提示词重渲,新增外观条件不需要再让操作员进现场。这个设计与后面 15 倍成本优势直接相关。
LEGS 框架
LEGS 有两个核心解耦。第一,物理与渲染解耦:MuJoCo 在 500 Hz 处理动力学,低层控制器输出全身协调动作;渲染前端只在需要观测时生成图像。第二,静态背景与动态前景解耦:3DGS 提供固定场景外观,网格承载运动,每帧按深度测试合成。
视觉前端
每个场景用约 1 到 2 分钟手持视频拍摄,先通过 COLMAP 得到相机位姿,再优化 3DGS。因为优化目标就是真实照片的重建误差,新视角合成保留目标场景的光照、材质和纹理。前景网格来自机器人 URDF 和 SAM3D 从单张手持图重建出的物体与道具。
渲染时要解决三套颜色空间的差异:iPhone ISP 产生的 3DGS 背景、SAM3D 回归的网格反照率、以及部署端 Intel RealSense D435 的 ISP。LEGS 先关闭两台相机的自动曝光和自动白平衡,保证映射关系稳定,然后执行两阶段校准。
第一级公式把部署相机像素近似写成全局校正矩阵与深度合成结果的作用:
$$c_d \approx M\,[R(c_m)\sqcup c_b],$$
其中 $c_m$ 是网格顶点色,$c_b$ 是 3DGS 背景像素,$c_d$ 是部署相机像素,$R(\cdot)$ 是每个网格在线性 RGB 中的对角缩放,$\sqcup$ 表示深度测试合成,$M\in\mathbb{R}^{3\times 3}$ 是全局颜色校正矩阵。
$R$ 的每个通道由网格渲染统计和源照片掩码统计的均值比得到:
$$s^{(c)}=\mathrm{clip}\!\left(\frac{\mu_T^{(c)}}{\mu_S^{(c)}},\;0.5,\;3.0\right).$$
这里 $\mu_S^{(c)}$ 是 PBR 渲染下 $\alpha>200$ 像素的线性 RGB 通道均值,$\mu_T^{(c)}$ 是 SAM2 掩码内源照片的对应均值。裁剪到 0.5 到 3.0 可以避免一次糟糕反照率估计把网格颜色拉坏。$R$ 只改颜色不改几何。
第二阶段把所有资产统一到 iPhone 颜色空间后,用 24 色卡求 RealSense 与 iPhone 的线性颜色映射。设 $P,Q\in\mathbb{R}^{24\times 3}$ 分别是两个相机拍摄色卡的线性 RGB 矩阵:
$$M^\star=\arg\min_M\|P-QM\|_F^2=(Q^\top Q)^{-1}Q^\top P.$$
渲染时逐帧先线性化、乘以 $M^\star$、裁剪到 $[0,1]$、再转回 sRGB。在整帧层面应用矩阵而不是逐物体应用,可以避免前景和背景边界出现颜色接缝。这一流程是确定性的,不依赖每次部署再拟合网络。
物理后端与命令接口
物理后端在 500 Hz 运行 MuJoCo。物体碰撞体由 CoACD 分解,静态背景碰撞网格与 3DGS 场景对齐,机器人使用 Unitree G1 URDF。低层控制器用 SONIC,其策略同时在仿真和真机上运行。
SONIC 的接口是 18 维命令。上半身每臂 7 维:6 维腕部 $\mathrm{SE}(3)$ 位姿加 1 维连续抓握标量,两臂共 14 维;底部再加 4 维全身运动命令 $(v_x,v_y,\omega_z,h)$。可以写成:
$$u_t=\big[q_t^L,q_t^R,g_t^L,g_t^R,v_{x,t},v_{y,t},\omega_{z,t},h_t\big]\in\mathbb{R}^{18}.$$
仿真和真机共用同一 SONIC 二进制与动作空间,微调得到的 VLA 不需要控制器层面的包装器改动。这是本文能做跨 VLA 比较的关键:三个骨干看到同一接口,只在数据来源上不同。
程序化演示生成
每个 pick-and-place 任务分解为 Walk、Pick、Place 三个高层运动,它们再由 Align、Approach、Reach、Close、VerifyHold 等基元组成。基元参数写在场景层,例如目标位姿、物体身份和用哪只手;同一任务计划在不同初始条件下展开成不同有效轨迹。
Pick 会先用 Stand/Squat 调整骨盆高度,再由 Reach 插值末端执行器到初始位姿。随后 Adapt 原语利用仿真内的特权信号比较命令腕位与实际腕位并修正抓取位姿;失败后可以退回重新 Reach 和 Adapt。Place 的 VerifyPlace 和 Pick 的 VerifyHold 都要在成功后才会把 episode 写入数据集。
随机化覆盖物体位置 $\pm5$ cm、物体朝向 $\pm180^\circ$、机器人朝向 $\pm10^\circ$,移动任务再加机器人基座 $\pm10$ cm。失败 episode 被丢弃,不进入 200 条演示预算,因此训练集不包含被验证否定的抓取轨迹。
被记录的是 18 维命令流,而不是绑定某个渲染器的像素。因此同一运动数据在换背景、换物体或换提示词时可以重渲;这一解耦也使外观增强在逻辑上与运动增强分开。
下面的流程对应论文 Figure 2 的真实管线:
flowchart LR A[Handheld scene video] --> B[COLMAP poses] A --> C[3DGS optimization] D[Single object photo] --> E[SAM3D meshes] E --> F[CoACD collision] B --> G[LEGS simulator] C --> G F --> G G --> H[MuJoCo physics at 500 Hz] G --> I[SONIC WBC] J[Scene-level task plan] --> K[Walk / Pick / Place primitives] K --> H H --> L[Verified 18-D command stream] L --> M[Mesh foreground depth composite] C --> M M --> N[Two-stage color calibration] N --> O[Synthetic RGB observations] O --> P[Fine-tune VLA] P --> Q[Unitree G1 deployment] L --> R[Swap background objects prompt] R --> M
实验结果
实验固定 Unitree G1、头戴 Intel RealSense D435、30 Hz RGB 输入和 SONIC 控制器,微调 $\psi_0$、$\pi_{0.5}$ 和 GR00T N1.6。三个任务从纯操作逐步加长到转身、跨桌、下蹲的全身链条:Task 1 只要求把橙子放到盘子上,Task 2 加步行,Task 3 要求拿起橙子后右转、走向低桌、下蹲放置。每个数据条件、骨干和任务做 10 次真机试验,共 1,110 次。
下表汇总论文 Table 2 的 end task success:
| 数据条件 | Task 1 平均 | Task 2 平均 | Task 3 平均 | 关键结果 |
|---|---|---|---|---|
| Teleop (50) | 4.7/10 | 2.7/10 | 0/10 | Task 3 全骨干 0/10 |
| SAM3D (200) | 4.7/10 | 4.0/10 | 1.3/10 | 每个实验都低于 LEGS (200) |
| LEGS (50) | 7.3/10 | 6.3/10 | 3.0/10 | 预算匹配下仍全部匹配或超过遥操作 |
| LEGS (200) | 8.3/10 | 7.3/10 | 4.3/10 | 九个骨干-任务组合全部最好或并列最好 |
展开到骨干,最困难任务更能暴露差异:
| Task 3 | $\psi_0$ | $\pi_{0.5}$ | GR00T N1.6 | 含义 |
|---|---|---|---|---|
| Teleop (50) | 0/10 | 0/10 | 0/10 | 遥操作基线完全失效 |
| SAM3D (200) | 1/10 | 0/10 | 3/10 | 网格渲染仍有明显差距 |
| LEGS (50) | 3/10 | 1/10 | 5/10 | 不是 200 条数据的预算效应 |
| LEGS (200) | 5/10 | 2/10 | 6/10 | 纯合成数据在全身长程任务成功 |
预算匹配条件非常关键。LEGS (50) 与 Teleop (50) 演示数相同,却在每个实验上匹配或超过遥操作。LEGS (50) 到 LEGS (200) 的提升符合普通模仿学习的数据规模规律,但不足以解释 LEGS 对 SAM3D 的胜利。附录的 stage-wise 曲线显示,Walk 阶段各方法接近,差距主要出现在 Pick 和 Place;此时第一视角靠近物体,渲染保真度变得更重要。
渲染后端消融
SAM3D (200) 与 LEGS (200) 除了 3DGS 背景和颜色校准外完全相同:程序生成、MuJoCo、CoACD、SONIC、动作空间、随机化和 200 条预算都被固定。SAM3D 平均成功率 33%,LEGS 平均 67%,差距正好 33 个百分点。作者由此把主要归因放在渲染栈,而不是数据量或运动生成器。
渲染差距没有让所有阶段等量恶化。四类方法在 Walk 阶段表现接近,但 SAM3D 在 Pick 和 Place 上系统性落后。这说明视觉域差距并非抽象的“图像不像”,而是在需要判断接触、遮挡和物体边界的近距视角里变成决策误差。
外观重渲
作者用四个外观条件测试重渲:default、只换蓝桌的 scene、换苹果和盒子的 objects、以及同时换物体和场景的 objects + scene。LEGS-aug 将既有运动流重新渲染到新物体/背景并重新标注提示词;Teleop、SAM3D (50) 和 LEGS (50) 只在默认数据上训练。
无增强的三个 50 条基线在 objects 或 objects + scene 下几乎全部落到 0 或 1/10。LEGS-aug (200) 在最难的 objects + scene 下于 Task 1、2、3 分别达到 100%、80% 和 40%,SAM3D-aug 分别为 60%、50% 和 20%。重渲让策略适应新分布,照片级渲染让适应结果仍然准确。
LEGS-aug (50) 在 objects + scene 下达到 50%、40%、30%,而默认训练的 LEGS (200) 只有 0%、0%、10%。这里增强胜过四倍数据规模,因为缺的不是轨迹数量,而是“苹果”“盒子”和对应语言指令的观测覆盖。
成本上,为 Task 3 采 50 条遥操作要 1.5 操作员小时;LEGS 首次生成约 0.5 GPU 小时,新增一个外观条件约 0.1 GPU 小时。每个新外观条件成本约为遥操作的十五分之一,且 GPU 可并行。
局限
作者明确指出,LEGS 关闭自动曝光和白平衡,所以训练分布外的光照变化仍会造成敏感;新场景虽不用遥操作,却仍要 1 到 2 分钟手持视频。3DGS 对高反射或透明表面退化,并假设静态背景;动态人物或其他变化场景需要论文未实现的 dynamic 3DGS。
程序生成器关心可行性,不优化动力学效率,与轨迹优化或 MPC 类方法不同。实验只覆盖尺寸相近的小型可抓物体,没有测试大件或拓扑明显不同的类别。硬件上只评估 Unitree G1、RealSense D435 和 SONIC,没有证明跨人形平台泛化。
我的判断是还有三点工程边界。第一,验证 episode 丢弃策略意味着数据成功率高,但也会隐去生成器在困难目标附近的失败分布。第二,Adapt 使用仿真特权腕位差,说明数据虽免遥操作,但并非免仿真特权;目标几何估计不稳的物体可能放大误差。第三,代码页明确标注 coming soon,外部读者暂时无法复核 COLMAP、SAM3D、随机化和微调配置的全部细节。
总结
LEGS 的价值不在提出一个新 VLA,而是把人形操作数据生产拆成三件可分别处理的事:物理由 MuJoCo 和 SONIC 保证,外观由 3DGS 和两阶段颜色校准保证,运动由场景级基元程序生成。三者合起来让纯合成数据在真机上首次跨三个 VLA 稳定胜过遥操作基线。
这篇论文最有力的证据是消融结构:LEGS (50) 排除预算效应,SAM3D (200) 排除运动生成与物理栈效应,LEGS-aug 排除“只靠更多默认数据”的解释。它的限制也同样清晰——静态扫描、光照固定、小物体和单一平台。若代码发布,后续最值得验证的是更大物体集合、非固定光照与跨控制器移植。
“遥操作记录的是人对机器人的控制,LEGS 记录的是可被重新看见的运动;前者绑定一个场景,后者可以在不同世界间转移。”



