具身智能-Isaac Lab 3.0
工具介绍

Isaac Lab 是由 NVIDIA 推出的开源机器人学习框架,基于 GPU 加速实现大规模并行仿真,统一强化学习、模仿学习和运动规划等机器人研究工作流程,推动机器人 sim-to-real(仿真到现实)的高效迁移。
Isaac Lab 3.0 的主要特点:
- 多物理后端:新增 Newton(MJWarp)物理后端,可脱离 Isaac Sim 运行(kit-less),无需安装 Isaac Sim、无需接受 Isaac Sim EULA;PhysX 后端仍可选(需 Isaac Sim);
- 统一命令行:
isaaclab train / play / benchmark / list_envs统一入口,通过--rl_library切换 RSL-RL、RL Games、SKRL、SB3 等 RL 库,通过physics=/renderer=/presets=切换后端与配置; - 官方预训练权重:
--checkpoint pretrained自动下载并加载官方权重,便于与自训模型对照; - 基准评测:
isaaclab benchmark play / training输出 reward、episode 长度、成功率、FPS 等结构化结果; - 多种可视化:
--viz newton_gl / rerun / viser / kit,其中 viser 可通过浏览器远程查看。
| 对比项 | Isaac Lab 2.x | Isaac Lab 3.0 |
|---|---|---|
| 依赖 | 必须安装 Isaac Sim | Newton 后端无需 Isaac Sim |
| 启动方式 | ./isaaclab.sh -p scripts/reinforcement_learning/<库>/train.py |
isaaclab train --rl_library <库> |
| 后端选择 | 仅 PhysX | physics=newton_mjwarp / physics=isaacsim_physx |
| 无界面运行 | --headless |
默认无界面,--viz 按需开启 |
| 加载官方权重 | --use_pretrained_checkpoint |
--checkpoint pretrained |
镜像选择:Isaac Lab 与 Isaac Lab kitless
Isaac Lab 3.0 官方在 NGC 同一镜像仓库发布两类镜像,以 tag 后缀区分:
| 对比项 | Isaac Lab(标准镜像) | Isaac Lab kitless |
|---|---|---|
| 镜像地址 | ccr-registry.baidubce.com/aihc/nvcr.io/nvidia/isaac-lab:3.0.0 |
ccr-registry.baidubce.com/aihc/nvcr.io/nvidia/isaac-lab:3.0.0-kitless |
| 基础镜像 | Isaac Sim 6.2.0 镜像(nvcr.io/nvidia/isaac-sim:6.2.0) |
Ubuntu 24.04 + Python 3.12,不含 Isaac Sim |
| 镜像大小(amd64,压缩后) | 约 16.7 GB | 约 5.9 GB |
| 物理后端 | Isaac Sim PhysX(physics=isaacsim_physx)+ Newton + OVPhysX |
Newton(physics=newton_mjwarp)+ OVPhysX(physics=ovphysx),无 Isaac Sim PhysX |
| 渲染 | Omniverse Kit RTX 渲染,另含 OVRTX | OVRTX 渲染(--viz newton_rtx)与 OpenGL 光栅化(--viz newton_gl),均可离屏 |
| 可视化 | 包含 --viz kit(Isaac Sim 图形界面) |
newton_gl / newton_rtx / viser / rerun,不支持 --viz kit |
| RL 库 | RSL-RL、RL Games、SKRL、SB3 | 同左(四个均内置) |
| 许可 | 需接受 Isaac Sim EULA(-e ACCEPT_EULA=Y) |
无 Isaac Sim EULA |
| 容器挂载 | 需挂载 Isaac Sim 的 kit/ov/GL 等多个缓存目录 | 仅需挂载 logs 等工作目录,自带 uv 与 Warp 缓存 |
| 适用场景 | 需要 Isaac Sim 图形界面、Isaac Sim PhysX 训练、PhysX↔Newton 跨后端验证或 Kit RTX 传感器 | 用 Newton 训练强化学习策略,追求更小的镜像、无 EULA |
部署环境要求&最佳实践建议
| 部署要求 | |
|---|---|
| CPU | 建议按表单默认值 |
| 内存 | 建议按表单默认值 |
| GPU | aihc.lgn7ib ×1(单卡显存约 96-97 GiB,本文实测机型) |
| 驱动 | 实测 580.126.20 / CUDA 13.0 可正常训练与评测 |
| CDS | 按需(单次复现产物约 50 MB) |
| 其它 | 无 |
使用说明
本文以 快速验证环境 和 ANYmal-D 四足机器人速度跟踪训练、评测、导出 两个案例,介绍 Isaac Lab 3.0 的使用过程。
创建与登录开发机
根据部署环境要求成功创建开发机后,点击登录开发机,进入开发机 webIDE,打开 Terminal 界面;也可在开发机详情页开启 SSH 后通过本地终端登录。
主要路径介绍
- Isaac Lab 源码路径:/workspace/isaaclab
- Python 虚拟环境:/opt/isaaclab-venv(已加入 PATH,可直接执行
isaaclab命令) - 训练日志与模型:/workspace/isaaclab/logs
环境检查
执行如下命令,确认版本、GPU 与关键依赖:
1cd /workspace/isaaclab
2cat VERSION
3nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv,noheader
4uv pip list --python /opt/isaaclab-venv/bin/python | grep -iE '^(isaaclab |newton |warp-lang|torch |rsl-rl-lib)'
期望输出:VERSION 为 3.0.0,newton 1.6.1,rsl-rl-lib 5.5.1,torch 2.11.0+cu130,warp-lang 1.17.0。
快速启动训练任务
执行如下命令,展示 Isaac Lab 中可用的任务,以及每个任务支持的 RL 库和后端:
1cd /workspace/isaaclab
2isaaclab list_envs --show_presets
3# 按关键字过滤,例如只看 ANYmal-D
4isaaclab list_envs --keyword AnymalD

以倒立摆任务 Isaac-Cartpole-Direct 为例,执行如下命令启动训练。这里设置的 num_envs 和 max_iterations 仅为了快速验证环境,实测约 90 秒完成:
1cd /workspace/isaaclab
2isaaclab train --rl_library rsl_rl --task Isaac-Cartpole-Direct \
3 --num_envs 16 presets=newton_mjwarp --max_iterations 5
训练输出包含仿真场景配置、观测空间、奖励函数、模型定义以及日志保存路径等信息,命令正常退出即说明 GPU、驱动与 Isaac Lab 环境可用。
首次运行会编译 Warp 内核并下载仿真资产,耗时略长,后续运行会复用缓存。
输出示例:
1| S. No. | Task Name | Entry Point | RL Libraries |
2| 1 | Isaac-Velocity-Flat-AnymalD | isaaclab.envs:ManagerBasedRLEnv | rsl_rl, skrl |
3| 2 | Isaac-Velocity-Rough-AnymalD | isaaclab.envs:ManagerBasedRLEnv | rsl_rl, skrl |
举例:训练 ANYmal-D 四足机器人跟踪速度指令
我们使用 RSL-RL PPO 在 Newton MJWarp 后端上训练 ANYmal-D 四足机器人跟踪线速度与角速度指令,并与官方预训练权重做同口径对照。官方任务提供两个难度:
| 项 | 平地(Flat) | 崎岖地形(Rough) |
|---|---|---|
| 任务名 | Isaac-Velocity-Flat-AnymalD |
Isaac-Velocity-Rough-AnymalD |
| 并行环境数 | 4096 | 4096 |
| 训练迭代 | 300 | 2000 |
| 网络结构(actor/critic) | [128,128,128] | [512,256,128] |
| 观测维度 → 动作维度 | 48 → 12 | 235 → 12(含高度扫描) |
| 实测训练耗时 | 约 3.5 分钟 | 约 26 分钟 |
| 用途 | 快速验证链路(推荐首跑) | 完整验证 |
启动训练
执行如下命令启动训练。训练时间较长,建议使用 nohup 后台运行,避免终端断开导致训练中断:
1cd /workspace/isaaclab && mkdir -p logs/repro
2export TASK=Isaac-Velocity-Flat-AnymalD # 崎岖地形改为 Isaac-Velocity-Rough-AnymalD
3nohup isaaclab train --rl_library rsl_rl --task $TASK physics=newton_mjwarp --seed 42 \
4 > logs/repro/train_${TASK}.log 2>&1 &
5echo $! > logs/repro/train_${TASK}.pid
训练日志:

查看训练进展:
1cd /workspace/isaaclab
2grep -E 'Learning iteration|Mean reward|Mean episode length|ETA' logs/repro/train_${TASK}.log | tail -4

训练过程中 Mean reward 持续上升、Mean episode length 接近 1000 即说明机器人逐渐学会稳定行走。训练结束时日志末尾输出 Training time: <秒> seconds,模型每 50 次迭代保存一次:
- 平地:
logs/rsl_rl/anymal_d_flat/<时间戳>/model_299.pt - 崎岖地形:
logs/rsl_rl/anymal_d_rough/<时间戳>/model_1999.pt
也可使用 TensorBoard 查看训练曲线:
1cd /workspace/isaaclab
2tensorboard --logdir logs/rsl_rl --port 6006 --bind_all
回放与导出策略
执行如下命令加载训练好的模型进行回放。play 加载 checkpoint 后会自动将策略导出为 TorchScript 和 ONNX,保存在运行目录的 exported/ 下,可直接用于部署:
1cd /workspace/isaaclab
2export RUN_DIR=logs/rsl_rl/anymal_d_flat/<时间戳> # 替换为实际训练目录
3isaaclab play --rl_library rsl_rl --task $TASK \
4 --num_envs 16 physics=newton_mjwarp --checkpoint $RUN_DIR/model_299.pt --viz none

play 会持续回放不会自动退出,看到导出文件后按 Ctrl+C 结束即可。导出产物:
1<RUN_DIR>/exported/
2├── policy.pt # TorchScript
3├── policy.onnx # ONNX
4└── policy.onnx.data
如需在浏览器中查看机器人行走效果,将 --viz none 改为 --viz viser,并在本地建立端口转发后,按日志中输出的地址在浏览器打开:
1# 本地终端执行,端口以日志输出为准
2ssh -p <port> -L 8080:127.0.0.1:8080 root@<开发机地址>
如需直接查看官方预训练模型的效果,将 --checkpoint 改为 pretrained 即可自动下载并加载官方权重。
训练前:

训练后:

评测:自训模型 vs 官方预训练模型
Isaac Lab 3.0 内置 isaaclab benchmark play,可在相同参数下分别评测自训模型与官方模型。首先下载官方预训练权重(平地 0.94 MB,崎岖地形 6.56 MB):
1cd /workspace/isaaclab
2B=https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.2/Isaac/IsaacLab/PretrainedCheckpoints/rsl_rl
3curl -fsSL -o logs/repro/official_${TASK}.pt "$B/${TASK}_newtonmjwarp_none_rsl_rl.pt"
两次评测参数完全一致,只替换 --checkpoint 与 --output_path,单次约 1 分钟:
1cd /workspace/isaaclab
2for TAG in own official; do
3 CKPT=$([ $TAG = own ] && echo "$RUN_DIR/model_299.pt" || echo "logs/repro/official_${TASK}.pt")
4 isaaclab benchmark play --rl_library rsl_rl --task $TASK \
5 --num_envs 4096 --num_steps 1000 --warmup_steps 50 \
6 --checkpoint $CKPT --seed 42 \
7 --benchmark_formatter schema,summary \
8 --output_path logs/benchmark_results/play_${TAG} \
9 physics=newton_mjwarp
10done
评测结果保存在 logs/benchmark_results/play_{own,official}/ 下的 JSON 文件中,主要字段为 reward(平均回合奖励)、ep_length(平均回合长度,最大 1000)、success_rate(任务上报的成功率),三项均只统计评测窗口内已结束的回合。实测结果如下:
| 任务 | 模型 | reward | ep_length | success_rate |
|---|---|---|---|---|
| 平地 | 自训 model_299 | 22.58 | 980.6 | 99.54% |
| 平地 | 官方预训练 | 21.94 | 977.0 | 97.91% |
| 崎岖地形 | 自训 model_1999 | 23.06 | 979.6 | 99.37% |
| 崎岖地形 | 官方预训练 | 17.32 | 884.1 | 92.54% |
两个任务的自训模型各项指标均达到或超过官方预训练模型。
评测须显式指定 checkpoint 文件。
--checkpoint latest会选择最新的运行目录,如果之后执行过吞吐基准(会新建一个 10 次迭代的运行目录),latest将指向该目录,导致评测或导出了错误的模型。
训练吞吐基准
执行如下命令测试训练吞吐,参数与官方性能基准一致(8192 环境、10 次迭代)。测试期间请确保 GPU 上无其他训练任务,否则 FPS 不具参考性:
1cd /workspace/isaaclab
2isaaclab benchmark training --rl_library rsl_rl --task $TASK \
3 --num_envs 8192 --max_iterations 10 --warmup_steps 50 --seed 42 \
4 --benchmark_formatter schema,summary \
5 --output_path logs/benchmark_results/training \
6 physics=newton_mjwarp
实测与官方性能基准对比:
| 任务 | 实测 total FPS | 官方基准 total FPS | 比例 |
|---|---|---|---|
| 平地 | 212,487 | 233,348 | 91% |
| 崎岖地形 | 132,603 | 138,258 | 96% |
仿真资产说明
ANYmal-D 机器人模型、地面等仿真资产在首次运行时自动从 NVIDIA 官方资产库下载,无需手动准备:
- 下载地址:
https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.2 - 实际下载内容:
anymal_d.usd(12 KB)、instanceable_meshes.usd(1.06 MB)、default_ground_plane.usda(3.4 KB),合计约 1.1 MB - 缓存位置:
/tmp/isaaclab_usd_<随机ID>/,每次启动重新校验
如开发机无法访问上述地址,可二选一:
1# 方式一:使用中国区资产镜像
2unset ISAACSIM_ASSET_ROOT
3export ISAACSIM_ASSET_REGION_PROFILE=china
4
5# 方式二:使用自建离线资产目录(目录下需包含 Isaac/ 与 NVIDIA/)
6export ISAACSIM_ASSET_ROOT=/path/to/Assets/Isaac/6.2
如默认地址可访问,请保持默认配置,无需设置上述环境变量。
常见问题
| 问题 | 原因与处理 |
|---|---|
| 首次启动较慢 | 首次运行需编译 Warp 内核并下载资产,约 1 分钟;后续复用缓存 ~/.cache/warp/ |
play 命令不退出 |
play 导出策略后会持续回放,按 Ctrl+C 结束;脚本中可使用 timeout 150 isaaclab play ...,退出码 124 属正常 |
| 评测或导出用错了模型 | 日志中 Loading model checkpoint from: 显示实际加载路径;请显式指定 model_<N>.pt,不要使用 latest |
| 吞吐 FPS 偏低 | 检查是否有其他训练同时占用 GPU(nvidia-smi);吞吐测试需独占 GPU |
评测结果 reward 为 null |
评测窗口内没有回合结束,不代表为 0,可增大 --num_steps |
| 产物丢失 | 训练产物默认保存在开发机本地盘,释放开发机前请复制到 PFS 等持久化存储 |
参考
- Isaac Lab 仓库:https://github.com/isaac-sim/IsaacLab(tag
v3.0.0) - 快速入门:https://isaac-sim.github.io/IsaacLab/main/source/isaaclab/quickstart.html
- 入门教程(Getting started tutorial):https://isaac-sim.github.io/IsaacLab/main/source/setup/tutorial.html
- 操作指南(How-to guides):https://isaac-sim.github.io/IsaacLab/main/source/how-to/index.html
- 旧版本(2.1.0 / 2.2.0)使用说明见同目录《具身智能-Isaac Lab.md》
评价此篇文章
