ROS Rviz以及gazebo libGL error
阿新 • • 發佈:2018-11-01
ROS Rviz以及gazebo libGL error
引言
在除錯TurtleBot3的時候啟動Rviz報錯
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
如圖:
之前肯定是能使用的,於是回想最近幹了啥—配置了Tensorflow,再根據查閱資料定位到NVIDIA顯示卡驅動問題,有可能是cuda8.0安裝姿勢不正確。然後又看了看具體的報錯,與Rviz聯絡更密切,於是解決思路大概兩個:
- 從NVIDIA驅動入手查詢原因,可能是安裝或更新nvidia驅動後導致libGL動態連結庫連結中斷或者指向錯誤的連結,這個參考並沒有解決問題,且需要更改一個命令:
sudo find /usr -iname "*libGL.so*" -exec ls -- {} \;
- 從更密切相關的Rviz入手找原因。
解決方案
新開terminal測試rviz、gazebo。
果然雙雙癱瘓.
1、刪除並重新安裝cuda8.0 :
cd /usr/local/cuda-8.0
sudo rm -rf cuda-8.0
下載cuda8.0,切記下載.run檔案不要下載.deb檔案:
安裝cuda,切記以no-opengl-libs方式安裝,就是這裡導致連結庫錯誤。
sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs
然後根據提示選擇:
配置環境變數:
sudo gedit ~/.bashrc
在檔案中加入:
export PATH=/usr/local/cuda-8.0/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/
生效環境變數:
source ~/.bashrc
測試:
#編譯並測試裝置 deviceQuery: cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery sudo make ./deviceQuery #編譯並測試頻寬 bandwidthTest: cd ../bandwidthTest sudo make ./bandwidthTest
Result = PASS 成功.到此這邊的問題解決了一半了但是Tensorflow明顯癱了,故,繼續按照部落格進行後面的操作重新安裝完Tensorflow_GPU版本。
2、重灌Rviz
已經安裝ros 了的基礎上:
rosdep install rviz
#執行初始化
sudo rosdep init
#更新
rosdep update
設定環境變數:
#設定變數
export LIBGL_ALWAYS_SOFTWARE=1
#啟動測試
rosrun rviz rviz
解決方法看上去很簡單,也確實很簡單,但是花了我好長時間,氣人。回到正軌除錯上。