🚨 Gazebo 無法使用 NVIDIA GPU(OpenGL 使用 llvmpipe
)
glxinfo | grep "OpenGL"
結果顯示:
🔴 問題:
Gazebo 沒有使用 NVIDIA GPU,而是使用 軟體渲染 llvmpipe
(這會導致極低的圖形效能)。
✅ 目標:
讓 Gazebo 正確使用 NVIDIA GPU,啟用 硬體加速(OpenGL / CUDA)。
📌 1️⃣ 確保 NVIDIA GPU 可用
nvidia-smi
然後在 Docker 容器內 測試:
如果成功,表示 Docker 已經啟用 GPU,可以繼續下一步。
📌 2️⃣ 重新啟動 Gazebo 容器並啟用 GPU你需要 確保 Docker 容器啟用了 NVIDIA GPU 支援:
🔹 關鍵參數:
--gpus all
→ 啟用所有 NVIDIA GPU-e NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics
→ 啟用圖形渲染-v /tmp/.X11-unix:/tmp/.X11-unix
→ 讓 Gazebo 可以使用 X11
進入容器:
然後重新測試:
如果 OpenGL vendor 變成 NVIDIA Corporation
,則成功啟用 GPU。
📌 3️⃣ 確保 NVIDIA OpenGL 正確加載
如果 glxinfo
仍然顯示 VMware, Inc.
(軟體渲染),請執行:
然後手動加載 NVIDIA 驅動:
測試:
如果輸出:
✅ 表示 GPU 正確啟用。
如果要 永久生效,請執行:
📌 4️⃣ 強制 Gazebo 使用 GPU
Gazebo 需要 OpenGL 才能使用 GPU 渲染,你可以在容器內執行:
然後檢查 Gazebo
的日誌,應該會顯示:
如果還是使用 CPU 渲染,你可以強制指定 NVIDIA OpenGL:
如果要 永久啟用 GPU,請編輯 ~/.bashrc
:
📌 5️⃣ 確保 NVIDIA OpenGL 被 Docker 容器正確使用
有時候 Docker 未自動掛載 NVIDIA OpenGL 庫,請在容器內執行:
如果 libGL.so
沒有指向 NVIDIA,請重新安裝:
然後:
再重新執行:
📌 6️⃣ 測試 Gazebo GPU 加速
現在你可以嘗試運行 Gazebo:
然後 打開 gzclient
:
在 Gazebo 界面內,檢查 Rendering
設置,看看 是否啟用了 Hardware Acceleration
。
沒有留言:
張貼留言