71分钟遥操作数据,让Unitree G1学会把罐子放到白色桌上
π0.5 策略根据语言提示、机器人状态和相机观测,预测 SONIC 潜在运动标记;运行在 G1 上的快速控制器将这些标记解码为稳定的 29 自由度全身运动。
本文将展示如何在 LeRobot 中整合开源硬件、遥操作、数据集和策略学习,在 Unitree G1 上构建这一工作流。你将了解演示数据如何变成预测 SONIC 运动标记的 π0.5 策略,以及快速全身控制器如何将这些标记转化为机器人运动。最后,你还会了解 LeRobot 中更广泛的人形机器人生态。
为什么人形机器人需要不同的控制栈
LeRobot 是一个面向开源机器人学习的全栈 Python 库。早期的集成主要针对机械臂和移动操作平台,策略可以直接将动作块发送给执行器。相比之下,双足机器人必须在行走、伸展和应对扰动时持续保持平衡。仅靠 VLA(视觉-语言-动作)推理速度太慢,无法直接控制这些动态过程。因此,我们在学习策略和机器人之间加入了一个快速控制器:策略预测紧凑的运动标记,控制器将其转换为动力学上可行的关节目标。
从 OpenHLM 出发
我们的出发点是 OpenHLM(Open Humanoid Loco-Manipulation,开放人形机器人的移动操作)。在 OpenHLM 论文中,作者使用 Unitree G1 的全身演示数据训练 OpenPI 的 π0.5。该策略接收语言、相机观测和机器人状态,预测成段的 SONIC 潜在运动标记;SONIC 的解码器将这些标记转换为关节目标,由机器人底层 PD 控制器进行跟踪。换句话说,π0.5 学习任务级行为,SONIC 负责快速的全身执行。OpenHLM 论文还表明,利用相对较少的任务特定数据就可以学习到有用的移动操作行为:其基准测试中的性能在每项任务约 40 条演示时基本饱和。
我们采用同样的基本配方,但做了略微调整:
1. 采集全身遥操作演示数据。
2. 记录 SONIC 编码器输出的 64 维潜在动作表示,而不是机器人的关节目标。
3. 训练 VLA 预测这一潜在表示。
4. 让 SONIC 的解码器执行它。
物理 G1 硬件配置
我们为 Unitree G1 装配了夹爪、摄像头和额外的 CAN 硬件,其中大部分改编自 Unfolding Robotics 项目。首先,我们通过定制的 3D 打印转接件将 OpenArm 夹爪安装到 G1 的手腕上。
(OpenArm 夹爪与定制手腕转接件)
另外,我们使用打印的支架在 G1 头部安装了一个摄像头,为策略提供不依赖腕部摄像头的稳定第一人称视角。G1 背部的一个打印外壳容纳了 CAN-FD 转接器和额外的夹爪/摄像头线缆;其可拆卸面板让你无需拆开机器人就能访问接口。
(G1 背包外壳关闭(中)和打开(右))
可打印部件位于 lerobot/unitree-g1-hardware-modifications。
将人体运动转化为机器人动作
在遥操作过程中,操作员通过 VR 头显提供运动学参考:头与手腕的位姿,以及根据遥操作模式而定的脚踝位姿或导航指令——我们会在整个 episode 中按需切换模式。该参考运动被转换为 SMPL 格式,然后经过 SONIC 的编码器。
(VR 遥操作:操作员提供头部和手腕的运动,SONIC 负责补全身体其余部分。生成的潜在运动流成为模仿学习的动作目标。)
SONIC 是一个相对较小的自编码器(4200 万参数),使用来自 BONES-SEED 的超过 1 亿个运动帧(重定向到 Unitree G1)训练而成。其紧凑的体量使其能够直接在机器人上运行,而低延迟至关重要:观测与动作之间的延迟会使实际执行轨迹偏离预期轨迹。
在这种架构中,不同的运动来源——VR 位姿、参考关节、人体运动、视频运动或学习策略输出——都会被编码为共享的 64 维量化运动标记。解码器将该标记与短时间的本体感觉历史相结合,生成可执行的关节目标。
(SONIC 的通用控制策略架构。LeRobot 集成聚焦于机器人端的解码路径:调用者提供运动标记,控制器将其转换为可执行的 G1 运动。)
将 VLA 与控制器分离,意味着学习策略不必从相对较小的任务数据集中重新发现平衡和全身协调。
从演示数据到 VLA 策略
为了展示这条流水线,我们使用 nepyope/can_clean_final 训练了一个罐子抓取-放置策略。该数据集包含大约 100 个 episode(50 fps),约 71 分钟的全身遥操作数据。每个 episode 都使用语言指令“把罐子拿到白色桌子上”。
每个时间步都记录三个摄像头流,分辨率均为 480×640。状态是 31 维:29 个 G1 关节位置 + 2 个夹爪状态。动作是 66 维:64 维 SONIC 潜在量 + 2 个夹爪指令。
然后我们在 4×H100 GPU 上对 lerobot/pi05_base 进行 12,000 步的微调。最终策略发布为 nepyope/pi05-can-to-martino-12k。完整的训练和部署命令在文档中而不是这篇帖子中,请参阅“G1 训练与推理”以获取可复现的工作流。
ViBE 和 Depth Dodge
如果不需要 VLA 呢?在这个实验中,我们尝试复现 ViBE 和 ORCS 的结果:在 mjlab 中,使用 PPO 在 SONIC 之上训练一个 LoRA 适配器,目标是利用头部摄像头的深度数据和自身身体状态来躲避抛来的球。
架构概览:头部摄像头深度经过冻结的 Theia-Tiny 和 16 帧时间适配器,形成 128 维视觉摘要。七个 LoRA 适配器将摘要连同 G1 身体状态送入 SONIC,输出关节目标。
视觉路径使用冻结的 Theia-Tiny——一个面向机器人学习的小型视觉基础模型,从多个现成视觉基础模型中蒸馏而来。一个紧凑的可学习时间适配器将 16 帧深度相机画面(约 0.6 秒)总结为 128 维向量。七个低秩适配器让 SONIC 将该向量与机器人当前状态结合,生成关节目标。训练时,一个辅助目标要求感知模块预测球的位置和速度。在仿真中,这一视觉信号至关重要:仅靠奖励的 PPO 无法可靠地学会躲避。在部署阶段,G1 直接使用头部相机深度,如上图所示。
在一次三随机种子仿真评估中,发布的深度策略躲过了 79.1% 的可判定的投球。相同策略在深度输入为空白时躲过 0%,而能访问仿真器真实球状态的特权 oracle 达到 97.4%。这是一个仿真结果,不是实测硬件成功率。该项目还包括一个物理 G1 部署视频片段。这是硬件演示而不是受控评估,且片段未指明具体的检查点或相机设置。实现、部署说明和权重发布在这里。
不止一个全身控制器
在 LeRobot 中,你还可以使用 NVIDIA GR00T-WholeBodyControl 和 Amazon FAR Holosoma 来控制 G1。要比较它们,可以查看这个 space。更广泛地,我们支持:
- 数据集可视化。在 LeRobot 可视化工具中回放 G1 URDF,因此机器人运动也可以进行可视化检查。
- 完整本体感觉状态。该接口暴露关节位置和速度、IMU 数据、估计的关节力矩和电机温度。
- 手臂正逆运动学。G1 手臂的运动学和逆运动学可以将末端执行器目标映射为关节目标。
- 重力补偿。该接口支持上半身关节的重力补偿。
- MuJoCo 仿真。相同的 Unitree G1 接口可以连接到打包的 MuJoCo 环境,从而在物理机器人上运行之前,先在仿真中演练控制器和遥操作代码。
Unitree G1 文档包含这些工作流的设置和命令。
LeRobot 开源人形机器人硬件
多年来,我们还开源了几款人形机器人硬件。
Homunculus 手套直接测量手指关节运动,用于记录灵巧操作数据集和进行遥操作。最新的开源硬件版本包含一块定制的 ESP32-C3 板,它通过多路复用器读取 16 个 SS49E 霍尔效应传感器;同时还提供固件、KiCad PCB 设计、可打印部件、URDF 模型和交互式查看器。材料成本不到 20 美元,并包含交互式 3D 装配指南。
该手套也已集成到 LeRobot,作为 HomunculusGlove 遥操作器:它读取串口传感器流、引导每个手指的活动范围校准,并将手套运动映射到 HOPE-Jr 手上。这为构建者提供了一条低成本路径:从可穿戴输入设备到机器人手,再到 LeRobot 遥操作工作流。
后来,我们将这一想法扩展为用于手臂遥操作的 Homunculus 外骨骼。与仅从少数几个跟踪点重建操作员运动不同,外骨骼直接测量关节运动并将其重定向到机器人。
一个公开示例是 nepyope/unitree_box_move_blue_full,包含 550 个 episode 和大约 47.5 万帧 G1 遥操作数据。
这些硬件都是开源的。固件、PCB 文件、STEP/STL 几何文件和 URDF 描述可在以下位置获取:
- nepyope/Project Homunculus
- TheRobotStudio/HOPEJr
关于 LeRobot 校准和数据采集工作流,请参阅 Homunculus loco-manipulation 文档。
(SeedStudio 的 HopeJr 演示)
这些设备最初是为了驱动 HOPEJr 而构建的。HOPEJr 是 TheRobotStudio 最初设计的开源 DIY 人形机械臂。它是一个全身人形机器人,具有灵巧的腱驱动手,由 3D 打印部件和现成舵机组成。与 LeRobot 集成的臂和手部分单独成本约为 500 欧元。
(LeRobot Humanoid)
在运动能力方面,Virgile Batto 构建了 LeRobot Humanoid,一个完全 3D 打印的 12 自由度双足机器人(每条腿 6 个自由度),由 RobStride CAN-FD 执行器和 Raspberry Pi 5 驱动,BOM 约为 2,500 美元。该项目还公开发布了 Onshape CAD、BOM、接线图、装配文档、电机调试工具、MuJoCo 仿真、校准、安全工具等开源资源。
Hub 上的人形机器人数据集
HIW-500 是其中一个最大的示例:包含 500 多个小时、23K 个 episode,在 12 个真实家庭中采集的 Unitree G1 遥操作数据。
其他全身数据集包括 Unitree 的 UnifoLM-WBT 数据集和 OpenHLM 的 HLM-12 基准。
eidon-ai/tracker-pov 包含 1,274 小时的第一人称视频,配以 7 点 IMU 手臂跟踪,在普通家务劳动中录制。
例如,EgoHumanoid 将 G1 演示与无机器人的第一人称人体数据(通过 VR 头显和头戴相机采集)相结合,并将两者对齐到统一的训练接口。
BONES-SEED 是 SONIC 背后的语料库,包含超过 14.2 万个带注释的人体运动(约 288 小时),其中包括 Unitree G1 重定向数据。
其他示例包括 OMG-Data(约 79.8 万个 G1 运动 episode)和 NVIDIA 的 GRAIL,以及更多。
LeRobot 中人形机器人的下一步
我们的目标是连接所有现存的用于人形机器人的开源工具、模型和数据,使它们能够协同工作,从而促进社区发展,让研究人员和 AI 能把更多时间花在机器人学习上,而不是重建周边技术栈。
接下来,我们将支持 Menlo Research 的开源人形机器人 ASIMOV。
现在就上手 LeRobot 吧。
—— LeRobot 团队 ❤️