Ubuntu 本地及服务器安装 Isaac Sim
Isaac Sim 本地安装
Isaac Sim 环境是曾经 Isaac Gym 的上位版本,他们都是用来做机器人仿真环境训练的,适合用于虚实迁移任务,特点为及其高效,因为仿真环境与训练的模型都是在 GPU 上完成。IsaacLab 则是通过 Python 语言将 Isaac Sim 中的环境创建为 Gym 接口,从而直接应用于强化学习算法中。
而 Isaac Sim 现在作为 Omniverse Platform 中的一部分,我们需要先安装 Omniverse 因此我们的安装顺序为
- Omniverse Launcher (Omniverse 可视化界面)
- Isaac Sim Compatibility Checker (检查电脑是否支持 Isaac Sim)
- 使用 Omniverse Launcher 安装一些基础包
- 使用 Omnvierse Launcher 安装 Isaac Sim
- IssaLab (配置使 Isaac Sim 成为 Python 中仿真环境接口)
在官方给出的安装教程中,只需完成 Isaac Sim Requirements 和 Workstation Installation 两步,对于 Python 的 Python Environment Installation,由于其对 Conda 环境中 Python 配置介绍不详细,因此我们按照 IssacLab 中方法进行配置更为方便!
安装 Omniverse Launcher
Omniverse Launcher 下载链接
填写好你的信息就能下载了,最好注册一个 Nvidia 账号,这样可以保存你的填写的信息,选择 Linux
下载(我这里是第三行):
下载后我们可以得到一个 omniverse-launcher-linux.AppImage
软件,把这个软件放到一个固定的位置,因为第一次运行时会在菜单中创建当前位置的快捷方式。安装方法:进入到该文件夹下,执行下述代码开始安装
sudo chmod +x omniverse-launcher-linux.AppImage
# 如果你有 Clash 代理的话可以加上 --proxy-server={IP}:{PORT}
./omniverse-launcher-linux.AppImage --no-sandbox --proxy-server=127.0.0.1:7890
安装完成omniverse后,第一次打开会让你选择Pkg和Cache的安装位置,默认位置即可,后续IsaacSim中会用到pkg位置。
安装 Isaac Sim
首先按照 Isaac Sim Compatibility Checker 给出的步骤安装 Compatibility Checker 对电脑的兼容性进行检查,只要显卡那一栏不是红的应该就没有问题(我的电脑检查结果如下左图所示)。
按照 Workstation Installation 在 Omniverse Launcher 中顺次安装 Cache, Nucleus
中的内容。
注意:在安装 Isaac Sim 时候,一定要手动选择安装的版本为 4.0.0
(2024.6.6.的最新版本为 4.0.0
,这样才能和后续 Python 安装的保持一致)如下中,右两图所示:



需要注意的是如果你使用的是 zsh
代替了原始的 bash
终端,则需要按照 No module named ‘omni.isaac’ when using zshell instead of bash 中的方法,对 ${HOME}/.local/share/ov/pkg/isaac_sim-*
下的两个文件分别进行修改,setup_conda_env.sh
中的修改为:
# 第一行修改为
#!/bin/zsh
# 第二行修改为
SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" # 因为原来而 $BASH_SOURCE[0] 在 zsh 下位置是错误的
setup_python_env.sh
中的修改为:
# 第一行修改为
#!/bin/zsh
# 第二行修改为
SCRIPT_DIR=$(dirname "${(%):-%x}") # 还是因为原来的方法找不到当前文件位置
IsaacLab 安装
这里推荐使用 IsaacLab,这个是对 OmniIsaacGymEnvs 的改进版本,有详细的参考文档以及教学,可以直接参考 Installation using Isaac Sim Binaries 进行安装,不要使用Pip installation,因为这会重新下载Isaac Sim而且不完整,安装IsaacLab流程如下:
- 设置虚拟链接
ln -s ${HOME}/.local/share/ov/pkg/isaac-sim-4.2.0 _isaac_sim
(确定左侧路径就是你的isaac-sim安装位置,注意版本号) - 创建conda中的新环境
./isaaclab.sh --conda
(如果是zsh终端,需要先修改isaaclab.sh文件中19行附近的export ISAACLAB_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
为export ISAACLAB_PATH="$( cd "$( dirname "$0" )" && pwd )"
因为前面那个指令是bash中的,可能无法找到正确的路径)创建完成后,我们进入isaaclab环境后,使用isaaclab指令就相当于执行了./isaaclab.sh脚本了
conda activate isaaclab
安装训练框架isaaclab -i rl_games
,安装后可能还需要再装一次pip install rl_games
,可能是bug- 环境测试,我们直接执行训练样例代码,来自 IsaacSim - sample - Reinforcement Learning,我们使用第三个(因为它是可以使用GPU加速的),训练 cartpole 用时 45s,其他还有两个环境可以测试自带的环境请见 - Environments,训练 Ant 用时 2:42,下面以训练 Cartpole 为例:
# install python module (for rl-games),安装 rl-games
./isaaclab.sh -i rl_games
conda activate isaaclab
# run script for training(如果使用的是 conda 进行的安装,使用 python 和 ./isaaclab.sh -p 是一样的)
python source/standalone/workflows/rl_games/train.py --task Isaac-Cartpole-v0 --headless
python source/standalone/workflows/rl_games/train.py --task Isaac-Cartpole-v0 --headless
# run script for playing with 32 environments,模型权重保存在 /IsaacLab/logs/rl_games 下,例如我的就是如下位置
python source/standalone/workflows/rl_games/play.py --task Isaac-Cartpole-v0 --num_envs 32 --checkpoint /home/yy/Coding/GitHub/IsaacLab/logs/rl_games/cartpole/2024-06-18_22-12-56/nn/last_cartpole_ep_150_rew__4.6873245_.pth


Isaac Sim Docker 安装
我按照 Isaac Sim Container Installation 中的安装流程,基于 nvcr.io/nvidia/isaac-sim:4.0.0 安装了基础的 isaac-sim,我在其基础上配置了 conda, zsh, vim, tmux,...
,可以直接使用 IsaacLab
和 IsaacGymEnvs
。使用方法 docker pull wtyyy/isaacsim:latest
,执行
docker run --name isaac-sim --entrypoint zsh -it --runtime=nvidia --gpus all -e "ACCEPT_EULA=Y" --rm --network=host \
-v ~/docker/isaac-sim/cache/kit:/isaac-sim/kit/cache:rw \
-v ~/docker/isaac-sim/cache/ov:/root/.cache/ov:rw \
-v ~/docker/isaac-sim/cache/pip:/root/.cache/pip:rw \
-v ~/docker/isaac-sim/cache/glcache:/root/.cache/nvidia/GLCache:rw \
-v ~/docker/isaac-sim/cache/computecache:/root/.nv/ComputeCache:rw \
-v ~/docker/isaac-sim/logs:/root/.nvidia-omniverse/logs:rw \
-v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
-v ~/docker/isaac-sim/documents:/root/Documents:rw \
wtyyy/isaacsim:latest
即可启动容器。
如果报错docker: Error response from daemon: unknown or invalid runtime name: nvidia.
,则需要安装nvidia-container-toolkit
,参考Install with apt,如果安装完成后还是报错,参考GitHub issus - Docker Error - Unknown or Invalid Runtime Name: Nvidia,修改/etc/docker/daemon.json
文件包含如下内容:
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
重启docker:
sudo systemctl daemon-reload
sudo systemctl restart docker