本次学习的课程名称《Getting Started: Simulating Your First Robot in Isaac Sim》,并提供课程链接:https://learn.nvidia.com/courses/course-detail?course_id=course-v1:DLI+S-OV-27+V1&ncid=ref-dli-946199-AIlearngroup
安装环境:
Ubuntu 20.04
CUDA 12.8 RTX 4090
按照教程安装
https://docs.isaacsim.omniverse.nvidia.com/4.5.0/installation/install_workstation.html
mkdir ~/isaacsim
cd ~/Downloads
unzip "isaac-sim-standalone@4.5.0-rc.36+release.19112.f59b3005.gl.linux-x86_64.release.zip" -d ~/isaacsim
cd ~/isaacsim
./post_install.sh
./isaac-sim.selector.sh
没有什么问题。但启动后报错,闪退。
观察报错原因
[omni.physx.tensors.plugin] CUDA 错误:非法内存访问
[Error] No cuda device found
[Error] Cannot find libcuda.so
[Error] [carb.cudainterop.plugin] Could not initialize NVML: return code 9 (NVML_ERROR_DRIVER_NOT_LOADED: NVIDIA driver is not loaded.)
推测 cuda调用失败。
解决步骤
1.检查nvidia-smi 正常
nvidia-smi
nvcc --version
nvcc --version缺失,安装 从官网下载
我是用u盘里liunx启动的
升级了 0 个软件包,新安装了 54 个软件包,要卸载 0 个软件包,有 750 个软件包未被升级。
需要下载 1,407 MB 的归档。
解压缩后会消耗 3,749 MB 的额外空间。
E: 您在 /var/cache/apt/archives/ 上没有足够的可用空间。
空间不足,换到其他盘上
sudo ln -s /media/external_drive/apt_cache /var/cache/apt/archives
重新安装后测试仍然不行。
2.检查环境变量,发现libcuda.so不在默认位置
搜一下find / -name "libcuda.so*" 2>/dev/null
找到一堆
/media/ubuntu/writable/upper/usr/share/man/man7/libcuda.so.7.gz
/media/ubuntu/writable/upper/usr/local/cuda-12.6/targets/x86_64-linux/lib/stubs/libcuda.so
/media/ubuntu/writable/upper/usr/local/cuda-12.8/targets/x86_64-linux/lib/stubs/libcuda.so
/media/ubuntu/writable/upper/usr/lib/x86_64-linux-gnu/stubs/libcuda.so
/media/ubuntu/writable/upper/usr/lib/x86_64-linux-gnu/libcuda.so.1
/media/ubuntu/writable/upper/usr/lib/x86_64-linux-gnu/libcuda.so.570.86.15
/usr/lib/x86_64-linux-gnu/stubs/libcuda.so
/usr/lib/x86_64-linux-gnu/libcuda.so.1
/usr/lib/x86_64-linux-gnu/libcuda.so.570.86.15
/usr/local/cuda-12.6/targets/x86_64-linux/lib/stubs/libcuda.so
/usr/local/cuda-12.8/targets/x86_64-linux/lib/stubs/libcuda.so
/usr/share/man/man7/libcuda.so.7.gz
通过 find 命令查找到的这些路径来看,要解决 libcuda.so 找不到的问题,其中 /usr/lib/x86_64-linux-gnu/libcuda.so.1 最有可能是需要的文件,因为它看起来是完整的库文件(不是 stubs 存根文件),并且位于常见的系统库路径下。
#创建软链接
sudo ln -s /usr/lib/x86_64-linux-gnu/libcuda.so.1 /usr/lib/x86_64-linux-gnu/libcuda.so
# 临时添加到环境变量
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
# 永久添加到环境变量,编辑 ~/.bashrc 或 ~/.zshrc 文件
echo 'export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
测试通过
3.资源下载报错。使用离线本地资源
https://docs.isaacsim.omniverse.nvidia.com/latest/installation/install_faq.html#
Edit the /home//isaacsim/apps/isaacsim.exp.base.kit file and add the settings below:
[settings]
persistent.isaac.asset_root.default = "/home/<username>/isaacsim_assets/Assets/Isaac/4.5"
exts."isaacsim.asset.browser".folders = [
"/home/<username>/isaacsim_assets/Assets/Isaac/4.5/Isaac/Robots",
"/home/<username>/isaacsim_assets/Assets/Isaac/4.5/Isaac/People",
"/home/<username>/isaacsim_assets/Assets/Isaac/4.5/Isaac/IsaacLab",
"/home/<username>/isaacsim_assets/Assets/Isaac/4.5/Isaac/Props",
"/home/<username>/isaacsim_assets/Assets/Isaac/4.5/Isaac/Environments",
"/home/<username>/isaacsim_assets/Assets/Isaac/4.5/Isaac/Materials",
"/home/<username>/isaacsim_assets/Assets/Isaac/4.5/Isaac/Samples",
"/home/<username>/isaacsim_assets/Assets/Isaac/4.5/Isaac/Sensors",
]
启动命令
./isaac-sim.sh --/persistent/isaac/asset_root/default=“/home/xxxxx/isaacsim_assets/Assets/Isaac/4.5”