sort_utensils
收藏资源简介:
这是一个关于双手整理餐具的机器人操作数据集。任务为:拿起一个餐具,放在粉色盘子上,然后将另一个餐具放入容器中。数据是在真实的YAM双臂机器人上收集的,作为Flex-π项目的一部分发布。数据集以LeRobot v2.1格式存储,包含来自三个摄像头(俯视摄像头、左腕摄像头、右腕摄像头)的同步RGB图像(640×360,H.264编码)和公制深度图像(640×360,uint16毫米,FFV1无损编码)。共有152个episodes,128,010帧,时长约1.2小时(30fps)。状态和动作均为32维向量,包含左右臂末端位置、6D旋转、夹爪状态和关节角度。数据集的布局、相机内参、深度解码方式、状态/动作向量结构以及加载方法均在README中详细说明。
This is a robot manipulation dataset for bimanual utensil arrangement. The task is: pick up one utensil, place it on a pink plate, then put another utensil into a container. Data was collected on a real YAM dual-arm robot and released as part of the Flex-π project. The dataset is stored in LeRobot v2.1 format, containing synchronized RGB images (640×360, H.264 encoded) and metric depth images (640×360, uint16 millimeters, FFV1 lossless encoded) from three cameras (overhead camera, left wrist camera, right wrist camera). There are 152 episodes, 128,010 frames, approximately 1.2 hours of data (30fps). States and actions are 32-dimensional vectors, including left and right arm end-effector positions, 6D rotations, gripper states, and joint angles. The dataset layout, camera intrinsics, depth decoding methods, state/action vector structure, and loading methods are detailed in the README.
sort_utensils 数据集详情
sort_utensils 是一个用于双臂餐具分类的真实机器人操作数据集,任务为:拿起一件餐具放在粉色盘子上,再将另一件餐具放入容器中。数据由 YAM 双臂机器人采集,作为 Flex-π 项目的一部分发布,采用 LeRobot v2.1 格式存储,包含来自三个摄像头的同步 RGB 和公制深度数据。
基本信息
| 属性 | 值 |
|---|---|
| 片段数 | 152 |
| 总帧数 | 128,010 |
| 时长 | 约1.2小时 @ 30 fps |
| 任务数 | 1 |
| 机器人 | yam(双臂) |
| 摄像头 | cam_high、cam_left_wrist、cam_right_wrist |
| RGB | 640×360,H.264 .mp4 |
| 深度 | 640×360,FFV1 .mkv,uint16 毫米 |
| 状态 / 动作维度 | 32-D / 32-D |
| LeRobot 版本 | v2.1 |
| 许可证 | cc-by-4.0 |
任务描述
拾起一件餐具并将其放置在粉色盘子上,然后将另一件餐具放入容器中。
数据布局
meta/ info.json # 特征模式、总数、分块信息 tasks.jsonl # 任务索引 -> 自然语言指令 episodes.jsonl # 每个片段的长度和任务 episodes_stats.jsonl # 每个片段状态与动作的最小/最大/均值/标准差 camera_intrinsics.json # 存储分辨率下各摄像头的针孔K矩阵 data/chunk-{NNN}/episode_{NNNNNN}.parquet videos/chunk-{NNN}/observation.images.{cam}/episode_{NNNNNN}.mp4 # RGB videos/chunk-{NNN}/observation.depth_ffv1.{cam}/episode_{NNNNNN}.mkv # 深度
片段索引从 0 到 151,按 1000 个片段分块(共1块)。parquet 中的 index 列是全局帧计数器,范围 0 .. 128,009。
相机内参
在存储的 640×360 分辨率下,各摄像头的针孔 K 矩阵平均值(fx、fy 为焦距,cx、cy 为主点):
| 摄像头 | fx | fy | cx | cy |
|---|---|---|---|---|
cam_high |
262.27 | 262.11 | 320.51 | 183.18 |
cam_left_wrist |
365.75 | 365.53 | 318.08 | 182.79 |
cam_right_wrist |
366.89 | 366.67 | 324.67 | 171.96 |
深度数据读取说明
- 深度流是 LeRobot 的扩展,在
meta/info.json中声明为dtype: "depth_video"(而非"video"),因此标准LeRobotDataset加载器会跳过它们,开箱即可获得可用的 RGB 数据集。 - 每个深度帧是单通道 uint16、毫米单位,FFV1 编码为
gray16le,封装在 Matroska 容器中。0表示无返回。 - FFV1 为无损编码,解码后的值与传感器报告的逐位精确,请勿转码为有损编码格式。
- 解码示例代码可在页面中找到(使用 PyAV 读取
.mkv文件并转换为gray16le格式)。
状态与动作布局
两者均为 32 维向量,按字段分组,而非按臂:
| 索引 | 内容 |
|---|---|
0:3 |
left_pos_{x,y,z} — 左端执行器位置 |
3:9 |
left_rot6d_{0..5} — 左端执行器旋转,6-D 表示 |
9:12 |
right_pos_{x,y,z} |
12:18 |
right_rot6d_{0..5} |
18:20 |
left_gripper, right_gripper |
20:26 |
left_joint_{0..5} |
26:32 |
right_joint_{0..5} |
权威的逐维度名称位于 meta/info.json 中的 features.observation.state.names。6-D 旋转是 3×3 旋转矩阵的前两行按行主序展开(Zhou 等人,On the Continuity of Rotation Representations);通过 Gram-Schmidt 正交化及叉积恢复旋转矩阵 R。
加载方式
- 仅 RGB:使用标准 LeRobot 加载器即可。
- RGB + 深度:需使用 Flex-π 代码库中的深度感知加载器。
数据来源
由源录制数据 clean_up_table_V2_4、clean_up_table_V2_1 构建。
引用
如使用该数据集,请引用 Flex-π 项目。



