LeRobotDataset 是 LeRobot 中机器人数据集的标准化数据格式。它解决了机器人领域的数据碎片化问题,提供统一高效的格式,使机器人演示数据能够在社区中无缝共享和重用。
数据集在磁盘上组织如下:
info.json:数据集元数据(FPS、特征定义等)stats.json:各模态的统计数据(均值、标准差、最小、最大值)tasks.parquet:任务描述数据被分块到多个文件中以提高存储效率和加载性能。
LeRobotDataset 类继承自 torch.utils.data.Dataset,提供以下功能:
LeRobotDatasetMetadata 处理数据集发现,先下载 meta/ 目录检查数据集结构(FPS、特征等),再提交下载大型 Parquet 或视频文件DatasetReader 通过 torchcodec(首选)或 pyav(回退)后端解码视频帧DatasetWriter 处理顺序录制,包括 episode 缓冲区和视频编码
数据集支持通过相对时间偏移进行查询。策略可以接收过去观测的滑动窗口(例如 [-0.2, -0.1, 0.0]),通过传递相对时间偏移字典来实现。
使用 lerobot-record 命令通过遥操作录制 episodes:
lerobot-record --robot.type=so100 --dataset.path=./my_dataset
录制过程将:
Teleoperator 读取动作Robot 读取观测DatasetWriterLeRobot 提供多种工具来操作已有数据集:
LeRobot 利用 TorchCodec 实现高效的多线程视频解码:
pyav
libsvtav1 编码器是 LeRobotDataset 格式的首选编解码器,提供高压缩率和良好的解码性能。
当前标准格式版本为 v3.0(由 CODEBASE_VERSION = “v3.0” 定义)。
v2.1 到 v3.0 迁移:使用 v2.1 创建的数据集与 v3.0 读取器不兼容。LeRobot 提供迁移脚本 convertdatasetv21tov30.py 来处理格式转换。