2026/4/18 16:29:39
网站建设
项目流程
建站行业严重产能过剩,成都网站建设与网站推广培训,打开一个网站为繁体字是怎么做的,青岛做网站好的公司Jetson Orin Nano Super 解决 Gazebo (NoMachine远程) GPU 加速失效问题全记录
在 Jetson Orin Nano Super 平台上使用 NoMachine 远程桌面进行 ROS 2 仿真开发时#xff0c;可能会遇到 Gazebo 运行极其卡顿、帧率极低的问题。经过排查#xff0c;发现系统默认使用了 CPU 进行…Jetson Orin Nano Super 解决 Gazebo (NoMachine远程) GPU 加速失效问题全记录在 Jetson Orin Nano Super 平台上使用 NoMachine 远程桌面进行 ROS 2 仿真开发时可能会遇到 Gazebo 运行极其卡顿、帧率极低的问题。经过排查发现系统默认使用了 CPU 进行软件渲染 (llvmpipe)而非调用强大的 Orin GPU。1. 现象描述硬件环境Jetson Orin Nano Super (ARM64)软件环境Ubuntu 22.04, ROS 2 Humble, Gazebo 11连接方式NoMachine 远程桌面现象启动ros2 launch ...后 Gazebo 界面极其卡顿。查看tegrastats发现GR3D(GPU 3D Load) 占用率为0%。CPU 负载极高。2. 问题排查首先检查 OpenGL 的渲染器信息看看谁在负责画图。安装工具mesa-utilssudoaptupdatesudoaptinstallmesa-utils运行检查命令glxinfo|grepOpenGL renderer问题输出OpenGL renderer string: llvmpipe (LLVM 15.0.7, 128 bits)解读llvmpipe表示使用的是 CPU 软件光栅化渲染器。这意味着 GPU 根本没工作所有 3D 图形都是 CPU 硬算的难怪会卡。3. 原因分析虽然 Jetson 预装了 NVIDIA 驱动但在使用 NoMachine 等远程桌面软件时环境变量特别是库路径可能会被远程会话的默认设置覆盖导致应用程序找不到 NVIDIA 专有的 Tegra OpenGL 库从而回退到通用的 Mesa 软件渲染。关键在于LD_LIBRARY_PATH环境变量没有包含 Jetson 特有的图形库路径。4. 解决方案要强制开启 GPU 加速核心是将 NVIDIA Tegra 的驱动路径加入到环境变量的最前面。方法一临时生效当前终端在启动 ROS 节点前执行以下命令# 1. 将 Tegra 驱动路径加入库搜索路径 (最关键的一步)exportLD_LIBRARY_PATH/usr/lib/aarch64-linux-gnu/tegra:/usr/lib/aarch64-linux-gnu/tegra-egl:$LD_LIBRARY_PATH# 2. 显式指定使用 NVIDIA 作为 GLX 提供商export__GLX_VENDOR_LIBRARY_NAMEnvidia再次验证glxinfo|grepOpenGL renderer成功输出OpenGL renderer string: NVIDIA Tegra Orin (nvgpu)/integrated看到NVIDIA Tegra Orin字样说明 GPU 加速已成功开启方法二永久生效推荐为了防止每次开新终端都要输一遍将其写入用户配置文件.bashrcecho# Force GPU accleration for NoMachine/Remote Desktop~/.bashrcechoexport LD_LIBRARY_PATH/usr/lib/aarch64-linux-gnu/tegra:/usr/lib/aarch64-linux-gnu/tegra-egl:$LD_LIBRARY_PATH~/.bashrcechoexport __GLX_VENDOR_LIBRARY_NAMEnvidia~/.bashrc# 让配置立即生效source~/.bashrc5. 验证效果配置完成后启动仿真ros2 launch luck_examples auto_weld.launch.py流畅度Gazebo 帧率显著提升操作顺滑。负载检查使用sudo tegrastats查看此时GR3D_FREQ应该会有负载读数不再是 0%说明 GPU 正在全力渲染。特别防坑指南在 Jetson 平台上不要使用nvidia-smi来验证图形进程。现象运行nvidia-smi进程列表显示 “No running processes found”显存占用可能显示 N/A。原因Jetson 使用的是 iGPU (集成显卡) 和统一内存架构其图形驱动管理方式与桌面级 dGPU (独立显卡) 不同。传统的 SMI 工具无法追踪 Tegra 驱动管理的 3D 上下文。正确验证方式必须使用sudo tegrastats。观察GR3D_FREQ一栏如果显示类似GR3D_FREQ 61%[509]表示 GPU 负载为 61%正在全速工作。这才是最真实的铁证。总结在 Jetson 平台上进行远程开发时不能想当然地认为 GPU 会自动开启。通过检查glxinfo并手动修正LD_LIBRARY_PATH指向/usr/lib/aarch64-linux-gnu/tegra可以完美释放 Orin 处理器的图形性能。