记录一次rviz无法启动,报错segmentation fault (core dumped)的解决过程

起因

好久没有使用ROS相关程序了,突然想运行莫程序发现rviz打不开。仔细定位后发现在终端直接输入rviz也无法打开。

在这里插入图片描述

经过

在网上尝试搜索了好几个小时,尝试了以下各种方法,

  1. 更新3D graphics library
sudo add-apt-repository ppa:ubuntu-x-swat/updates
sudo apt-get update
sudo apt-get dist-upgrade
  1. 关闭硬件加速
export LIBGL_ALWAYS_SOFTWARE=1
  1. 删除.rviz文件配置
 ~/.rviz/*

但是均不适用于我的问题。

结果

尝试使用gdb定位rviz问题所在:

gdb rviz 

gdb 先输入命令run,再输入c进行调试

(gdb) run
Starting program: /opt/ros/noetic/bin/rviz 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffeda6f700 (LWP 26371)]
[New Thread 0x7fffe7fff700 (LWP 26372)]
[New Thread 0x7fffe77fe700 (LWP 26373)]

(rviz:26367): Gtk-WARNING **: 15:30:00.312: Theme parsing error: gtk.css:1090:0: Expected a valid selector
[New Thread 0x7fffe6f7b700 (LWP 26374)]
[1615908600.350117923]: [${node}] [ INFO] rviz version 1.14.5
[1615908600.350156173]: [${node}] [ INFO] compiled against Qt version 5.12.8
[1615908600.350165195]: [${node}] [ INFO] compiled against OGRE version 1.9.0 (Ghadamon)
[New Thread 0x7fffe5f16700 (LWP 26377)]
[New Thread 0x7fffe5715700 (LWP 26378)]
[New Thread 0x7fffe4f14700 (LWP 26379)]
[New Thread 0x7fffcffff700 (LWP 26380)]
[1615908600.363080641]: [/rviz_1615908600350246943] [ INFO] Forcing OpenGl version 0.

Thread 1 "rviz" received signal SIGSEGV, Segmentation fault.
0x00007ffff7f4f5d8 in rviz::YamlConfigReader::readYamlNode(rviz::Config&, YAML::Node const&) () from /opt/ros/noetic/lib/librviz.so

从结果可以定位到是yaml相关出了问题,检查链接的 yaml 库:

 $ ldd /opt/ros/noetic/lib/librviz.so |grep yaml
libyaml-cpp.so.0.6 (libc6,x86-64) => /usr/local/lib/libyaml-cpp.so.0.6

对比正确的链接为

libyaml-cpp.so.0.6 => /lib/x86_64-linux-gnu/libyaml-cpp.so.0.6 (0x00007f4dc6d7c000)

发现是我之前的环境配置参数污染了ros的环境

所以我新建了一个新的环境文件
通过复制原先的bashrc文件,将个人修改的环境配置内容删去,再source新的环境配置文件,即可成功打开rviz。

sudo cp .bashrc .bashrc_ros
echo "export LD_LIBRARY_PATH=/opt/ros/noetic/lib" >> " >> ~/.bashrc_ros
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc_ros
source ~/.bashrc_ros
rviz

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45626706/article/details/128644560