RoboTwin 2.0
RoboTwin 2.0 是一个基于 SAPIEN 物理引擎构建的大规模双臂操作基准测试。它为双臂机器人策略提供了一个标准化的评估协议,涵盖 50 个任务(截至上游 main),具有强大的域随机化(杂乱、光照、背景、桌面高度和语言指令)。
- 论文:RoboTwin 2.0: A Scalable Data Generator and Benchmark with Strong Domain Randomization for Robust Bimanual Robotic Manipulation
- GitHub:RoboTwin-Platform/RoboTwin
- 排行榜:robotwin-platform.github.io/leaderboard
- 数据集:lerobot/robotwin_unified

概览
| 属性 | 值 |
|---|---|
| 任务 | 50 个双臂操作任务 |
| 机器人 | Aloha-AgileX 双臂(14 DOF,每臂 7 个) |
| 动作空间 | 14 维关节空间,[-1, 1] 中的连续 |
| 相机 | head_camera、left_camera、right_camera |
| 模拟器 | SAPIEN(不是 MuJoCo) |
| 评估协议 | 每个任务 100 个回合,50 个 demo_clean 演示 |
| 评估设置 | Easy(demo_clean)和 Hard(demo_randomized) |
可用任务
RoboTwin 2.0 在其上游 envs/ 目录中提供 50 个双臂操作任务。规范列表是 src/lerobot/envs/robotwin.py 中的 ROBOTWIN_TASKS 元组,从上游仓库逐字镜像。示例任务:
| 任务 | CLI 名称 | 类别 |
|---|---|---|
| Beat block with hammer | beat_block_hammer |
工具使用 |
| Click bell / alarm clock | click_bell |
精确按压 |
| Stack blocks (2 / 3) | stack_blocks_two/three |
堆叠 |
| Stack bowls (2 / 3) | stack_bowls_two/three |
堆叠 |
| Handover block / mic | handover_block |
双臂协调 |
| Lift pot | lift_pot |
双臂提升 |
| Shake bottle | shake_bottle |
连续运动 |
| Turn switch | turn_switch |
铰接物体 |
| Stamp seal | stamp_seal |
精确放置 |
| Scan object | scan_object |
移动操作 |
将逗号分隔的列表传递给 --env.task 以在单次评估扫描中运行多个任务。
Warning
open_laptop 目前在上游已损坏(其 check_success() 使用
self.arm_tag,它仅在脚本专家 play_once()
路径内设置,因此在正常策略评估期间不可用)。在上游错误修复之前避免使用它,或修补任务以在
load_actors() 中默认 self.arm_tag = "left"。
数据集
RoboTwin 2.0 数据集在 Hugging Face Hub 上以 LeRobot v3.0 格式提供:
lerobot/robotwin_unified
它包含所有 50 个任务的超过 100,000 个预收集轨迹(79.6 GB,Apache 2.0 许可证)。不需要格式转换 — 它已经采用正确的 LeRobot v3.0 模式,带有视频观测和动作标签。
您可以使用 HF Datasets 库直接加载它:
from datasets import load_dataset
ds = load_dataset("lerobot/robotwin_unified", split="train")
安装
RoboTwin 2.0 需要 Linux 和 NVIDIA GPU(推荐 CUDA 12.1)。安装大约需要 20 分钟。
1. 创建 conda 环境
conda create -n robotwin python=3.10 -y
conda activate robotwin
2. 安装 LeRobot
git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install -e "."
3. 安装 RoboTwin 2.0
git clone https://github.com/RoboTwin-Platform/RoboTwin.git
cd RoboTwin
bash script/_install.sh
bash script/_download_assets.sh
安装脚本处理所有 Python 依赖,包括 SAPIEN、CuRobo、mplib 和 pytorch3d。
Warning
如果自动安装失败,请手动安装:
pip install -r requirements.txt
pip install "git+https://github.com/facebookresearch/pytorch3d.git@stable"
cd envs && git clone https://github.com/NVlabs/curobo.git && cd curobo
pip install -e . --no-build-isolation
然后应用所需的 mplib 修复:在 mplib/planner.py 第 807 行,从条件中删除 or collide。
4. 将 RoboTwin 添加到 PYTHONPATH
RoboTwin 任务模块必须可由 LeRobot 导入。从 RoboTwin/ 目录内:
export PYTHONPATH="${PYTHONPATH}:$(pwd)"
将此添加到您的 shell 配置文件以使其永久生效。
评估
标准评估(推荐)
使用官方协议(100 个回合)在单个任务上评估策略:
lerobot-eval \
--policy.path="your-hf-policy-id" \
--env.type=robotwin \
--env.task=beat_block_hammer \
--eval.batch_size=1 \
--eval.n_episodes=100
单任务快速检查
lerobot-eval \
--policy.path="your-hf-policy-id" \
--env.type=robotwin \
--env.task=beat_block_hammer \
--eval.batch_size=1 \
--eval.n_episodes=5
多任务扫描
在一次运行中评估多个任务:
lerobot-eval \
--policy.path="your-hf-policy-id" \
--env.type=robotwin \
--env.task=beat_block_hammer,click_bell,handover_block,stack_blocks_two \
--eval.batch_size=1 \
--eval.n_episodes=100
完整基准测试(所有 50 个任务)
lerobot-eval \
--policy.path="your-hf-policy-id" \
--env.type=robotwin \
--env.task=adjust_bottle,beat_block_hammer,blocks_ranking_rgb,blocks_ranking_size,click_alarmclock,click_bell,dump_bin_bigbin,grab_roller,handover_block,handover_mic,hanging_mug,lift_pot,move_can_pot,move_pillbottle_pad,move_playingcard_away,move_stapler_pad,open_microwave,pick_diverse_bottles,pick_dual_bottles,place_a2b_left,place_a2b_right,place_bread_basket,place_bread_skillet,place_burger_fries,place_can_basket,place_cans_plasticbox,place_container_plate,place_dual_shoes,place_empty_cup,place_fan,place_mouse_pad,place_object_basket,place_object_scale,place_object_stand,place_phone_stand,place_shoe,press_stapler,put_bottles_dustbin,put_object_cabinet,rotate_qrcode,scan_object,shake_bottle,shake_bottle_horizontally,stack_blocks_three,stack_blocks_two,stack_bowls_three,stack_bowls_two,stamp_seal,turn_switch \
--eval.batch_size=1 \
--eval.n_episodes=100
Tip
由于上游 self.arm_tag 错误(参见可用任务部分),上面故意省略了
open_laptop。一旦上游修复落地,请重新添加它。
相机配置
默认情况下,包括所有三个相机:
| 相机键 | 描述 |
|---|---|
head_camera |
躯干安装的俯视图 |
left_camera |
左臂腕部安装相机 |
right_camera |
右臂腕部安装相机 |
要使用相机子集,请覆盖 --env.camera_names:
lerobot-eval \
--policy.path="your-hf-policy-id" \
--env.type=robotwin \
--env.task=beat_block_hammer \
--env.camera_names="head_camera,left_camera" \
--eval.batch_size=1 \
--eval.n_episodes=10
环境配置参考
RoboTwinEnvConfig 的关键参数:
| 参数 | 默认值 | 描述 |
|---|---|---|
task |
"beat_block_hammer" |
逗号分隔的任务名称 |
fps |
25 |
仿真 FPS |
episode_length |
300 |
每个回合的最大步数 |
obs_type |
"pixels_agent_pos" |
"pixels" 或 "pixels_agent_pos" |
camera_names |
"head_camera,left_camera,right_camera" |
逗号分隔的活动相机 |
observation_height |
240 |
相机像素高度 |
observation_width |
320 |
相机像素宽度 |
排行榜提交
结果可以提交到 RoboTwin 2.0 排行榜。官方协议要求:
- 在每个任务的 50 个
demo_clean演示上训练 - 每个任务评估 100 个回合
- 分别报告 Easy(
demo_clean)和 Hard(demo_randomized)设置的成功率
有关提交说明,请参阅 RoboTwin 2.0 文档。