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.6.1).
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は、IsaacLab ArenaによるGPUアクセラレーション付きシミュレーションをサポートし、大規模なポリシー評価に対応しました。 高忠実度のシミュレーションで模倣学習ポリシーの学習と評価を行い、すべてLeRobotエコシステムに統合されています。

IsaacLab Arena - GR1 Microwave Environment

IsaacLab ArenaはNVIDIA IsaacLabと統合されており、以下を提供します:

  • 🤖 ヒューマノイドのエンボディメント: GR1、G1、Galileo(各種構成)
  • 🎯 操作およびローコ・マニピュレーションタスク: ドアの開閉、ピック・アンド・プレース、ボタンの押下など
  • ⚡ GPU による高速なロールアウト: NVIDIA GPU での並列環境実行
  • 🖼️ RTX Rendering: リアルなレンダリング、反射、屈折を用いて、ビジョンベースのポリシーを評価します
  • 📦 LeRobot互換データセット: GR00T N1x、PI0、SmolVLA、ACT、Diffusionポリシーでの学習にすぐ対応
  • 🔄 EnvHubとの統合: HuggingFace EnvHubから環境を1行で読み込み

インストール

前提条件

ハードウェア要件はIsaac Simと共通しており、Isaac Sim Requirementsに詳細が記載されています。

  • CUDA対応のNVIDIA GPU
  • IsaacSim 5.1.0 と互換性のある NVIDIA ドライバー
  • Linux (Ubuntu 22.04 / 24.04)

セットアップ

# 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

ポリシーの評価

事前学習済みポリシー

以下の学習済みポリシーが利用可能です:

ポリシーアーキテクチャタスクリンク
pi05-arena-gr1-microwavePI0.5GR1 マイクロ波HuggingFace
smolvla-arena-gr1-microwaveSmolVLAGR1 マイクロ波HuggingFace

SmolVLAの評価

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の評価

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.

期待できること

評価中、進行中の成功率を示すプログレスバーが表示されます:

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

ビデオ録画

評価中に動画の録画を有効にするには、コマンドに次のフラグを追加してください。

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

動画録画の詳細については、IsaacLab Recording Documentationを参照してください。

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

出力ディレクトリ

評価用の動画は、以下の構造で出力ディレクトリに保存されます:

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

例えば:

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

トレーニングポリシー

LeRobotでのトレーニングポリシーについて詳しく知るには、トレーニングのドキュメントを参照してください:

実験用に、IsaacLab ArenaのサンプルデータセットがHuggingFace Hubで利用できます:

データセット説明フレーム
Arena-GR1-Manipulation-TaskGR1マイクロ波操作~4K
Arena-G1-Loco-Manipulation-TaskG1 ロコモニピュレーション~4K

環境設定

完全な設定オプション

from lerobot.envs.configs import IsaaclabArenaEnv

config = IsaaclabArenaEnv(
    # 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
)

高度な用途にEnvironment Hubを直接使用する

test_env_load_arena.py という名前のファイルを作成するか、EnvHub からダウンロードします:

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()

以下で実行します:

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

新しい環境の作成

まず、IsaacLab Arena Documentationに従って、新しいIsaacLab Arena環境を作成します。

EnvHubのリポジトリをクローンします:

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

新しい環境に基づいてexample_envs.yamlファイルを修正してください。修正したリポジトリをアップロードして、HuggingFace EnvHubに公開してください。

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.

次に、評価を行う際は、新しい環境を使用します:

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

ご貢献をお待ちしております!

トラブルシューティング

CUDAのメモリ不足

batch_sizeを減らすか、VRAMの多いGPUを使用してください:

--eval.batch_size=1

EULAが承認されていません

実行前に環境変数を設定します:

export ACCEPT_EULA=Y
export PRIVACY_CONSENT=Y

ビデオ録画が動作しない

ヘッドレス実行時にカメラを有効にする:

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

ポリシー出力の次元不一致

action_dimがポリシーと一致していることを確認してください:

--env.action_dim=36

Isaac Sim の初期化中に発生する libGLU.so.1 エラー

…

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

関連項目

Lightwheel LW-BenchHub

Lightwheelは、268のタスクを含むLightwheel-Libero-TasksとLightwheel-RoboCasa-TasksをLeRobotエコシステムに提供しています。 LW-BenchHubは、LeRobot仕様に準拠した大規模なデータセットをテレオペレーションによって収集・生成し、すぐに使えるトレーニングおよび評価ワークフローを可能にします。 EnvHubが提供する統一インターフェースにより、開発者はエンドツーエンドの実験パイプラインを迅速に構築できます。

インストール

インストールの手順に従った場合、LW-BenchHubは以下でインストールできます:

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 .

より詳細な手順については、LW-BenchHub Documentationを参照してください。

Lightwheel Tasks データセット

LW-BenchHubのデータセットはHuggingFace Hubで利用できます:

データセット説明タスクフレーム
Lightwheel-Tasks-X7SX7S LIBEROと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

ポリシーの学習については、Training Policiesセクションを参照してください。

ポリシーの評価

事前学習済みポリシー

以下の学習済みポリシーが利用可能です:

ポリシーアーキテクチャタスクレイアウトロボットリンク
smolvla-double-piper-pnpSmolVLAL90K1PutTheBlackBowlOnThePlatelibero-1-1DoublePiper-AbsHuggingFace

SmolVLAの評価

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

環境設定

設定ファイル内のrobot、task、layoutの設定を変更することで、評価を素早く開始できます。

完全な設定オプション

# =========================
# 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]

関連項目

Update on GitHub