RoboTwin-Platform/RoboTwin

Pythonrobotwin-platform.github.io

[ICML 2026] RoboTwin 2.0 Offical Code Repo

benchmarkembodied-airoboticsdata-generator
スター成長
スター
2.8k
フォーク
478
週間成長
+26
Issue
75
1k2k
2024年9月2025年5月2026年1月2026年9月
成果物PyPI
README

RoboTwin Bimanual Robotic Manipulation Platform

Lastest Version: RoboTwin 2.0
🤲 Webpage | Document | Paper | Community | Leaderboard

https://private-user-images.githubusercontent.com/88101805/463126988-e3ba1575-4411-4a36-ad65-f0b2f49890c3.mp4

RoboTwin 2.0 (ICML 2026) — Webpage · Doc · Paper · Talk · 机器之心 · Leaderboard

Earlier papers & challenge report
  • 1.0 / Early — RoboTwin: Dual-Arm Robot Benchmark with Generative Digital Twins · CVPR 2025 (Highlight) PDF / arXiv · ECCV Workshop 2024 (Best Paper) PDF / arXiv
  • CVPR'25 MEIS Challenge ReportPDF / arXiv · 量子位

📚 Overview

Prefer the RoboTwin Document for full guides — this README is a quick start.

RoboTwin 2.0 and RoboDojo share deployment via XPolicyLab: one policy-serving / eval stack across both benchmarks (single-task, multi-GPU, and remote server + local sim).

Default branch: main (RoboTwin 2.0).

Other branches (legacy / special-purpose)

🐣 Update

  • 2026/08/03, We add XPolicyLab-based policy evaluation with single-task evaluation, multi-task multi-GPU scheduling, and remote policy-server/local-simulator deployment.
  • 2026/03/03, We release RMBench, which is a memory-dependent manipulation benchmark built upon RoboTwin 2.0.
  • 2026/02/20, Usage supported in StarVLA, which is a user-friendly codebase for VLA development.
  • 2026/01/23, We update IsaacLab-Arena and RLinf support (contributed by RLinf team).
  • 2025/08/28, We update the RoboTwin 2.0 Paper PDF.
  • 2025/08/25, We fix ACT deployment code and update the leaderboard.
  • 2025/08/06, We release RoboTwin 2.0 Leaderboard: leaderboard website.
  • 2025/07/23, RoboTwin 2.0 received Outstanding Poster at ChinaSI 2025 (Ranking 1st).
  • 2025/07/19, We Fix DP3 evaluation code error. We will update RoboTwin 2.0 paper next week.
  • 2025/07/09, We update endpose control mode, please see [RoboTwin Doc - Usage - Control Robot] for more details.
  • 2025/07/08, We upload Challenge-Cup-2025 Branch (第十九届挑战杯分支).
  • 2025/07/02, Fix Piper Wrist Bug [issue]. Please redownload the embodiment asset.
  • 2025/07/01, We release Technical Report of RoboTwin Dual-Arm Collaboration Challenge @ CVPR 2025 MEIS Workshop [arXiv] !
  • 2025/06/21, We release RoboTwin 2.0 [Webpage] !
  • 2025/04/11, RoboTwin is seclected as CVPR Highlight paper!
  • 2025/02/27, RoboTwin is accepted to CVPR 2025 !
  • 2024/09/30, RoboTwin (Early Version) received the Best Paper Award at the ECCV Workshop!
  • 2024/09/20, Officially released RoboTwin.

🛠️ Installation

See RoboTwin 2.0 Document (Usage - Install & Download) for installation instructions. It takes about 20 minutes for installation.

XPolicyLab is embedded as a Git submodule. For a fresh checkout, clone RoboTwin recursively:

git clone --recurse-submodules https://github.com/RoboTwin-Platform/RoboTwin.git
cd RoboTwin

For an existing checkout, initialize the version pinned by RoboTwin:

git submodule update --init --recursive XPolicyLab

To pull the latest XPolicyLab commit on its configured main branch and refresh RoboTwin's submodule pin:

bash scripts/update_xpolicylab.sh
# optional: stage the pin / reinstall the editable package
bash scripts/update_xpolicylab.sh --stage --install

🤷‍♂️ Tasks Informations

See RoboTwin 2.0 Tasks Doc for more details.

🧑🏻‍💻 Usage

Document

Full usage details live in the RoboTwin Document — start from Usage. Prefer the Doc over this README when anything conflicts.

Getting Data

We provide over 100,000 pre-collected trajectories as part of the open-source release RoboTwin Dataset. We recommend downloading the pre-collected data (step 1) as the default path — it is ready to train on immediately. Collect data yourself (step 2) only when you need custom task configs, domain randomization, or embodiment setups.

Decode images only through decode_image_bit. Downloaded and self-collected episodes store cameras as encoded image bits. Those buffers are not a stable JPEG you can pass to cv2.imdecode, np.frombuffer, or PIL: earlier RoboTwin / XPolicyLab data versions used slightly different layouts, and a PIL-style decode silently flips RGB/BGR. A local copy is in data/decode_image_bit.py for reference — it is the same function as XPolicyLab.utils.process_data.decode_image_bit. Prefer the XPolicyLab import when the package is available:

from XPolicyLab.utils.process_data import decode_image_bit
rgb = decode_image_bit(image_bits)  # RGB for every data version

This is the only supported decoder. Do not add cv2.cvtColor(..., COLOR_BGR2RGB) after it — the output is already RGB, and that swap is the bug. Official LeRobot converters already call it; any custom training dataloader that reads these HDF5 files must do the same. At eval time the policy server hands over decoded RGB, so model.py must not decode again. Details: XPolicyLab — Decode only through decode_image_bit.

description

Download and extract all available XPolicyLab-format trajectories from Hugging Face:

bash scripts/download_xpolicylab_data.sh

To download only selected tasks, pass their names:

bash scripts/download_xpolicylab_data.sh adjust_bottle beat_block_hammer

Downloads and extractions both run in parallel (defaults: 8 workers each). As soon as a task ZIP finishes downloading, extraction starts without waiting for the rest. Tune concurrency with:

# Parallel download / extract workers (extract defaults to HF_MAX_WORKERS)
HF_MAX_WORKERS=8 HF_EXTRACT_WORKERS=16 bash scripts/download_xpolicylab_data.sh

Downloads land under data/demo_clean/<task_name>/aloha_agilex/data/ (note: self-collected data lands under data/<task_config>/... instead).

2. Task Running and Data Collection (Optional)

For custom task configs, domain randomization, or embodiment setups, collect data yourself. The following command will first search for a random seed for the target collection quantity, and then replay the seed to collect data.

bash collect_data.sh ${task_name} ${task_config} ${gpu_id}
# Example: bash collect_data.sh beat_block_hammer demo_randomized 0

Collected demonstrations are saved directly in the XPolicyLab trajectory format — no extra conversion step is needed:

data/<task_config>/<task_name>/<embodiment>/data/episode_0000000.hdf5

<embodiment> follows the embodiment field of the task config (aloha_agilex for the default aloha-agilex setup).

3. Convert to LeRobot (Optional)

Many XPolicyLab policies train on LeRobot datasets. After you have XPolicyLab-format HDF5 under data/<task_config>/<task>/<embodiment>/data/ (from download or collection), convert with the shared scripts in XPolicyLab/scripts/. Those scripts already decode through decode_image_bit — do not replace that with cv2.imdecode / PIL if you fork them.

Patterns are <task_config>.<task>.<embodiment> and may use * wildcards. They resolve against data/ next to the RoboTwin root (for example demo_clean.*.aloha_agilex). Keep --data_type as the default RoboDojo — RoboTwin XPolicyLab trajectories share that HDF5 layout.

Run in an environment that already has the matching LeRobot package (v2.1 vs v3.0). Conversion writes under HF_LEROBOT_HOME (default ~/.cache/huggingface/lerobot); point it at a large disk if needed:

export HF_LEROBOT_HOME=/path/with/enough/space/lerobot

# LeRobot v2.1 — all demo_clean tasks
python XPolicyLab/scripts/transform_lerobot_v21_format.py \
  "demo_clean.*.aloha_agilex" \
  --repo_id robotwin_demo_clean_aloha_agilex \
  --max_episode 50

# LeRobot v3.0 — same selection
python XPolicyLab/scripts/transform_lerobot_v30_format.py \
  "demo_clean.*.aloha_agilex" \
  --repo_id robotwin_demo_clean_aloha_agilex_v30 \
  --max_episode 50

# Single task
python XPolicyLab/scripts/transform_lerobot_v21_format.py \
  "demo_clean.beat_block_hammer.aloha_agilex" \
  --repo_id beat_block_hammer_demo_clean

Useful flags: --repo_id (output dataset name), --max_episode (cap episodes per task/embodiment), --resolution HxW or --image_height / --image_width (default: auto-detect; RoboTwin is often 240x320). Output lands at ${HF_LEROBOT_HOME}/<repo_id>.

4. Modify Task Config

☝️ See RoboTwin 2.0 Tasks Configurations Doc for more details.

Task settings such as demo_clean and demo_randomized are stored in env_cfg/task_config/.

5. Evaluate Policies via XPolicyLab

All evaluation goes through scripts/eval_policy.sh. The policy adapter must exist under XPolicyLab/policy/<policy_name>/ (see the XPolicyLab policy catalog).

--env-cfg-type selects the XPolicyLab action profile (validated against XPolicyLab/utils/robot/_robot_info.json; arx_x5 matches RoboTwin's default aloha-agilex layout), while the simulator embodiment stays controlled by --task-config.

Local evaluation (multi-task, multi-GPU). The scheduler starts a policy server and simulator per task on your GPU pool. Task lists and GPU settings live in env_cfg/eval/all_tasks.yml (trim tasks to a single entry for single-task evaluation):

bash scripts/eval_policy.sh multitask \
  --config env_cfg/eval/all_tasks.yml \
  --policy-name <policy_name> \
  --ckpt-name <checkpoint> \
  --env-cfg-type arx_x5 \
  --policy-conda-env <policy_env> \
  --eval-env-conda-env <robotwin_env> \
  --action-type <action_type>

Add --dry-run to validate the schedule without launching anything. Results are written to eval_result/multitask/ by default.

Split deployment (remote policy server + local simulator). Start the server pool on the policy host, then point the local scheduler at it:

# On the policy-server host (fill in the placeholders first):
bash scripts/eval_policy.sh serve --config env_cfg/eval/remote_server.yml

# On the simulator host:
bash scripts/eval_policy.sh multitask \
  --config env_cfg/eval/all_tasks.yml \
  --policy-name <policy_name> \
  --env-cfg-type arx_x5 \
  --eval-env-conda-env <robotwin_env> \
  --enable-remote \
  --policy-server-ip <server_ip> --policy-server-port <port>

--policy-server-ip/--policy-server-port can be repeated to use a server pool, or configured once via enable_remote / policy_server_ip / policy_server_port in the eval config.

🏄‍♂️ Experiment & LeaderBoard

We recommend that the RoboTwin Platform can be used to explore the following topics:

  1. single - task fine - tuning capability
  2. visual robustness
  3. language diversity robustness (language condition)
  4. multi-tasks capability
  5. cross-embodiment performance

The full leaderboard and setting can be found in: https://robotwin-platform.github.io/leaderboard.

💽 Pre-collected Large-scale Dataset

Please refer to RoboTwin 2.0 Dataset - Huggingface.

🎯 Official Benchmark Checkpoints

Please refer to RoboTwin 2.0 Checkpoints - Huggingface.

👍 Citations

If you find our work useful, please consider citing:

RoboTwin 2.0: A Scalable Data Generator and Benchmark with Strong Domain Randomization for Robust Bimanual Robotic Manipulation

@article{chen2025robotwin,
  title={Robotwin 2.0: A scalable data generator and benchmark with strong domain randomization for robust bimanual robotic manipulation},
  author={Chen, Tianxing and Chen, Zanxin and Chen, Baijun and Cai, Zijian and Liu, Yibin and Li, Zixuan and Liang, Qiwei and Lin, Xianliang and Ge, Yiheng and Gu, Zhenyu and others},
  journal={arXiv preprint arXiv:2506.18088},
  year={2025}
}

RoboTwin: Dual-Arm Robot Benchmark with Generative Digital Twins, accepted to CVPR 2025 (Highlight)

@InProceedings{Mu_2025_CVPR,
    author    = {Mu, Yao and Chen, Tianxing and Chen, Zanxin and Peng, Shijia and Lan, Zhiqian and Gao, Zeyu and Liang, Zhixuan and Yu, Qiaojun and Zou, Yude and Xu, Mingkun and Lin, Lunkai and Xie, Zhiqiang and Ding, Mingyu and Luo, Ping},
    title     = {RoboTwin: Dual-Arm Robot Benchmark with Generative Digital Twins},
    booktitle = {Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR)},
    month     = {June},
    year      = {2025},
    pages     = {27649-27660}
}

Benchmarking Generalizable Bimanual Manipulation: RoboTwin Dual-Arm Collaboration Challenge at CVPR 2025 MEIS Workshop

@article{chen2025benchmarking,
  title={Benchmarking Generalizable Bimanual Manipulation: RoboTwin Dual-Arm Collaboration Challenge at CVPR 2025 MEIS Workshop},
  author={Chen, Tianxing and Wang, Kaixuan and Yang, Zhaohui and Zhang, Yuhao and Chen, Zanxin and Chen, Baijun and Dong, Wanxi and Liu, Ziyuan and Chen, Dong and Yang, Tianshuo and others},
  journal={arXiv preprint arXiv:2506.23351},
  year={2025}
}

RoboTwin: Dual-Arm Robot Benchmark with Generative Digital Twins (early version), accepted to ECCV Workshop 2024 (Best Paper Award)

@article{mu2024robotwin,
  title={RoboTwin: Dual-Arm Robot Benchmark with Generative Digital Twins (early version)},
  author={Mu, Yao and Chen, Tianxing and Peng, Shijia and Chen, Zanxin and Gao, Zeyu and Zou, Yude and Lin, Lunkai and Xie, Zhiqiang and Luo, Ping},
  journal={arXiv preprint arXiv:2409.02920},
  year={2024}
}

😺 Acknowledgement

Software Support: D-Robotics, Hardware Support: AgileX Robotics, AIGC Support: Deemos.

Contact Tianxing Chen if you have any questions or suggestions.

🏷️ License

This repository is released under the MIT license. See LICENSE for additional details.

関連リポジトリ
sharkdp/hyperfine

A command-line benchmarking tool

Rustcrates.iocliApache License 2.0command-linetool
28.8k509
zalandoresearch/fashion-mnist

A MNIST-like fashion product database. Benchmark :point_down:

PythonPyPIMIT Licensemnistdeep-learning
fashion-mnist.s3-website.eu-central-1.amazonaws.com
12.8k3.1k
dotnet/BenchmarkDotNet

Powerful .NET library for benchmarking

C#libraryMIT Licensebenchmarkbenchmarking
benchmarkdotnet.org
11.5k1.1k
mrgloom/awesome-semantic-segmentation

:metal: awesome-semantic-segmentation

awesomesemantic-segmentationbenchmark
10.8k2.5k
hatoo/oha

Ohayou(おはよう), HTTP load generator, inspired by rakyll/hey with tui animation.

Rustcrates.iocliMIT Licenserustload-testing
10.5k296
google/benchmark

A microbenchmark support library

C++libraryApache License 2.0benchmark
10.4k1.8k
TechEmpower/FrameworkBenchmarks

Source for the TechEmpower Framework Benchmarks project

C++Otherframeworkbenchmarksbenchmark
techempower.com/benchmarks/
8.1k2k
open-mmlab/mmpose

OpenMMLab Pose Estimation Toolbox and Benchmark.

PythonPyPIApache License 2.0pose-estimationhuman-pose
mmpose.readthedocs.io/en/latest/
7.9k1.5k
open-compass/opencompass

OpenCompass is an LLM evaluation platform, supporting a wide range of models (Llama3, Mistral, InternLM2,GPT-4,LLaMa2, Qwen,GLM, Claude, etc) over 100+ datasets.

PythonPyPIApache License 2.0evaluationbenchmark
opencompass.org.cn
7.4k862
spiritLHLS/ecs

VPS 融合怪服务器测评项目 更推荐使用无环境依赖的Go版本 VPS Fusion Monster Server Test Script – More recommended to use the Go version with no environment dependencies: https://github.com/oneclickvirt/ecs

ShellcliMIT Licensevpscentos
t.me/+UHVoo2U4VyA5NTQ1
7.2k557
the-benchmarker/web-frameworks

Which is the fastest web framework?

PHPPackagistMIT Licensehttpbenchmark
web-frameworks-benchmark.vercel.app
7.1k732
akopytov/sysbench

Scriptable database and system performance benchmark

CcliGNU General Public License v2.0benchmarkmysql
6.8k1.1k