rqt是ROS的一个软件框架,它以插件的形式实现了各种GUI工具。人们可以将现有的所有GUI工具作为可停靠的窗口在rqt中运行! 这些工具仍然可以以传统的独立方式运行,但rqt让人们可以更容易地在同一时刻管理屏幕上的各种窗口。
问题描述
在运行rqt_gui
或rqt_graph
时出现如下错误:
$ rosrun rqt_gui rqt_gui
QtBindingHelper using pyside
PluginManager._discover() using cached plugin discovery information
Segmentation fault (core dumped)
问题分析
这是由于qt版本与ros版本不匹配造成的。
问题解决
参考:https://answers.ros.org/question/253655/rqt-segmentation-fault-following-tutorials/
1. 用rqt
命令打开
在rqt_gui
或rqt_graph
命令无法执行时,可以先用rqt
命令打rqt 窗口,再由窗口的菜单栏打开想要的功能。
例如我想打开rqt_gui
,我会先在终端中输入以下命令:
rqt
此时会打开rqt窗口:
第一次打开时这个窗口是一片空白的。如果我们想要打开具体的功能的窗口,我们需要在菜单栏中的Plugins
中寻找。例如我这次的目标是打开rqt_gui
(消息发布的gui),我会依次点击Plugins
-Topics
-Message Publisher
以打开:
2. 重装各种项目并使版本匹配
这样做的工程量和风险很高,不推荐。
以下是网友提供的一种解决方案:
该问题是由Cura PPA安装的较新版本的软件包(python-pyqt5和python-sip)引起的。 以下步骤为我解决了问题
Uninstall the newer package versions that were installed from the PPA:sudo apt remove python-pyqt5 pyton3-pyqt5 python-sip python3-sip sip-dev
Remove the PPA:
sudo rm /etc/apt/sources.list.d/thopiekar-ubuntu-cura-xenial.list sudo apt update
Reinstall ros-kinetic-desktop-full
sudo apt install ros-kinetic-desktop-full
Check with sudo apt autoremove for any other packages that were broken by the downgrade and install or autoremove them as necessary.