isaac-sim/IsaacLab-Arena

Isaac Lab - Arena is a robotics simulation framework that enhances NVIDIA Isaac Lab by providing a composable, scalable system for creating diverse simulation environments and evaluating robot learning policies. The framework enables developers to rapidly prototype and test robotic tasks with various robot embodiments, objects, and environments.

Isaac Lab-Arena – 快速概览

它是什么 – 一个基于 NVIDIA Isaac Lab/Isaac Sim 的开源框架。它让您能够从三个构建模块(场景、机器人+传感器、任务)中组合机器人模拟环境,然后在 GPU 或多个节点上执行大规模策略评估实验。

为什么它很重要 – 为机器人建立基准测试通常意味着需要手工制作大量的配置(世界布局、对象放置、机器人定义、奖励)。Arena 让这些部分变得可重复使用且可组合,因此您可以自动生成许多变体,在数千个环境中并行评估单一策略,并收集细粒度的指标(子任务谓词、敏感度分析)以了解策略在何处失败。


核心概念

概念 角色
Scene 物理布局 – 墙壁、家具、对象 (USD 资产)。
Embodiment 机器人定义 – 模型、传感器、动作/观察空间、控制器。
Task 机器人的目标(例如,拾取并放置、导航)。
ArenaEnvBuilder 获取场景、具身和任务,并构建一个在 Isaac Lab 内运行的标准 ManagerBasedRLEnvCfg。

主要功能

1. 建立可扩展的基准测试

  • 可组合环境 – 混合搭配场景、机器人和任务,无需重写代码。
  • 关系放置 – 指定“在桌子上”或“在冰箱旁边”而不是确切的坐标。
  • 顺序任务链接 – 将原子技能(拾取、行走、放置)组合成长视距任务。
  • 代理生成(实验性) – 用自然语言描述任务;内部代理会建立规范、寻找资产并构建一系列环境。
  • 受控变体 – 扫描光照、摄像机、对象质量等,以测试鲁棒性。

2. 大规模执行评估

  • GPU 加速并行展开 – 单一策略可以在数千个异构环境中同时进行评估。
  • 多节点编排 – 实验可以通过 OSMO 分发或在本地运行。
  • 策略客户端-服务器 API – 通过通用的观察-动作合约插入任何策略(GR00T、π0.5、自定义)。

3. 分析策略鲁棒性

  • 子任务谓词 – 追踪诸如 grasp、lift、place 之类的里程碑,以查明失败点。
  • 敏感度分析 – 扰动环境参数并观察性能如何变化。

入门指南 (TL;DR)

# Clone with submodules
git clone --recurse-submodules git@github.com:isaac-sim/IsaacLab-Arena.git
cd IsaacLab-Arena

# Create a locked Python env (uv is the recommended installer)
uv sync
source .venv/bin/activate
export OMNI_KIT_ACCEPT_EULA=YES

# Quick sanity-check: zero-action policy for 20 steps
python isaaclab_arena/evaluation/policy_runner.py \
    --policy_type zero_action --num_steps 20 cube_goal_pose

选用:添加 --viz kit 以在 GUI 中观看展开过程。

Docker 使用者可以运行提供的 run_docker.sh 脚本,该脚本会挂载您的 $HOME/datasets、$HOME/models 和 $HOME/eval 目录。


示例:建立一个 Franka-Arm 厨房场景

from isaaclab_arena.assets.asset_registry import AssetRegistry
from isaaclab_arena.environments.arena_env_builder import ArenaEnvBuilder, ArenaEnvBuilderCfg
from isaaclab_arena.environments.isaaclab_arena_environment import IsaacLabArenaEnvironment
from isaaclab_arena.scene.scene import Scene

registry = AssetRegistry()
scene = Scene(assets=[
    registry.get_asset_by_name('kitchen')(),
    registry.get_asset_by_name('cracker_box')(),
    registry.get_asset_by_name('tomato_soup_can')(),
])
embodiment = registry.get_asset_by_name('franka_ik')()

env_cfg = IsaacLabArenaEnvironment(
    name='franka_kitchen_example',
    embodiment=embodiment,
    scene=scene,
)

builder = ArenaEnvBuilder(env_cfg, ArenaEnvBuilderCfg())
env = builder.make_registered()
env.reset()

构建器将高阶规范转换为完全注册的 Isaac Lab 环境,准备好进行 RL 训练或策略评估。


项目结构 (高阶)

  • isaaclab_arena/ – 核心库(环境构建器、场景、任务、具身类)。
  • isaaclab_arena_environments/ – 现成的基准测试定义。
  • docker/ – Dockerfiles 和启动脚本。
  • osmo/ – 云端规模编排的配置。
  • submodules/ – Isaac Lab 和其他必要的存储库。

状态与兼容性

  • Alpha (v0.3) – API 可能会更改;不适用于生产环境。
  • 支持的 Isaac Lab – 3.0.0 EA (或匹配的发布分支)。
  • 支持的 Isaac Sim – 6.1.0。
  • Python – ≥ 3.12, Linux 64-bit (建议使用 Ubuntu 22.04)。

谁会使用这个?

  • 机器人研究人员 建立新的基准测试或需要对学习到的策略进行大规模评估。
  • ML 工程师 想要在许多视觉/物理变体中压力测试策略。
  • 基准测试作者 寻找一种可重复使用、可组合的方式来发布任务,以便其他人可以在相同的模拟堆栈上运行。

社区与贡献

  • 在 GitHub 上开启问题与讨论。
  • 欢迎通过 pull-requests 进行贡献(请参阅 CONTRIBUTING.md)。
  • 授权:Apache 2.0 (Isaac Sim 本身仍受 NVIDIA 的专有条款约束)。

总结 – Isaac Lab-Arena 为您提供了一个模块化、高性能的管线,用于大规模建立、运行和分析机器人模拟基准测试,所有这些都建立在 NVIDIA 的 Isaac Sim 生态系统之上。

相关

  • 项目
  • 项目
  • Dispatch
  • Dispatch
  • 项目