使用数据集
AY-Robots 上的每一次遥操作会话都会产生 LeRobot 格式的结构化演示数据,这是操作类数据事实上的通用交换格式。本页说明数据集内部有什么、如何在仪表盘中查看和整理回合、合并如何运作,以及市场功能如何融入其中。
最后更新 2026-08-09
LeRobot 数据集格式
AY-Robots 使用 Hugging Face 维护的 LeRobot 数据集格式存储所有演示数据。这样做的实际好处在于可移植性:在这里录制的数据集可以直接加载进基于 LeRobot 的训练代码,而在别处以相同格式录制的数据集也可以上传并在平台上使用,无需转换。
一个数据集由若干回合组成。一个回合是对某项任务的一次完整尝试,从一个明确的起始状态,到您停止录制的那一刻。在磁盘上,一个回合被拆分到三类文件中:一个包含数值流的 Parquet 文件、每个摄像头一个视频文件,以及将一切关联起来的元数据。
| 路径 | 内容 |
|---|---|
| data/.../episode_XXXXXX.parquet | 每个回合一个 Parquet 文件:逐帧时间戳、观测状态和动作 |
| videos/... | 每个摄像头每个回合一个 MP4 文件,与 Parquet 数据逐帧对齐 |
| meta/info.json | 数据集级元数据:机器人型号、fps、特征模式,以及回合数和帧数 |
| meta/episodes.jsonl | 每行对应一个回合,包含其索引、长度以及所属任务 |
| meta/tasks.jsonl | 回合按索引引用的自然语言任务文本 |
info.json 中的特征模式,正是训练代码用来理解您的数据的依据:存在哪些观测键、它们的形状,以及录制速率。只有当两个数据集的模式一致时,它们才是兼容的,这也正是合并校验所要检查的内容。
关节值是百分比,不是角度
AY-Robots 数据集中的所有关节值都经过了 LeRobot 归一化处理:每个值的范围是 -100 到 100,表示该关节标定范围的百分比,而不是以度为单位的角度。读数为 0 表示标定范围的中心,-100 和 100 表示其极限。
不同物理机械臂的舵机零点各不相同,因此两台 SO-100 上的原始角度描述的是不同的姿态。归一化到标定范围后,不同机械臂之间的录制内容便可以互相比较,这也是 LeRobot 训练流程所期望的输入形式。如果您的工具链需要角度,请使用您自己的标定数据进行换算,平台本身不存储角度值。
仪表盘中的云端数据集
仪表盘 > 数据集列出了您的云端数据集,包含回合数、文件大小和采集状态。数据集会在遥操作会话录制数据时自动创建,您也可以显式创建一个空数据集,再从桌面客户端上传录制内容填充它。
- 创建:新数据集会随会话自动出现,也可以创建一个空数据集,再向其中上传内容。
- 重命名:随时可以更改显示名称,此操作不会触及数据本身。
- 删除:会移除该数据集及其所有回合和文件。删除是不可撤销的,如果日后可能还需要这些数据,请先下载一份归档。
回合浏览器
打开一个数据集会进入回合浏览器。每个回合都有一个用于播放其摄像头视频流的播放器,以及绘制该回合归一化关节值的同步关节图表。拖动视频进度条时图表的光标也会同步移动,这让发现问题变得很快:动作生硬的接近过程会在图表中表现为尖峰,一次失败的抓取甚至在您看视频之前,就能在夹爪通道中看出来。
回合标签:Success、Recovery、Failure
每个回合都可以带有三种标签之一。Success 标记一次干净利落的任务演示。Recovery 标记的是过程中出了差错、随后您进行了纠正的回合,这类回合很有价值,因为它们能教会策略如何回到正轨。Failure 标记未能达成目标的回合,通常应将其排除在训练集之外。在查看回合的同时进行标注,要比调试一个悄悄从糟糕演示中学坏的策略便宜得多。
合并数据集
合并会把多次录制内容组合成一个更大的数据集,例如同一任务一周内的多次会话,或来自两台已标定机械臂的录制内容。合并操作接收多个 tar.gz 压缩包,每个都包含一个 LeRobot 数据集,最终生成一个回合已重新编号的单一数据集。
- 1准备压缩包
每一个输入必须是一个完整的 LeRobot 数据集,打包为 tar.gz 压缩包,包括其 meta 目录。缺少 info.json 的不完整压缩包无法通过校验,会被拒绝。
- 2上传多个压缩包
在仪表盘 > 数据集中启动合并,并一次性选择您想要组合的所有 tar.gz 压缩包。
- 3校验
平台会检查所有输入之间的 fps、特征模式和 robot_type 是否一致。只要三者中有任何一项不同,合并就会被拒绝,并指出具体不匹配之处,因为一个流不一致的合并数据集会悄无声息地破坏训练。
- 4检查结果
合并后的数据集会带着合并后的回合总数出现在您的列表中。请打开回合浏览器,对每个来源抽查几个回合,再开始训练。
这三条兼容性规则之所以严格,是有意为之的。帧率不匹配会改变每个时间步的含义,模式不匹配会直接破坏加载器,混合机器人型号则会产生一个没有任何策略能操作的数据集。如果您需要合并同一型号不同物理单元的数据,这没有问题:robot_type 指的是型号,而不是具体的物理设备。
数据集市场
市场让您可以购买他人录制的数据集,也可以出售自己的数据集。购买的数据集会以与您自己的录制内容相同的 LeRobot 结构出现在您的仪表盘中,因此无需任何额外步骤即可用于回合浏览器、合并和训练。
如果您要出售数据集,请在上架前先进行整理。检查回合,如实标注,并确保任务文本描述的是录制内容中实际发生的情况。买家在评估您的数据集时看到的正是您自己所看到的那个回合浏览器,标签干净、演示一致的数据集,要比您录制过的一切内容的原始堆砌更有价值。
常见问题
一个典型回合有多大?▾
对于两个摄像头、30 fps、10 到 20 秒的回合,大约在 5 到 15 MB 之间,具体取决于场景复杂度。一个包含几百个回合的正式数据集,大小通常在几个 GB 的量级。
可以下载我的数据集吗?▾
可以。数据集可以从仪表盘以归档文件的形式下载。由于结构是标准的 LeRobot 格式,下载后可以直接配合 LeRobot 工具链和您自己的训练代码使用。
可以合并不同机器人型号的数据集吗?▾
不可以。合并要求所有输入之间的 fps、特征模式和 robot_type 都一致。只要两台机械臂都经过了标定,来自同一型号的两个不同物理机械臂的数据是可以合并的。
关节图表显示的是角度吗?▾
不是。所有关节值都经过 LeRobot 归一化,范围为 -100 到 100,表示各关节标定范围的百分比。Parquet 文件中存储的正是这一数值。
删除数据集时会发生什么?▾
该数据集及其所有回合、视频和元数据都会被永久移除。此操作无法撤销,如果您不确定,请先下载一份归档。