LeRobot documentation

RoboTwin 2.0

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

RoboTwin 2.0

The commands below run the simulator locally. To keep its dependencies away from your policy's, serve it instead with `lerobot-env-server --config_path=docker/sim/configs/robotwin.yaml --sim.task=--docker=true`, where `` is the command's `--env.task`, and add `--env.server.endpoint=tcp/127.0.0.1:7448` to the command. A server runs the task it was started with (see [Simulation: local or served](./simulation)).

RoboTwin 2.0, SAPIEN fizik motoru üzerine kurulu geniş ölçekli çift kollu manipülasyon birincil ölçütüdür. 50 görevde (yukarı akış main itibarıyla) bimanüel robotik politikalar için standartlaştırılmış bir değerlendirme protokolü sunar ve güçlü alan rastgeleleştirmesi (dağınıklık, aydınlatma, arka plan, masaüstü yüksekliği ve dil talimatları) içerir.

RoboTwin 2.0 benchmark overview

Genel Bakış

ÖzellikDeğer
Görevler50 çift kollu manipülasyon görevi
RobotAloha-AgileX iki kollu (14 DOF, kol başına 7)
Eylem uzayı14 boyutlu eklem uzayı, [-1, 1] aralığında sürekli
Kameralarhead_camera, left_camera, right_camera
SimülatörSAPIEN (MuJoCo değil)
Değerlendirme protokolü100 bölüm/görev, 50 demo_clean gösterimi
Değerlendirme ayarlarıKolay (demo_clean) ve Zor (demo_randomized)

Mevcut görevler

RoboTwin 2.0, envs/ dizininde 50 çift kollu manipülasyon görevi sunar. Kanonik liste, src/lerobot/sim/integrations/robotwin.py dosyasındaki ROBOTWIN_TASKS demetidir ve bu liste, upstream deposundan birebir aynalanmıştır. Örnek görevler:

GörevCLI adıKategori
Çekiçle blok kırbeat_block_hammerAraç kullanımı
Zil / alarm saati simgesine tıklayınclick_bellHassas baskı
Blokları yığ (2 / 3)stack_blocks_two/threeYığınlama
Kâseleri üst üste diz (2 / 3)stack_bowls_two/threeYığınlama
Devir bloğu / mikrofonhandover_blockİki elle koordinasyon
Lift potlift_potİki elle kaldırma
Şişeyi çalkalayınshake_bottleSürekli hareket
Anahtarı değiştirturn_switchArtiküle edilmiş nesne
Mühürstamp_sealHassas yer
Nesneyi tarascan_objectMobil manipülasyon.

Tek bir değerlendirme turunda birden fazla görev çalıştırmak için --env.task parametresine virgülle ayrılmış bir liste iletin.

`open_laptop` is currently broken upstream (its `check_success()` uses `self.arm_tag`, which is only set inside the scripted-expert `play_once()` path and therefore unavailable during normal policy eval). Avoid it until the upstream bug is fixed, or patch the task to default `self.arm_tag = "left"` in `load_actors()`.

Veri seti

RoboTwin 2.0 veri seti, Hugging Face Hub'da LeRobot v3.0 biçiminde mevcuttur:

lerobot/robotwin_unified

Tüm 50 görev için 100.000'den fazla önceden toplanmış yörünge içerir (79,6 GB, Apache 2.0 lisansı). Biçim dönüşümü gerekmez — zaten video gözlemleri ve eylem etiketleriyle doğru LeRobot v3.0 şemasındadır.

Bunu doğrudan HF Datasets kütüphanesiyle yükleyebilirsiniz:

from datasets import load_dataset

ds = load_dataset("lerobot/robotwin_unified", split="train")

Kurulum

RoboTwin 2.0, NVIDIA GPU'ye sahip bir Linux gerektirir (SAPIEN, Vulkan ile render yapar). Planlayıcıları olan CuRobo ve pytorch3d, CUDA kodlarını torch 2.7.1'e karşı derler; bu, LeRobot'un torch sürümüyle eşleşmediğinden RoboTwin, lerobot-env-server arkasında kendi ortamında çalışır ve politika tarafı yalnızca LeRobot'a ihtiyaç duyar.

Sunulan görüntü (önerilen)

lerobot-env-server --config_path=docker/sim/configs/robotwin.yaml --sim.task=beat_block_hammer --docker=true

İlk çalıştırma, docker/Dockerfile.sim dosyasındaki robotwin_native aşamasını oluşturur (yaklaşık 20 dakika, büyük ölçüde pytorch3d ve CuRobo için). Küçük bir makinede, sınırlı bellekle önce görüntüyü kendiniz oluşturun; sunucu ardından bunu yeniden kullanır:

docker build -f docker/Dockerfile.sim --build-arg SIM=robotwin \
  --build-arg MAX_JOBS=1 --build-arg CUROBO_CUDA_ARCHS=8.6 -t lerobot-sim-robotwin:local .

burada 8.6, GPU'nuzun hesaplama yeteneğidir. Aşağıdaki değerlendirme komutlarına --env.server.endpoint=tcp/127.0.0.1:7448 ekleyin.

Yerel ortam

Docker olmadan sunucuyu çalıştırmak için, test edilen tarife olan docker/Dockerfile.sim dosyasındaki robotwin_native aşamasını ayrı bir sanal ortamda yeniden oluşturun: CUDA 12.8 nvcc, torch 2.7.1, sabitlenmiş RoboTwin commit'i ve varlıkları, CuRobo v0.7.8 ve RoboTwin'in mplib ile SAPIEN yamaları. Ardından LeRobot'u --no-deps ile birlikte docker/sim/requirements.txt dosyasını ekleyerek kurun ve yukarıdaki komuttan --docker=true parametresini çıkarın (bkz. Simülasyon: yerel veya sunulan).

Değerlendirme

Standart değerlendirme (önerilen)

Resmi protokolü (100 bölüm) kullanarak bir politikayı tek bir görevde değerlendirin:

lerobot-eval \
  --policy.path="your-hf-policy-id" \
  --env.type=robotwin \
  --env.task=beat_block_hammer \
  --eval.batch_size=1 \
  --eval.n_episodes=100

Tek görev hızlı kontrol

lerobot-eval \
  --policy.path="your-hf-policy-id" \
  --env.type=robotwin \
  --env.task=beat_block_hammer \
  --eval.batch_size=1 \
  --eval.n_episodes=5

Çok görevli tarama

Tek çalıştırmada birden fazla görevde değerlendirme yapın:

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

Tam kapsamlı test (tüm 50 görev)

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
`open_laptop` is intentionally omitted above because of the upstream `self.arm_tag` bug (see the **Available tasks** section). Re-add it once the upstream fix lands.

Kamera yapılandırması

Varsayılan olarak, üç kameranın tümü dahildir:

Kamera anahtarıAçıklama
head_cameraGövdeye monte edilmiş üstten görünüm
left_cameraSol kol bileğine takılı kamera
right_cameraSağ kol bileğine takılı kamera

Kameraların bir alt kümesini kullanmak için --env.camera_names parametresini geçersiz kılın:

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

Ortam yapılandırma başvurusu

RoboTwinEnvConfig için ana parametreler:

ParametreVarsayılanAçıklama
task"beat_block_hammer"Virgülle ayrılmış görev adı(ları)
fps25Simülasyon FPS
episode_length1200Bölüm başına maksimum adım
obs_type"pixels_agent_pos""pixels" veya "pixels_agent_pos"
camera_names"head_camera,left_camera,right_camera"Virgülle ayrılmış aktif kameralar
observation_height240Kamera piksel yüksekliği
observation_width320Kamera piksel genişliği

Sıralama tablosuna gönderim

Sonuçlar RoboTwin 2.0 liderlik tablosuna gönderilebilir. Resmi protokol şunları gerektirir:

  • Görev başına 50 demo_clean gösterim üzerinde eğitim
  • Görev başına 100 bölümün değerlendirilmesi
  • Kolay (demo_clean) ve Zor (demo_randomized) ayarları için başarı oranını ayrı ayrı raporlama

Gönderim talimatları için RoboTwin 2.0 belgelerine başvurun.

Update on GitHub