challenge-2026/challenge_data

Dataset

```bibtex

12

500 commits

2 linked in READMEs

updated Sep 23, 2026

See the code

README

PrimeBot Household Bimanual Manipulation Challenge Dataset

PrimeBot Household Bimanual Manipulation Challenge

中文 | English


中文

目录

关于我们

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

如果本数据集对您的工作有帮助,感谢引用:

@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.23:第一批 100 小时PrimeUMI数据开源
  • 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种真实的家庭场景双臂操作任务,所有数据均包含精确到帧的语言标注,部分任务列表如下

任务编号任务描述
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.

训练集分4个批次,互相独立不重复,可自由组合数据集训练策略,

数据集名称采集批次任务类型语言标注
full_task_batch1_train11-10帧级切分
fold_cloth_batch2_train28~10帧级切分
partial_task_batch3_train31,4,5帧级切分
partial_task_batch4_train41,2,3,9整段标注

验证集说明

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

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

考虑到参赛团队算力资源与测试资源,本次挑战赛在不超过以下4个任务上进行线上和线下评测,

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.
9Unfold the clothing and fold it neatly.

线上测评

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

线下测评

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

Q&A (Updating)

  1. “全部episode上做action预测” 是否表示两个指定 validation 数据集中的每个episode、每一帧都需要输出 action,并保持原始 30 FPS 和 episode 长度?
  • 两个validation数据集中,每条episode,每一帧都要输出25维action,需要保持episode长度,但我们只在选中的instruction段计算分数。
  1. 线上评分使用什么指标?89维字段是否全部计分?
  • 线上评估分数与动作预测误差的 MSE 和 MAE 相关。只在25维上计算分数,提交的时候也只需要提交25维action预测。
  1. 入围真机阶段后是否允许更新模型权重?真机推理的 action chunk 长度 N、控制频率和计算资源限制分别是多少?
  • 入围后允许更新权重。真机推理action_chunk自定,参考下文的机器人推理接口。机器人控制的下发频率为30Hz,线下计算资源为4090机器,显存48GB,内存64GB。
  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.x2w_camera_head_realsense_compressed头部相机
observation.images.x2w_camera_left_wrist_zedxonegs_rgb_raw_image_compressed左手相机
observation.images.x2w_camera_right_wrist_zedxonegs_rgb_raw_image_compressed右手相机

语言指令

数据集全部标注信息见${dataset_name}/meta/info.json。每段语言标注均为左闭右开,即[start_frame_index, end_frame_index),以一条1000帧的操作任务为例说明如下

分段片段1片段2片段3片段4
索引0~99(exclude)99~420420~910910~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_statefolding_lower_joint折叠下关节角度rad
1joint_statefolding_upper_joint折叠上关节角度rad
2joint_statewaist_pitch_joint腰部俯仰关节角度rad
3joint_statetorso_yaw_joint躯干偏航关节角度rad
4joint_statehead_yaw_joint头部偏航关节角度rad
5joint_statehead_pitch_joint头部俯仰关节角度rad
6joint_stateleft_shoulder_pitch_joint左肩俯仰关节角度rad
7joint_stateleft_shoulder_roll_joint左肩翻滚关节角度rad
8joint_stateleft_shoulder_yaw_joint左肩偏航关节角度rad
9joint_stateleft_elbow_pitch_joint左肘俯仰关节角度rad
10joint_stateleft_wrist_roll_joint左腕翻滚关节角度rad
11joint_stateleft_wrist_yaw_joint左腕偏航关节角度rad
12joint_stateleft_wrist_pitch_joint左腕俯仰关节角度rad
13joint_stateright_shoulder_pitch_joint右肩俯仰关节角度rad
14joint_stateright_shoulder_roll_joint右肩翻滚关节角度rad
15joint_stateright_shoulder_yaw_joint右肩偏航关节角度rad
16joint_stateright_elbow_pitch_joint右肘俯仰关节角度rad
17joint_stateright_wrist_roll_joint右腕翻滚关节角度rad
18joint_stateright_wrist_yaw_joint右腕偏航关节角度rad
19joint_stateright_wrist_pitch_joint右腕俯仰关节角度rad
20joint_stateleft_finger_l_joint左手指关节角度rad
21joint_stateright_finger_l_joint右手指关节角度rad
2. 关节速度(Joint Velocity,索引 22-43)
索引数据源列名物理意义单位
22joint_statefolding_lower_joint_velocity折叠下关节角速度rad/s
23joint_statefolding_upper_joint_velocity折叠上关节角速度rad/s
24joint_statewaist_pitch_joint_velocity腰部俯仰关节角速度rad/s
25joint_statetorso_yaw_joint_velocity躯干偏航关节角速度rad/s
26joint_statehead_yaw_joint_velocity头部偏航关节角速度rad/s
27joint_statehead_pitch_joint_velocity头部俯仰关节角速度rad/s
28joint_stateleft_shoulder_pitch_joint_velocity左肩俯仰关节角速度rad/s
29joint_stateleft_shoulder_roll_joint_velocity左肩翻滚关节角速度rad/s
30joint_stateleft_shoulder_yaw_joint_velocity左肩偏航关节角速度rad/s
31joint_stateleft_elbow_pitch_joint_velocity左肘俯仰关节角速度rad/s
32joint_stateleft_wrist_roll_joint_velocity左腕翻滚关节角速度rad/s
33joint_stateleft_wrist_yaw_joint_velocity左腕偏航关节角速度rad/s
34joint_stateleft_wrist_pitch_joint_velocity左腕俯仰关节角速度rad/s
35joint_stateright_shoulder_pitch_joint_velocity右肩俯仰关节角速度rad/s
36joint_stateright_shoulder_roll_joint_velocity右肩翻滚关节角速度rad/s
37joint_stateright_shoulder_yaw_joint_velocity右肩偏航关节角速度rad/s
38joint_stateright_elbow_pitch_joint_velocity右肘俯仰关节角速度rad/s
39joint_stateright_wrist_roll_joint_velocity右腕翻滚关节角速度rad/s
40joint_stateright_wrist_yaw_joint_velocity右腕偏航关节角速度rad/s
41joint_stateright_wrist_pitch_joint_velocity右腕俯仰关节角速度rad/s
42joint_stateleft_finger_l_joint_velocity左手指关节角速度rad/s
43joint_stateright_finger_l_joint_velocity右手指关节角速度rad/s
3. 关节力矩(Joint Effort,索引 44-65)
索引数据源列名物理意义单位
44joint_statefolding_lower_joint_effort折叠下关节输出力矩N·m
45joint_statefolding_upper_joint_effort折叠上关节输出力矩N·m
46joint_statewaist_pitch_joint_effort腰部俯仰关节输出力矩N·m
47joint_statetorso_yaw_joint_effort躯干偏航关节输出力矩N·m
48joint_statehead_yaw_joint_effort头部偏航关节输出力矩N·m
49joint_statehead_pitch_joint_effort头部俯仰关节输出力矩N·m
50joint_stateleft_shoulder_pitch_joint_effort左肩俯仰关节输出力矩N·m
51joint_stateleft_shoulder_roll_joint_effort左肩翻滚关节输出力矩N·m
52joint_stateleft_shoulder_yaw_joint_effort左肩偏航关节输出力矩N·m
53joint_stateleft_elbow_pitch_joint_effort左肘俯仰关节输出力矩N·m
54joint_stateleft_wrist_roll_joint_effort左腕翻滚关节输出力矩N·m
55joint_stateleft_wrist_yaw_joint_effort左腕偏航关节输出力矩N·m
56joint_stateleft_wrist_pitch_joint_effort左腕俯仰关节输出力矩N·m
57joint_stateright_shoulder_pitch_joint_effort右肩俯仰关节输出力矩N·m
58joint_stateright_shoulder_roll_joint_effort右肩翻滚关节输出力矩N·m
59joint_stateright_shoulder_yaw_joint_effort右肩偏航关节输出力矩N·m
60joint_stateright_elbow_pitch_joint_effort右肘俯仰关节输出力矩N·m
61joint_stateright_wrist_roll_joint_effort右腕翻滚关节输出力矩N·m
62joint_stateright_wrist_yaw_joint_effort右腕偏航关节输出力矩N·m
63joint_stateright_wrist_pitch_joint_effort右腕俯仰关节输出力矩N·m
64joint_stateleft_finger_l_joint_effort左手指关节输出力矩N·m
65joint_stateright_finger_l_joint_effort右手指关节输出力矩N·m
4. 末端执行器位姿(Gripper Pose,索引 66-79)
索引数据源列名物理意义单位
66gripper_poseleft_gripper_x左末端执行器 X 位置m
67gripper_poseleft_gripper_y左末端执行器 Y 位置m
68gripper_poseleft_gripper_z左末端执行器 Z 位置m
69gripper_poseleft_gripper_qx左末端执行器四元数 X 分量-
70gripper_poseleft_gripper_qy左末端执行器四元数 Y 分量-
71gripper_poseleft_gripper_qz左末端执行器四元数 Z 分量-
72gripper_poseleft_gripper_qw左末端执行器四元数 W 分量-
73gripper_poseright_gripper_x右末端执行器 X 位置m
74gripper_poseright_gripper_y右末端执行器 Y 位置m
75gripper_poseright_gripper_z右末端执行器 Z 位置m
76gripper_poseright_gripper_qx右末端执行器四元数 X 分量-
77gripper_poseright_gripper_qy右末端执行器四元数 Y 分量-
78gripper_poseright_gripper_qz右末端执行器四元数 Z 分量-
79gripper_poseright_gripper_qw右末端执行器四元数 W 分量-
5. 轮子关节状态(Wheel Joint State,索引 80-88)
索引数据源列名物理意义单位
80wheel_joint_statewheel_front_left_position前左轮角度位置rad
81wheel_joint_statewheel_front_right_position前右轮角度位置rad
82wheel_joint_statewheel_rear_position后轮角度位置rad
83wheel_joint_statewheel_front_left_velocity前左轮角速度rad/s
84wheel_joint_statewheel_front_right_velocity前右轮角速度rad/s
85wheel_joint_statewheel_rear_velocity后轮角速度rad/s
86wheel_joint_statewheel_front_left_effort前左轮输出力矩N·m
87wheel_joint_statewheel_front_right_effort前右轮输出力矩N·m
88wheel_joint_statewheel_rear_effort后轮输出力矩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维)作为控制指令,完整字段定义如下

索引列名物理意义单位
0folding_lower_joint折叠下关节角度rad
1folding_upper_joint折叠上关节角度rad
2waist_pitch_joint腰部俯仰关节角度rad
3torso_yaw_joint躯干偏航关节角度rad
4head_yaw_joint头部偏航关节角度rad
5head_pitch_joint头部俯仰关节角度rad
6left_shoulder_pitch_joint左肩俯仰关节角度rad
7left_shoulder_roll_joint左肩翻滚关节角度rad
8left_shoulder_yaw_joint左肩偏航关节角度rad
9left_elbow_pitch_joint左肘俯仰关节角度rad
10left_wrist_roll_joint左腕翻滚关节角度rad
11left_wrist_yaw_joint左腕偏航关节角度rad
12left_wrist_pitch_joint左腕俯仰关节角度rad
13right_shoulder_pitch_joint右肩俯仰关节角度rad
14right_shoulder_roll_joint右肩翻滚关节角度rad
15right_shoulder_yaw_joint右肩偏航关节角度rad
16right_elbow_pitch_joint右肘俯仰关节角度rad
17right_wrist_roll_joint右腕翻滚关节角度rad
18right_wrist_yaw_joint右腕偏航关节角度rad
19right_wrist_pitch_joint右腕俯仰关节角度rad
20left_finger_l_joint左手指关节角度rad
21right_finger_l_joint右手指关节角度rad
22wheel_front_left_velocity前左轮角速度rad/s
23wheel_front_right_velocity前右轮角速度rad/s
24wheel_rear_velocity后轮角速度rad/s

UMI数据

UMI数据由上海朗智格机器人科技有限公司与启元机器人共同提供,构造为标准的 LeRobot v3.0 数据,数据描述详见各批次的README。

数据概览

Episodetask_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。

目录结构

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:

@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.23: First batch of 100 hours of PrimeUMI data released open source
  • 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:

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 NameCollection BatchTask TypeInstruction
full_task_batch1_train11-10frame-level
fold_cloth_batch2_train28~10frame-level
partial_task_batch3_train31,4,5frame-level
partial_task_batch4_train41,2,3,9segments-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:

  • full_task_batch1_noise_valid
  • fold_cloth_batch2_noise_valid

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 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.
9Unfold the clothing and fold it neatly.

Online evaluation

  1. Participants need to predict actions across all episodes of the validation_data. 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 validation_data consists of:
  • full_task_batch1_noise_valid
  • fold_cloth_batch2_noise_valid
  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.

  2. 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.

  3. 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.

  4. 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. 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.

  2. 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.

  3. 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. 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. 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. 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. 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.x2w_camera_head_realsense_compressedHead camera
observation.images.x2w_camera_left_wrist_zedxonegs_rgb_raw_image_compressedLeft wrist camera
observation.images.x2w_camera_right_wrist_zedxonegs_rgb_raw_image_compressedRight 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., [start_frame_index, end_frame_index). 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_statefolding_lower_jointFolding lower joint anglerad
1joint_statefolding_upper_jointFolding upper joint anglerad
2joint_statewaist_pitch_jointWaist pitch joint anglerad
3joint_statetorso_yaw_jointTorso yaw joint anglerad
4joint_statehead_yaw_jointHead yaw joint anglerad
5joint_statehead_pitch_jointHead pitch joint anglerad
6joint_stateleft_shoulder_pitch_jointLeft shoulder pitch joint anglerad
7joint_stateleft_shoulder_roll_jointLeft shoulder roll joint anglerad
8joint_stateleft_shoulder_yaw_jointLeft shoulder yaw joint anglerad
9joint_stateleft_elbow_pitch_jointLeft elbow pitch joint anglerad
10joint_stateleft_wrist_roll_jointLeft wrist roll joint anglerad
11joint_stateleft_wrist_yaw_jointLeft wrist yaw joint anglerad
12joint_stateleft_wrist_pitch_jointLeft wrist pitch joint anglerad
13joint_stateright_shoulder_pitch_jointRight shoulder pitch joint anglerad
14joint_stateright_shoulder_roll_jointRight shoulder roll joint anglerad
15joint_stateright_shoulder_yaw_jointRight shoulder yaw joint anglerad
16joint_stateright_elbow_pitch_jointRight elbow pitch joint anglerad
17joint_stateright_wrist_roll_jointRight wrist roll joint anglerad
18joint_stateright_wrist_yaw_jointRight wrist yaw joint anglerad
19joint_stateright_wrist_pitch_jointRight wrist pitch joint anglerad
20joint_stateleft_finger_l_jointLeft finger joint anglerad
21joint_stateright_finger_l_jointRight finger joint anglerad
2. Joint Velocity (Index 22–43)
IndexSourceColumn NamePhysical MeaningUnit
22joint_statefolding_lower_joint_velocityFolding lower joint angular velocityrad/s
23joint_statefolding_upper_joint_velocityFolding upper joint angular velocityrad/s
24joint_statewaist_pitch_joint_velocityWaist pitch joint angular velocityrad/s
25joint_statetorso_yaw_joint_velocityTorso yaw joint angular velocityrad/s
26joint_statehead_yaw_joint_velocityHead yaw joint angular velocityrad/s
27joint_statehead_pitch_joint_velocityHead pitch joint angular velocityrad/s
28joint_stateleft_shoulder_pitch_joint_velocityLeft shoulder pitch joint angular velocityrad/s
29joint_stateleft_shoulder_roll_joint_velocityLeft shoulder roll joint angular velocityrad/s
30joint_stateleft_shoulder_yaw_joint_velocityLeft shoulder yaw joint angular velocityrad/s
31joint_stateleft_elbow_pitch_joint_velocityLeft elbow pitch joint angular velocityrad/s
32joint_stateleft_wrist_roll_joint_velocityLeft wrist roll joint angular velocityrad/s
33joint_stateleft_wrist_yaw_joint_velocityLeft wrist yaw joint angular velocityrad/s
34joint_stateleft_wrist_pitch_joint_velocityLeft wrist pitch joint angular velocityrad/s
35joint_stateright_shoulder_pitch_joint_velocityRight shoulder pitch joint angular velocityrad/s
36joint_stateright_shoulder_roll_joint_velocityRight shoulder roll joint angular velocityrad/s
37joint_stateright_shoulder_yaw_joint_velocityRight shoulder yaw joint angular velocityrad/s
38joint_stateright_elbow_pitch_joint_velocityRight elbow pitch joint angular velocityrad/s
39joint_stateright_wrist_roll_joint_velocityRight wrist roll joint angular velocityrad/s
40joint_stateright_wrist_yaw_joint_velocityRight wrist yaw joint angular velocityrad/s
41joint_stateright_wrist_pitch_joint_velocityRight wrist pitch joint angular velocityrad/s
42joint_stateleft_finger_l_joint_velocityLeft finger joint angular velocityrad/s
43joint_stateright_finger_l_joint_velocityRight finger joint angular velocityrad/s
3. Joint Effort (Index 44–65)
IndexSourceColumn NamePhysical MeaningUnit
44joint_statefolding_lower_joint_effortFolding lower joint output torqueN·m
45joint_statefolding_upper_joint_effortFolding upper joint output torqueN·m
46joint_statewaist_pitch_joint_effortWaist pitch joint output torqueN·m
47joint_statetorso_yaw_joint_effortTorso yaw joint output torqueN·m
48joint_statehead_yaw_joint_effortHead yaw joint output torqueN·m
49joint_statehead_pitch_joint_effortHead pitch joint output torqueN·m
50joint_stateleft_shoulder_pitch_joint_effortLeft shoulder pitch joint output torqueN·m
51joint_stateleft_shoulder_roll_joint_effortLeft shoulder roll joint output torqueN·m
52joint_stateleft_shoulder_yaw_joint_effortLeft shoulder yaw joint output torqueN·m
53joint_stateleft_elbow_pitch_joint_effortLeft elbow pitch joint output torqueN·m
54joint_stateleft_wrist_roll_joint_effortLeft wrist roll joint output torqueN·m
55joint_stateleft_wrist_yaw_joint_effortLeft wrist yaw joint output torqueN·m
56joint_stateleft_wrist_pitch_joint_effortLeft wrist pitch joint output torqueN·m
57joint_stateright_shoulder_pitch_joint_effortRight shoulder pitch joint output torqueN·m
58joint_stateright_shoulder_roll_joint_effortRight shoulder roll joint output torqueN·m
59joint_stateright_shoulder_yaw_joint_effortRight shoulder yaw joint output torqueN·m
60joint_stateright_elbow_pitch_joint_effortRight elbow pitch joint output torqueN·m
61joint_stateright_wrist_roll_joint_effortRight wrist roll joint output torqueN·m
62joint_stateright_wrist_yaw_joint_effortRight wrist yaw joint output torqueN·m
63joint_stateright_wrist_pitch_joint_effortRight wrist pitch joint output torqueN·m
64joint_stateleft_finger_l_joint_effortLeft finger joint output torqueN·m
65joint_stateright_finger_l_joint_effortRight finger joint output torqueN·m
4. End-Effector (Gripper) Pose (Index 66–79)
IndexSourceColumn NamePhysical MeaningUnit
66gripper_poseleft_gripper_xLeft gripper X positionm
67gripper_poseleft_gripper_yLeft gripper Y positionm
68gripper_poseleft_gripper_zLeft gripper Z positionm
69gripper_poseleft_gripper_qxLeft gripper quaternion X component-
70gripper_poseleft_gripper_qyLeft gripper quaternion Y component-
71gripper_poseleft_gripper_qzLeft gripper quaternion Z component-
72gripper_poseleft_gripper_qwLeft gripper quaternion W component-
73gripper_poseright_gripper_xRight gripper X positionm
74gripper_poseright_gripper_yRight gripper Y positionm
75gripper_poseright_gripper_zRight gripper Z positionm
76gripper_poseright_gripper_qxRight gripper quaternion X component-
77gripper_poseright_gripper_qyRight gripper quaternion Y component-
78gripper_poseright_gripper_qzRight gripper quaternion Z component-
79gripper_poseright_gripper_qwRight gripper quaternion W component-
5. Wheel Joint State (Index 80–88)
IndexSourceColumn NamePhysical MeaningUnit
80wheel_joint_statewheel_front_left_positionFront left wheel angular positionrad
81wheel_joint_statewheel_front_right_positionFront right wheel angular positionrad
82wheel_joint_statewheel_rear_positionRear wheel angular positionrad
83wheel_joint_statewheel_front_left_velocityFront left wheel angular velocityrad/s
84wheel_joint_statewheel_front_right_velocityFront right wheel angular velocityrad/s
85wheel_joint_statewheel_rear_velocityRear wheel angular velocityrad/s
86wheel_joint_statewheel_front_left_effortFront left wheel output torqueN·m
87wheel_joint_statewheel_front_right_effortFront right wheel output torqueN·m
88wheel_joint_statewheel_rear_effortRear 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
0folding_lower_jointFolding lower joint anglerad
1folding_upper_jointFolding upper joint anglerad
2waist_pitch_jointWaist pitch joint anglerad
3torso_yaw_jointTorso yaw joint anglerad
4head_yaw_jointHead yaw joint anglerad
5head_pitch_jointHead pitch joint anglerad
6left_shoulder_pitch_jointLeft shoulder pitch joint anglerad
7left_shoulder_roll_jointLeft shoulder roll joint anglerad
8left_shoulder_yaw_jointLeft shoulder yaw joint anglerad
9left_elbow_pitch_jointLeft elbow pitch joint anglerad
10left_wrist_roll_jointLeft wrist roll joint anglerad
11left_wrist_yaw_jointLeft wrist yaw joint anglerad
12left_wrist_pitch_jointLeft wrist pitch joint anglerad
13right_shoulder_pitch_jointRight shoulder pitch joint anglerad
14right_shoulder_roll_jointRight shoulder roll joint anglerad
15right_shoulder_yaw_jointRight shoulder yaw joint anglerad
16right_elbow_pitch_jointRight elbow pitch joint anglerad
17right_wrist_roll_jointRight wrist roll joint anglerad
18right_wrist_yaw_jointRight wrist yaw joint anglerad
19right_wrist_pitch_jointRight wrist pitch joint anglerad
20left_finger_l_jointLeft finger joint anglerad
21right_finger_l_jointRight finger joint anglerad
22wheel_front_left_velocityFront left wheel angular velocityrad/s
23wheel_front_right_velocityFront right wheel angular velocityrad/s
24wheel_rear_velocityRear wheel angular velocityrad/s

UMI Data

UMI data is jointly sponsored by crobotia and PrimeBot Research Institute. The dataset is constructed in the standard LeRobot v3.0. The data description can be found in the README files of each batch.

Dataset Overview

Episodetask_indexTaskFramesDuration
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

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.


bimanual-robot
household
lerobot
manipulation
robotics

Contributors

challenge-2026

500 commits

challenge-2026/challenge_data

Dataset

```bibtex

12

500 commits

2 linked in READMEs

updated Sep 23, 2026

See the code

README

PrimeBot Household Bimanual Manipulation Challenge Dataset

PrimeBot Household Bimanual Manipulation Challenge

中文 | English


中文

目录

关于我们

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

如果本数据集对您的工作有帮助,感谢引用:

@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.23:第一批 100 小时PrimeUMI数据开源
  • 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种真实的家庭场景双臂操作任务,所有数据均包含精确到帧的语言标注,部分任务列表如下

任务编号任务描述
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.

训练集分4个批次,互相独立不重复,可自由组合数据集训练策略,

数据集名称采集批次任务类型语言标注
full_task_batch1_train11-10帧级切分
fold_cloth_batch2_train28~10帧级切分
partial_task_batch3_train31,4,5帧级切分
partial_task_batch4_train41,2,3,9整段标注

验证集说明

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

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

考虑到参赛团队算力资源与测试资源,本次挑战赛在不超过以下4个任务上进行线上和线下评测,

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.
9Unfold the clothing and fold it neatly.

线上测评

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

线下测评

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

Q&A (Updating)

  1. “全部episode上做action预测” 是否表示两个指定 validation 数据集中的每个episode、每一帧都需要输出 action,并保持原始 30 FPS 和 episode 长度?
  • 两个validation数据集中,每条episode,每一帧都要输出25维action,需要保持episode长度,但我们只在选中的instruction段计算分数。
  1. 线上评分使用什么指标?89维字段是否全部计分?
  • 线上评估分数与动作预测误差的 MSE 和 MAE 相关。只在25维上计算分数,提交的时候也只需要提交25维action预测。
  1. 入围真机阶段后是否允许更新模型权重?真机推理的 action chunk 长度 N、控制频率和计算资源限制分别是多少?
  • 入围后允许更新权重。真机推理action_chunk自定,参考下文的机器人推理接口。机器人控制的下发频率为30Hz,线下计算资源为4090机器,显存48GB,内存64GB。
  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.x2w_camera_head_realsense_compressed头部相机
observation.images.x2w_camera_left_wrist_zedxonegs_rgb_raw_image_compressed左手相机
observation.images.x2w_camera_right_wrist_zedxonegs_rgb_raw_image_compressed右手相机

语言指令

数据集全部标注信息见${dataset_name}/meta/info.json。每段语言标注均为左闭右开,即[start_frame_index, end_frame_index),以一条1000帧的操作任务为例说明如下

分段片段1片段2片段3片段4
索引0~99(exclude)99~420420~910910~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_statefolding_lower_joint折叠下关节角度rad
1joint_statefolding_upper_joint折叠上关节角度rad
2joint_statewaist_pitch_joint腰部俯仰关节角度rad
3joint_statetorso_yaw_joint躯干偏航关节角度rad
4joint_statehead_yaw_joint头部偏航关节角度rad
5joint_statehead_pitch_joint头部俯仰关节角度rad
6joint_stateleft_shoulder_pitch_joint左肩俯仰关节角度rad
7joint_stateleft_shoulder_roll_joint左肩翻滚关节角度rad
8joint_stateleft_shoulder_yaw_joint左肩偏航关节角度rad
9joint_stateleft_elbow_pitch_joint左肘俯仰关节角度rad
10joint_stateleft_wrist_roll_joint左腕翻滚关节角度rad
11joint_stateleft_wrist_yaw_joint左腕偏航关节角度rad
12joint_stateleft_wrist_pitch_joint左腕俯仰关节角度rad
13joint_stateright_shoulder_pitch_joint右肩俯仰关节角度rad
14joint_stateright_shoulder_roll_joint右肩翻滚关节角度rad
15joint_stateright_shoulder_yaw_joint右肩偏航关节角度rad
16joint_stateright_elbow_pitch_joint右肘俯仰关节角度rad
17joint_stateright_wrist_roll_joint右腕翻滚关节角度rad
18joint_stateright_wrist_yaw_joint右腕偏航关节角度rad
19joint_stateright_wrist_pitch_joint右腕俯仰关节角度rad
20joint_stateleft_finger_l_joint左手指关节角度rad
21joint_stateright_finger_l_joint右手指关节角度rad
2. 关节速度(Joint Velocity,索引 22-43)
索引数据源列名物理意义单位
22joint_statefolding_lower_joint_velocity折叠下关节角速度rad/s
23joint_statefolding_upper_joint_velocity折叠上关节角速度rad/s
24joint_statewaist_pitch_joint_velocity腰部俯仰关节角速度rad/s
25joint_statetorso_yaw_joint_velocity躯干偏航关节角速度rad/s
26joint_statehead_yaw_joint_velocity头部偏航关节角速度rad/s
27joint_statehead_pitch_joint_velocity头部俯仰关节角速度rad/s
28joint_stateleft_shoulder_pitch_joint_velocity左肩俯仰关节角速度rad/s
29joint_stateleft_shoulder_roll_joint_velocity左肩翻滚关节角速度rad/s
30joint_stateleft_shoulder_yaw_joint_velocity左肩偏航关节角速度rad/s
31joint_stateleft_elbow_pitch_joint_velocity左肘俯仰关节角速度rad/s
32joint_stateleft_wrist_roll_joint_velocity左腕翻滚关节角速度rad/s
33joint_stateleft_wrist_yaw_joint_velocity左腕偏航关节角速度rad/s
34joint_stateleft_wrist_pitch_joint_velocity左腕俯仰关节角速度rad/s
35joint_stateright_shoulder_pitch_joint_velocity右肩俯仰关节角速度rad/s
36joint_stateright_shoulder_roll_joint_velocity右肩翻滚关节角速度rad/s
37joint_stateright_shoulder_yaw_joint_velocity右肩偏航关节角速度rad/s
38joint_stateright_elbow_pitch_joint_velocity右肘俯仰关节角速度rad/s
39joint_stateright_wrist_roll_joint_velocity右腕翻滚关节角速度rad/s
40joint_stateright_wrist_yaw_joint_velocity右腕偏航关节角速度rad/s
41joint_stateright_wrist_pitch_joint_velocity右腕俯仰关节角速度rad/s
42joint_stateleft_finger_l_joint_velocity左手指关节角速度rad/s
43joint_stateright_finger_l_joint_velocity右手指关节角速度rad/s
3. 关节力矩(Joint Effort,索引 44-65)
索引数据源列名物理意义单位
44joint_statefolding_lower_joint_effort折叠下关节输出力矩N·m
45joint_statefolding_upper_joint_effort折叠上关节输出力矩N·m
46joint_statewaist_pitch_joint_effort腰部俯仰关节输出力矩N·m
47joint_statetorso_yaw_joint_effort躯干偏航关节输出力矩N·m
48joint_statehead_yaw_joint_effort头部偏航关节输出力矩N·m
49joint_statehead_pitch_joint_effort头部俯仰关节输出力矩N·m
50joint_stateleft_shoulder_pitch_joint_effort左肩俯仰关节输出力矩N·m
51joint_stateleft_shoulder_roll_joint_effort左肩翻滚关节输出力矩N·m
52joint_stateleft_shoulder_yaw_joint_effort左肩偏航关节输出力矩N·m
53joint_stateleft_elbow_pitch_joint_effort左肘俯仰关节输出力矩N·m
54joint_stateleft_wrist_roll_joint_effort左腕翻滚关节输出力矩N·m
55joint_stateleft_wrist_yaw_joint_effort左腕偏航关节输出力矩N·m
56joint_stateleft_wrist_pitch_joint_effort左腕俯仰关节输出力矩N·m
57joint_stateright_shoulder_pitch_joint_effort右肩俯仰关节输出力矩N·m
58joint_stateright_shoulder_roll_joint_effort右肩翻滚关节输出力矩N·m
59joint_stateright_shoulder_yaw_joint_effort右肩偏航关节输出力矩N·m
60joint_stateright_elbow_pitch_joint_effort右肘俯仰关节输出力矩N·m
61joint_stateright_wrist_roll_joint_effort右腕翻滚关节输出力矩N·m
62joint_stateright_wrist_yaw_joint_effort右腕偏航关节输出力矩N·m
63joint_stateright_wrist_pitch_joint_effort右腕俯仰关节输出力矩N·m
64joint_stateleft_finger_l_joint_effort左手指关节输出力矩N·m
65joint_stateright_finger_l_joint_effort右手指关节输出力矩N·m
4. 末端执行器位姿(Gripper Pose,索引 66-79)
索引数据源列名物理意义单位
66gripper_poseleft_gripper_x左末端执行器 X 位置m
67gripper_poseleft_gripper_y左末端执行器 Y 位置m
68gripper_poseleft_gripper_z左末端执行器 Z 位置m
69gripper_poseleft_gripper_qx左末端执行器四元数 X 分量-
70gripper_poseleft_gripper_qy左末端执行器四元数 Y 分量-
71gripper_poseleft_gripper_qz左末端执行器四元数 Z 分量-
72gripper_poseleft_gripper_qw左末端执行器四元数 W 分量-
73gripper_poseright_gripper_x右末端执行器 X 位置m
74gripper_poseright_gripper_y右末端执行器 Y 位置m
75gripper_poseright_gripper_z右末端执行器 Z 位置m
76gripper_poseright_gripper_qx右末端执行器四元数 X 分量-
77gripper_poseright_gripper_qy右末端执行器四元数 Y 分量-
78gripper_poseright_gripper_qz右末端执行器四元数 Z 分量-
79gripper_poseright_gripper_qw右末端执行器四元数 W 分量-
5. 轮子关节状态(Wheel Joint State,索引 80-88)
索引数据源列名物理意义单位
80wheel_joint_statewheel_front_left_position前左轮角度位置rad
81wheel_joint_statewheel_front_right_position前右轮角度位置rad
82wheel_joint_statewheel_rear_position后轮角度位置rad
83wheel_joint_statewheel_front_left_velocity前左轮角速度rad/s
84wheel_joint_statewheel_front_right_velocity前右轮角速度rad/s
85wheel_joint_statewheel_rear_velocity后轮角速度rad/s
86wheel_joint_statewheel_front_left_effort前左轮输出力矩N·m
87wheel_joint_statewheel_front_right_effort前右轮输出力矩N·m
88wheel_joint_statewheel_rear_effort后轮输出力矩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维)作为控制指令,完整字段定义如下

索引列名物理意义单位
0folding_lower_joint折叠下关节角度rad
1folding_upper_joint折叠上关节角度rad
2waist_pitch_joint腰部俯仰关节角度rad
3torso_yaw_joint躯干偏航关节角度rad
4head_yaw_joint头部偏航关节角度rad
5head_pitch_joint头部俯仰关节角度rad
6left_shoulder_pitch_joint左肩俯仰关节角度rad
7left_shoulder_roll_joint左肩翻滚关节角度rad
8left_shoulder_yaw_joint左肩偏航关节角度rad
9left_elbow_pitch_joint左肘俯仰关节角度rad
10left_wrist_roll_joint左腕翻滚关节角度rad
11left_wrist_yaw_joint左腕偏航关节角度rad
12left_wrist_pitch_joint左腕俯仰关节角度rad
13right_shoulder_pitch_joint右肩俯仰关节角度rad
14right_shoulder_roll_joint右肩翻滚关节角度rad
15right_shoulder_yaw_joint右肩偏航关节角度rad
16right_elbow_pitch_joint右肘俯仰关节角度rad
17right_wrist_roll_joint右腕翻滚关节角度rad
18right_wrist_yaw_joint右腕偏航关节角度rad
19right_wrist_pitch_joint右腕俯仰关节角度rad
20left_finger_l_joint左手指关节角度rad
21right_finger_l_joint右手指关节角度rad
22wheel_front_left_velocity前左轮角速度rad/s
23wheel_front_right_velocity前右轮角速度rad/s
24wheel_rear_velocity后轮角速度rad/s

UMI数据

UMI数据由上海朗智格机器人科技有限公司与启元机器人共同提供,构造为标准的 LeRobot v3.0 数据,数据描述详见各批次的README。

数据概览

Episodetask_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。

目录结构

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:

@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.23: First batch of 100 hours of PrimeUMI data released open source
  • 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:

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 NameCollection BatchTask TypeInstruction
full_task_batch1_train11-10frame-level
fold_cloth_batch2_train28~10frame-level
partial_task_batch3_train31,4,5frame-level
partial_task_batch4_train41,2,3,9segments-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:

  • full_task_batch1_noise_valid
  • fold_cloth_batch2_noise_valid

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 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.
9Unfold the clothing and fold it neatly.

Online evaluation

  1. Participants need to predict actions across all episodes of the validation_data. 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 validation_data consists of:
  • full_task_batch1_noise_valid
  • fold_cloth_batch2_noise_valid
  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.

  2. 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.

  3. 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.

  4. 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. 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.

  2. 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.

  3. 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. 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. 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. 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. 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.x2w_camera_head_realsense_compressedHead camera
observation.images.x2w_camera_left_wrist_zedxonegs_rgb_raw_image_compressedLeft wrist camera
observation.images.x2w_camera_right_wrist_zedxonegs_rgb_raw_image_compressedRight 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., [start_frame_index, end_frame_index). 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_statefolding_lower_jointFolding lower joint anglerad
1joint_statefolding_upper_jointFolding upper joint anglerad
2joint_statewaist_pitch_jointWaist pitch joint anglerad
3joint_statetorso_yaw_jointTorso yaw joint anglerad
4joint_statehead_yaw_jointHead yaw joint anglerad
5joint_statehead_pitch_jointHead pitch joint anglerad
6joint_stateleft_shoulder_pitch_jointLeft shoulder pitch joint anglerad
7joint_stateleft_shoulder_roll_jointLeft shoulder roll joint anglerad
8joint_stateleft_shoulder_yaw_jointLeft shoulder yaw joint anglerad
9joint_stateleft_elbow_pitch_jointLeft elbow pitch joint anglerad
10joint_stateleft_wrist_roll_jointLeft wrist roll joint anglerad
11joint_stateleft_wrist_yaw_jointLeft wrist yaw joint anglerad
12joint_stateleft_wrist_pitch_jointLeft wrist pitch joint anglerad
13joint_stateright_shoulder_pitch_jointRight shoulder pitch joint anglerad
14joint_stateright_shoulder_roll_jointRight shoulder roll joint anglerad
15joint_stateright_shoulder_yaw_jointRight shoulder yaw joint anglerad
16joint_stateright_elbow_pitch_jointRight elbow pitch joint anglerad
17joint_stateright_wrist_roll_jointRight wrist roll joint anglerad
18joint_stateright_wrist_yaw_jointRight wrist yaw joint anglerad
19joint_stateright_wrist_pitch_jointRight wrist pitch joint anglerad
20joint_stateleft_finger_l_jointLeft finger joint anglerad
21joint_stateright_finger_l_jointRight finger joint anglerad
2. Joint Velocity (Index 22–43)
IndexSourceColumn NamePhysical MeaningUnit
22joint_statefolding_lower_joint_velocityFolding lower joint angular velocityrad/s
23joint_statefolding_upper_joint_velocityFolding upper joint angular velocityrad/s
24joint_statewaist_pitch_joint_velocityWaist pitch joint angular velocityrad/s
25joint_statetorso_yaw_joint_velocityTorso yaw joint angular velocityrad/s
26joint_statehead_yaw_joint_velocityHead yaw joint angular velocityrad/s
27joint_statehead_pitch_joint_velocityHead pitch joint angular velocityrad/s
28joint_stateleft_shoulder_pitch_joint_velocityLeft shoulder pitch joint angular velocityrad/s
29joint_stateleft_shoulder_roll_joint_velocityLeft shoulder roll joint angular velocityrad/s
30joint_stateleft_shoulder_yaw_joint_velocityLeft shoulder yaw joint angular velocityrad/s
31joint_stateleft_elbow_pitch_joint_velocityLeft elbow pitch joint angular velocityrad/s
32joint_stateleft_wrist_roll_joint_velocityLeft wrist roll joint angular velocityrad/s
33joint_stateleft_wrist_yaw_joint_velocityLeft wrist yaw joint angular velocityrad/s
34joint_stateleft_wrist_pitch_joint_velocityLeft wrist pitch joint angular velocityrad/s
35joint_stateright_shoulder_pitch_joint_velocityRight shoulder pitch joint angular velocityrad/s
36joint_stateright_shoulder_roll_joint_velocityRight shoulder roll joint angular velocityrad/s
37joint_stateright_shoulder_yaw_joint_velocityRight shoulder yaw joint angular velocityrad/s
38joint_stateright_elbow_pitch_joint_velocityRight elbow pitch joint angular velocityrad/s
39joint_stateright_wrist_roll_joint_velocityRight wrist roll joint angular velocityrad/s
40joint_stateright_wrist_yaw_joint_velocityRight wrist yaw joint angular velocityrad/s
41joint_stateright_wrist_pitch_joint_velocityRight wrist pitch joint angular velocityrad/s
42joint_stateleft_finger_l_joint_velocityLeft finger joint angular velocityrad/s
43joint_stateright_finger_l_joint_velocityRight finger joint angular velocityrad/s
3. Joint Effort (Index 44–65)
IndexSourceColumn NamePhysical MeaningUnit
44joint_statefolding_lower_joint_effortFolding lower joint output torqueN·m
45joint_statefolding_upper_joint_effortFolding upper joint output torqueN·m
46joint_statewaist_pitch_joint_effortWaist pitch joint output torqueN·m
47joint_statetorso_yaw_joint_effortTorso yaw joint output torqueN·m
48joint_statehead_yaw_joint_effortHead yaw joint output torqueN·m
49joint_statehead_pitch_joint_effortHead pitch joint output torqueN·m
50joint_stateleft_shoulder_pitch_joint_effortLeft shoulder pitch joint output torqueN·m
51joint_stateleft_shoulder_roll_joint_effortLeft shoulder roll joint output torqueN·m
52joint_stateleft_shoulder_yaw_joint_effortLeft shoulder yaw joint output torqueN·m
53joint_stateleft_elbow_pitch_joint_effortLeft elbow pitch joint output torqueN·m
54joint_stateleft_wrist_roll_joint_effortLeft wrist roll joint output torqueN·m
55joint_stateleft_wrist_yaw_joint_effortLeft wrist yaw joint output torqueN·m
56joint_stateleft_wrist_pitch_joint_effortLeft wrist pitch joint output torqueN·m
57joint_stateright_shoulder_pitch_joint_effortRight shoulder pitch joint output torqueN·m
58joint_stateright_shoulder_roll_joint_effortRight shoulder roll joint output torqueN·m
59joint_stateright_shoulder_yaw_joint_effortRight shoulder yaw joint output torqueN·m
60joint_stateright_elbow_pitch_joint_effortRight elbow pitch joint output torqueN·m
61joint_stateright_wrist_roll_joint_effortRight wrist roll joint output torqueN·m
62joint_stateright_wrist_yaw_joint_effortRight wrist yaw joint output torqueN·m
63joint_stateright_wrist_pitch_joint_effortRight wrist pitch joint output torqueN·m
64joint_stateleft_finger_l_joint_effortLeft finger joint output torqueN·m
65joint_stateright_finger_l_joint_effortRight finger joint output torqueN·m
4. End-Effector (Gripper) Pose (Index 66–79)
IndexSourceColumn NamePhysical MeaningUnit
66gripper_poseleft_gripper_xLeft gripper X positionm
67gripper_poseleft_gripper_yLeft gripper Y positionm
68gripper_poseleft_gripper_zLeft gripper Z positionm
69gripper_poseleft_gripper_qxLeft gripper quaternion X component-
70gripper_poseleft_gripper_qyLeft gripper quaternion Y component-
71gripper_poseleft_gripper_qzLeft gripper quaternion Z component-
72gripper_poseleft_gripper_qwLeft gripper quaternion W component-
73gripper_poseright_gripper_xRight gripper X positionm
74gripper_poseright_gripper_yRight gripper Y positionm
75gripper_poseright_gripper_zRight gripper Z positionm
76gripper_poseright_gripper_qxRight gripper quaternion X component-
77gripper_poseright_gripper_qyRight gripper quaternion Y component-
78gripper_poseright_gripper_qzRight gripper quaternion Z component-
79gripper_poseright_gripper_qwRight gripper quaternion W component-
5. Wheel Joint State (Index 80–88)
IndexSourceColumn NamePhysical MeaningUnit
80wheel_joint_statewheel_front_left_positionFront left wheel angular positionrad
81wheel_joint_statewheel_front_right_positionFront right wheel angular positionrad
82wheel_joint_statewheel_rear_positionRear wheel angular positionrad
83wheel_joint_statewheel_front_left_velocityFront left wheel angular velocityrad/s
84wheel_joint_statewheel_front_right_velocityFront right wheel angular velocityrad/s
85wheel_joint_statewheel_rear_velocityRear wheel angular velocityrad/s
86wheel_joint_statewheel_front_left_effortFront left wheel output torqueN·m
87wheel_joint_statewheel_front_right_effortFront right wheel output torqueN·m
88wheel_joint_statewheel_rear_effortRear 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
0folding_lower_jointFolding lower joint anglerad
1folding_upper_jointFolding upper joint anglerad
2waist_pitch_jointWaist pitch joint anglerad
3torso_yaw_jointTorso yaw joint anglerad
4head_yaw_jointHead yaw joint anglerad
5head_pitch_jointHead pitch joint anglerad
6left_shoulder_pitch_jointLeft shoulder pitch joint anglerad
7left_shoulder_roll_jointLeft shoulder roll joint anglerad
8left_shoulder_yaw_jointLeft shoulder yaw joint anglerad
9left_elbow_pitch_jointLeft elbow pitch joint anglerad
10left_wrist_roll_jointLeft wrist roll joint anglerad
11left_wrist_yaw_jointLeft wrist yaw joint anglerad
12left_wrist_pitch_jointLeft wrist pitch joint anglerad
13right_shoulder_pitch_jointRight shoulder pitch joint anglerad
14right_shoulder_roll_jointRight shoulder roll joint anglerad
15right_shoulder_yaw_jointRight shoulder yaw joint anglerad
16right_elbow_pitch_jointRight elbow pitch joint anglerad
17right_wrist_roll_jointRight wrist roll joint anglerad
18right_wrist_yaw_jointRight wrist yaw joint anglerad
19right_wrist_pitch_jointRight wrist pitch joint anglerad
20left_finger_l_jointLeft finger joint anglerad
21right_finger_l_jointRight finger joint anglerad
22wheel_front_left_velocityFront left wheel angular velocityrad/s
23wheel_front_right_velocityFront right wheel angular velocityrad/s
24wheel_rear_velocityRear wheel angular velocityrad/s

UMI Data

UMI data is jointly sponsored by crobotia and PrimeBot Research Institute. The dataset is constructed in the standard LeRobot v3.0. The data description can be found in the README files of each batch.

Dataset Overview

Episodetask_indexTaskFramesDuration
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

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.


bimanual-robot
household
lerobot
manipulation
robotics

Contributors

challenge-2026

500 commits