Table30v2
收藏RoboChallenge Table30 v2 数据集概述
数据集基本信息
- 数据集名称: RoboChallenge Table30 v2 Dataset
- 托管地址: https://huggingface.co/datasets/RoboChallenge/Table30v2
任务与机器人平台
任务列表
数据集包含30个多样化的操作任务:
put_the_books_back- 将书放回书架。tie_a_knot- 用桌上的绳子打结。stamp_positioning- 在纸张的签名区域盖章。tidy_up_the_makeup_table- 整理桌上的化妆品。paint_jam- 在面包上涂抹果酱。pack_the_items- 将平板电脑及其配件装箱。wrap_with_a_soft_cloth- 用桌上的布包裹物品。put_in_pen_container- 将桌上的笔放入笔筒。put_the_pencil_case_into_the_schoolbag- 将笔袋放入背包。put_the_shoes_back- 将桌上的两双鞋子配对并放在鞋架上。untie_the_shoelaces- 解开鞋带,然后将其放在桌上。scoop_with_a_small_spoon- 用勺子舀豆子放入空碗中。wipe_the_blackboard- 擦干净黑板。lint_roller_remove_dirt- 使用粘毛器清洁衣物上的碎屑。turn_on_the_light_switch- 打开灯。hold_the_tray_with_both_hands- 将桌上的球放在小托盘上,然后移动到大托盘。fold_the_clothes- 折叠T恤并整齐地堆放在桌子的左上角。pack_the_toothbrush_holder- 依次将牙刷和牙膏放入洗漱盒,关闭盒子,然后放入篮子。place_objects_into_desk_drawer- 打开抽屉,放入开瓶器,然后关闭抽屉。sweep_the_trash- 将桌上的垃圾扫入簸箕。arrange_flowers- 将4朵花放入花瓶。press_the_button- 按以下顺序按下按钮:粉色、蓝色、绿色,然后黄色。pick_out_the_green_blocks- 找出所有绿色积木并将其放入篮子。hang_the_cup- 将杯子挂在架子上。water_the_flowers- 给盆栽植物浇水。wipe_the_table- 用抹布擦掉桌子上的污渍。arrange_fruits- 整理篮子里的水果。shred_paper- 将纸张放入碎纸机。item_classification- 将文具放入黄色盒子,电子产品放入蓝色盒子。stack_bowls- 将蓝色碗放入米色碗中,将绿色碗放入蓝色碗中。
机器人平台
数据集涵盖4种机器人平台:
- ARX5 - 单臂,配备三摄像头设置(腕部 + 全局 + 右侧视图)
- UR5 - 单臂,配备双摄像头设置(腕部 + 全局视图)
- ALOHA - 双臂,配备三腕部摄像头设置(左腕部 + 右腕部 + 全局视图)
- DOS-W1 - 双臂,配备三腕部摄像头设置(左腕部 + 右腕部 + 全局视图)
数据集结构
目录层次
数据集按任务组织,每个任务包含多个演示片段:
.
├── <task_name>/ # 例如:arrange_the_flowers, fold_t_shirt
│ ├── task_desc.json # 任务描述
│ ├── meta/ # 任务级元数据
│ │ ├── task_info.json
│ └── data/ # 片段数据
│ ├── episode_000000/ # 单个片段
│ │ ├── meta/
│ │ │ └── episode_meta.json # 片段元数据
│ │ ├── states/
│ │ │ # 单臂机器人 (ARX5, UR5)
│ │ │ ├── states.jsonl # 单臂机器人状态
│ │ │ # 双臂机器人 (ALOHA, DOS-W1)
│ │ │ ├── left_states.jsonl # 左臂状态
│ │ │ └── right_states.jsonl # 右臂状态
│ │ └── videos/
│ │ # 视频配置因机器人型号而异:
│ │ # ARX5
│ │ ├── cam_arm_rgb.mp4 # 腕部视图
│ │ ├── cam_global_rgb.mp4 # 全局视图
│ │ └── cam_side_rgb.mp4 # 侧视图
│ │ # UR5
│ │ ├── cam_global_rgb.mp4 # 全局视图
│ │ └── cam_arm_rgb.mp4 # 腕部视图
│ │ # ALOHA
│ │ ├── cam_high_rgb.mp4 # 全局视图
│ │ ├── cam_left_wrist_rgb.mp4 # 左腕部视图
│ │ └── cam_right_wrist_rgb.mp4 # 右腕部视图
│ │ # DOS-W1
│ │ ├── cam_high_rgb.mp4 # 全局视图
│ │ ├── cam_left_wrist_rgb.mp4 # 左腕部视图
│ │ └── cam_right_wrist_rgb.mp4 # 右腕部视图
│ ├── episode_000001/
│ └── ...
├── convert_to_lerobot.py # 转换脚本
└── README.md
元数据模式
task_info.json
json { "task_desc": { "task_name": "arrange_flowers", // 任务标识符 "prompt": "Put the 4 flowers into the vase.", "description": "...", "scoring": "...", // 评分标准 "task_tag": [ // 任务特征标签 "repeated", "single-arm", "ARX5", "precise3d" ] }, "video_info": { "fps": 30, // 视频帧率 "ext": "mp4", // 视频格式 "encoding": { "vcodec": "libx264", // 视频编解码器 "pix_fmt": "yuv420p" // 像素格式 } } }
episode_meta.json
json { "start_time": 1750405586.3430033, // 开始时间戳(Unix) "end_time": 1750405642.5247612, // 结束时间戳(Unix) "frames": 1672, // 总视频帧数 "robot_id": "rc_arx5_5", // 机器人标识符 "features": { "cam_global": { // 相机信息 "intrinsics": [], // 内参 "extrinsics": { // 外参 "arms": { "arm": [] // 相对于手臂的外参 } } } } }
机器人状态模式
每个片段包含以JSONL格式存储的状态数据。根据机器人平台,结构略有不同:
- 单臂机器人 (ARX5, UR5) →
states.jsonl - 双臂机器人 (ALOHA, DOS-W1) →
left_states.jsonl和right_states.jsonl
每个文件按帧记录机器人的本体感知信号,包括关节角度、末端执行器位姿、夹爪状态和时间戳。具体字段定义和坐标约定因平台而异。
ARX5
| 数据名称 | 数据键 | 形状 | 语义 |
|---|---|---|---|
| 关节控制 | joint_positions | (6,) | 从基座到末端执行器的关节角度(弧度)。 |
| 关节速度 | joint_velocities | (6,) | 6个关节的速度。 |
| 关节力矩 | efforts | (7,) | 6个关节和夹爪的力矩。(由官方API提供,精度不保证。) |
| 位姿控制 | ee_positions | (7,) | 末端执行器位姿 (tx, ty, tz, rx, ry, rz, rw),其中 (tx, ty, tz) 是相对于手臂基座坐标的位置,(rx, ry, rz, rw) 是四元数旋转。 |
| 夹爪控制 | gripper_width | (1,) | 夹爪宽度的实际测量值(米)。 |
| 夹爪速度 | gripper_velocity | (1,) | 夹爪的速度。 |
| 时间戳 | timestamp | (1,) | 每帧的浮点时间戳(毫秒)。 |
UR5
| 数据名称 | 数据键 | 形状 | 语义 |
|---|---|---|---|
| 关节控制 | joint_positions | (6,) | 从基座到末端执行器的关节角度(弧度)。 |
| 位姿控制 | ee_positions | (7,) | 末端执行器位姿 (tx, ty, tz, rx, ry, rz, rw),其中 (tx, ty, tz) 是相对于手臂基座坐标的位置,(rx, ry, rz, rw) 是四元数旋转。 |
| 夹爪控制 | gripper_width | (1,) | 夹爪宽度的实际测量值(米)。 |
| 时间戳 | timestamp | (1,) | 每帧的浮点时间戳(毫秒)。 |
DOS-W1
| 数据名称 | 数据键 | 形状 | 语义 |
|---|---|---|---|
| 关节控制 | joint_positions | (6,) | 从基座到末端执行器的关节角度(弧度)。 |
| 位姿控制 | ee_positions | (7,) | 末端执行器位姿 (tx, ty, tz, rx, ry, rz, rw),其中 (tx, ty, tz) 是相对于手臂基座坐标的位置,(rx, ry, rz, rw) 是四元数旋转。 |
| 夹爪控制 | gripper_width | (1,) | 夹爪宽度的实际测量值(米)。 |
| 时间戳 | timestamp | (1,) | 每帧的浮点时间戳(毫秒)。 |
ALOHA
| 数据名称 | 数据键 | 形状 | 语义 |
|---|---|---|---|
| 关节控制 | joint_positions | (6,) | 从基座到末端执行器的从动关节角度(弧度)。 |
| 关节速度 | joint_velocities | (7,) | 6个关节的速度。 |
| 夹爪控制 | gripper_width | (1,) | 夹爪宽度的实际测量值(米)。 |
| 位姿控制 | ee_positions | (7,) | 末端执行器位姿 (tx, ty, tz, rx, ry, rz, rw),其中 (tx, ty, tz) 是相对于手臂基座坐标的位置,(rx, ry, rz, rw) 是四元数旋转。 |
| 关节力矩 | efforts | (7,) | 6个关节和夹爪的力矩。(由官方API提供,精度不保证。) |
| 时间戳 | timestamp | (1,) | 每帧的浮点时间戳(毫秒)。 |
转换为LeRobot格式
数据集提供了转换脚本 convert_to_lerobot.py,可将数据转换为 LeRobot 格式,以便利用其全面的数据处理和加载工具。
前提条件
- Python 3.9+ 及以下包:
lerobot@0cf864870cf29f4738d3ade893e6fd13fbd7cdb5opencv-pythonnumpy
- 配置
$HF_LEROBOT_HOME(如果未设置,默认为~/.cache/huggingface/lerobot)。
使用方法
从仓库根目录运行转换器: bash python convert_to_lerobot.py --repo-name example_repo --raw-dataset /path/to/example_dataset --frame-interval 1
输出
- 帧和元数据保存到
$HF_LEROBOT_HOME/<repo-name>。 - 脚本最后调用
dataset.consolidate(run_compute_stats=False)。如果需要聚合统计信息,请使用run_compute_stats=True运行或执行单独的统计作业。




