返回Learn

如何记录一个与LeRobot兼容的数据集

通过雷罗бот记录CLI捕获基于节目的游乐队 + 视频片段. 清洁数据集,HuggingFace Hub准备,在约2小时内,包括机器人设置.

勒罗бот是HuggingFace的开源机器人学习堆.其数据集格式已成为手臂规模模仿学习的默认格式:基于集,套餐+视频片段,自我描述的元数据,HuggingFaceHub本土.本教程通过使用T6 CLI从零开始记录一个清洁的50集数据集并发布它.

收集数据总时间:约2小时 难度:初学者 更新于2026年4月

你将实现什么

在本教程结束时,您将有:一个50集的乐罗伯特数据集在磁盘上,一个视觉检查通过,正常化统计数据,以及一个公开或私人数据集发表在 HuggingFace Hub.

勒罗波特数据集格式将每个集集作为一个组档中的一行范围,并包含在单独的MP4片段中存储的视频框架的联合状态,行动和参考.该格式旨在从Hub中高效地流动,清洁地加载到PyTorch DataLoaders,并通过JSON元数据文件进行自我描述.

条件

  • **一个LeRobot支持的机器人臂.**SO-100 / SO-101,OpenArm,Koch v1.1,Moss,Aloha,WidowX,UR系列 支持的列表定期增长.浏览 [机器人商店]T25) 查看选项.
  • 至少有一个相机. USB 网络摄像机或英特尔RealSense 手腕+上下是理想的.
  • Ubuntu 22.04工作站,使用Python 3.10+和 ffmpeg.
  • HuggingFace账户用于发布 (可选).
  • 如果您也需要一个电话设备,请参阅 [ALOHA电话教程]T26) 双手册或[学院]T27) 单臂的领导者跟随者指南.

步骤

  1. ###安装LeRobot

根据硬件类型,可选的附加设备:

```
conda create -n lerobot python=3.10 -y
conda activate lerobot
pip install --upgrade pip
pip install lerobot

# hardware-specific extras (pick yours)
pip install 'lerobot[feetech]'    # SO-100, Koch
pip install 'lerobot[dynamixel]'  # Aloha, WidowX
pip install 'lerobot[intelrealsense]'  # for RealSense cameras
```

查看安装: T7.查看上游的 github.com/huggingface/lerobot 查看目前支持的硬件矩阵 项目快速移动.

  1. 准你的手臂

每个支持的臂臂都有一个校准子指挥.

```
lerobot-calibrate \
  --robot.type=so100 \
  --robot.port=/dev/ttyACM0
```

通过此,可检测机器的身份,设置关节零位置,并将校准存储到T8.

  1. 检查摄像头和电话

通过电话视频进行直播预览,检查一切:

```
lerobot-teleoperate \
  --robot.type=so100 \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras='{"top": {"type":"opencv","index":0}, "wrist": {"type":"opencv","index":2}}' \
  --display_data=true
```

确认两部摄像头都在30FPS的流量,不撕裂,手臂轨迹清洁,预览窗口更新.如果手臂震动,首先检查USB电缆质量.

  1. 定义任务和指令

选择一个**** 精确定义的任务,为您的第一个数据集. "选择红立方体,将其放进蓝碗"每次比"用立方体做东西".您的自然语言指令将在每个集中被保存字面上,将是下游政策看到的唯一文本.

**提示:**保持任务成功标准是二进制的,并且可以从数据中观察到. "立方体在碗里"是明确的. "立方体在缓慢地放置"不是.

  1. 录制50集

现在主要事件. 记录50集的T9 CLI. 旗名称在发行之间稍微移动一般的调用模式是:

```
lerobot-record \
  --robot.type=so100 \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras='{"top": {"type":"opencv","index":0}, "wrist": {"type":"opencv","index":2}}' \
  --dataset.repo_id=<your-username>/red_cube_blue_bowl \
  --dataset.num_episodes=50 \
  --dataset.single_task="Pick the red cube and place it in the blue bowl." \
  --dataset.fps=30 \
  --dataset.episode_time_s=20
```

剧集之间,重置场景到稍微不同的初始配置变化立方体位置,碗位置,照明角度.这是训练有素的政策如何概括的最大因素.休息.经营者疲劳在30集后是真的;你认为的20个演示的质量比你更重要.

  1. ###检查数据集

通过内置的可视化器扫描节目:

```
lerobot-dataset-visualize --repo-id=<your-username>/red_cube_blue_bowl
```

监视:摄像头失效,关节中断,错过任务的事件,率变化.常见的智能检查:随着时间的推移,图片操作规范通常意味着电话器件.

  1. 放弃坏剧情和计算统计

删除数据集的重数据中失败或混乱的事件.LeRobot支持按事件索引过.清理后,重新计算正常化统计数据 (每行动的平均/STD和状态维度),以便下游训练使用正确的值.

  1. 推到拥抱面孔中心

T12 通过T12进行一次认证,然后按下. T13 CLI 支持自动上传;您也可以按下事实之后:

```
huggingface-cli upload <your-username>/red_cube_blue_bowl \
  ~/.cache/huggingface/lerobot/<your-username>/red_cube_blue_bowl \
  --repo-type=dataset
```

现在数据集是公开的 (或私人).你可以随地加载它T14. 训练一个基本的 ACT 政策一个命令验证如果 ACT可以在不到一个小时内容纳50个演示,你的数据集是健康的.

接下来要做什么?

一旦你有一个清洁的LeRobot数据集,两个高价值的后续: (1) 训练一个政策它 ACT是最容易的第一基线, (2) 细调OpenVLA 在数据集比较ACT基线.如果你正在扩大到认真的数据收集, ALOHA双手机电话 是硬件的下一步;对于人形,开始与 Unitree G1摄像头校准.

常见故障模式

** 剧情长度不同:** 预计 训练期间的乐罗托. 保持固定目标时间的录音,然后让框架处理长度差异.

** 大数据集尺寸:** LeRobot 视频片段编码为 H.264. 如果尺寸仍然是一个问题,则降至15FPS或480p,对于不需要更高分辨率的摄像头.

** 政策过度即时:** 收集过程中没有足够的场景变化.

**Hub上传失败:**通常存在 repo 或许可错误.先使用 T15创建 repo.

深度潜水:勒罗波特数据集格式

雷罗伯特数据集布局在磁盘上:包含T16,T17,T18,一个T19文件,每集都有一个片,以及一个T20文件,包含MP4片段. 子排列是每步的尺度和参考;MP4包含图像观测,通过框架指数引用.

这种设计是故意的:在公寓中的尺度器为批量数据加载提供快速的柱状访问,MP4则比每框图像文件提供更好的磁盘压缩,而不会牺牲随机访问.CRF 18编码的H.264几乎是无损的操作;CRF 23为您提供大约3倍的较小的文件,对大多数任务的政策培训没有明显的质量影响.

深度潜水:场景变化是唯一最大的质量

如果有2小时录制,请花30分钟的时间来规划场景变化,而不是90分钟的时间来录制基线剧集.

  • 物体姿势. 工作空间内的网格中至少有10个起始位置.
  • 照明. 光灯与温灯与自然窗 最低3个条件.
  • 没有干扰器的政策在你的工程办公室上有一杯咖啡时就会断裂.
  • 背景. 旋转在2或3个桌面表面或桌面盖上.
  • "选择红立方体,把它放进碗里" / "把红立方体放进蓝立方体" / "把红立方体移到碗里".每项任务的三个句子是最好的最小值.

沉浸深度:从录音到训练在一个下午

记录一个LeRobot数据集的全部目的是训练一个政策.一旦录制完成,基线配方是:T22.在单个GPU上,ACT政策适合大约45分钟到2小时的50集.你应该看到一个稳步减少的损失和行动空间错误.通过运行训练的检查点使用T23来评估真实机器人. 如果你的数据集是干净的,你应该看到70%+的成功训练任务50集,和85%+100集.

深度潜水:什么时候停止录音,开始训练

团队经常记录得多.正确的论:每25集后训练一个基线 ACT 政策,测量成功,并在成功曲线平坦时停止.你经常会在一个任务的80到150集中获得减少的回报.在一个不同任务上花费额外的录制时间,反而产生了更好的多任务政策.

常见问题

我可以用我自己的自定义机器人 LeRobot? 是的. 实现一个匹配 LeRobot T24接口的 Python 类 连接,断开,读关联位置,发送操作,读取摄像头框架.几百条通常.

** 典型的50集数据集的尺寸是多少?** 根据相机数量和分辨率大约为1到5GB.

我可以记录模拟数据吗 是的 LeRobot支持模拟环境 (ALOHA, PushT, Xarm).

** 关于超越关节角的自觉感知怎么办?** LeRobot支持任意状态维度.

相关教程和资源