2. 环境安装与配置(上)

说实话,做合成数据生成,环境配置往往是第一道坎。很多同学兴致勃勃地下载了 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 启动时会加载大量纹理和模型文件,机械硬盘会让你等到怀疑人生。
注意: 虚拟机或 WSL2 下运行 Isaac Sim 非常困难。我曾经试过在 WSL2 里配置 GPU 透传,折腾了两天,最后还是老老实实装了双系统。建议直接物理机安装 Ubuntu。

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 是否透传成功。

经验之谈: 如果你只是个人学习,用 Omniverse Launcher 安装更省事。但如果是生产环境或团队协作,Docker 是更好的选择。我曾在客户现场用 Docker 部署了一套合成数据流水线,三台机器一键拉起,省去了大量环境调试时间。

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 分钟。别急,喝杯咖啡。

避坑指南: 我曾经在安装过程中遇到 "Failed to download dependency" 的错误。原因是网络问题。建议使用稳定的网络环境,或者配置代理。如果实在不行,可以手动下载依赖包放到 ~/.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 的界面。如果一切正常,恭喜你,环境配置完成了。

提示: 如果你在 Docker 容器里运行 Isaac Sim,建议使用 --net=host 参数,这样容器可以直接使用宿主机的网络,方便后续连接 ROS 或其他服务。

2.5 知识结构总览

下面这张图帮你理清整个环境配置的脉络。从系统层到应用层,每一步都有依赖关系。

Isaac Sim 环境配置知识结构 系统层:Ubuntu 20.04 / 22.04 + NVIDIA 驱动 535/545 运行时层:CUDA 11.8 / 12.1 + Docker + NVIDIA Container Toolkit 方式一:Omniverse Launcher 方式二:Docker 镜像 应用层:Isaac Sim 2023.1.x + Replicator 合成数据生成 关键:每一层都依赖下层正确配置。驱动装不对,CUDA 就起不来;CUDA 起不来,Isaac Sim 就报错。 建议按顺序逐层验证,不要跳步。

2.6 验证安装:跑一个简单的合成数据生成

安装完成后,别急着关。我们来验证一下环境是否真的可用。打开 Isaac Sim,在菜单栏找到 "Replicator" -> "Synthetic Data" -> "Basic Writer"。随便加载一个模型,比如一个立方体,然后点击 "Generate"。如果能看到输出目录里生成了 RGB 图像和标注文件,说明环境配置成功了。

如果报错,别慌。最常见的错误是 "Failed to load CUDA kernel"。这通常意味着驱动版本不匹配。回到 2.2 节,重新检查驱动和 CUDA 版本。

最后说一句: 环境配置是枯燥的,但也是最重要的。我见过太多人因为驱动版本不对,卡在第一步就放弃了。耐心一点,按步骤来,你一定能跑起来。