3. 环境安装与配置(下)
上一节我们把依赖和安装包都准备好了。这一节,咱们来真刀真枪地验证环境、启动模拟器、配好Python虚拟环境,再把Replicator扩展装上。
说实话,很多新手在这一步容易卡住。不是装不上,而是装完后不知道该怎么验证。我见过不少同事,装完就以为万事大吉,结果一跑demo就报错,回头才发现环境根本没配全。
3.1 验证安装:别急着跑,先检查
安装完成后,第一件事不是启动,而是验证文件完整性。我个人习惯先检查几个关键目录:
- 安装根目录:确认
isaac_sim-2023.1.1(或你的版本号)存在 - Python环境:检查
_build/linux-x86_64/release/python/lib/python3.10/site-packages下是否有omni、pxr等核心包 - 扩展目录:查看
exts文件夹下是否有omni.replicator相关目录
我在项目中遇到过好几次,下载中断导致某些so文件缺失。所以建议你跑一下官方提供的校验脚本:
# 进入安装目录
cd ~/.local/share/ov/pkg/isaac_sim-2023.1.1
# 运行验证脚本
./python.sh -m isaac_sim.validator
这个脚本会检查关键依赖、CUDA版本、显卡驱动等。如果输出全是绿色 PASS,那基本稳了。如果有红色 FAIL,别慌,后面我会讲怎么排查。
isaac_sim.validator.log 文件。里面会记录详细的硬件信息和依赖版本,方便后续排查。
3.2 启动Isaac Sim:第一次亲密接触
验证通过后,就可以启动Isaac Sim了。启动方式有两种,我建议你两种都试试:
| 启动方式 | 命令 | 适用场景 |
|---|---|---|
| 图形界面模式 | ./isaac_sim.sh |
日常开发、调试、可视化操作 |
| 无头模式 | ./isaac_sim.sh --headless |
服务器部署、批量合成数据生成 |
第一次启动,我建议用图形界面模式。为什么呢?因为你能直观看到加载过程,万一卡住了,也能从终端日志里找到线索。
启动后,你会看到NVIDIA的Logo,然后进入Omniverse的主界面。嗯,这里要注意:第一次启动会比较慢,因为要编译shader、加载各种扩展。我的机器大概要2-3分钟,如果你的配置低一些,5分钟也正常。
nvidia-smi 输出的驱动版本,建议不低于525.60.13。
3.3 配置Python虚拟环境:让Replicator跑起来
Isaac Sim自带了一个Python解释器,但我不建议直接用它。为什么呢?因为后续你可能需要安装其他依赖(比如numpy、opencv),直接改自带环境容易搞崩。
我的做法是创建一个独立的虚拟环境,然后链接到Isaac Sim的Python包:
# 创建虚拟环境
python3.10 -m venv isaac_replicator_env
# 激活环境
source isaac_replicator_env/bin/activate
# 安装isaac sim的python包(关键步骤)
pip install -e ~/.local/share/ov/pkg/isaac_sim-2023.1.1/_build/linux-x86_64/release/python
这里有个坑:pip install -e 是editable模式,它会创建一个软链接。这样你更新Isaac Sim时,虚拟环境会自动同步,不用重新安装。
安装完成后,验证一下:
python -c "import omni.replicator.core as rep; print(rep.__version__)"
如果输出版本号,恭喜你,环境配好了。
pip install omni-replicator,结果装了个空壳包,折腾了半天才发现。记住,Replicator不是独立包,它必须通过Isaac Sim的Python环境来调用。
3.4 安装Replicator扩展:让合成数据生成就绪
Replicator扩展在Isaac Sim 2023.1.1及以上版本中已经预装了。但你需要手动启用它。
操作步骤:
- 启动Isaac Sim图形界面
- 点击菜单栏 Window → Extensions
- 在搜索框输入
replicator - 找到 omni.replicator.core,点击 Enable
- 重启Isaac Sim
启用后,你可以在菜单栏看到 Replicator 选项。点开它,如果能正常显示子菜单,说明扩展加载成功了。
如果你用的是无头模式,可以通过命令行启用:
./isaac_sim.sh --headless --enable omni.replicator.core
import omni.replicator.core as rep,如果不报错,就说明扩展可用。我习惯写一个简单的测试脚本,生成一个随机场景并输出一张图片,来确认整个链路是通的。
3.5 常见安装问题排查:我踩过的坑
这部分我总结了一些高频问题,都是我在项目里真实遇到过的:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
启动时提示 libcuda.so.1 not found |
CUDA驱动未安装或路径不对 | 检查 LD_LIBRARY_PATH 是否包含 /usr/lib/x86_64-linux-gnu |
导入 omni.replicator.core 报错 |
Python环境未正确链接 | 重新执行 pip install -e 命令,确认路径正确 |
| 扩展启用后界面卡死 | 显卡显存不足(Replicator需要至少4GB) | 关闭其他占用显存的程序,或降低渲染分辨率 |
| 合成数据生成时出现黑色图片 | 渲染管线未正确初始化 | 在脚本开头添加 rep.orchestrator.get_frame() 强制初始化 |
我曾经遇到过一个特别诡异的问题:虚拟环境里能导入 omni.replicator.core,但一调用API就崩溃。查了半天,发现是系统Python版本是3.8,而Isaac Sim需要3.10。所以,再次强调:Python版本必须严格匹配。
./python.sh -m isaac_sim.validator --verbose,它会输出详细的诊断信息。把输出贴到NVIDIA开发者论坛,一般半天内就有回复。
3.6 本章知识体系总览
为了让你对整个配置流程有个全局认识,我画了一张流程图:
这张图把整个配置流程串起来了。你按这个顺序走,基本不会出大问题。如果卡在某个环节,回头看看对应的章节,应该能找到答案。