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
如图:
之前肯定是能使用的,于是回想最近干了啥—配置了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
解决方法看上去很简单,也确实很简单,但是花了我好长时间,气人。回到正轨调试上。