ISAAC SIM(Ubuntu20.04) 下载使用流程
机器:华硕天选X2024
显卡:4060Ti
ubuntu20.04
安装显卡驱动版本:525.85.05
(驱动版本实时变化,在下载安装前请查看官网当前推荐的驱动版本,并修改对应的安装命令)
———————————————————————————————————————————
2024.9.2添加:
1.推荐的显卡驱动版本官网上已经修改了,请在下载时尽可能去官网看一眼,是不是又更新了,跟着官网流程下载即可。
2.如果下载时网络卡顿经常下载失败,可以考虑科学上网,会稳定一些。如果下载速度仍然过慢,可以找各位isaac sim大佬要一下压缩包进行下载。
———————————————————————————————————————————
2024.11.1 - 2024.11.4添加:
1.docker的使用区分为本地工作站使用和远程服务器使用
2.新增远程服务器的部署并使用流程:2.4.3 远程工作站
———————————————————————————————————————————
2025.2.17添加:
2025.1.31正式发布了 isaac sim 4.5,isaac lab也更新了 2.0,请大家在使用时多多学习官方文档中的内容,最好的文档永远是官方文档。
———————————————————————————————————————————
参考:
What Is Isaac Sim? — Omniverse IsaacSim latest documentation
Isaac sim Cache 2023.2.3 did not work_isaac cache stopped-CSDN博客
Isaac Sim详细安装使用教程-CSDN博客
在4.16的笔记中已经完成了ubuntu20.04安装、显卡驱动安装:
记录ubuntu20.04安装nvidia-525.85.05显卡驱动(学习笔记2024.4.15、4.16)-CSDN博客
一.Isaac Sim介绍
NVIDIA Isaac Sim 是一款可扩展的机器人仿真应用程序和合成数据生成工具,基于 NVIDIA Omniverse™ 平台构建。它利用 Omniverse Kit 强大的仿真技术,包括使用 PhysX 5 进行高级支持 GPU 的物理模拟、具有实时光线和路径追踪的照片级逼真度,以及对基于物理的渲染的 MDL 材质定义支持。
Isaac Sim 是一个物理精确的虚拟环境,用于开发、测试和管理基于 AI 的机器人,它为构建虚拟机器人实验提供了基本功能,包括导入机器人模型以及仿真 RGB-D、激光雷达、接触、超声波和 IMU 等传感器。
Isaac Sim 支持通过 Python、ROS 和 Isaac SDK 进行导航、操作、深度学习应用程序对于人工智能应用程序,有很多种类工具包,例如用于合成数据生成和域随机化的 Isaac Replicator、用于强化学习的 Isaac Gym 和用于高级决策编程的 Cortex。
1.1 平台支持
Isaac Sim中显示目前平台支持Windows和Linux。
在下方链接中写着“The Isaac Sim container is only supported on Linux.”是因为开发者支持的Windows为测试版本,这句提示没有修改,实际上windows是可以使用的。
而相对的,Linux有官方完整的Demo演示功能介绍和相关文档,相对完善,推荐使用Linux。
Isaac Sim Requirements — Omniverse IsaacSim latest documentation
1.2 系统架构
1.3 开发流程
1.4 Omniverse 工具包
Omniverse Isaac Sim 使用英伟达™ Omniverse™ Kit SDK,这是一个用于构建原生 Omniverse 应用程序和微服务的工具包。Omniverse Kit通过一系列轻量级插件提供了多种功能。插件采用C语言接口编写,以实现持久的API兼容性;不过,还提供了一个Python解释器,以方便用户编写脚本。
1.5 Omniverse Nucleus
Omniverse Isaac Sim 使用英伟达™ Omniverse™ Nucleus 访问环境和机器人的USD文件等内容。Omniverse Nucleus服务允许各种客户端应用程序、渲染器和微服务共享和修改Omniverse Isaac Sim中的虚拟世界。
Nucleus以发布/订阅模式运行。根据访问控制,Omniverse 客户端可以向 Nucleus 数据库(DB)发布对数字资产和虚拟世界的修改,也可以订阅他们的修改。更改会在连接的应用程序之间实时传输。数字资产可以包括几何图形、灯光、材料、纹理和其他描述虚拟世界及其随时间演变的数据。
1.6 USD
Omniverse Isaac Sim 使用 USD 交换文件格式来表示场景。通用场景描述(USD)是一种易于扩展的开源三维场景描述和文件格式,由皮克斯公司开发,用于内容创建和不同工具之间的交换。由于其强大的功能和通用性,USD 被广泛采用,不仅在视觉特效界,而且在建筑、设计、机器人、制造和其他学科也得到了广泛应用。
二.系统要求
(截止2024.4.16)驱动建议跟着官方文档来,这里我下载的525.85.05版本
2024.8.13 补充:
驱动推荐更高版本,推荐显卡也修改了,文档后续代码中记得自行修改
2.1 下载Nvidia显卡驱动及Cuda
1.下载NVIDIA-Linux-x86_64-525.85.05
sudo apt-get update
sudo apt install build-essential -y
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/525.85.05/NVIDIA-Linux-x86_64-525.85.05.run
chmod +x NVIDIA-Linux-x86_64-525.85.05.run
sudo ./NVIDIA-Linux-x86_64-525.85.05.run
如果在安装驱动时遇到以下报错内容
ERROR: An NVIDIA kernel module ‘nvidia-drm’ appears to already be loaded in your kernel. This may be because it is in use (for example, by an X server, a CUDA program, or the NVIDIA Persistence Daemon), but this may also happen if your kernel was configured without support for module unloading. Please be sure to exit any programs that may be using the GPU(s) before attempting to upgrade your driver. If no GPU-based programs are running, you know that your kernel supports module unloading, and you still receive this message, then an error may have occured that has corrupted an NVIDIA kernel module’s usage count, for which the simplest remedy is to reboot your computer.
则意味着你已经有一个显卡驱动了,如果你要装新的,就需要将上一个完全卸载掉,不留痕迹。然后重启计算机就可以下载了。
2.Cuda安装
个人安装的是CUDA Version: 12.2
ubuntu20.04安装cuda库-CSDN博客
2.2 设置Docker
1.使用脚本快速安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
2.Docker安装后续步骤
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
3.验证Docker是否安装成功
docker run hello-world
2.3 安装NVIDIA工具包
1.配置仓库
这是一行里面的,别拆
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list |
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' |
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
&&
sudo apt-get update
2.安装工具包
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
3.验证工具包是否安装成功
docker run --rm --gpus all ubuntu nvidia-smi
注意:对于远程用户,仍需要安装显卡驱动、docker、NVIDIA工具包,可以根据1.1中的链接进行下载安装
2.4 容器部署(可选)
如果需要在本机运行全部功能,可以将2.4跳过直接看第三章。
重点:Isaac Sim 容器仅支持以无界面模式运行 Python 应用程序和独立示例
2.4.1 本机工作站使用docker操作指引
在工作站/主机中设置docekr,需要完成2.4.1的流程,来进行容器部署。
其它远程使用docker的用户仅需要完成2.4.2的流程步骤,就可以开始进行Isaac Sim仿真了。
先看一眼cuda、显卡驱动都配好了没,确定ok就开始了。
nvidia-smi
只有先通过NVIDIA,注册获取密钥后,才可以拉取isaacsim的镜像,进行容器部署。因此我们先获取密钥。
docker login nvcr.io #只输入这行就行,下面不用复制过去
Username: $oauthtoken
Password:
WARNING! Your password will be stored unencrypted in /home/username/.docker/config.json.
Configure a credential helper to remove this warning. See
credentials-store
Login Succeeded
这句代码会让你输入一些东西,分别是username,password。
username输入$oauthtoken就行。(包括前面的美元符号‘$’)
password需要去NVIDIA官网里,跟着这个教程来:NGC User Guide - NVIDIA Docs
不想看英文就跟着我来(和官网内容是一样的):
1.进入NVIDIA NGC
2.在里面输入高贵的邮箱信息
3.等待加载结束后,在右上角的个人信息中点击Setup
4.里面第一个和第二个都是钥匙,选第二个私人的
5.点击右上角,绿色的Generate Personal Key
第一个随便,第二个Never Expire,第三个NGC Catalog
6.会得到一串key,这串key可以先放到哪个记事本里,一会儿如果在终端中不小心点错了还有机会补救(就显示这一次,关掉之后就再也看不见它了,需要重新获取key)
7.回到终端,输入username,在password中将这一长串key复制进去,OK,输出Login Succeeded就代表成功了
然后在终端中:(这个建议挂梯子,不然会因为网络不稳定经常下载失败)
docker pull nvcr.io/nvidia/isaac-sim:2023.1.1
如果下载别的版本的isaacsim:docker pull nvcr.io/nvidia/isaac-sim:4.2.0(修改最后面的版本就可以了)
接下来进入root根目录(这些是一行里面的,直接全复制走)
docker run --name isaac-sim --entrypoint bash -it --gpus all -e "ACCEPT_EULA=Y" --rm --network=host
-e "PRIVACY_CONSENT=Y"
-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
nvcr.io/nvidia/isaac-sim:2023.1.1
下面这行命令会加载一段时间,不用担心,最后会编译着色器,打游戏的都知道,这玩意更新最慢了。
官方文档:(首次加载 Isaac Sim 将需要一段时间来缓存着色器。一旦着色器被缓存并且容器运行时挂载了缓存,后续运行 Isaac Sim 将会很快。请参阅在使用容器时将 Isaac Sim 配置和缓存保存到本地磁盘,以便使 Isaac Sim 配置和缓存持久化。)
后面的-V可要可不要(-V:verbose,详细模式)
./runheadless.native.sh -v
最后输出 Isaac Sim Headless Native App is loaded. 就没问题了
接下来,输入运行 Isaac Sim 容器的机器或实例的 IP 地址,然后点击“连接”按钮。就可以前往Isaac Sim界面了。
Isaac Sim 容器仅支持以无界面模式运行 Python 应用程序和独立示例。
如果需要运行全部功能,还是需要下载的。
2.4.2 Docker Isaac Sim UI界面(Streaming Client)
无头模式使用isaac sim有两种方式:1.streaming client ;2.web
在本文中主要介绍通过streaming client来进行isaacsim仿真操作。
在下面连接中下载omniverse-launcher-linux.AppImage。
https://developer.nvidia.com/omniverse#section-getting-started
点击get started
选择Linux,开始下载
下载完毕后,找到文件路径,打开终端,添加权限
chmod +x omniverse-launcher-linux.AppImage
双击文件或在终端中./chmod +x omniverse-launcher-linux.AppImage 打开
登录自己的 NVIDIA 邮箱
可以自动跳转到 omniverse-launcher 中
在上方导航栏找到 EXCHANGE
搜索 Streaming Client ,下载
下载结束后,在上方导航栏 LIBRARY 中,找到 Streaming Client ,点击 LAUNCH
输入我(工作站)的IP地址
就可以使用我的NVIDIA账号进行Isaac Sim仿真了
Python使用
(这种方式使用Isaac Sim存在bug,似乎无法直接粘贴代码过来,但可以打开指定路径的python文件,倒也没啥大事)
Streaming Client 方式进行Extensions扩展、界面大小调整:Using Omniverse Streaming Client — Omniverse Streaming Client latest documentation
2.4.3 远程工作站
如果要使用远程工作站(比如手头的设备硬件一般,需要用一些硬件好的设备运行仿真),需要在工作站中设置自己的isaacsim docker,并运行无头模式:./runheadless.native.sh
1. 和2.4.1中一样,需要获取NGC密钥,并下载isaac sim镜像
2. 区别在于docker的启动
官方文档关于这部分:Setup FAQ — Omniverse IsaacSim latest documentation
请注意:如果没有远程工作站的sudo权限,这里不使用sudo也是可以进行操作的。毕竟寄人篱下使用他人服务器,不想厚脸皮求sudo也是能理解的...
(1) 设置运行的Nucleus服务器。其中
sudo docker run --gpus all -e "ACCEPT_EULA=Y" -e "OMNI_SERVER=omniverse://
/NVIDIA/Assets/Isaac/4.2" --rm --network=host nvcr.io/nvidia/isaac-sim:4.2.0
(2) 设置用于连接到 Nucleus 服务器的默认用户名和密码
export OMNI_USER=
export OMNI_PASS=
(3) 也可以写在docker的启动中
sudo docker run --gpus all -e "ACCEPT_EULA=Y" -e "OMNI_USER=
" -e "OMNI_PASS= " --rm --network=host nvcr.io/nvidia/isaac-sim:4.2.0
(可选其它账号输入方式:API)
这里的username和password都可以使用API密钥方式,选择适合自己的方式就好
首先打开Omniverse Launch,进入以下界面
在localhost中右键点击API Tokens
输入name后,点击create,就可以获取到API了。注意:只显示一次,如果没复制好,重新获取API就好。
(4) 进入root,默认直接进入/isaac-sim
/isaac-sim的路径在cd ~/../中,在主目录的上一级,很好找
nucleus的配置文件user.config.json路径:~/.local/share/ov/data/Kit/Isaac-Sim/4.2/user.config.json
(5) 在docker中(-v 可选,为详细模式)
./runheadless.native.sh -v
(6) 就可以正常开启无头模式的isaacsim了
(7) 完成本文中2.4.2,获取Streaming Client 的内容
(8) 这里注意,当使用远程工作站时,会发现无法使用模型文件,因此我们需要将自己的模型文件设置为公开。
首先,在自己Nucleus的服务器中,打开Settings
点击Enable Sharing
同意
看到这里变为Disable sharing,就证明已经公开了,这时发现自己有很多状态异常,刷新一下就好了。
(9) 接下来,最后一步,打开Streaming Client,输入远程工作站的ip地址
点击Add New Connection
然后就可以使用模型资产了。
我在进行这里的操作时有一个误区,我认为在启动isaacsim headless模式时已经填写了ip和账号密码,应该是自动登录的。但实际上不是,在启动直播流和无头模式后,仍然需要在isaacsim的gui界面中输入ip地址,也就是上图位置。在这里输入ip地址后,才会调用创建docker时的账号和密码,否则是不会登录的。
三.下载Isaac Sim
下载时建议全程使用科学上网保证网速,下载东西不小,下载失败就不好了
3.1 Isaac sim下载
下载链接:
Isaac Sim - Robotics Simulation and Synthetic Data | NVIDIA Developer
https://developer.nvidia.com/omniverse#section-getting-started
3.2 Omniverse Launcher及后续下载
步骤3.1登记个人信息后,下载Nvidia Omniverse Launcher的安装包,ubuntu系统下载得到的是一个后缀为.AppImage的文件(omniverse-launcher-linux.AppImage)
下载后,将文件修改为可执行文件,就可以在终端中启动了
chmod +x omniverse-launcher-linux.AppImage
(因为 Isaac Sim 是依赖Nvidia Omniverse的,因此首先下载的不是Isaac Sim本身)
3.3 后续准备
在EXCHANGE中搜索Isaac Sim,下载
在EXCHANGE中搜索Cache,下载(本地缓存,加快Nucleus的交互速度)
在EXCHANGE中搜索Nucleus,下载
下载后,在NUCLEUS中,保证Local Nucleus Service的setting中所有东西都是正在运行中的 (如果出现某些选项是红色或是黄色的,reset all即可解决)
(我的图片里面不全,有些东西还在下,这里用一下别人的)
Isaac sim Cache 2023.2.3 did not work_isaac cache stopped-CSDN博客
3.4 上传文件
Local host的project,点击New Folder,将usd相关文件放上去即可(第一次可能会需要连接,输入账号密码后按指示来即可)
创建你的账号
后续准备
3.5 运行 Isaac Sim
导航栏中LIBRARY,点击LAUNCH/启动
第六个中ros选第一个就行,其余不用变,START
如果遇到警告:Failed to create any GPU devices, including an attempt with compatibility mode.
告诉你未能创建GPU,这意味着显卡驱动安装不完整,或者是CUDA安装不完整,卸载干净后重装就行了(这个报错网上你查不到解决办法,还不告诉你哪儿出了问题,我在这里卡了一天,就是因为之前有一个550的显卡驱动没卸载干净,有残留)。
四.Python环境
Isaac Sim 提供了一个内置的 Python 3.10 环境,建议使用python脚本的时候使用这个python环境
在从 Isaac Sim 根文件夹运行命令: ./python.sh path/to/script.py
可以直接在 Isaac Sim 应用程序选择器的 Isaac Sim 根文件夹下打开终端
通过 pip 安装其他软件包时,使用: ./python.sh -m pip install name_of_package_here
五.ROS环境
下载前关闭科学上网
我用的小鱼的一键下载,很是方便
sudo apt-get update
wget http://fishros.com/install -O fishros && . fishros
我使用的是ROS noetic,能用,还行
2024.9.25添加:
自2024.9.20起,Isaac Sim 4.2.0版本更新后,ROS有了具体的要求
ROS and ROS 2 Installation — Omniverse IsaacSim latest documentation