LeRobot documentation

NVIDIA IsaacLab Arena & LeRobot

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.7.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

NVIDIA IsaacLab Arena & LeRobot

LeRobot EnvHub artık IsaacLab Arena ile GPU hızlandırmalı simülasyonu destekliyor ve politika değerlendirmesini ölçekli olarak gerçekleştiriyor. Yüksek sadakatli simülasyonla imitasyon öğrenme politikalarını eğitin ve değerlendirin — tümü LeRobot ekosistemine entegre edilmiştir.

IsaacLab Arena - GR1 Microwave Environment

IsaacLab Arena, NVIDIA IsaacLab ile entegre edilerek şunları sağlar:

  • 🤖 İnsansı gövde yapıları: GR1, G1, Galileo (çeşitli yapılandırmalarla)
  • 🎯 Manipülasyon ve loco-manipülasyon görevleri: Kapı açma, al-koy, butona basma ve daha fazlası
  • ⚡ GPU hızlandırmalı rollouts: NVIDIA GPU'larında paralel ortam çalıştırması
  • 🖼️ RTX Rendering: Gerçekçi render, yansıma ve kırınım ile görü tabanlı politikaları değerlendirin
  • 📦 LeRobot ile uyumlu veri kümeleri: GR00T N1x, PI0, SmolVLA, ACT ve Diffusion politikaları ile eğitim için hazır
  • 🔄 EnvHub entegrasyonu: Ortamları HuggingFace EnvHub'dan tek satırla yükleyin

Kurulum

Ön koşullar

Donanım gereksinimleri Isaac Sim ile ortaktır ve Isaac Sim Gereksinimleri bölümünde ayrıntılı olarak açıklanmıştır.

  • CUDA destekli NVIDIA GPU
  • IsaacSim 5.1.0 ile uyumlu NVIDIA sürücüsü
  • Linux (Ubuntu 22.04 / 24.04)

Kurulum

# 1. Create conda environment
conda create -y -n lerobot-arena python=3.11
conda activate lerobot-arena
conda install -y -c conda-forge ffmpeg=7.1.1

# 2. Install Isaac Sim 5.1.0
pip install "isaacsim[all,extscache]==5.1.0" --extra-index-url https://pypi.nvidia.com

# Accept NVIDIA EULA (required)
export ACCEPT_EULA=Y
export PRIVACY_CONSENT=Y

# 3. Install IsaacLab 2.3.0
git clone https://github.com/isaac-sim/IsaacLab.git
cd IsaacLab
git checkout v2.3.0
./isaaclab.sh -i
cd ..

# 4. Install IsaacLab Arena
git clone https://github.com/isaac-sim/IsaacLab-Arena.git
cd IsaacLab-Arena
git checkout release/0.1.1
pip install -e .
cd ..


# 5. Install LeRobot (evaluation extra for env/policy evaluation)
git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install -e ".[evaluation]"


# 6. Install additional dependencies
pip install onnxruntime==1.23.2 lightwheel-sdk==1.0.1 vuer[all]==0.0.70 qpsolvers==4.8.1
pip install numpy==1.26.0 # Isaac Sim 5.1 depends on numpy==1.26.0, this will be fixed in next release

Politikaların Değerlendirilmesi

Önceden Eğitilmiş Politikalar

Aşağıdaki eğitimli politikalar kullanılabilir:

PolitikaMimariGörevBağlantı
pi05-arena-gr1-microwavePI0.5GR1 MikrodalgaHuggingFace
smolvla-arena-gr1-microwaveSmolVLAGR1 MikrodalgaHuggingFace

SmolVLA'yı Değerlendirin

pip install -e ".[smolvla]"
pip install numpy==1.26.0 # revert numpy to version 1.26
lerobot-eval \
    --policy.path=nvidia/smolvla-arena-gr1-microwave \
    --env.type=isaaclab_arena \
    --env.hub_path=nvidia/isaaclab-arena-envs \
    --rename_map='{"observation.images.robot_pov_cam_rgb": "observation.images.robot_pov_cam"}' \
    --policy.device=cuda \
    --env.environment=gr1_microwave \
    --env.embodiment=gr1_pink \
    --env.object=mustard_bottle \
    --env.headless=false \
    --env.enable_cameras=true \
    --env.video=true \
    --env.video_length=10 \
    --env.video_interval=15 \
    --env.state_keys=robot_joint_pos \
    --env.camera_keys=robot_pov_cam_rgb \
    --trust_remote_code=True \
    --eval.batch_size=1

PI0.5'i değerlendirin

pip install -e ".[pi]"
pip install numpy==1.26.0 # revert numpy to version 1.26
PI0.5 requires disabling torch compile for evaluation:
TORCH_COMPILE_DISABLE=1 TORCHINDUCTOR_DISABLE=1 lerobot-eval \
    --policy.path=nvidia/pi05-arena-gr1-microwave \
    --env.type=isaaclab_arena \
    --env.hub_path=nvidia/isaaclab-arena-envs \
    --rename_map='{"observation.images.robot_pov_cam_rgb": "observation.images.robot_pov_cam"}' \
    --policy.device=cuda \
    --env.environment=gr1_microwave \
    --env.embodiment=gr1_pink \
    --env.object=mustard_bottle \
    --env.headless=false \
    --env.enable_cameras=true \
    --env.video=true \
    --env.video_length=15 \
    --env.video_interval=15 \
    --env.state_keys=robot_joint_pos \
    --env.camera_keys=robot_pov_cam_rgb \
    --trust_remote_code=True \
    --eval.batch_size=1
To change the number of parallel environments, use the ```--eval.batch_size``` flag.

Neler Beklenmeli

Değerlendirme sırasında, çalışan başarı oranını gösteren bir ilerleme çubuğu görürsünüz:

Stepping through eval batches:   8%|██████▍    | 4/50 [00:45<08:06, 10.58s/it, running_success_rate=25.0%]

Video Kaydı

Değerlendirme sırasında video kaydını etkinleştirmek için komutunuza aşağıdaki bayrakları ekleyin:

--env.video=true \
--env.video_length=15 \
--env.video_interval=15

Video kaydı hakkında daha fazla ayrıntı için IsaacLab Recording Documentation'a bakın.

When running headless with `--env.headless=true`, you must also enable cameras explicitly for camera enabled environments:
--env.headless=true --env.enable_cameras=true

Çıktı Dizin

Değerlendirme videoları aşağıdaki yapıya sahip çıktı dizinine kaydedilir:

outputs/eval/<date>/<timestamp>_<env>_<policy>/videos/<task>_<env_id>/eval_episode_<n>.mp4

Örneğin:

outputs/eval/2026-01-02/14-38-01_isaaclab_arena_smolvla/videos/gr1_microwave_0/eval_episode_0.mp4

Eğitim Politikaları

LeRobot ile eğitim politikaları hakkında daha fazla bilgi edinmek için lütfen eğitim dokümantasyonuna başvurun:

Deneysel amaçlarla HuggingFace Hub üzerinde IsaacLab Arena örnek veri kümeleri mevcuttur:

Veri setiAçıklamaKareler
Arena-GR1-Manipulation-TaskGR1 mikrodalga manipülasyonu~4K
Arena-G1-Loco-Manipulation-TaskG1 loco-manipülasyon~4K

Ortam Yapılandırması

Tüm Yapılandırma Seçenekleri

from lerobot.envs.configs import IsaaclabArenaEnvConfig

config = IsaaclabArenaEnvConfig(
    # Environment selection
    environment="gr1_microwave",      # Task environment
    embodiment="gr1_pink",            # Robot embodiment
    object="power_drill",             # Object to manipulate

    # Simulation settings
    episode_length=300,               # Max steps per episode
    headless=True,                    # Run without GUI
    device="cuda:0",                  # GPU device
    seed=42,                          # Random seed

    # Observation configuration
    state_keys="robot_joint_pos",     # State observation keys (comma-separated)
    camera_keys="robot_pov_cam_rgb",  # Camera observation keys (comma-separated)
    state_dim=54,                     # Expected state dimension
    action_dim=36,                    # Expected action dimension
    camera_height=512,                # Camera image height
    camera_width=512,                 # Camera image width
    enable_cameras=True,              # Enable camera observations

    # Video recording
    video=False,                      # Enable video recording
    video_length=100,                 # Frames per video
    video_interval=200,               # Steps between recordings

    # Advanced
    mimic=False,                      # Enable mimic mode
    teleop_device=None,               # Teleoperation device
    disable_fabric=False,             # Disable fabric optimization
    enable_pinocchio=True,            # Enable Pinocchio for IK
)

Gelişmiş kullanım için Environment Hub'ı doğrudan kullanma

test_env_load_arena.py adında bir dosya oluşturun veya EnvHub'dan indirin:

import logging
from dataclasses import asdict
from pprint import pformat
import torch
import tqdm
from lerobot.configs import parser
from lerobot.configs.eval import EvalPipelineConfig


@parser.wrap()
def main(cfg: EvalPipelineConfig):
    """Run random action rollout for IsaacLab Arena environment."""
    logging.info(pformat(asdict(cfg)))

    from lerobot.envs import make_env

    env_dict = make_env(
        cfg.env,
        n_envs=cfg.env.num_envs,
        trust_remote_code=True,
    )
    env = next(iter(env_dict.values()))[0]
    env.reset()
    for _ in tqdm.tqdm(range(cfg.env.episode_length)):
        with torch.inference_mode():
            actions = env.action_space.sample()
            obs, rewards, terminated, truncated, info = env.step(actions)
            if terminated.any() or truncated.any():
                obs, info = env.reset()
    env.close()


if __name__ == "__main__":
    main()

Şu komutla çalıştırın:

python test_env_load_arena.py \
    --env.environment=g1_locomanip_pnp \
    --env.embodiment=gr1_pink \
    --env.object=cracker_box \
    --env.num_envs=4 \
    --env.enable_cameras=true \
    --env.seed=1000 \
    --env.video=true \
    --env.video_length=10 \
    --env.video_interval=15 \
    --env.headless=false \
    --env.hub_path=nvidia/isaaclab-arena-envs \
    --env.type=isaaclab_arena

Yeni Ortamlar Oluşturma

Önce IsaacLab Arena Belgesel’ini takip ederek yeni bir IsaacLab Arena ortamı oluşturun.

EnvHub deposamızı klonlayın:

git clone https://huggingface.co/nvidia/isaaclab-arena-envs

Yeni ortamınıza göre example_envs.yaml dosyasını değiştirin. Değiştirilen repoyu Yükleyin HuggingFace EnvHub'a.

Your IsaacLab Arena environment code must be locally available during evaluation. Users can clone your environment repository separately, or you can bundle the environment code and assets directly in your EnvHub repo.

Ardından, değerlendirme sırasında yeni ortamınızı kullanın:

lerobot-eval \
    --env.hub_path=<your-env-hub-path>/isaaclab-arena-envs \
    --env.environment=<your new environment> \
    ...other flags...

Katkılarınızı sabırsızlıkla bekliyoruz!

Sorun Giderme

CUDA bellek yetersiz

batch_size değerini azaltın veya daha fazla VRAM'e sahip bir GPU kullanın:

--eval.batch_size=1

EULA kabul edilmedi

Çalıştırmadan önce ortam değişkenlerini ayarlayın:

export ACCEPT_EULA=Y
export PRIVACY_CONSENT=Y

Video kaydı çalışmıyor

Başsız çalışırken kameraları etkinleştirin:

--env.video=true --env.enable_cameras=true --env.headless=true

Policy çıktı boyutu uyumsuzluğu

action_dim'in politikanızla eşleştiğinden emin olun:

--env.action_dim=36

Isaac Sim başlatma sırasında libGLU.so.1 Hataları

Aşağıdaki bağımlılıkların yüklendiğinden emin olun, bu durum genellikle headless makinelerde görülür.

sudo apt update && sudo apt install -y libglu1-mesa libxt6

Bkz.

Lightwheel LW-BenchHub

Lightwheel, LeRobot ekosistemine 268 görev içeren Lightwheel-Libero-Tasks ve Lightwheel-RoboCasa-Tasks paketlerini getiriyor. LW-BenchHub, teleoperasyon yoluyla LeRobot spesifikasyonuna uygun büyük ölçekli veri setlerini toplar ve üretir; bu sayede kutudan çıktığı gibi eğitim ve değerlendirme iş akışlarını mümkün kılar. EnvHub tarafından sağlanan birleşik arayüz sayesinde geliştiriciler, uçtan uca deneysel boru hatlarını hızla oluşturabilir.

Yükle

Kurulum adımlarını izlediğinizi varsayarsak, LW-BenchHub'ı şu şekilde kurabilirsiniz:

conda install pinocchio -c conda-forge -y
pip install numpy==1.26.0 # revert numpy to version 1.26

sudo apt-get install git-lfs && git lfs install

git clone https://github.com/LightwheelAI/lw_benchhub
cd lw_benchhub
git lfs pull # Ensure LFS files (e.g., .usd assets) are downloaded

pip install -e .

Daha ayrıntılı talimatlar için lütfen LW-BenchHub Belgesine başvurun.

Lightwheel Görevler Veri Seti

LW-BenchHub veri kümeleri HuggingFace Hub'da mevcuttur:

Veri setiAçıklamaGörevlerKareler
Lightwheel-Tasks-X7SX7S LIBERO ve RoboCasa117~10.3M
Lightwheel-Tasks-Double-PiperDouble-Piper LIBERO130~6.0M
Lightwheel-Tasks-G1-ControllerG1-Controller LIBERO62~2.7M
Lightwheel-Tasks-G1-WBCG1-WBC RoboCasa32~1.5M

Eğitim politikaları için Eğitim Politikaları bölümüne bakın.

Politikaların Değerlendirilmesi

Önceden Eğitilmiş Politikalar

Aşağıdaki eğitimli politikalar kullanılabilir:

PolitikaMimariGörevDüzenRobotBağlantı
smolvla-double-piper-pnpSmolVLAL90K1PutTheBlackBowlOnThePlatelibero-1-1DoublePiper-AbsHuggingFace

SmolVLA'yı Değerlendirin

lerobot-eval \
  --policy.path=LightwheelAI/smolvla-double-piper-pnp \
  --env.type=isaaclab_arena \
  --rename_map='{"observation.images.left_hand_camera_rgb": "observation.images.left_hand", "observation.images.right_hand_camera_rgb": "observation.images.right_hand", "observation.images.first_person_camera_rgb": "observation.images.first_person"}' \
  --env.hub_path=LightwheelAI/lw_benchhub_env \
  --env.kwargs='{"config_path": "configs/envhub/example.yml"}' \
  --trust_remote_code=true \
  --env.state_keys=joint_pos \
  --env.action_dim=12 \
  --env.camera_keys=left_hand_camera_rgb,right_hand_camera_rgb,first_person_camera_rgb \
  --policy.device=cuda \
  --eval.batch_size=10 \
  --eval.n_episodes=100

Ortam Yapılandırması

Değerlendirme, yapılandırma dosyasındaki robot, task ve layout ayarlarını değiştirerek hızla başlatılabilir.

Tüm Yapılandırma Seçenekleri

# =========================
# Basic Settings
# =========================
disable_fabric: false
device: cuda:0
sensitivity: 1.0
step_hz: 50
enable_cameras: true
execute_mode: eval
episode_length_s: 20.0 # Episode length in seconds, increase if episodes timeout during eval

# =========================
# Robot Settings
# =========================
robot: DoublePiper-Abs # Robot type, DoublePiper-Abs, X7S-Abs, G1-Controller or G1-Controller-DecoupledWBC
robot_scale: 1.0

# =========================
# Task & Scene Settings
# =========================
task: L90K1PutTheBlackBowlOnThePlate # Task name
scene_backend: robocasa
task_backend: robocasa
debug_assets: null
layout: libero-1-1 # Layout and style ID
sources:
  - objaverse
  - lightwheel
  - aigen_objs
object_projects: []
usd_simplify: false
seed: 42

# =========================
# Object Placement Retry Settings
# =========================
max_scene_retry: 4
max_object_placement_retry: 3

resample_objects_placement_on_reset: true
resample_robot_placement_on_reset: true

# =========================
# Replay Configuration Settings
# =========================
replay_cfgs:
  add_camera_to_observation: true
  render_resolution: [640, 480]

Bkz.

Update on GitHub