CoolFace
Datasetpublic

challenge-2026/challenge_data

PrimeBot Household Bimanual Manipulation Challenge Dataset 中文 | English 中文 目录 关于我们 更新日志 真机遥操作数据 训练集说明 验证集说明 数据集字段说明 URDF 图像 语言指令 本体感知与动作 机器人推理接口 UMI数据 数据概览 目录结构 数据集字段说明 图像 本体感知与动作 索引字段 标注与 IMU 关于我们 我们来自上纬新材-启元研究院,我们的使命是加速个人机器人时代到来,加速家用机器人时代到来。我们开源高质量面向家庭操作的双臂操作数据集,同时开放机器人硬件描述以供可视化、可复现研究。 如果本数据集对您的工作有帮助,感谢引用: @misc{xu2026scalingbimanualhouseholdmanipulation, title={Scaling Bimanual Household Manipulation from 1,500… See the full description on the dataset page: https://huggingface.co/datasets/challenge-2026/challenge_data.

sourceHugging Facecc-by-sa-4.0updated 20h agoView on Hugging Face
12likes268kdownloads
Dataset Card

<div align="center"> <h1 style="font-size: 32px;">PrimeBot Household Bimanual Manipulation Challenge Dataset</h1>

<img src="./challenge_teaser.jpg" width="800" alt="PrimeBot Household Bimanual Manipulation Challenge">

中文 | English </div>


中文

目录

关于我们

我们来自上纬新材-启元研究院,我们的使命是加速个人机器人时代到来,加速家用机器人时代到来。我们开源高质量面向家庭操作的双臂操作数据集,同时开放机器人硬件描述以供可视化、可复现研究。

如果本数据集对您的工作有帮助,感谢引用:
bibtex
@misc{xu2026scalingbimanualhouseholdmanipulation,
      title={Scaling Bimanual Household Manipulation from 1,500 hours of Demonstrations to On-Policy Corrections}, 
      author={Jiafeng Xu and Qi Li and Yan Shen and Yiyu Ren and Travis Davies and Shaowen He and Ze Wang and Yifan Yang and Ran Cheng and Hao Dong},
      year={2026},
      eprint={2609.03591},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2609.03591}, 
}
如果您对挑战赛、数据集或其他未尽事项有任何疑问,可通过邮件联系:

likai@qiyuan-robot.com, xujiafeng26@stu.pku.edu.cn

更新日志

  • 2026.09.08:第二批 100 小时UMI数据开源
  • 2026.08.10:第一批 5 小时UMI数据开源
  • 2026.08.06:全部 500+ 小时真机数据开源

真机遥操作数据

真机数据由启元机器人提供,数据集均以标准的 LeRobot V2.1 格式构造,示例Dataset代码,

pip install "lerobot==0.3.3" "mmengine==0.10.7" "torch==2.7.0" "numpy==1.26.4" "torchcodec==0.5" "torchvision==0.22.0"

python dataloader/custom_lerobot_dataset.py

训练集说明

训练集覆盖超过12种真实的家庭场景双臂操作任务,所有数据均包含精确到帧的语言标注,部分任务列表如下 | 任务编号 | 任务描述 | | :--- | :--- | | 1 | Use the gripper to fully open the washing machine door. | | 2 | Close the washing machine door tightly with the gripper. | | 3 | Put these two pieces of clothing into the washer. | | 4 | Take the clothing out of the washer and put it in the basket. | | 5 | Pick up the laundry basket with both grippers. | | 6 | Put the dirty clothes basket on the ground. | | 7 | Pick up the clothing and put it on the sofa. | | 8 | Put the clothing in the folding area. | | 9 | Unfold the clothing and fold it neatly. | | 10 | Place the folded clothing in the storage area. |

训练集分4个批次,互相独立不重复,可自由组合数据集训练策略, | 数据集名称 | 采集批次 | 任务类型 | 语言标注 | | :--- | :--- | :--- | :--- | | fulltaskbatch1train | 1 | 1-10 | 帧级切分 | | foldclothbatch2train | 2 | 8~10 | 帧级切分 | | partialtaskbatch3train | 3 | 1,4,5 | 帧级切分 | | partialtaskbatch4train | 4 | 1,2,3,9 | 整段标注 |

验证集说明

验证集与训练集格式完全一致,为防止策略过拟合到state上,有以下两点特殊处理,

  • 验证集中observation.state数据含有随机噪声
  • 验证集中action字段被全部置零

考虑到参赛团队算力资源与测试资源,本次挑战赛在不超过以下4个任务上进行线上和线下评测, | Task ID | Task Description | | :--- | :--- | | 1 | Use the gripper to fully open the washing machine door. | | 2 | Close the washing machine door tightly with the gripper. | | 3 | Put these two pieces of clothing into the washer. | | 9 | Unfold the clothing and fold it neatly. |

线上测评

  1. 1.参赛者需要在validationdata的全部episode上做action预测,注意数据集中action为89维,线上/线下均只需要预测25维(定义见下文的`机器人推理接口`)即可,validationdata为
  2. 2.fulltaskbatch1noisevalid
  3. 3.foldclothbatch2noisevalid
  4. 4.线上测评只提交预测结果的文件即可,提交入口为Google Form。每支队伍可多次提交,多次提交需要保持队伍信息不变,我们会在测评前取最新提交结果。
  5. 5.提交文件的数据格式参考YourTeamName.zip,注意只需提交动作预测结果即可,标注、图像、本体状态等数据无需提交。
  6. 6.线上评估分数与动作预测误差的 MSE(Mean Squared Error) 和 MAE(Mean Absolute Error) 相关,动作预测越准确,分数越高,分数前5名入围线下测评。
  7. 7.测评时间在2026年8.26、8.28、8.31、9.2、9.4、9.7、9.9、9.11,在当日北京时间 10:00 AM 对提交结果统一测评,并于当天更新Leaderboard

线下测评

  1. 1.线下测评需要提交参赛模型的最终docker,提交形式另行通知入围队伍。
  2. 2.我们提供的base docker包含了推理框架和机器人运行环境,入围队伍需在此基础上构建完整docker,包含模型ckpt、运行代码、模型依赖,
  3. 3.其他详见下文的机器人推理接口,有任何疑问请联系 likai@qiyuan-robot.com, yan790@pku.edu.cn.

Q&A (Updating)

  1. 1.“全部episode上做action预测” 是否表示两个指定 validation 数据集中的每个episode、每一帧都需要输出 action,并保持原始 30 FPS 和 episode 长度?
  • 两个validation数据集中,每条episode,每一帧都要输出25维action,需要保持episode长度,但我们只在选中的instruction段计算分数。
  1. 1.线上评分使用什么指标?89维字段是否全部计分?
  • 线上评估分数与动作预测误差的 MSE 和 MAE 相关。只在25维上计算分数,提交的时候也只需要提交25维action预测。
  1. 1.入围真机阶段后是否允许更新模型权重?真机推理的 action chunk 长度 N、控制频率和计算资源限制分别是多少?
  • 入围后允许更新权重。真机推理action_chunk自定,参考下文的机器人推理接口。机器人控制的下发频率为30Hz,线下计算资源为4090机器,显存48GB,内存64GB。
  1. 1.分数计算示例
  • 某条episode长度为1000frames,共分4段(segment内均为左闭右开),如下所示,最终提交的action预测长度为1000,维度为25,我们会在[99, 420),[420, 910)这两段上计算分数。
分段片段1片段2片段3片段4
索引0~99(exclude)99~420(exclude)420~910(exclude)910~1000(exclude)
标注Start remote operation.Open the washing machine door.Close the washing machine door.End remote operation.

数据集字段说明

URDF

我们开放机器人硬件描述以支持非商业用途的教学、实验、研究等项目。可从以下地址获取URDF:challenge_data/robot_description/x2w.urdf

图像

包含三视角RGB图像,分辨率为1280*720,帧率30FPS,字段定义如下 | 数据集字段 | 数据源 | | :--- | :--- | | observation.images.x2wcameraheadrealsensecompressed | 头部相机 | | observation.images.x2wcameraleftwristzedxonegsrgbrawimagecompressed | 左手相机 | | observation.images.x2wcamerarightwristzedxonegsrgbrawimagecompressed | 右手相机 |

语言指令

数据集全部标注信息见${datasetname}/meta/info.json。每段语言标注均为左闭右开,即[startframeindex, endframe_index),以一条1000帧的操作任务为例说明如下 | 分段 | 片段1 | 片段2 | 片段3 | 片段4 | | :--- | :--- | :--- | :--- | :--- | | 索引 | 0~99(exclude) | 99~420 | 420~910 | 910~1000 | | 标注 | Start remote operation. | Open the washing machine door. | Close the washing machine door. | End remote operation. |

本体感知与动作

包括机器人状态信息(observation.state)与动作信息(action),维度均为89维,定义如下

1. 关节位置(Joint Position,索引 0-21)
索引数据源列名物理意义单位
0joint_statefoldinglowerjoint折叠下关节角度rad
1joint_statefoldingupperjoint折叠上关节角度rad
2joint_statewaistpitchjoint腰部俯仰关节角度rad
3joint_statetorsoyawjoint躯干偏航关节角度rad
4joint_stateheadyawjoint头部偏航关节角度rad
5joint_stateheadpitchjoint头部俯仰关节角度rad
6joint_stateleftshoulderpitch_joint左肩俯仰关节角度rad
7joint_stateleftshoulderroll_joint左肩翻滚关节角度rad
8joint_stateleftshoulderyaw_joint左肩偏航关节角度rad
9joint_stateleftelbowpitch_joint左肘俯仰关节角度rad
10joint_stateleftwristroll_joint左腕翻滚关节角度rad
11joint_stateleftwristyaw_joint左腕偏航关节角度rad
12joint_stateleftwristpitch_joint左腕俯仰关节角度rad
13joint_staterightshoulderpitch_joint右肩俯仰关节角度rad
14joint_staterightshoulderroll_joint右肩翻滚关节角度rad
15joint_staterightshoulderyaw_joint右肩偏航关节角度rad
16joint_staterightelbowpitch_joint右肘俯仰关节角度rad
17joint_staterightwristroll_joint右腕翻滚关节角度rad
18joint_staterightwristyaw_joint右腕偏航关节角度rad
19joint_staterightwristpitch_joint右腕俯仰关节角度rad
20joint_stateleftfingerl_joint左手指关节角度rad
21joint_staterightfingerl_joint右手指关节角度rad
2. 关节速度(Joint Velocity,索引 22-43)
索引数据源列名物理意义单位
22joint_statefoldinglowerjoint_velocity折叠下关节角速度rad/s
23joint_statefoldingupperjoint_velocity折叠上关节角速度rad/s
24joint_statewaistpitchjoint_velocity腰部俯仰关节角速度rad/s
25joint_statetorsoyawjoint_velocity躯干偏航关节角速度rad/s
26joint_stateheadyawjoint_velocity头部偏航关节角速度rad/s
27joint_stateheadpitchjoint_velocity头部俯仰关节角速度rad/s
28joint_stateleftshoulderpitchjointvelocity左肩俯仰关节角速度rad/s
29joint_stateleftshoulderrolljointvelocity左肩翻滚关节角速度rad/s
30joint_stateleftshoulderyawjointvelocity左肩偏航关节角速度rad/s
31joint_stateleftelbowpitchjointvelocity左肘俯仰关节角速度rad/s
32joint_stateleftwristrolljointvelocity左腕翻滚关节角速度rad/s
33joint_stateleftwristyawjointvelocity左腕偏航关节角速度rad/s
34joint_stateleftwristpitchjointvelocity左腕俯仰关节角速度rad/s
35joint_staterightshoulderpitchjointvelocity右肩俯仰关节角速度rad/s
36joint_staterightshoulderrolljointvelocity右肩翻滚关节角速度rad/s
37joint_staterightshoulderyawjointvelocity右肩偏航关节角速度rad/s
38joint_staterightelbowpitchjointvelocity右肘俯仰关节角速度rad/s
39joint_staterightwristrolljointvelocity右腕翻滚关节角速度rad/s
40joint_staterightwristyawjointvelocity右腕偏航关节角速度rad/s
41joint_staterightwristpitchjointvelocity右腕俯仰关节角速度rad/s
42joint_stateleftfingerljointvelocity左手指关节角速度rad/s
43joint_staterightfingerljointvelocity右手指关节角速度rad/s
3. 关节力矩(Joint Effort,索引 44-65)
索引数据源列名物理意义单位
44joint_statefoldinglowerjoint_effort折叠下关节输出力矩N·m
45joint_statefoldingupperjoint_effort折叠上关节输出力矩N·m
46joint_statewaistpitchjoint_effort腰部俯仰关节输出力矩N·m
47joint_statetorsoyawjoint_effort躯干偏航关节输出力矩N·m
48joint_stateheadyawjoint_effort头部偏航关节输出力矩N·m
49joint_stateheadpitchjoint_effort头部俯仰关节输出力矩N·m
50joint_stateleftshoulderpitchjointeffort左肩俯仰关节输出力矩N·m
51joint_stateleftshoulderrolljointeffort左肩翻滚关节输出力矩N·m
52joint_stateleftshoulderyawjointeffort左肩偏航关节输出力矩N·m
53joint_stateleftelbowpitchjointeffort左肘俯仰关节输出力矩N·m
54joint_stateleftwristrolljointeffort左腕翻滚关节输出力矩N·m
55joint_stateleftwristyawjointeffort左腕偏航关节输出力矩N·m
56joint_stateleftwristpitchjointeffort左腕俯仰关节输出力矩N·m
57joint_staterightshoulderpitchjointeffort右肩俯仰关节输出力矩N·m
58joint_staterightshoulderrolljointeffort右肩翻滚关节输出力矩N·m
59joint_staterightshoulderyawjointeffort右肩偏航关节输出力矩N·m
60joint_staterightelbowpitchjointeffort右肘俯仰关节输出力矩N·m
61joint_staterightwristrolljointeffort右腕翻滚关节输出力矩N·m
62joint_staterightwristyawjointeffort右腕偏航关节输出力矩N·m
63joint_staterightwristpitchjointeffort右腕俯仰关节输出力矩N·m
64joint_stateleftfingerljointeffort左手指关节输出力矩N·m
65joint_staterightfingerljointeffort右手指关节输出力矩N·m
4. 末端执行器位姿(Gripper Pose,索引 66-79)
索引数据源列名物理意义单位
66gripper_poseleftgripperx左末端执行器 X 位置m
67gripper_poseleftgrippery左末端执行器 Y 位置m
68gripper_poseleftgripperz左末端执行器 Z 位置m
69gripper_poseleftgripperqx左末端执行器四元数 X 分量-
70gripper_poseleftgripperqy左末端执行器四元数 Y 分量-
71gripper_poseleftgripperqz左末端执行器四元数 Z 分量-
72gripper_poseleftgripperqw左末端执行器四元数 W 分量-
73gripper_poserightgripperx右末端执行器 X 位置m
74gripper_poserightgrippery右末端执行器 Y 位置m
75gripper_poserightgripperz右末端执行器 Z 位置m
76gripper_poserightgripperqx右末端执行器四元数 X 分量-
77gripper_poserightgripperqy右末端执行器四元数 Y 分量-
78gripper_poserightgripperqz右末端执行器四元数 Z 分量-
79gripper_poserightgripperqw右末端执行器四元数 W 分量-
5. 轮子关节状态(Wheel Joint State,索引 80-88)
索引数据源列名物理意义单位
80wheeljointstatewheelfrontleft_position前左轮角度位置rad
81wheeljointstatewheelfrontright_position前右轮角度位置rad
82wheeljointstatewheelrearposition后轮角度位置rad
83wheeljointstatewheelfrontleft_velocity前左轮角速度rad/s
84wheeljointstatewheelfrontright_velocity前右轮角速度rad/s
85wheeljointstatewheelrearvelocity后轮角速度rad/s
86wheeljointstatewheelfrontleft_effort前左轮输出力矩N·m
87wheeljointstatewheelfrontright_effort前右轮输出力矩N·m
88wheeljointstatewheelreareffort后轮输出力矩N·m

机器人推理接口

我们提供了包含机器人运行环境的基础Docker镜像,参赛者需要实现自己模型的两个函数

def load_model(self):
    # TODO: implement model loading
    pass

def predict(self, sample: dict) -> np.ndarray:
    # TODO: implement inference, return np.ndarray of shape (N, 25)
    pass

def inference_loop(self):
    last_iner_time = time.time()
    while self.running:
        if self.prepare_in_progress or not self.enable_inference:
            time.sleep(0.1)
            continue

        tic = time.time()
        sample = self.update_input()
        prediction = self.predict(sample)

数据集中虽然记录了完整的action字段,但在推理中我们只选择机器人关节位置(25维)作为控制指令,完整字段定义如下

索引列名物理意义单位
0foldinglowerjoint折叠下关节角度rad
1foldingupperjoint折叠上关节角度rad
2waistpitchjoint腰部俯仰关节角度rad
3torsoyawjoint躯干偏航关节角度rad
4headyawjoint头部偏航关节角度rad
5headpitchjoint头部俯仰关节角度rad
6leftshoulderpitch_joint左肩俯仰关节角度rad
7leftshoulderroll_joint左肩翻滚关节角度rad
8leftshoulderyaw_joint左肩偏航关节角度rad
9leftelbowpitch_joint左肘俯仰关节角度rad
10leftwristroll_joint左腕翻滚关节角度rad
11leftwristyaw_joint左腕偏航关节角度rad
12leftwristpitch_joint左腕俯仰关节角度rad
13rightshoulderpitch_joint右肩俯仰关节角度rad
14rightshoulderroll_joint右肩翻滚关节角度rad
15rightshoulderyaw_joint右肩偏航关节角度rad
16rightelbowpitch_joint右肘俯仰关节角度rad
17rightwristroll_joint右腕翻滚关节角度rad
18rightwristyaw_joint右腕偏航关节角度rad
19rightwristpitch_joint右腕俯仰关节角度rad
20leftfingerl_joint左手指关节角度rad
21rightfingerl_joint右手指关节角度rad
22wheelfrontleft_velocity前左轮角速度rad/s
23wheelfrontright_velocity前右轮角速度rad/s
24wheelrearvelocity后轮角速度rad/s

UMI数据

UMI数据由上海朗智格机器人科技有限公司提供,构造为标准的 LeRobot v2.1 数据集,包含 5 个双手操作 episode,以及左、右手腕载 ego 相机数据。

bash
pip install "lerobot==0.3.3"

已在 Python 3.11、LeRobot 0.3.3、PyTorch 2.7.1、TorchVision 0.22.1 和 pyav 视频后端下完成加载与抽帧验证。

python
from lerobot.datasets.lerobot_dataset import LeRobotDataset

dataset = LeRobotDataset(
    repo_id="local/umi_sample_data_v21",
    root="/path/to/umi_sample_data_v21",
)

数据概览

Episode`task_index`任务帧数时长
episode_0000000fold the red shirt141047 s
episode_0000011fold the black shirt105035 s
episode_0000022fold the yellow shirt87029 s
episode_0000031fold the black shirt105035 s
episode_0000043fold the brown shirt156052 s

数据集共 5940 帧、4 个唯一任务,帧率为 30 FPS,ego 视频分辨率为 960 × 960。

目录结构

text
umi_sample_data_v21/
├── data/chunk-000/                       # 5 个 episode Parquet 文件
├── videos/chunk-000/
│   ├── observation.images.left_ego/      # 左手 ego 视频
│   └── observation.images.right_ego/     # 右手 ego 视频
├── meta/
│   ├── info.json                         # 数据集与字段定义
│   ├── tasks.jsonl                       # 任务与 task_index 映射
│   ├── episodes.jsonl                    # episode 长度与任务
│   ├── episodes_stats.jsonl              # 每个 episode 的统计量
│   └── calibration.json                  # 相机与 IMU 标定参数
├── annotation/                           # episode 级任务和动作分段标注
└── imu/                                  # 左右手 IMU 数据

数据集字段说明

图像
数据集字段数据源
observation.images.left_ego左手腕载 RGB ego 相机,960 × 960
observation.images.right_ego右手腕载 RGB ego 相机,960 × 960
本体感知与动作

observation.stateaction 均为 16 维,字段顺序一致:

索引字段顺序物理意义单位
0–2left_x, left_y, left_z左手末端位置m
3–6left_qw, left_qx, left_qy, left_qz左手末端四元数 (w, x, y, z)-
7left_gripper左夹爪开合角度°
8–10right_x, right_y, right_z右手末端位置m
11–14right_qw, right_qx, right_qy, right_qz右手末端四元数 (w, x, y, z)-
15right_gripper右夹爪开合角度°

observation.state 表示当前帧状态。除末帧外,action[t] = state[t+1];末帧 action 保留原始采集序列的下一时刻目标,因此不一定等于本 episode 的末帧 state。左右手位姿使用独立坐标系,不能直接计算双手之间的相对距离或姿态。

索引字段
字段类型说明
timestampfloat32episode 内时间,单位为秒
frame_indexint64episode 内帧编号,从 0 开始
episode_indexint64episode 编号,范围为 0–4
indexint64数据集全局帧编号,范围为 0–5939
task_indexint64任务编号,对应 meta/tasks.jsonl
标注与 IMU
文件说明
annotation/episode_subtasks_*.jsonlepisode 级任务、目标物体与成功状态
annotation/action_steps_*.jsonl细粒度动作分段
imu/episode_*_{left,right}.csv左右手时间戳、三轴角速度和三轴加速度

标注区间采用 [start_frame_index, end_frame_index),即包含起始帧、不包含结束帧。


English

Contents

About Us

We come from PrimeBot Research Institute, Swancor Advanced Materials Co., Ltd. Our mission is to accelerate the advent of the era of personal robots and home robots. We open-source a high-quality, home-oriented bimanual manipulation dataset, and also provide open-source robot hardware descriptions for visualization and reproducible research.

If this dataset is helpful to your work, please cite it:
bibtex
@misc{xu2026scalingbimanualhouseholdmanipulation,
      title={Scaling Bimanual Household Manipulation from 1,500 hours of Demonstrations to On-Policy Corrections}, 
      author={Jiafeng Xu and Qi Li and Yan Shen and Yiyu Ren and Travis Davies and Shaowen He and Ze Wang and Yifan Yang and Ran Cheng and Hao Dong},
      year={2026},
      eprint={2609.03591},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2609.03591}, 
}
If you have any questions about the challenge, dataset, or other information, feel free to drop an email:

likai@qiyuan-robot.com, xujiafeng26@stu.pku.edu.cn

Change Log

  • 2026.09.08: Second batch of 100 hours of UMI data released open source
  • 2026.08.10: First batch of 5 hours of UMI data released open source
  • 2026.08.06: All 500+ hours of real robot data released open source

Real-World Teleoperation Data

Teleoperation data is sponsored by PrimeBot. The dataset is constructed in the standard LeRobot V2.1 format. Example code for loading the dataset:

bash
pip install "lerobot==0.3.3" "mmengine==0.10.7" "torch==2.7.0" "numpy==1.26.4" "torchcodec==0.5" "torchvision==0.22.0"

python dataloader/custom_lerobot_dataset.py

Training Set Description

The training set covers more than 12 real-world dual-arm manipulation tasks in household scenarios. All data includes frame-accurate language annotations. Partial task list:

Task IDTask Description
1Use the gripper to fully open the washing machine door.
2Close the washing machine door tightly with the gripper.
3Put these two pieces of clothing into the washer.
4Take the clothing out of the washer and put it in the basket.
5Pick up the laundry basket with both grippers.
6Put the dirty clothes basket on the ground.
7Pick up the clothing and put it on the sofa.
8Put the clothing in the folding area.
9Unfold the clothing and fold it neatly.
10Place the folded clothing in the storage area.

The training set consists of four independent, non-overlapping subsets. You can freely combine them for different training strategies. | Dataset Name | Collection Batch | Task Type | Instruction | | :--- | :--- | :--- | :--- | | fulltaskbatch1train | 1 | 1-10 | frame-level | | foldclothbatch2train | 2 | 8~10 | frame-level | | partialtaskbatch3train | 3 | 1,4,5 | frame-level | | partialtaskbatch4train | 4 | 1,2,3,9 | segments-level |

During the online assessment, participants must submit all predicted action trajectories on the validation_data dataset (scores are only calculated for the tasks mentioned above). The assessment dataset is:

  • fulltaskbatch1noisevalid
  • foldclothbatch2noisevalid

Validation Set Description

The validation set follows exactly the same format as the training set. To prevent policies from overfitting to state data, two special adjustments are applied:

  • The observation.state data in the validation set contains random noise.
  • All action fields in the validation set are set to zero.

Considering the computing resources of participating teams, the evaluation of this challenge will be conducted on no more than the follow 4 tasks: | Task ID | Task Description | | :--- | :--- | | 1 | Use the gripper to fully open the washing machine door. | | 2 | Close the washing machine door tightly with the gripper. | | 3 | Put these two pieces of clothing into the washer. | | 9 | Unfold the clothing and fold it neatly. |

Online evaluation

  1. 1.Participants need to predict actions across all episodes of the validationdata. Note that the dataset contains 89 dimensions for actions; however, only 25 dimensions need to be predicted for both online and on-site evaluation participation (see `Robot Inference Interface` for definition). The validationdata consists of:
  2. 2.fulltaskbatch1noisevalid
  3. 3.foldclothbatch2noisevalid
  1. 1.For online evaluation, only the file containing the prediction results needs to be submitted. The submission portal is Google Form. Each team can submit multiple times, ensuring that the team information remains unchanged. We will use the latest submission before the evaluation.
  1. 1.The data format for submitted files should refer to YourTeamName.zip. Note that only action prediction results are required; annotations, images, ontology state, etc., are not needed.
  1. 1.Online evaluation scores are related to the Mean Squared Error (MSE) and Mean Absolute Error (MAE) of action prediction errors. The more accurate the action prediction, the higher the score. The top 5 teams will advance to the on-site evaluation.
  1. 1.The evaluation will be conducted on August 26, 28, 31, September 2, 4, 7, 9, and 11, 2026. The submitted results will be evaluated uniformly at 10:00 AM Beijing time on the same day, and the Leaderboard will be updated on the same day.

On-site evaluation

  1. 1.For the on-site evaluation, teams need to submit the final Docker image of their participating model. The submission method will be notified to the shortlisted teams separately.
  1. 1.The base docker we provide includes the inference framework and the robot's runtime environment. Shortlisted teams must build a complete Docker container on top of this, including the model (ckpt), runtime code, and model dependencies.
  1. 1.For further details, please see Robot Inference Interface. For any questions, please contact likai@qiyuan-robot.com, yan790@pku.edu.cn.

Q&A (Updating)

  1. 1.Does "Perform action prediction on all episodes" mean that every episode and every frame in the two specified validation datasets needs to output an action while maintaining the original 30 FPS and episode length?
  • For each episode and every frame in the two validation datasets, a 25-dimensional action needs to be output, maintaining the episode length, but we only calculate scores for the selected instruction segments.
  1. 1.What metrics are used for online scoring? Are all 89 dimensions scored?
  • The online evaluation score is related to the MSE and MAE of the action prediction error. Scores are only calculated on the 25 dimensions, and only the 25-dimensional action prediction needs to be submitted.
  1. 1.Is it allowed to update model weights after being shortlisted for the real machine stage? What are the action chunk length N, control frequency, and computational resource limits for real machine inference?
  • Weight updates are allowed after being shortlisted. The action_chunk for real machine inference is customizable; refer to Robot Inference Interface. The robot control sends commands at a frequency of 30Hz, and the on-site computing resources consist of a 4090 machine with 48GB of VRAM and 64GB of RAM.
  1. 1.Score Calculation Example
  • An episode is 1000 frames long, divided into 4 segments (each segment is left-closed and right-open), as shown below. The final submitted action prediction is 1000 frames long with a dimension of 25. We will calculate the score on the segments [99, 420) and [420, 910).
SegmentationSegment 1Segment 2Segment 3Segment 4
Index0~99(exclude)99~420(exclude)420~910(exclude)910~1000(exclude)
AnnotationStart remote operation.Open the washing machine door.Close the washing machine door.End remote operation.

Dataset Field Description

URDF

We are releasing the robot hardware description to support non-commercial projects such as teaching, experimentation, and research. The URDF can be obtained from the following address: challenge_data/robot_description.

Camera Images

The dataset includes three-view RGB images with a resolution of 1280×720 at 30 FPS. Field definitions:

Dataset FieldSource
observation.images.x2wcameraheadrealsensecompressedHead camera
observation.images.x2wcameraleftwristzedxonegsrgbrawimagecompressedLeft wrist camera
observation.images.x2wcamerarightwristzedxonegsrgbrawimagecompressedRight wrist camera
Language Instructions

The complete annotation information for the dataset can be found in ${dataset_name}/meta/info.json. Each language annotation is left-closed and right-open, i.e., [startframeindex, endframeindex). Taking a 1000-frame manipulation task as an example:

SegmentSegment 1Segment 2Segment 3Segment 4
Frame Index0–99(exclude)99–420420–910910–1000
AnnotationStart remote operation.Open the washing machine door.Close the washing machine door.End remote operation.
Proprioceptive and Actions

Including robot state (observation.state) and action (action), both with 89 dimensions, defined as follows:

1. Joint Position (Index 0–21)
IndexSourceColumn NamePhysical MeaningUnit
0joint_statefoldinglowerjointFolding lower joint anglerad
1joint_statefoldingupperjointFolding upper joint anglerad
2joint_statewaistpitchjointWaist pitch joint anglerad
3joint_statetorsoyawjointTorso yaw joint anglerad
4joint_stateheadyawjointHead yaw joint anglerad
5joint_stateheadpitchjointHead pitch joint anglerad
6joint_stateleftshoulderpitch_jointLeft shoulder pitch joint anglerad
7joint_stateleftshoulderroll_jointLeft shoulder roll joint anglerad
8joint_stateleftshoulderyaw_jointLeft shoulder yaw joint anglerad
9joint_stateleftelbowpitch_jointLeft elbow pitch joint anglerad
10joint_stateleftwristroll_jointLeft wrist roll joint anglerad
11joint_stateleftwristyaw_jointLeft wrist yaw joint anglerad
12joint_stateleftwristpitch_jointLeft wrist pitch joint anglerad
13joint_staterightshoulderpitch_jointRight shoulder pitch joint anglerad
14joint_staterightshoulderroll_jointRight shoulder roll joint anglerad
15joint_staterightshoulderyaw_jointRight shoulder yaw joint anglerad
16joint_staterightelbowpitch_jointRight elbow pitch joint anglerad
17joint_staterightwristroll_jointRight wrist roll joint anglerad
18joint_staterightwristyaw_jointRight wrist yaw joint anglerad
19joint_staterightwristpitch_jointRight wrist pitch joint anglerad
20joint_stateleftfingerl_jointLeft finger joint anglerad
21joint_staterightfingerl_jointRight finger joint anglerad
2. Joint Velocity (Index 22–43)
IndexSourceColumn NamePhysical MeaningUnit
22joint_statefoldinglowerjoint_velocityFolding lower joint angular velocityrad/s
23joint_statefoldingupperjoint_velocityFolding upper joint angular velocityrad/s
24joint_statewaistpitchjoint_velocityWaist pitch joint angular velocityrad/s
25joint_statetorsoyawjoint_velocityTorso yaw joint angular velocityrad/s
26joint_stateheadyawjoint_velocityHead yaw joint angular velocityrad/s
27joint_stateheadpitchjoint_velocityHead pitch joint angular velocityrad/s
28joint_stateleftshoulderpitchjointvelocityLeft shoulder pitch joint angular velocityrad/s
29joint_stateleftshoulderrolljointvelocityLeft shoulder roll joint angular velocityrad/s
30joint_stateleftshoulderyawjointvelocityLeft shoulder yaw joint angular velocityrad/s
31joint_stateleftelbowpitchjointvelocityLeft elbow pitch joint angular velocityrad/s
32joint_stateleftwristrolljointvelocityLeft wrist roll joint angular velocityrad/s
33joint_stateleftwristyawjointvelocityLeft wrist yaw joint angular velocityrad/s
34joint_stateleftwristpitchjointvelocityLeft wrist pitch joint angular velocityrad/s
35joint_staterightshoulderpitchjointvelocityRight shoulder pitch joint angular velocityrad/s
36joint_staterightshoulderrolljointvelocityRight shoulder roll joint angular velocityrad/s
37joint_staterightshoulderyawjointvelocityRight shoulder yaw joint angular velocityrad/s
38joint_staterightelbowpitchjointvelocityRight elbow pitch joint angular velocityrad/s
39joint_staterightwristrolljointvelocityRight wrist roll joint angular velocityrad/s
40joint_staterightwristyawjointvelocityRight wrist yaw joint angular velocityrad/s
41joint_staterightwristpitchjointvelocityRight wrist pitch joint angular velocityrad/s
42joint_stateleftfingerljointvelocityLeft finger joint angular velocityrad/s
43joint_staterightfingerljointvelocityRight finger joint angular velocityrad/s
3. Joint Effort (Index 44–65)
IndexSourceColumn NamePhysical MeaningUnit
44joint_statefoldinglowerjoint_effortFolding lower joint output torqueN·m
45joint_statefoldingupperjoint_effortFolding upper joint output torqueN·m
46joint_statewaistpitchjoint_effortWaist pitch joint output torqueN·m
47joint_statetorsoyawjoint_effortTorso yaw joint output torqueN·m
48joint_stateheadyawjoint_effortHead yaw joint output torqueN·m
49joint_stateheadpitchjoint_effortHead pitch joint output torqueN·m
50joint_stateleftshoulderpitchjointeffortLeft shoulder pitch joint output torqueN·m
51joint_stateleftshoulderrolljointeffortLeft shoulder roll joint output torqueN·m
52joint_stateleftshoulderyawjointeffortLeft shoulder yaw joint output torqueN·m
53joint_stateleftelbowpitchjointeffortLeft elbow pitch joint output torqueN·m
54joint_stateleftwristrolljointeffortLeft wrist roll joint output torqueN·m
55joint_stateleftwristyawjointeffortLeft wrist yaw joint output torqueN·m
56joint_stateleftwristpitchjointeffortLeft wrist pitch joint output torqueN·m
57joint_staterightshoulderpitchjointeffortRight shoulder pitch joint output torqueN·m
58joint_staterightshoulderrolljointeffortRight shoulder roll joint output torqueN·m
59joint_staterightshoulderyawjointeffortRight shoulder yaw joint output torqueN·m
60joint_staterightelbowpitchjointeffortRight elbow pitch joint output torqueN·m
61joint_staterightwristrolljointeffortRight wrist roll joint output torqueN·m
62joint_staterightwristyawjointeffortRight wrist yaw joint output torqueN·m
63joint_staterightwristpitchjointeffortRight wrist pitch joint output torqueN·m
64joint_stateleftfingerljointeffortLeft finger joint output torqueN·m
65joint_staterightfingerljointeffortRight finger joint output torqueN·m
4. End-Effector (Gripper) Pose (Index 66–79)
IndexSourceColumn NamePhysical MeaningUnit
66gripper_poseleftgripperxLeft gripper X positionm
67gripper_poseleftgripperyLeft gripper Y positionm
68gripper_poseleftgripperzLeft gripper Z positionm
69gripper_poseleftgripperqxLeft gripper quaternion X component-
70gripper_poseleftgripperqyLeft gripper quaternion Y component-
71gripper_poseleftgripperqzLeft gripper quaternion Z component-
72gripper_poseleftgripperqwLeft gripper quaternion W component-
73gripper_poserightgripperxRight gripper X positionm
74gripper_poserightgripperyRight gripper Y positionm
75gripper_poserightgripperzRight gripper Z positionm
76gripper_poserightgripperqxRight gripper quaternion X component-
77gripper_poserightgripperqyRight gripper quaternion Y component-
78gripper_poserightgripperqzRight gripper quaternion Z component-
79gripper_poserightgripperqwRight gripper quaternion W component-
5. Wheel Joint State (Index 80–88)
IndexSourceColumn NamePhysical MeaningUnit
80wheeljointstatewheelfrontleft_positionFront left wheel angular positionrad
81wheeljointstatewheelfrontright_positionFront right wheel angular positionrad
82wheeljointstatewheelrearpositionRear wheel angular positionrad
83wheeljointstatewheelfrontleft_velocityFront left wheel angular velocityrad/s
84wheeljointstatewheelfrontright_velocityFront right wheel angular velocityrad/s
85wheeljointstatewheelrearvelocityRear wheel angular velocityrad/s
86wheeljointstatewheelfrontleft_effortFront left wheel output torqueN·m
87wheeljointstatewheelfrontright_effortFront right wheel output torqueN·m
88wheeljointstatewheelreareffortRear wheel output torqueN·m

Robot Inference Interface

We provide a base Docker image for the robot's inference environment, in which you will need to implement two functions for your own model

def load_model(self):
    # TODO: implement model loading
    pass

def predict(self, sample: dict) -> np.ndarray:
    # TODO: implement inference, return np.ndarray of shape (N, 25)
    pass

def inference_loop(self):
    last_iner_time = time.time()
    while self.running:
        if self.prepare_in_progress or not self.enable_inference:
            time.sleep(0.1)
            continue

        tic = time.time()
        sample = self.update_input()
        prediction = self.predict(sample)

Although the full action fields are recorded in the dataset, only robot joint positions are used as control commands(25-dimensional) during inference. The complete field definitions:

IndexColumn NamePhysical MeaningUnit
0foldinglowerjointFolding lower joint anglerad
1foldingupperjointFolding upper joint anglerad
2waistpitchjointWaist pitch joint anglerad
3torsoyawjointTorso yaw joint anglerad
4headyawjointHead yaw joint anglerad
5headpitchjointHead pitch joint anglerad
6leftshoulderpitch_jointLeft shoulder pitch joint anglerad
7leftshoulderroll_jointLeft shoulder roll joint anglerad
8leftshoulderyaw_jointLeft shoulder yaw joint anglerad
9leftelbowpitch_jointLeft elbow pitch joint anglerad
10leftwristroll_jointLeft wrist roll joint anglerad
11leftwristyaw_jointLeft wrist yaw joint anglerad
12leftwristpitch_jointLeft wrist pitch joint anglerad
13rightshoulderpitch_jointRight shoulder pitch joint anglerad
14rightshoulderroll_jointRight shoulder roll joint anglerad
15rightshoulderyaw_jointRight shoulder yaw joint anglerad
16rightelbowpitch_jointRight elbow pitch joint anglerad
17rightwristroll_jointRight wrist roll joint anglerad
18rightwristyaw_jointRight wrist yaw joint anglerad
19rightwristpitch_jointRight wrist pitch joint anglerad
20leftfingerl_jointLeft finger joint anglerad
21rightfingerl_jointRight finger joint anglerad
22wheelfrontleft_velocityFront left wheel angular velocityrad/s
23wheelfrontright_velocityFront right wheel angular velocityrad/s
24wheelrearvelocityRear wheel angular velocityrad/s

UMI Data

UMI data is sponsored by crobotia. The dataset is constructed in the standard LeRobot v2.1 dataset with five bimanual manipulation episodes and left/right wrist-mounted ego-camera data.

bash
pip install "lerobot==0.3.3"

The dataset has been successfully loaded and frame-tested with Python 3.11, LeRobot 0.3.3, PyTorch 2.7.1, TorchVision 0.22.1, and the pyav video backend.

python
from lerobot.datasets.lerobot_dataset import LeRobotDataset

dataset = LeRobotDataset(
    repo_id="local/umi_sample_data_v21",
    root="/path/to/umi_sample_data_v21",
)

Dataset Overview

Episode`task_index`TaskFramesDuration
episode_0000000fold the red shirt141047 s
episode_0000011fold the black shirt105035 s
episode_0000022fold the yellow shirt87029 s
episode_0000031fold the black shirt105035 s
episode_0000043fold the brown shirt156052 s

The dataset contains 5,940 frames and four unique tasks. All episodes are recorded at 30 FPS, and the ego videos have a resolution of 960 × 960.

Directory Structure

text
umi_sample_data_v21/
├── data/chunk-000/                       # Five episode Parquet files
├── videos/chunk-000/
│   ├── observation.images.left_ego/      # Left-hand ego videos
│   └── observation.images.right_ego/     # Right-hand ego videos
├── meta/
│   ├── info.json                         # Dataset and feature definitions
│   ├── tasks.jsonl                       # Task-to-task_index mapping
│   ├── episodes.jsonl                    # Episode lengths and tasks
│   ├── episodes_stats.jsonl              # Per-episode statistics
│   └── calibration.json                  # Camera and IMU calibration
├── annotation/                           # Episode-level and action-step annotations
└── imu/                                  # Left/right IMU data

Dataset Fields

Camera Images
Dataset fieldSource
observation.images.left_egoLeft wrist-mounted RGB ego camera, 960 × 960
observation.images.right_egoRight wrist-mounted RGB ego camera, 960 × 960
Proprioception and Actions

Both observation.state and action are 16-dimensional and use the same field order:

IndicesFieldsMeaningUnit
0–2left_x, left_y, left_zLeft end-effector positionm
3–6left_qw, left_qx, left_qy, left_qzLeft end-effector quaternion (w, x, y, z)-
7left_gripperLeft gripper opening angle°
8–10right_x, right_y, right_zRight end-effector positionm
11–14right_qw, right_qx, right_qy, right_qzRight end-effector quaternion (w, x, y, z)-
15right_gripperRight gripper opening angle°

observation.state represents the current-frame state. Except for the final frame, action[t] = state[t+1]. The final action retains the next-step target from the original capture sequence and therefore may differ from the final state of the episode. The left and right poses use independent coordinate systems and cannot be used directly to compute the relative distance or pose between the two hands.

Index Fields
FieldTypeDescription
timestampfloat32Time within the episode, in seconds
frame_indexint64Zero-based frame index within the episode
episode_indexint64Episode index in the range 0–4
indexint64Global frame index in the range 0–5,939
task_indexint64Task identifier mapped by meta/tasks.jsonl
Annotations and IMU
FileDescription
annotation/episode_subtasks_*.jsonlEpisode-level task, target-object, and success annotations
annotation/action_steps_*.jsonlFine-grained action-step segments
imu/episode_*_{left,right}.csvLeft/right timestamps, three-axis angular velocity, and three-axis acceleration

Annotation intervals use the half-open convention [start_frame_index, end_frame_index): the start frame is included and the end frame is excluded.