1. 背景
在 Ubuntu 22.04 + ROS2 Humble + 双显卡笔记本环境下,Gazebo 和 RViz 有时默认不会走 NVIDIA。
如果你希望不改 launch 文件、不改代码,只通过 ~/.bashrc 统一配置默认渲染方式,那么最直接的方法就是在 shell 环境里加几行 export。
2. ~/.bashrc 配置
把下面内容加到 ~/.bashrc 末尾:
bash
# Force Gazebo / RViz to prefer NVIDIA GPU rendering on PRIME laptops.
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
export QT_OPENGL=desktop
export IGN_RENDER_ENGINE=ogre2
export GZ_RENDER_ENGINE=ogre2
然后执行:
bash
source ~/.bashrc
或者直接打开一个新终端。
3. 使用方式
之后按平常方式启动就行:
bash
rviz2
ign gazebo -g
如果你是通过 ros2 launch 启动,只要这个 launch 是从当前 shell 拉起来的,也会继承这些环境变量。
4. 如何验证
启动 Gazebo 或 RViz 后,另开一个终端执行:
bash
nvidia-smi
如果进程列表里出现:
rviz2ign gazebo
并且有显存占用,就说明已经在使用 NVIDIA GPU 渲染。
5. 一句话总结
如果你不想改代码和 launch 文件,只想通过 ~/.bashrc 控制 Gazebo / RViz 默认走 GPU,那么直接加一组 NVIDIA offload 和 ogre2 渲染环境变量,就是最简单的办法。