跳转至

开放机器人数据集实践

引言

公开机器人数据可以用于策略预训练、任务微调和算法比较。选择数据时,需要检查它是否包含可执行动作、动作与图像如何对齐,以及机器人和控制方式是否适合自己的任务。本页聚焦操作轨迹;视觉、导航与 SLAM 数据见数据集总览。

区分数据、格式与基准

  • 数据集提供实际记录,例如 BridgeData V2 和 DROID。
  • 联合数据仓库聚合不同来源,例如 Open X-Embodiment;统一读取方式不代表动作语义相同。
  • 存储格式规定如何组织 episode、时间序列与元数据,例如 RLDS、LeRobotDataset。
  • 仿真基准同时提供任务和评测环境,可能另附演示,例如 LIBERO。

只有视频而没有机器人状态与动作的数据,不能直接当作普通行为克隆的监督样本。物体网格、静态抓取标签和真实执行轨迹也应分别处理。

常用公开资源

资源 内容与适用方向 使用前重点检查
Open X-Embodiment(OXE) 汇聚多机器人来源,适合研究跨具身数据混合 子数据集许可、相机字段、动作定义、采样频率与数据重复
BridgeData V2 多场景操作数据,适合研究桌面操作与跨环境泛化 遥操作和自动采集部分的区别、指令覆盖、所用发布版本
DROID 多场景真实机器人操作数据,适合视觉策略与场景泛化研究 相机标定、状态与动作接口、任务标注以及存储需求
RH20T 多机器人、多模态操作数据,适合研究视觉、力觉与动作之间的关系 所选配置实际具备的传感器、标定、时间同步与动作空间
UMI 手持夹爪采集接口及项目发布的数据,适合研究跨场景演示与机器人部署 位姿重建、夹爪宽度、延迟对齐与目标机器人可达性;不是带完整关节状态的普通遥操作数据
LIBERO 带语言任务的仿真演示,适合受控多任务实验 任务套件、演示处理版本、环境版本和训练测试协议
robomimic 数据与工具 从演示学习的标准化研究工具和配套数据 演示来源、观测模态、数据质量与配套控制器

不要单凭轨迹条数排序。长时间重复同一种抓取,可能不如较少但覆盖失败恢复、不同视角和目标位置的轨迹有用。应同时统计有效时长、任务覆盖、场景覆盖和动作分布。

数据格式:RLDS 与 LeRobotDataset

RLDS

RLDS(Reinforcement Learning Datasets)将数据组织为 episode 和 step,并定义 is_first、is_last、is_terminal 等字段。最后一步与环境终止并非同一概念,例如时间限制可以结束记录,但不代表到达终止状态。具体字段有效性应按数据发布者及 RLDS 规范解释。

OXE 提供 RLDS 数据的访问与示例工具。不过,图像键、状态维度、动作参考系和语言标注仍需要逐个子集检查。名称都叫 action 的字段不一定可以直接拼接。OXE 官方说明

LeRobotDataset

LeRobotDataset v3 使用 Parquet 保存结构化时序数据,视频文件保存视觉数据,并通过元数据描述特征、统计量和 episode 索引。它将多个 episode 组织到分片中,不能假定“一个文件就是一个 episode”。v3 格式文档

使用前记录格式版本和加载器版本。旧转换脚本可能依赖不同的目录布局;转换后应通过目标版本的官方加载器读取完整 episode,检查帧数、时间戳和视频索引,而不只是查看生成了多少文件。

下载前建立数据清单

建议先下载一个小子集完成加载、回放和训练检查,再扩展到全部数据。下面是项目内部的数据卡模板,不属于任何一种官方格式。

dataset_card:
  name: "my_robot_subset"
  source_url: "<official dataset page>"
  revision: "<release or commit>"
  license_reference: "<license file or URL>"
  embodiment: "<robot and gripper>"
  cameras: [front, wrist]
  action_type: "delta_end_effector_pose"
  action_frame: "robot_base"
  translation_unit: "meter"
  rotation_representation: "axis_angle"
  control_rate_hz: 20
  split_group: "collection_session"
  converter_commit: "<commit>"

模板中的动作与频率仅为示例,需要替换为源数据的真实定义。如果源数据缺失标定或时间戳,应记录缺失情况,不能补上未经验证的默认值。

转换与质量检查

  1. 保留原始来源:保存原 episode 标识、源文件校验和、发布版本及转换脚本版本。
  2. 解释字段:明确状态、动作、语言和各相机的含义,检查每条序列的长度。
  3. 对齐时间:用采样时间匹配观测与动作,记录插值或丢帧策略;不要把未来图像用作当前观测。
  4. 统一动作语义:先转换单位和坐标系,再决定是否能合并。相对旋转需要按旋转组合规则处理,不能简单相减欧拉角。
  5. 建立数据划分:按 episode、采集会话或场景分组;若研究新物体泛化,再按物体实例隔离。
  6. 计算统计量:只使用训练划分,分别检查动作各维度的范围、离群值和静止占比。
  7. 验证输出:读取转换后的完整轨迹,抽查视频与动作曲线;在兼容环境中尝试动作回放。

降低动作频率时,不能一律每隔几帧取一条动作。位置目标、速度、位姿增量和夹爪事件的重采样规则不同。例如丢弃中间位姿增量可能改变累计位移;漏掉一次短暂闭合命令可能改变整个任务结果。

面向规模化训练的数据读取

先估计存储与解码成本

未压缩 RGB 图像的存储量可以粗略估计为

其中 是每条轨迹的帧数, 是相机数, 是图像尺寸。例如 1,000 条轨迹、每条 200 帧、两路 640×480 相机,原始像素约需 368.64 GB,尚未包含状态和索引。视频压缩后的实际大小依赖内容与编码设置,不能用一个固定压缩比估算所有数据集。

视频压缩能节省存储,但随机读取一帧可能需要从前面的关键帧开始解码。对历史图像和动作块训练,可先以 episode 或连续片段为单位组织读取,再在内存中构造窗口;这样通常比对每个样本反复打开视频更容易控制输入成本。

若 GPU 经常等待数据,分别测量磁盘读取、视频解码、图像增广和主机到设备传输耗时。增加加载进程数不一定加速:多个进程可能争用磁盘、复制缓存或耗尽文件句柄。记录缓存大小和预取策略,才能复现吞吐量。

稳定的数据划分与发布记录

建议保存独立的划分清单,而不是每次训练重新随机拆分。每一行至少包含源数据集、原 episode 标识、采集会话或场景组,以及 train、validation、test 中的一个标签。

若目标是测试新场景,先按场景分组,再把整组分配到不同划分;同一操作者在相同场景连续采集的相近轨迹也应检查关联性。按组划分可能导致比例不是精确的 80/10/10,这是保留独立性所付出的合理代价。

每次过滤或转换后生成一份摘要:原 episode 数、保留数、各类拒绝原因、各划分时长、任务分布、相机缺失率和动作统计。重跑转换时对比摘要,可以及时发现错误的过滤条件或格式升级造成的数据丢失。

失败、恢复与停止片段的处理

轨迹最终成功,不代表中间没有失败;最终失败,也不代表每一步动作都应被丢弃。建议分别标注 episode 结果与片段类型,例如正常推进、空闲等待、抓取失败、纠正恢复和人工接管。

数据类型 普通行为克隆中的处理思路 保留的元数据
完整成功且动作清晰 作为基础训练样本 任务目标、场景、成功判据
先偏离后恢复,最终成功 保留纠正段,检查偏离状态是否可由观测识别 失败起点、恢复起点与结束时间
最终失败且无人纠正 不自动当作专家动作;可用于诊断或其他学习目标 失败原因、可用的奖励或结果标签
人工接管 区分策略动作和专家动作,检查接管边界是否连续 动作来源、接管时间、操作者
静止或等待 区分合理等待与采集空闲,再决定采样权重 夹爪状态、接触阶段、等待原因

删除所有低速片段可能使模型无法学会等待物体稳定或保持夹持;保留大量无意义空闲又可能让模型偏向不动。过滤规则应结合任务阶段,并通过视频抽样核查,而不是仅设一个速度阈值。

恢复演示的采集方法见模仿学习与数据采集。加入失败轨迹后,若仍以普通行为克隆拟合所有动作,模型可能学到失败行为;需要明确采用片段筛选、专家重标注还是与失败数据匹配的训练目标。

多数据集混合

采样权重

若按所有帧均匀采样,大数据集、长 episode 或大量静止片段可能主导训练。可以先选数据源,再选 episode,最后选时间窗口,并记录每一层的采样规则。

一种可调的起点是令数据源权重满足 ,其中 是统一口径下的有效样本数。 按规模分配, 对数据源等权。这只是实验设计选项,实际权重应通过验证集和任务覆盖分析确定。

重复数据与测试污染

BridgeData 等数据可能已经包含在联合数据混合中。将独立下载的数据再次加入 OXE 时,需核对 episode 来源,而不只是比较本地文件名。可以组合使用源标识、视频片段指纹和轨迹摘要查重。

同一条演示的不同裁剪、语言改写或重新编码版本,应保留在同一划分。若底座模型的数据清单不完整,应将测试集与预训练数据的潜在重叠列为结果解释的限制。

公开可下载与使用许可

代码许可、数据许可、预训练权重条款和仿真资产条款是不同对象。联合数据仓库中的各子集也可能采用不同条件。数据清单应记录原始发布页和对应许可文本;格式转换不会改变来源数据的使用条件。

公开发布派生数据时,应说明转换步骤、过滤条件、原始来源和版本。没有核实再分发条件时,可以先提供转换脚本与数据清单,供读者从原发布者获取数据。

一条可执行的学习路线

先选择与目标机器人动作接口接近的小型子集,完成数据卡、回放和分组划分;再训练简单模仿学习基线,确认闭环可用。随后按 VLA 微调与评测接入预训练模型,最后在仿真基准中比较模型与数据混合策略。每次只改变一个主要因素,保留同一份测试任务和初始状态清单。

参考资料