转自:https://blog.csdn.net/weixin_41995979/article/details/88182082
亲测可用,Ubuntu16.04+ROS Kinetic+Qt5.8.0,在线调试ROS node,可加载整个工作空间。其中在转载原创的基础上,自己添加了build 和run 设置
很早之前就听说了Qt有ROS插件可以使用,只是阴(lan)差(de)阳(qu)错(gao)一直到今天还是在使用纯文本的方式在开发ROS,上午心(shou)血(bu)来(liao)潮(le),走上了Qt+ros_qtc_plugin的不归路。。。
所谓生活总是bug不断,没想到配个ros+Qt还能花我半天时间,终于搞定了,感觉现在就算见了鬼都会觉得眉清目秀,还是决定写个博客记录一下
过程中主要参考了(小弟我能好好用Qt开发ROS,全仰仗以下三位dalao的文章):
ROS与C++入门教程-搭建开发环境(QT+ros_qtc_plugin)
如何使用Qt插件在Qt中进行ROS开发
ROS基础——Qt配置
0. 安装前准备,安装相应的GNU开发工具集和OpenGL开发库
sudo apt-get install build-essential libgl1-mesa-dev libevent-pthreads-2.0.5 doxygen xorg-dev
- 1
1. 安装Qt
cd ~/download/
wget http://download.qt.io/archive/qt/5.8/5.8.0/qt-opensource-linux-x64-5.8.0.run
chmod +x ~/download/qt-opensource-linux-x64-5.8.0.run
- 1
- 2
- 3
执行完命令后,找到下载位置直接双击安装即可
安装过程tips:
- 安装在 /home/
用户名(自行修改)
/Qt5.8.0 目录下即可 - Qt组件等跟随默认配置即可
安装完在dash home中输入qt,可以看见图标即安装成功
1.1 设置修改快捷方式
cd ~/.local/share/applications/
ls
- 1
- 2
其中那个.desktop
结尾的文件就是快捷方式文件,我们要做的就是修改它
sudo vim DigiaQt-qtcreator-community.desktop
- 1
将bash -i -c
插入到下面这行里面:
Exec=/home/tloinny/Qt5.8.0/Tools/QtCreator/bin/qtcreator
- 1
最后修改为:
Exec=bash -i -c /home/tloinny/Qt5.8.0/Tools/QtCreator/bin/qtcreator
- 1
保存退出
- 添加 bash -i -c 是为了在通过快捷方式启动Qt Creator的同时加载ROS环境变量
2. 安装ros_qtc_plugin插件
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
- 1
- 2
- 3
不知道你是怎么样的?反正我从这里就开始情况就变得扎心了。。。。
出现类似这样的问题。。。
E: 仓库 “xxxxxxxxxxxx” 没有 Release 文件。 N: 无法安全地用该源进行更新,所以默认禁用该源。 N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
解决方法可以参考这篇文章(但我不保证它可以帮到你。。。):Ubuntu18.04 问题——无法安全地用该源进行更新,所以默认禁用该源。404 NOT FOUND [IP… ]
一顿操作猛如虎:sudo apt-get clean
、sudo apt-get update
、删除sources.list.d
下的错误文件、再次sudo apt-get update
,究竟折腾了多久我忘了,不过好在问题最终是解决了。
如果你比我幸运,并没有碰到什么问题,那是再好不过了,你就可以愉快地进入下一步:
2.1 修改系统配置文件让Qt启动器选择新版的Qt
sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
- 1
内容为:
/usr/lib/x86_64-linux-gnu/qt4/bin
/usr/lib/x86_64-linux-gnu
- 1
- 2
修改成:
/home/用户名(自行修改)/Qt5.8.0/5.8/gcc_64/bin
/home/用户名(自行修改)/Qt5.8.0/5.8/gcc_64/lib
- 1
- 2
3. 开始使用Qt
如果你没费什么劲就到了这一步,那真是太好了。
你可以打开terminal:
输入:
qtcreator-ros
- 1
或者双击QtCreater的快捷方式(反正我使用快捷方式的话后续会出现问题,用命令行就没事。。。)
所以这里我主要说使用命令行的方式(那刚刚我们修改快捷方式是为了什么。。。我也不知道,既然前辈们讲了这一步,那我还是别省了)
不过我安装完的Qt确实是莫名其妙的跟别人的有些不同,所以我接下来要说的方法不排除有局限性的可能,就当给那些跟我遇到相同问题的小伙伴们留条活路吧。。。
别人家的Qt里都有Import ROS Workspace这个东西:
而我的Qt…emmmmmm:
你丫逗我呢?我发誓我是紧跟着前辈们的步伐走的,这么就不一样呢。。。。
既然我无法导入已有的ROS工作空间,但至少我还能新建一个。。。
当我新建完了以后,神奇地发现了,其实就是多了这些文件
而这跟我们手动创建的ROS工作空间相比,看上去似乎就是多了后面两个文件
所以我猜测,这就是Qt导入ROS工作空间的关键所在,当我打开这个文件后更加确信了这一点,如果你看个这两个文件,会发现这似乎是两个通用的文件,唯一用于区分的好像就只有文件名了,而且命名规则就是工作空间名.workspace
和工作空间名.workspace.user
,于是我将这两个文件原封不动地复制下来,粘贴到我原有的工作空间里,再用原有的工作空间名称,遵循其命名规则重新命名了一遍。
然后。。。。就在Qt里面神奇地。。。。打开了
幸福来的太突然了
我愉快地跟着前辈的教程继续配置build和run,满心欢喜地点击了这几个小按键,期待着奇迹的发生
结果。。。。:
没问题啊hhhhhhhhhhhhhhh,感觉都要飞上天跟太阳肩并肩了
。
。
。
。
。
等等,别激动,加个断点先,看看能不能调试
结果呢:
丫的,逗我呢。。。。这Debug这么霸道?连断点都不放在眼里???直接无视了???
好吧,折腾到最后发现这样配置build和run才是ok的:
到此,我终于可以正常地使用Qt为ROS应用程序debug了
Add:
build settings:
Run settings: