2. 环境安装与配置(上):系统要求与 Isaac Sim 安装
说实话,做合成数据生成,环境配置往往是第一道坎。很多同学兴致勃勃地下载了 Isaac Sim,结果一启动就报错,然后就开始怀疑人生。我当年也踩过不少坑,所以这一章咱们把系统要求和安装步骤掰开揉碎了讲清楚。
你想想看,Isaac Sim 本质上是一个重度依赖 GPU 的仿真引擎。它背后是 NVIDIA 的 Omniverse 平台,对硬件和驱动的挑剔程度,比一般游戏要高得多。所以,在动手之前,先把地基打牢。
2.1 系统要求:别让你的机器拖后腿
先看操作系统。官方推荐的是 Ubuntu 20.04 LTS 或 22.04 LTS。我个人习惯用 20.04,因为很多工业级的 ROS 包在 20.04 上更稳定。但 22.04 也没问题,只要你愿意折腾一些依赖库的版本。
硬件方面,核心就三点:
- GPU:必须是 NVIDIA 显卡,且支持 RTX 系列。最低要求是 RTX 3060,但我建议至少 RTX 3080 或 A4000 以上。显存最好 8GB 起步,12GB 以上更舒服。我曾在 RTX 2070 上跑过,渲染复杂场景时直接卡死。
- 内存:32GB 是底线。如果你要加载大型工厂模型或高精度传感器数据,64GB 会更从容。
- 硬盘:NVMe SSD 是必须的。Isaac Sim 启动时会加载大量纹理和模型文件,机械硬盘会让你等到怀疑人生。
2.2 NVIDIA 驱动与 CUDA:版本匹配是门玄学
驱动和 CUDA 的版本匹配,是新手最容易翻车的地方。说白了,Isaac Sim 对驱动版本有硬性要求。你装个太新的驱动,它可能不认;装个太旧的,它又跑不起来。
我建议直接安装 NVIDIA 驱动 535 或 545 系列。这两个系列经过大量用户验证,兼容性最好。安装方法很简单:
# 先卸载旧驱动(如果有)
sudo apt purge nvidia-*
# 添加 NVIDIA 官方 PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
# 安装推荐版本
sudo apt install nvidia-driver-535
# 重启
sudo reboot
# 验证
nvidia-smi
至于 CUDA,Isaac Sim 自带了一套 CUDA 工具包,所以你不需要手动安装完整的 CUDA Toolkit。但如果你要在容器里用,或者需要编译自定义的 CUDA 算子,那就得装。我建议装 CUDA 11.8 或 12.1,这两个版本与 Isaac Sim 2023.1.x 配合得最好。
nvidia-smi 查看驱动版本和 CUDA 版本。如果显示 "CUDA Version: 12.1",说明驱动自带的 CUDA 运行时已经就绪。你不需要再装一遍。
2.3 Docker 安装:容器化部署的利与弊
Docker 是另一种安装方式。我个人非常推荐团队协作时用 Docker,因为它能保证环境一致性。你想想看,A 同学用 Ubuntu 20.04,B 同学用 22.04,C 同学用 CentOS,如果每个人手动装依赖,最后跑出来的结果可能都不一样。用 Docker 就解决了这个问题。
安装 Docker 的步骤:
# 安装依赖
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
# 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 验证
sudo docker run hello-world
但要注意,Docker 容器默认无法访问 GPU。你需要安装 NVIDIA Container Toolkit:
# 添加 NVIDIA 容器工具包仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt install nvidia-container-toolkit
# 重启 Docker 服务
sudo systemctl restart docker
安装完成后,用 docker run --gpus all nvidia/cuda:11.8-base nvidia-smi 测试 GPU 是否透传成功。
2.4 安装 Isaac Sim:两种方式任你选
安装 Isaac Sim 主要有两种方式:通过 Omniverse Launcher 或 Docker。下面我分别讲。
2.4.1 通过 Omniverse Launcher 安装
这是最直观的方式。先去 NVIDIA Omniverse 官网 下载 Launcher。安装后,登录你的 NVIDIA 账号(没有就注册一个)。
在 Launcher 的 "Exchange" 页面,搜索 "Isaac Sim",选择你需要的版本。我建议选 2023.1.1 或更新的长期支持版本。点击 "Install",它会自动下载并安装。
安装完成后,在 Launcher 的 "Library" 页面启动 Isaac Sim。第一次启动会编译一些着色器,大概需要 5-10 分钟。别急,喝杯咖啡。
~/.local/share/ov/pkg/ 目录下。
2.4.2 通过 Docker 安装
Docker 方式更适合自动化部署。NVIDIA 官方提供了 Isaac Sim 的 Docker 镜像。拉取命令如下:
# 拉取 Isaac Sim 镜像(以 2023.1.1 为例)
docker pull nvcr.io/nvidia/isaac-sim:2023.1.1
# 运行容器
docker run --name isaac_sim --gpus all -it --rm \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=$DISPLAY \
-e ACCEPT_EULA=Y \
nvcr.io/nvidia/isaac-sim:2023.1.1
这里有几个关键点:
--gpus all:让容器访问所有 GPU。-v /tmp/.X11-unix:/tmp/.X11-unix:挂载 X11 套接字,这样才能显示 GUI。-e DISPLAY=$DISPLAY:传递显示环境变量。-e ACCEPT_EULA=Y:接受最终用户许可协议。
启动后,你会看到 Isaac Sim 的界面。如果一切正常,恭喜你,环境配置完成了。
--net=host 参数,这样容器可以直接使用宿主机的网络,方便后续连接 ROS 或其他服务。
2.5 知识结构总览
下面这张图帮你理清整个环境配置的脉络。从系统层到应用层,每一步都有依赖关系。
2.6 验证安装:跑一个简单的合成数据生成
安装完成后,别急着关。我们来验证一下环境是否真的可用。打开 Isaac Sim,在菜单栏找到 "Replicator" -> "Synthetic Data" -> "Basic Writer"。随便加载一个模型,比如一个立方体,然后点击 "Generate"。如果能看到输出目录里生成了 RGB 图像和标注文件,说明环境配置成功了。
如果报错,别慌。最常见的错误是 "Failed to load CUDA kernel"。这通常意味着驱动版本不匹配。回到 2.2 节,重新检查驱动和 CUDA 版本。