1. 程式人生 > >ROS Rviz以及gazebo libGL error

ROS Rviz以及gazebo libGL error

ROS Rviz以及gazebo libGL error

引言

在除錯TurtleBot3的時候啟動Rviz報錯
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
如圖:
libGL

之前肯定是能使用的,於是回想最近幹了啥—配置了Tensorflow,再根據查閱資料定位到NVIDIA顯示卡驅動問題,有可能是cuda8.0安裝姿勢不正確。然後又看了看具體的報錯,與Rviz聯絡更密切,於是解決思路大概兩個:

  • 從NVIDIA驅動入手查詢原因,可能是安裝或更新nvidia驅動後導致libGL動態連結庫連結中斷或者指向錯誤的連結,這個參考並沒有解決問題,且需要更改一個命令:
sudo find /usr -iname "*libGL.so*" -exec ls -- {} \;
  • 從更密切相關的Rviz入手找原因。

解決方案

新開terminal測試rviz、gazebo。
rviz
gazebo
果然雙雙癱瘓.

1、刪除並重新安裝cuda8.0 :

cd /usr/local/cuda-8.0
sudo rm -rf cuda-8.0

下載cuda8.0,切記下載.run檔案不要下載.deb檔案:
cuda


安裝cuda,切記以no-opengl-libs方式安裝,就是這裡導致連結庫錯誤。

sudo sh cuda_8.0.61_375.26_linux.run  --no-opengl-libs 

然後根據提示選擇:
cuda安裝
配置環境變數:

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

Rviz

解決方法看上去很簡單,也確實很簡單,但是花了我好長時間,氣人。回到正軌除錯上。