1. 课程导入
在具身智能与机器人学习领域,数据质量往往比算法本身更能决定最终效果。LeRobot 作为面向真实机器人学习与部署的开源框架,把遥操作(Teleoperation)与示教采集(Demonstration Collection)放在整条流水线的起点:人类通过主端设备操控从端机器人完成任务,系统同步记录多模态观测与动作,形成可训练的数据集。本课程围绕这条主线展开,帮助你从零建立可复现的采集能力。
一、核心概念:从人类动作到机器人策略
遥操作的本质是动作映射:操作者移动主端设备(如手柄、主臂、VR 控制器),系统将主端位姿或关节量映射为从端机器人的目标动作,再由底层控制器执行。示教采集则在此基础上增加同步记录:每一帧都保存观测(相机图像、关节状态)与动作(目标关节位置或末端位姿),并附带时间戳与任务元信息。
LeRobot 的数据集通常以 episode 为单位组织。一个 episode 对应一次完整任务演示,例如“把方块放进盒子”。episode 内部由若干 frame 组成,frame 是观测与动作的最小对齐单元。理解 episode、frame、feature 三层结构,是后续所有操作的基础。
- Observation(观测):相机图像、关节位置、夹爪状态等环境信息。
- Action(动作):机器人下一步应执行的目标值,是策略学习的监督信号。
- Feature(特征):数据集 schema 中对每个字段的名称、形状、类型的声明。
- FPS(帧率):采集频率,直接影响数据量与动作平滑度。
二、整体框架:LeRobot 数据闭环
下图展示从主端输入到策略部署的完整信号链。左侧是遥操作与采集阶段,右侧是训练与推理阶段,中间通过数据集格式衔接。请重点观察数据流方向与各模块的职责边界。
三、方法流程:一次完整示教采集
下面给出标准采集流程,建议按顺序执行,避免边采边改配置导致数据不一致。
- 环境准备:连接主端与从端设备,确认串口、相机、电源与急停可用。
- 配置校准:设置主从映射关系、关节零位、相机内外参与 FPS。
- 试采验证:录制 1 个短 episode,检查图像、关节、动作是否同步。
- 正式采集:按任务脚本重复演示,保持动作自然、节奏稳定。
- 数据校验:检查帧数、丢帧、时间戳单调性与 episode 完整性。
- 导出与版本管理:固定数据集版本,记录采集参数与任务描述。
# 典型采集配置片段(示意)
dataset:
repo_id: local/lerobot_pick_place
fps: 30
episode_time_s: 20
num_episodes: 50
features:
observation.images.top: {dtype: video, shape: [3, 480, 640]}
observation.state: {dtype: float32, shape: [6]}
action: {dtype: float32, shape: [6]}
四、案例场景与常见误区
以“桌面抓取放置”为例:操作者通过主臂控制从端机械臂接近方块,闭合夹爪,移动到目标区域后松开。采集系统以 30 FPS 记录顶部相机图像、6 维关节状态与 6 维目标动作。若采集顺利,50 个 episode 即可支撑一次 ACT 策略训练。
| 环节 | 关键检查项 | 常见问题 |
|---|---|---|
| 设备连接 | 串口、相机索引、急停 | 设备名漂移导致连错 |
| 映射校准 | 主从方向、零位、比例 | 方向反了或抖动明显 |
| 采集过程 | FPS 稳定、动作连贯 | 丢帧、动作忽快忽慢 |
| 数据校验 | 帧数一致、时间戳单调 | 图像与动作错位 |
| 版本管理 | 参数与任务描述固定 | 多次采集混用同一版本 |
本课程后续将沿着“环境搭建 → 遥操作映射 → 示教采集 → 数据校验 → 训练衔接”的路线逐步展开。你现在需要建立的认知是:遥操作解决“怎么控”,示教采集解决“怎么记”,两者共同决定数据集的上限,而数据集上限决定策略上限。