(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)

在Qt进行ROS的图形化编程

在此之前,本人发布过一篇博客,也是说在Qt平台上对ROS进行图形化编程,看似可以运行,但在前几天将代码进行移植的时候,就出现了各种各样的问题。尝试过许多博主的方法,一般说要安装插件ros_qtc_plugin的就行不通,也不知道是为什么,好像说是Qt4和Qt5版本的问题,因为一般ROS kinetic版本的都是基于Qt5的,而Indigo版本的是基于Qt4的,然后当我们用catkin_create_qt_pkg 命令创建包时,他实际也是基于Qt4的,所以kinetic版本就用不了,但经过本人的一番倒腾,终于得出了一种kinetic和Indigo版本都可以通过Qt进行ROS编程的方法。

安装Qt 5.9版本以上的

最好是安装Qt5.9版本的,因为我在使用Qt5.7版本时,不管装没装ros_qtc_plugin插件都不能创建ROS工程,而Qt5.9就可以。(我也不知道原因,但用5.9就行)
(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)_第1张图片安装请参考我的博文:
https://blog.csdn.net/qq_42263553/article/details/98390179
安装好了在继续下一步。

安装ros_qtc_plugin插件

安装ros_qtc_plugin这个就参考
https://blog.csdn.net/u013453604/article/details/52186375#t12
此篇博文即可。

Ubuntu 14.04:

sudo add-apt-repository ppa:levi-armstrong/qt-libraries-trusty
sudo add-apt-repository ppa:levi-armstrong/ppa  
sudo apt-get update && sudo apt-get install qt57creator-plugin-ros

如果你以前使用过旧的软件源以下命令可以删除它们

sudo add-apt-repository --remove ppa:beineri/opt-qt57-trusty
sudo add-apt-repository --remove ppa:beineri/opt-qt571-trusty

或者尝试以下命令删除

sudo rm /etc/apt/sources.list.d/beineri-opt-qt57-trusty-trusty.list
sudo rm /etc/apt/sources.list.d/beineri-opt-qt571-trusty-trusty.list

Ubuntu 16.04
安装:

sudo add-apt-repository ppa:levi-armstrong/qt-libraries-xenial  
sudo add-apt-repository ppa:levi-armstrong/ppa  
sudo apt-get update && sudo apt-get install qt57creator-plugin-ros

删除旧的软件源请运行

sudo add-apt-repository --remove ppa:beineri/opt-qt57-xenial
sudo add-apt-repository --remove ppa:beineri/opt-qt571-xenial

创建ROS-Qt功能包

接下来需要安装ROS的qt功能包,打开控制台输入
sudo apt-get install ros-kinetic-qt-ros
(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)_第2张图片
安装就好咯。
创建带有GUI的ROS工作空间

接下来就是创建功能包了,打开控制台输入

$ mkdir -p ~/catkin_test/src
$ cd catkin_test/
$ catkin_make
$ cd src/
$ catkin_create_qt_pkg testgui

这样就创建好了一个带有图形化界面的工程啦
(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)_第3张图片
(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)_第4张图片
然后再次打开控制台编译一下你的工作空间

	$ cd catkin_test/
	$ catkin_make

把创建好的Qt-ROS工程导入到Qt5.9中

首先打开Qt,然后点击->New FIle or Project。
如图:(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)_第5张图片点击choose,然后取个名字,我取的是Project,注意:Workspace Path一定要选你创建的qt-ros工程。
如图所示:
(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)_第6张图片
然后点击Next,在点击Finish
就这样,你的工程就导了进来。,我们首先先编译一下,点击小锤子。成功之后再进行下一步。
(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)_第7张图片然后我们在小扳手(Projects)中添加运行项,我现在的功能包是testgui,是之前创建的。
(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)_第8张图片然后运行一下试试。
(Ubuntu)使用Qt进行ROS的图形化编程---基于Ubuntu16.04的ROS-Kinetic版本亲测可用(一)_第9张图片这样就好了。
然后如果有需要在Qt中对ROS进一步编程的话,就可以修改他的ui控件以及源码了。
在下篇博文中,我将详细介绍如何利用Qt显示SLAM建图效果。

你可能感兴趣的:(ROS,SLAM,Qt)