2. LeRobot基础认知
在正式进入数据采集与数据集构建之前,必须先建立对 LeRobot 的整体认知。LeRobot 是 Hugging Face 推出的开源机器人学习框架,目标是把“数据集、模型、仿真环境、真实硬件、训练与部署”统一到一套 Python 接口中。它并不是一个单独的算法,而是一个围绕“机器人学习工作流”构建的生态层:向下连接电机、相机、遥操作设备,向上连接策略模型、数据集仓库与可视化工具。理解它的核心概念与模块划分,能帮助我们在后续采集数据时明确每一步的数据流向与格式要求。
核心概念:从观测到动作的闭环
LeRobot 的核心抽象可以概括为四个关键词:Observation(观测)、Action(动作)、Episode(回合)、Dataset(数据集)。机器人通过相机、关节编码器等传感器获得观测;策略或人类遥操作产生动作指令;一次从初始状态到终止状态的连续交互构成一个 Episode;多个 Episode 按统一 schema 组织后形成 Dataset。LeRobot 使用 LeRobotDataset 作为标准数据容器,底层通常采用 Parquet 存储帧级数据、MP4 存储视频流,并通过 meta 目录记录特征定义、统计量与任务描述。
LeRobotDataset 规范,就可以直接用于训练 ACT、Diffusion Policy、TDMPC 等策略,而不需要为每个模型单独写数据加载器。
主要模块:一条完整的学习流水线
LeRobot 的代码仓库按功能划分为若干模块,理解它们之间的依赖关系,有助于在采集与训练时快速定位问题。下图展示了从硬件到数据、再到模型与部署的模块关系。
从图中可以看到,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,再部署回实机”。