一、前言
博主自从去年开始就一直在关注Isaac Lab和Isaac Sim,但是一直以来由于手头设备只有4060,甚至没有达到最低配置16GB显存要求,因此只能望洋兴叹。今年下定决心下血本购入顶配台式一台,为了让我投入的资金充分转化为生产力,因此最近开始捣鼓配置Isaac Lab和Isaac Sim。由于50系显卡较新,且最新的CUDA版本只能使用Nightly版本的PyTorch,因此配置过程中有许多需要注意的细节,因此我写下了这篇博客用来记录配置过程,既是记录配置过程中遇到的一些问题,也是给各位志同道合的朋友们抛砖引玉,一起用上最先进的GPU并行强化学习环境,共同进步。话不多说,我们正式开始配置吧。
二、电脑配置
名称 | 型号 |
---|---|
操作系统 | Ubuntu 24.04 LTS |
CPU | AMD Ryzen 9 9950X3D 16-Core Processor |
运行内存 | 64GB |
GPU | NVIDIA GeForce RTX 5090 |
GPU 驱动 | 575.64.03 |
CUDA 版本 | 12.9 |
三、配置步骤
电脑需要首先安装Nvidia驱动以及miniconda,已有博客详细阐述了配置过程,本文不再赘述。下面的配置过程主要参考Isaac Lab官方文档的Pip Installation,文档提供了另外一种二进制安装方式,主要区别在于使用的python环境以及Isaac Sim的安装上,下面的安装步骤仅针对Pip Installation,二进制安装请自行尝试。
3.1 创建Conda环境
conda create -n env_isaaclab python=3.10
conda activate env_isaaclab
3.2 安装PyTorch
此处区别于官方文档,截至Sat Jul 26 14:55:10 2025
,最新的CUDA版本12.9
不能使用PyTorch的稳定版2.7.1
,因此需要安装Preview (Nightly)版本,安装命令如下:
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129
使用如下命令查看当前的PyTorch版本
python -m pip show torch 2>/dev/null | grep "Version" | awk "{print $2}"
我的版本是Version: 2.9.0.dev20250725+cu129
,需要记住这个版本号,在下面安装Isaac Lab的时候要用到。
3.3 安装Isaac Sim
pip install 'isaacsim[all,extscache]==4.5.0' --extra-index-url https://pypi.nvidia.com
安装完成后使用如下命令验证Isaac Sim是否安装成功
isaacsim
首次运行isaacsim
时会有如下的NVIDIA Software License Agreement,需要手动输入Yes
。
By installing or using Isaac Sim, I agree to the terms of NVIDIA SOFTWARE LICENSE AGREEMENT (EULA)
in https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-software-license-agreement
Do you accept the EULA? (Yes/No): Yes
如果安装成功,应该有如下界面
3.4 安装Isaac Lab
首先克隆仓库
git clone git@github.com:isaac-sim/IsaacLab.git
安装依赖项
sudo apt install cmake build-essential
使用编辑器修改IsaacLab/isaaclab.sh
,这一步使用到的版本号就是3.2节中最后我们获得的版本号,中间用echo
命令打印出来的信息可以不修改,最关键的两点修改:
if [[ "${torch_version}" != "2.7.0+cu128" ]]; then
修改为if [[ "${torch_version}" != "2.9.0.dev20250725+cu129" ]]; then
;${python_exe} -m pip install torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128
修改为${python_exe} -m pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129
。
原本的安装脚本中会检查torch版本是否是 2.7.0+cu128
,但是最新的CUDA版本是12.9,支持12.9的只有Nightly版本,因此需要把版本检查和安装的部分替换为最新的版本。
# pass the arguments
while [[ $# -gt 0 ]]; do
# read the key
case "$1" in
-i|--install)
# 把原先这一段注释,修改成下面的
echo "[INFO] Installing extensions inside the Isaac Lab repository..."
python_exe=$(extract_python_exe)
# check if pytorch is installed and its version
# install pytorch with cuda 12.9 for blackwell support
if ${python_exe} -m pip list 2>/dev/null | grep -q "torch"; then
torch_version=$(${python_exe} -m pip show torch 2>/dev/null | grep "Version:" | awk '{print $2}')
echo "[INFO] Found PyTorch version ${torch_version} installed."
if [[ "${torch_version}" != "2.9.0.dev20250725+cu129" ]]; then # 替换此处的版本号
echo "[INFO] Uninstalling PyTorch version ${torch_version}..."
${python_exe} -m pip uninstall -y torch torchvision torchaudio
echo "[INFO] Installing PyTorch 2.9.0 with CUDA 12.9 support..."
${python_exe} -m pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129
else
echo "[INFO] PyTorch 2.9.0 is already installed."
fi
else
echo "[INFO] Installing PyTorch 2.9.0 with CUDA 12.9 support..."
${python_exe} -m pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129
fi
安装强化学习/模仿学习框架
./isaaclab.sh -i
创建空场景验证安装
python scripts/tutorials/00_sim/create_empty.py
应当能看到如下输出
下面我们就可以训练一个机器人了,例如经典的ant环境
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Ant-v0
# 如果要提高训练效率,请加上--headless选项,完整命令如下
# ./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Ant-v0 --headless
机器人仿真(2)-视频:训练ANT环境
终端输出如下
################################################################################
Learning iteration 205/1000
Computation: 82994 steps/s (collection: 1.520s, learning 0.059s)
Mean action noise std: 0.16
Mean value_function loss: 0.0247
Mean surrogate loss: -0.0023
Mean entropy loss: -3.9463
Mean reward: 102.77
Mean episode length: 906.04
Episode_Reward/progress: 6.4252
Episode_Reward/alive: 0.4708
Episode_Reward/upright: 0.0927
Episode_Reward/move_to_target: 0.4684
Episode_Reward/action_l2: -0.0141
Episode_Reward/energy: -0.7186
Episode_Reward/joint_pos_limits: -0.3366
Episode_Termination/time_out: 2.2812
Episode_Termination/torso_height: 0.1562
--------------------------------------------------------------------------------
Total timesteps: 27000832
Iteration time: 1.58s
Time elapsed: 00:04:59
ETA: 00:19:15
################################################################################
Learning iteration 206/1000
Computation: 82106 steps/s (collection: 1.537s, learning 0.059s)
Mean action noise std: 0.15
Mean value_function loss: 0.0313
Mean surrogate loss: -0.0002
Mean entropy loss: -3.9886
Mean reward: 105.27
Mean episode length: 929.74
Episode_Reward/progress: 6.6413
Episode_Reward/alive: 0.4845
Episode_Reward/upright: 0.0961
Episode_Reward/move_to_target: 0.4757
Episode_Reward/action_l2: -0.0146
Episode_Reward/energy: -0.7420
Episode_Reward/joint_pos_limits: -0.3487
Episode_Termination/time_out: 2.3438
Episode_Termination/torso_height: 0.1250
--------------------------------------------------------------------------------
Total timesteps: 27131904
Iteration time: 1.60s
Time elapsed: 00:05:01
ETA: 00:19:14
Isaac Lab中还有其他环境,我们还可以训练机器人、机械臂、无人机等对象完成不同的任务,例如我们可以训练Animal四足机器人:
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Velocity-Rough-Anymal-C-v0 # 同理可以加上--headless提高效率
机器人仿真(2)-视频:训练Anymal环境
输出如下:
################################################################################
Learning iteration 113/1500
Computation: 24455 steps/s (collection: 3.956s, learning 0.064s)
Mean action noise std: 0.49
Mean value_function loss: 0.0140
Mean surrogate loss: -0.0094
Mean entropy loss: 8.4871
Mean reward: 6.06
Mean episode length: 515.96
Episode_Reward/track_lin_vel_xy_exp: 0.3945
Episode_Reward/track_ang_vel_z_exp: 0.2131
Episode_Reward/lin_vel_z_l2: -0.0302
Episode_Reward/ang_vel_xy_l2: -0.0485
Episode_Reward/dof_torques_l2: -0.0438
Episode_Reward/dof_acc_l2: -0.0953
Episode_Reward/action_rate_l2: -0.0474
Episode_Reward/feet_air_time: -0.0075
Episode_Reward/undesired_contacts: -0.0016
Episode_Reward/flat_orientation_l2: 0.0000
Episode_Reward/dof_pos_limits: 0.0000
Curriculum/terrain_levels: 0.2560
Metrics/base_velocity/error_vel_xy: 0.2929
Metrics/base_velocity/error_vel_yaw: 0.2349
Episode_Termination/time_out: 1.7917
Episode_Termination/base_contact: 5.0417
--------------------------------------------------------------------------------
Total timesteps: 11206656
Iteration time: 4.02s
Time elapsed: 00:06:54
ETA: 01:24:00
################################################################################
Learning iteration 114/1500
Computation: 24878 steps/s (collection: 3.888s, learning 0.064s)
Mean action noise std: 0.49
Mean value_function loss: 0.0144
Mean surrogate loss: -0.0091
Mean entropy loss: 8.4738
Mean reward: 6.77
Mean episode length: 546.42
Episode_Reward/track_lin_vel_xy_exp: 0.3991
Episode_Reward/track_ang_vel_z_exp: 0.2165
Episode_Reward/lin_vel_z_l2: -0.0308
Episode_Reward/ang_vel_xy_l2: -0.0495
Episode_Reward/dof_torques_l2: -0.0449
Episode_Reward/dof_acc_l2: -0.0971
Episode_Reward/action_rate_l2: -0.0484
Episode_Reward/feet_air_time: -0.0080
Episode_Reward/undesired_contacts: -0.0019
Episode_Reward/flat_orientation_l2: 0.0000
Episode_Reward/dof_pos_limits: 0.0000
Curriculum/terrain_levels: 0.2656
Metrics/base_velocity/error_vel_xy: 0.3042
Metrics/base_velocity/error_vel_yaw: 0.2438
Episode_Termination/time_out: 2.0417
Episode_Termination/base_contact: 5.3750
--------------------------------------------------------------------------------
Total timesteps: 11304960
Iteration time: 3.95s
Time elapsed: 00:06:58
ETA: 01:24:00
使用默认参数训练的CPU和内存占用情况如下
GPU占用情况如下(不得不感叹5090的强大)
(env_isaaclab) ➜ Environments nvidia-smi
Sat Jul 26 16:06:58 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.64.03 Driver Version: 575.64.03 CUDA Version: 12.9 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 5090 Off | 00000000:01:00.0 On | N/A |
| 0% 35C P0 171W / 575W | 17438MiB / 32607MiB | 25% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 2720 G /usr/lib/xorg/Xorg 613MiB |
| 0 N/A N/A 3027 G /usr/bin/gnome-shell 187MiB |
| 0 N/A N/A 3477 G ...exec/xdg-desktop-portal-gnome 8MiB |
| 0 N/A N/A 4017 G /usr/share/code/code 81MiB |
| 0 N/A N/A 4845 G ...ess --variations-seed-version 46MiB |
| 0 N/A N/A 5289 G ...ersion=20250725-130039.589000 140MiB |
| 0 N/A N/A 6131 G ...OTP --variations-seed-version 63MiB |
| 0 N/A N/A 21308 C+G .../envs/env_isaaclab/bin/python 15971MiB |
| 0 N/A N/A 21987 G /usr/bin/gnome-system-monitor 18MiB |
+-----------------------------------------------------------------------------------------+
四、总结
50系显卡虽强,但软件生态还在逐步完善,许多库尚未完全适配,配置过程中需要频繁查阅 Nightly 版本、修补依赖、调整脚本。Ubuntu 24.04 虽然新,但也存在一些兼容性问题,比如 Isaac Sim 4.5 目前还不支持 ROS 2 Jazzy,对于想要深度集成机器人中间件的用户来说,需要提前规划。
接下来我还打算继续测试 Isaac Lab 在多智能体协同、规划与博弈任务中的表现,并尝试集成 ROS 2 等模块,构建更加完善的实验平台。希望这篇文章能为正在探索这条技术路线的朋友带来一些参考,也欢迎大家留言交流、一起摸索进步。