LeRobot documentation
NVIDIA RoboLab
NVIDIA RoboLab
RoboLab, NVIDIA Isaac Lab ile simüle edilen ve Isaac Sim'in RTX rendercisi ile görüntülenen, bir DROID robotu (Robotiq 2F-85 kavrayıcılı Franka Panda kol) için 120 masaüstü manipülasyon görevinden oluşan bir referans testidir. Görevler; alma ve yerleştirme, yığma, sıralama, yeniden yönlendirme ve dil koşullu varyantları (uzamsal ilişkiler, renkler, sayma, belirsiz talimatlar) kapsamaktadır ve basit, orta veya karmaşık olarak derecelendirilmiştir.
- Makale: RoboLab: Görev Genelcisi Politikalarının Analizi için Yüksek Sadakatli Bir Simülasyon Çizelgesi
- GitHub: NVlabs/RoboLab
- Proje sayfası ve liderlik tablosu: research.nvidia.com/labs/srl/projects/robolab
Gereksinimler ve lisanslar
- GPU: NVIDIA RTX GPU (Isaac Sim, RTX ile render alır). Bir görevin bir env’i, Isaac Sim dahil olmak üzere yaklaşık 7 GB VRAM kullanır; aynı görevdeki her ek env yaklaşık 1 ila 2 GB ekler (RoboLab’ın kılavuzu, görevine bağlı olarak 48 GB GPU üzerinde 30 ila 100 env sığdırır). Politikanızın kendi bellek ihtiyacı da bunun üzerine eklenir.
- Isaac Sim: RoboLab burada Isaac Sim 6.0.1 ve Isaac Lab 3.0 beta 2 üzerinde çalışır, RoboLab’ın Isaac Sim 6 yığını. Isaac Sim kullanmak NVIDIA Isaac Sim lisansını kabul etmeyi gerektirir; Docker görüntüsü bunu sizin için kabul eder, tıpkı RoboLab’ın kendi görüntüsünün yaptığı gibi.
- Varlıklar: RoboLab’ın sahneleri, nesneleri ve robot modelleri (git LFS’ten yaklaşık 6 GB) büyük ölçüde CC BY-NC-SA 4.0 lisansına tabidir, bazıları ise farklı koşullara sahiptir; RoboLab’ın THIRD_PARTY_NOTICES.md dosyasına bakın. LeRobot bunları dağıtmaz: görüntü, oluşturulduğunda NVlabs’ten indirir.
- Aşağıdaki sunulan yapılandırma için Docker, görüntüyü oluşturmak için BuildKit (
docker buildx) ve konteynerin GPU kullanabilmesi için NVIDIA Container Toolkit.
Sunucu olarak çalıştırın (önerilen)
Isaac Lab 3.0 beta sürümü transformers==4.57.6 (dolayısıyla huggingface-hub<1.0), numpy==2.3.1 ve packaging==26.0 sürümlerini sabitler; LeRobot’un kendi bağımlılıkları bu sürümleri kabul etmez. RoboLab’ı kendi Docker görüntüsünde, lerobot-env-server arkasında çalıştırın ve politikanızı (policy) alışıldık LeRobot ortamınızda çalıştırın:
# Build the image on first use (Isaac Sim and the assets: a long first build), then serve every task
lerobot-env-server --config_path=docker/sim/configs/robolab.yaml --docker=true
# In your LeRobot environment
lerobot-eval \
--policy.path=<your DROID joint-position policy> \
--env.type=robolab \
--env.task=BananaInBowlTask \
--env.server.endpoint=tcp/127.0.0.1:7448 \
--rename_map='{"observation.images.over_shoulder_left_camera": "observation.images.<exterior>", "observation.images.wrist_cam": "observation.images.<wrist>"}' \
--eval.batch_size=1 \
--eval.n_episodes=10Sunucu, yapılandırılmış görevlerinden herhangi birini çalıştırır: istemci, istediği görevi açar ve sunucu bunu çalışan Isaac Sim içinde oluşturur (birkaç saniye). Isaac Sim'in kendisini başlatmak saniyelerden birkaç dakikaya kadar sürebilir. Konteynerde GPU bulunamazsa (ERROR_INCOMPATIBLE_DRIVER), Simulation bölümündeki Vulkan notuna bakın.
Yerel olarak çalıştırın
Ortamınıza Isaac Sim ve RoboLab yüklendikten sonra --env.server.endpoint parametresini ekleyin ve lerobot-eval komutunu çalıştırın; bu komut RoboLab’ı kendi sürecinde çalıştırır. Docker görüntüsünün yaptığı gibi önce RoboLab yığınını, ardından bağımlılıkları olmadan LeRobot’u kurun:
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/NVlabs/RoboLab.git && git -C RoboLab lfs pull
uv venv --python 3.12 && source .venv/bin/activate
uv pip install "isaaclab[isaacsim]==3.0.0b2.post1" -e ./RoboLab \
--extra-index-url https://pypi.nvidia.com --index-strategy unsafe-best-match
uv pip install --no-deps -e ./lerobot
uv pip install draccus termcolor eclipse-zenoh # what the rest of LeRobot's simulation code imports
export OMNI_KIT_ACCEPT_EULA=YES # accepts the Isaac Sim licenseBu ortamda transformers 5 gerektiren politikalar için (π₀.₅, SmolVLA, …) yer yok: bunları sunulan (served) olarak çalıştırın.
Görevler
RoboLab’ın 120 görevinin her biri tek bir görev kimliğine sahip kendi başına bir test setidir; bu nedenle lerobot-eval, görev başına ve genel başarı oranlarını raporlar. --env.task, virgülle ayrılmış bir görev adı listesi alır, örneğin BananaInBowlTask,RubiksCubeAndBananaTask; tüm 120 görev için boş bırakın. Görev adları, talimatlar ve zorluk seviyeleri RoboLab’ın görev meta verilerinde listelenmiştir.
Bir görevin tüm env'leri GPU'da tek bir Isaac Lab dünyasını paylaşır: --eval.batch_size=N, o dünyada N bölümü aynı anda çalıştırır.
Gözlemler ve eylemler
| Anahtar | Biçim | İçerik |
|---|---|---|
observation.images.over_shoulder_left_camera | 720 × 1280 × 3 | Robotun solundaki dış kamera |
observation.images.wrist_cam | 720 × 1280 × 3 | Bilek kamerası |
observation.state | 8 | joint_0.pos … joint_6.pos (radyan), gripper.pos (0 açık, 1 kapalı) |
action | 8 | 7 eklem için mutlak ortak hedefler, ardından kavrama mekanizması: 0.5 üzerinde kapalı |
Robot 15 Hz'de çalışır (fizik 120 Hz'de, eylem başına 8 fizik adımı) ve LeRobot bunu DROID'de olduğu gibi robot_type="Franka" olarak kaydeder. Her bölümün görevinin zaman sınırı vardır (20 ila 300 sn, yani 300 ila 4.500 adım); başarılı bir bölüm terminated olarak, zamanı dolan bir bölüm ise truncated olarak sona erer. Görevin talimatı, env'in görev açıklamasıdır.
Sim robot
RoboLab, lerobot-rollout, lerobot-record ve diğer robot araçlarında (bkz. Simülasyon: yerel veya sunulan) gerçek bir DROID robotunun yerini alabilir:
lerobot-rollout \ --robot.type=sim --robot.env.type=robolab --robot.env.task=BananaInBowlTask --robot.task_id=0 \ --robot.env.server.endpoint=tcp/127.0.0.1:7448 \ --policy.path=<your policy> --fps=15 ...
Ortam yapılandırma başvurusu
| Parametre | Varsayılan | Açıklama |
|---|---|---|
task | empty: tümü 120 | Virgülle ayrılmış görev adları |
cameras | "WRIST_LEFT" | RoboLab’ın robolab/registrations/droid/camera_presets.py dosyasındaki bir kamera ön ayarı, örneğin her iki dış kamera için WRIST_LEFT_RIGHT |
instruction_type | "default" | Her görevin hangi talimatı verdiğini belirtir: default, vague veya specific |
observation_height, observation_width | ayarlanmamış: 720 × 1280 | Kamera karelerini önce GPU'da yeniden boyutlandırın, örneğin sunucudan daha küçük kareler göndermek için |
Sıralama tablosuyla karşılaştırma
RoboLab’ın liderlik tablosu, varsayılan talimatı, WRIST_LEFT kameralarını ve eklem konumu eylemlerini kullanarak her görev için 10 bölüm değerlendirir; bunlar LeRobot’ın varsayılanlarıdır. Sayılarını hangi Isaac Sim sürümünün ürettiğini belirtmez ve RoboLab’ın varsayılanı Isaac Sim 5.0’dır: fizik ve renderlama, Isaac Sim sürümleri arasında farklılık gösterdiğinden, bu Isaac Sim 6.0.1 kurulumundan elde edilen sayılar doğrudan karşılaştırılabilir değildir.