返回Learn

如何收集机器人训练数据

通过电操作<unk>硬件设置,雷罗波特记录,RLDS格式,质量评分和数据集准备收集高质量的机器人训练数据的完整指南.

通过远程操作 硬件设置,雷罗бот录音,RLDS格式,质量评分和VLA细调数据集准备收集高质量的机器人训练数据的完整指南.

间接 24小时设置 更新于2026年4月

1.硬件 2.安装 3.配置 4.电话设置 5.记录 6.审查 7. RLDS转换 8.上传 9.质量检查 10.为VLA做准备

条件

  • 机器人手臂 (OpenArm,SO-100,Aloha,Koch,UR5或类似)
  • 至少有一台RGB相机 (最好安装在手腕上) +一个外部相机
  • 电操作输入设备 (领袖臂,SpaceMouse或键盘)
  • 安装ROS2 适合 ([参见我们的ROS2设置指南](T12))
  • 配合Python 3.10+
  • 乌布图22.04 配备NVIDIA GPU (可用于视觉化和未来培训)

你将建造什么

在本教程结束时,您将拥有完整的数据收集管道:电操作硬件配置,LeRobot记录您的机器人执行任务的事件,

数据收集管道

电话输入 领袖手臂 / 空间鼠标

其他

机器人手臂 联合国家+行动

其他

摄像头 腕 + 外部RGB(D)

其他

雷罗特 记录和同步

其他

关于RLDS数据集 拥抱面部中心

其他

硬件要求

您需要的内容和我们建议的选项:

Component Recommended Budget
Robot arm OpenArm ($2,400) or Aloha ($20K+) SO-100 ($200 DIY kit)
Wrist camera Intel RealSense D405 ($300) USB webcam ($30)
External camera Intel RealSense D435 ($350) Logitech C920 ($70)
Teleop device Leader arm (matched pair) 3Dconnexion SpaceMouse ($130)

**预算路径:**一个SO-100手臂,有两个网络摄像头和一个SpaceMouse让你收集数据总共低于500美元.质量低于领导跟随者设置,但足以学习工作流程和训练简单的政策.

其他

安装 LeRobot

让你在虚拟环境中安装它,以避免依赖冲突.

复制# 创建和激活虚拟环境 python3 -m venv ~/lerobot_env源 ~/lerobot_env/bin/activate # 安装LeRobot与所有额外的数据收集管安装"lerobot[all]" # 或从源安装最新功能 git 克隆 T18 cd lerobot pip安装 -e ".[all]" # 验证安装 python3 -c "进口 lerobot;打印(f'LeRobot {lerobot.__version___}安装') "

复制# 安装额外的依赖性摄像头录音管安装opencv-python pyrealsense2 h5py # 对于 HuggingFace Hub上传 pip安装 huggingface_hub huggingface-cli登录

其他

在LeRobot中配置您的机器人

机器人使用YAML配置文件来定义机器人的属性.

复制# 创建机器人配置目录 mkdir -p ~/lerobot_configs # 开臂 (保存为开臂.yaml) 猫的设置示例 > ~/lerobot_configs/openarm.yaml << 'EOF'机器人:类型:开臂端口: /dev/ttyUSB0rate: 1000000关节: -名称:肩膀_pan id: 1 分钟: -3.14 时: max: 3.14 -名称:肩膀_lift id: 2 分钟: -1.57 时: max: 1.57 -名称:肘部 id: 3 分钟: -2.35 时: 2.35 -名称:手腕_尖端 id: 4 分钟: -1.57 时: max: 1.57 -名称: id:手腕_滚动: 5 分钟: -3.14 时: 3.14 时: 抓取名: 脚脚高度: 6 分钟: 时: 1.0 时: 0.40 时: 0.40 时: 0.40 时: 0.40

T2 运行 T2 查找相机的正确指数. 在录制之前,请记住. T1 误导是最常见的设置错误.

其他

设置远程操作接口

在演示中,你有两个主要的控制选项:领导者跟随者的双臂 (最佳质量) 或空间鼠标 (更容易访问).

**选择A:领导者跟随者武器 (建议) **

复制# 配置领袖臂 (你物理移动的) 雷罗बोट校准 \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --leader-port=/dev/ttyUSB1 # 这运行了校准程序 按照屏幕上的提示 # 通过两只手臂的运动范围移动

机机器人

复制#安装SpaceMouse驱动程序 pip安装 pyspacemouse #测试SpaceMouse连接 python3 -c "进口 pyspacemouse; m = pyspacemouse.open();打印('SpaceMouse连接')" #配置SpaceMouse在LeRobot中

**选择哪个?**领袖跟随器的武器会产生更自然的示范,因为你的手动直接映射到机器人的关节.SpaceMouse更容易设置,但产生更不流的数据,这可以减少1020%的政策性能.

其他

录制第一集

一个"集"是从开始到结束完成任务的完整演示. 开始从一个简单的任务,比如拿起一个块,

复制#记录节目到本地数据集的机器人记录 \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --leader-port=/dev/ttyUSB1 \ --fps=30 \ --task="pick_red_block_place_target" \ --num-episodes=10 \ --output-dir=~/datasets/openarm_stop_pick_place # 录制过程中的控制: # 输入 开始/开始节目 # 空间 暂停/恢复 # r 重新当前节目 # q 停止录制

每个节目都将与同步数据保存:

──观测/ │ │ │ │ │ ──关联_位置.npy # (T, 6) 关联角 │ │ │ ──关联_速度.npy # (T, 6) 关联速度 │ │ ──手腕_cam.mp4 #手腕摄像头视频 │ │ │ ──外部_cam.mp4 # 外部摄像头视频 │ ──行动.npy # (T, 7) 目标关联位置 + 抓住器 ── 期刊_001/ ── ... ── ── 传媒数据.json

** 剧集数量指南:** 对于单任务政策 (ACT,传播政策),收集50200集.对于VLA细节调整 (OpenVLA, pi0),收集3001,200集.多种示范产生更好的概括.不同集中的对象位置,方向和照明.

其他

审核和质量评分

检查录音,删除失败演示,并计算质量指标.

复制# 查看一个特定的集集 机器人查看数据集 \ --dataset-path=/datasets/openarm_pick_place \ --episode=0 # 重播机器人上集 (可选 进行验证) 机器人重播 \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --dataset-path=/datasets/openarm_pick_place \ --episode=3

标记失败的事件:

复制#计算所有集中的数据质量指标 python3 -c "进口 numpy np进口 json, os, glob数据集_dir = os.path.npy')) #滑滑:下滑 =更好的示范 = np.path.expanduser, n=3,名轴=0) 滑 = (1.0 + np.meanp.abs.jerk((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

质量规则 目标在最终数据集中达到90%以上的任务成功率. 抛弃机器人放下物体,撞击表或动的事件.较小的高质量的示范比较大的噪音数据集更高.

其他

转换为RLDS格式

转换LeRobot数据集为RLDS,以实现与OpenVLA,Octo和RT-2兼容性.

复制#安装RLDS转换工具 pip安装 tensorflow tensorflow-data-sets rlds # 转换LeRobot数据集为RLDS python3 -m lerobot.scripts.convert_to_rlds \ --input-dir=/datasets/openarm_pick_place \ --output-dir=/datasets/openarm_pick_place_rlds --task-description="拿起红块并将其放在目标绿区"

根据时间步骤,RLDS数据集包含以下结构的TFRecord文件:

{ "观察": { "图片": (480, 640, 3) uint8, # 手腕摄像头 "图片_外部": (480, 640, 3) uint8, # 外部摄像头 "状态": (6,) float32 # 联合位置 }, "行动": (7,) float32, # 目标关节 + 抓住器 "奖励": float32, # 1.0 获胜, 0.0 否则"是_终端 ": bool, "语言_指导":字符串 # 任务描述 }

其他

上传到 HuggingFace Hub

数据集到 HuggingFace Hub,以便在训练中编写版本,轻松共享和直接加载.

复制# 确保您登录了 huggingface-cli登录 # 推 LeRobot格式数据集 lerobot push-to-hub \ --dataset-path=~/datasets/openarm_pick_place \ --repo-id="您的用户名/openarm-pick-place-v1" \ --private # 或推 RLDS格式数据集 python3 -c "从 huggingface_hub 导入 HfApi = HfApi() .上传_path_folder_os.

版本提示: 总是包含一个版本后 (T3,T4).当你收集更多数据或解决质量问题时,按下新版本.这使得重复训练运行和跟踪改进变化容易.

其他

进行质量检查

在训练之前, 进行最后一批质量检查, 检查可能浪费GPU时间的问题.

输入的时间为:np输入 json,os,glob数据集_dir = os.path.expanduser('~/datasets/openarm_pick_place') 节目 = 排序的时间:glob.glob.os.path.join(dataset_dir,'episode_*'))) 长度 = [\]滑度 = [\]行动_范围 = [\]行动_范围 = [\] ep_dir:行动 = np.path.expanduser.join\/datasets/openarm_pick_place') 节目 = 排序的时间:np.glob.os.path.join, 'actions.npy' (np.p.p.p.s) 节目 = np.actions,np.actions,np.actions,np.actions=np.actions,np.actions=np.actions,np.actions=np

其他

准备好VLA细调

通过创建适当的分区和任务描述来结构化数据集进行培训.

复制#创建火车/分 (90/10) python3 -c "进口 os, shutil,random,glob数据集_dir = os.path.expanduser('~/datasets/openarm_pick_place') 节目 = 分类了(glob.glob.os.path.join(dataset_dir, 'episode_*'))) 随机.seed(42) 随机.shuffle(episodes) 分分 = int((lenepisodes) * 0.9) 火车 = 节目[:split] vallit = 节目[split:\] #写文件与开放的火车.path.join.dr.in.html, '火车_episodes.txt'), 'wlen') 作为 'flen') 列车: ((((((((((((((((((((((((((((((((((((((((

准备好调整VLA模型?

您的数据集已经准备好了.继续到 [VLA细调指南]T13) 训练OpenVLA或 pi0在您的数据.预计投资150400美元在GPU计算一个典型的细调运行.

数据收集成本分类

Cost Component Per Hour Notes
Operator labor $50–80 Skilled teleoperator, varies by market
Hardware depreciation $15–30 Amortized over 2,000 hrs of use
Quality review $20–40 情节 filtering and scoring
Compute and storage $8–15 Recording, processing, storage
Facility overhead $25–35 Lab space, lighting, safety
Total $118–200

需要帮助收集数据吗?

提供由专业的电话运营商管理的机器人数据收集,质量保证和RLDS准备的交付.

[了解数据服务]

解决问题

摄像头的摄像头是黑色或结的

检查摄像头索引使用T5.试试解锁和重新插入USB电缆.如果使用RealSense,请使用T6来验证.RealSense摄像头需要USB3.0端口.

机器人手臂在录音过程中没有响应

检查连续端口使用T7. 检查权限:T8. 确保没有其他进程使用端口 (关闭RViz,其他终端).

录制过程中的框下降 (不一致的fps)

低摄像头分辨率至480x360.关闭背景应用.使用一个专门的USB巴斯 (查看T9).记录到SSD,而不是硬盘.

形状不匹配的RLDS转换失败

这通常意味着节目有不同的观测尺寸. 检查所有相机在所有节目中使用相同的分辨率. 重新录制任何不同尺寸的节目.

拥抱面部上传时间

大数据集 (50+GB) 可以在缓慢连接上使用时间.使用T10T11将部分上传,或压缩视频在上传之前.考虑从更快的带宽的云VM上传.

相关教程

现在,

调整VLA模型

在你的远程操作数据集上训练OpenVLA或pi0进行真正的机器人部署.

T15)

雷罗特快速启动

您的第一条政策在不到2小时内就能开始使用LeRobot.

T16)

开放手臂的第一场演示

打开盒子,在OpenArm硬件上运行你的第一次远程操作演示.

T17)

常见的问题

我需要多少次演示,才能培训机器人政策?

对于大多数单任务操纵策略 (选择,放置,倒,等),ACT或扩散策略中,50200高质量的集体足够.对于VLA细节调整 (OpenVLA, pi0),根据任务复杂性和需要的通用化,计划3001,200集.

收集机器人训练数据的成本是多少?

根据操作员技能水平和硬件,机器人远程操作数据收集的全负载成本在2026年每小时从118200美元之间.包括操作员时间,硬件折旧,计算和质量审查.RCSV数据服务提供管理收集,从每小时150美元开始.

机器人收集数据应该使用哪些摄像头?

最少使用一个手腕安装的RGB摄像头 (640x480,30fps) 和一个外部第三人视觉摄像头.为了获得最佳结果,为深度数据添加一个RGBD摄像头,如英特尔RealSense D435.许多VLA模型都预计手腕和外部摄像头视图.

什么是RLDS格式,为什么它很重要?

RLDS (Reinforcement Learning Datasets) 是谷歌DeepMind公司为机器人学习数据存储的标准化格式.它将事件作为TFRecord文件中的观察,行动和奖励序列存储.大多数VLA模型 (RT-2,OpenVLA,Octo) 预计RLDS格式,使其成为互操作性的实际标准.

我如何确保收集的数据质量高?

追踪三个质量指标: (1) 任务成功率 仅保持任务成功完成的节目. (2) 轨道顺或不稳定的示范. (3) 多样性 不同于各个节目中的对象位置,方向和照明. 目标在最终数据集中90%以上的成功率.

这篇教程有什么帮助?

👍是的

保持机器人技术的前进

获取最新的机器人部署,数据收集和物理人工智能 到您的收件箱.