2. LeRobot基础认知

在正式进入数据采集与数据集构建之前,必须先建立对 LeRobot 的整体认知。LeRobot 是 Hugging Face 推出的开源机器人学习框架,目标是把“数据集、模型、仿真环境、真实硬件、训练与部署”统一到一套 Python 接口中。它并不是一个单独的算法,而是一个围绕“机器人学习工作流”构建的生态层:向下连接电机、相机、遥操作设备,向上连接策略模型、数据集仓库与可视化工具。理解它的核心概念与模块划分,能帮助我们在后续采集数据时明确每一步的数据流向与格式要求。

核心概念:从观测到动作的闭环

LeRobot 的核心抽象可以概括为四个关键词:Observation(观测)、Action(动作)、Episode(回合)、Dataset(数据集)。机器人通过相机、关节编码器等传感器获得观测;策略或人类遥操作产生动作指令;一次从初始状态到终止状态的连续交互构成一个 Episode;多个 Episode 按统一 schema 组织后形成 Dataset。LeRobot 使用 LeRobotDataset 作为标准数据容器,底层通常采用 Parquet 存储帧级数据、MP4 存储视频流,并通过 meta 目录记录特征定义、统计量与任务描述。

LeRobot 的关键设计哲学是“数据格式先行”:只要数据符合 LeRobotDataset 规范,就可以直接用于训练 ACT、Diffusion Policy、TDMPC 等策略,而不需要为每个模型单独写数据加载器。

主要模块:一条完整的学习流水线

LeRobot 的代码仓库按功能划分为若干模块,理解它们之间的依赖关系,有助于在采集与训练时快速定位问题。下图展示了从硬件到数据、再到模型与部署的模块关系。

LeRobot 模块关系与数据流 硬件层 SO-100 / SO-101 Koch / ALOHA / 相机 遥操作与采集 teleoperate / record 主从臂映射、回放 数据集层 LeRobotDataset Parquet + MP4 + meta Hub 仓库 上传 / 版本 共享与复现 策略模型 ACT / Diffusion Policy TDMPC / VQ-BeT 训练与评估 train.py / eval WandB 日志、检查点 仿真环境 Gymnasium / MuJoCo Aloha / PushT 部署 实机推理 异步控制 典型数据流 ① 遥操作采集 → ② 写入 LeRobotDataset(帧、动作、视频、任务) → ③ 上传 Hub → ④ 训练策略 → ⑤ 仿真/实机评估 → ⑥ 回放与复盘 关键约束:所有 Episode 必须共享同一 features schema;相机键名、关节维度、控制频率需在采集前固定。

从图中可以看到,LeRobot 的模块不是孤立的:硬件层通过遥操作产生原始轨迹,采集脚本将其规范化为数据集,数据集既可上传 Hub 共享,也可直接喂给训练模块;训练出的策略再回到仿真或实机部署,形成闭环。对于数据采集课程而言,最重要的两个模块是 lerobot/record 与 LeRobotDataset,前者决定“怎么采”,后者决定“存成什么”。

支持硬件与软件生态

LeRobot 官方与社区支持多种低成本硬件平台,常见组合如下表所示。选择硬件时,需要同时考虑自由度、控制频率、相机数量与遥操作方式。

硬件平台 典型自由度 遥操作方式 适用场景
SO-100 / SO-101 6 DoF 机械臂 主从臂 leader-follower 抓取、放置、桌面操作入门
Koch v1.1 6 DoF 主从臂 + 舵机 低成本教学与算法验证
ALOHA / Mobile ALOHA 双臂 14 DoF 双臂主从遥操作 精细双臂协作、移动操作
Reachy 2 双臂 + 头部 VR / 遥操作 人机交互、服务机器人研究

软件生态方面,LeRobot 建立在 PyTorch、Hugging Face Datasets、Hub、Gymnasium、MuJoCo、FFmpeg 等成熟组件之上。它通过 lerobot CLI 提供统一入口,例如查看可用命令、采集数据、训练模型:

# 安装 LeRobot
pip install lerobot

# 查看命令
lerobot --help

# 采集一个 SO-100 数据集
lerobot record \
  --robot.type=so100 \
  --dataset.repo_id=my_user/pick_place \
  --dataset.num_episodes=20 \
  --dataset.fps=30

典型应用场景与常见误区

LeRobot 的典型应用场景包括:桌面抓取与放置、双臂协作、移动操作、仿真基准测试(如 PushT、Aloha 环境)以及模仿学习算法对比。对数据采集课程来说,最直接的应用是“用遥操作采集人类演示,训练 ACT 或 Diffusion Policy,再部署回实机”。

建议在正式采集前先跑通一次 1 个 Episode 的最小闭环:采集 → 本地可视化 → 训练 1 个 epoch → 回放。这样能尽早发现相机键名、关节顺序、fps 不一致等问题。
常见误区一:把不同硬件、不同相机布局的数据混在同一个数据集中,导致 features schema 冲突。误区二:采集时频繁改变 fps 或分辨率,使视频与帧级动作时间戳错位。误区三:只关注 Episode 数量,忽略任务描述与语言标注,导致后续无法做语言条件策略训练。