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

解决方法看上去很简单,也确实很简单,但是花了我好长时间,气人。回到正轨调试上。

猜你喜欢

转载自blog.csdn.net/fb_941219/article/details/83376096