[转载]ROS开发环境之Qt Creator
ROS开发环境之Qt Creator(http://my.phirobot.com/blog/2013-12-ros_ide_qtcreator.html)
- Created at: 2013-12-29T00:00:00
- Yuanbo She
- ROS
- turtlebot, ros, qt,
可以用于ROS开发的IDE很多(可以参考 http://wiki.ros.org/IDEs ),ROS的调试依赖环境变量,与外部程序有通讯,因此要求启动IDE的时候加载ROS环境参数,其他方面并无太多限制。最常用的IDE是eclipse,本人也是如此,eclipse调试环境的配置可以参照作者旧博客 Configure Eclipse IDE in catkin of Ros Groovy ,Qt Creator比Eclipse要轻量级,配置起来也更方便简洁。本文记录ROS开发环境,Qt Creator的配置过程。
环境:ROS Hydro, Qt Creator 5.2.0.
目录
QtCreator安装
QtCreator安装方式很多,本文以Qt 5.2.0为例,我直接下载离线安装程序安装。
下载安装
从http://qt-project.org/downloads下载QtCreator安装程序。对于Ubuntu 32位系统,点击 Qt 5.2.0 for Linux 32-bit (425 MB) 将下载离线安装程序( Qt Online Installer for Linux 32-bit (23 MB) 为在线安装程序,不推荐),下载后的文件名为 qt-linux-opensource-5.2.0-x86-offline.run。
双击 .run 安装文件直接图形界面安装,默认安装在 /home/<user>/Qt5.2.0 下( <user> 为你的用户名,这里为 viki )。

按照指示一路Next即可安装完成。
安装完成后点左上角的 Dash home,输入“qt”如果看到 Qt Creator 图标则安装成功。

设置快捷方式
这一步将要修改Qt Creator快捷方式,使从快捷方式启动Qt Creator的同时加载ROS环境变量。
打开terminal,输入下面的命令:
gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop
这条命令将打开DigiaQtOpenSource-qtcreator.desktop快捷方式文件,可以看到文件内容如下:
[Desktop Entry]
Type=Application
Exec=/home/viki/Qt5.2.0/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (Opensource)
GenericName=The IDE of choice for Qt development.
Icon=QtProject-qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
修改 Exec 变量一行,在中间添加 bash -i -c 即改为 Exec=bash -i -c/home/viki/Qt5.2.0/Tools/QtCreator/bin/qtcreator ,保存并退出。添加 bash -i -c 是为了在通过快捷方式启动Qt Creator的同时加载ROS环境变量(ROS环境变量加载脚本配置在 ~/.bashrc 文件内)。
Warning
如果打开的文件是空,则表示没有找到DigiaQtOpenSource-qtcreator.desktop文件,可能是安装路径不在本地用户目录下,或者版本不同导致的文件名不一致。可以在 ~/.local/share/applications/ 和 /usr/share/applications/ 两个路径下用 ls *qt*命令找找看。
Tip
如果没有上述快捷方式文件,自己新建一个,只要文件内容类似上面的类容,路径正确即可。快捷方式可以放在~/.local/share/applications/ 和 /usr/share/applications/ 两个位置。当然也可以放在任意其他位置,功能跟放在上面两个位置一样,但左边的任务栏不会正确显示图标。
用Qt Creator调试C++工程
可以自己建立包做实验,为求简洁,这里直接从GitHub下载现有的源码包,即大家熟悉的 ros_tutorials 包。
新建catkin工作空间
如果已经有自己的catkin工作空间则跳过,否则新建catkin工作空间:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
对应解释参照《配置ROS工作空间catkin+rosbuild》。关闭所有的terminal在重新打开,使环境变量生效。
向catkin工作空间添加源码包
这里添加 ros_tutorials 源码包。
cd ~/catkin_ws/src
git clone git@github.com:ros/ros_tutorials.git -b hydro-devel
ls
可以看到下面的信息,表示 ros_tutorials 已经被下载到了 ~/catkin_ws/src 目录下。
viki@ROS:~/catkin_ws/src$ ls
CMakeLists.txt ros_tutorials
向Qt Creator里添加工程
从 Dash home 里启动Qt Creator,将看到下面的Welcome界面:

这里我们导入 roscpp_tutorials 包,使之成为Qt Creator的C++工程。点击 Open Project 按钮,在弹出的对话框中选择~/catkin_ws/src/ros_tutorials/roscpp_tutorials/ 路径下的 CMakeLists.txt 文件,如下图:

点击 Open,将会出现编译路径选择对话框。这里要注意了,需要 Browse 将路径修改为 ~/catkin_ws/build/ 的路径,如下图:

点击 Next 后,在出现的对话框的 Arguments 一栏填入 -DCMAKE_BUILD_TYPE=Debug (不填后面将无法调试),然后点击 Run CMake 即可开始编译,结果如下图:

如果没有错误信息,则点击 Finish 完成,在 Edit 界面可以看到工程结构,可以开始编辑工程了。
调试
先打开一个terminal,输入 roscore 命令启动ROS Master。
在Qt Creator的 Edit 界面工程目录中,找到 talker.cpp 文件,打开。然后找到 “hello world” 所在的位置,修改为 “hello I'm yuanboshe”,并设置断点,如下图:

保存后,从左下角的工程面板里选择 talker 可执行程序项,然后按 F5 快捷键运行调试。稍等片刻,Qt Creator会需要一点时间编译所有程序,编译完成后,会运行到断点处停下来:

取消断点,按 F5 继续运行,在弹出的 Application Output 界面能够看到修改后的信息,如下:

回到桌面,再开一个terminal窗口,输入 rosrun roscpp_tutorials listener 命令,可以看到正确的监听消息,如下图:

关于Debug问题
如果之前在CMake的时候没有填写 -DCMAKE_BUILD_TYPE=Debug 参数,则编译出来的程序不可用于调试。按下调试快捷键 F5的时候,可能会出现下面的警告信息:
This does not seem to be a "Debug" build.
Setting breakpoints by file name and line number may fail. Section .debug_info: Not found.
Section .debug_abbrev: Not found.
Section .debug_line: Not found.
Section .debug_str: Not found.
Section .debug_loc: Not found.
Section .debug_range: Not found.
Section .gdb_index: Not found.
Section .note.gnu.build-id: Found.
Section .gnu.hash: Found.
Section .gnu_debuglink: Not found.
可以通过左边的"Projects"->"Run CMake"重新设置参数,并make,如下图:

[转载]ROS开发环境之Qt Creator的更多相关文章
- [转]Ubuntu下ROS开发环境搭建(QT+ros_qtc_plugin)
ROS与C++入门教程-搭建开发环境(QT+ros_qtc_plugin) PS : 在“安装ros_qtc_plugin插件”这一步中,原文提到“ Ubuntu 14.04使用apt-get方式安装 ...
- [转载]PHP开发环境 AppServ 2.5.10 安装及修改
[转载]PHP开发环境 AppServ 2.5.10 安装及修改 原文地址:PHP开发环境 AppServ 2.5.10 安装及修改 appserv下载地址:http://www.appservn ...
- 基于Qt搭建ROS开发环境
参考的博客: http://blog.csdn.net/u013453604/article/details/52186375 http://blog.csdn.net/dxuehui/article ...
- ROS学习笔记八:基于Qt搭建ROS开发环境
1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Q ...
- Qt环境搭建(Qt Creator)+Visual Studio
1.http://www.cnblogs.com/ranjiewen/p/5318768.html 简述 经常有人问我编写Qt程序时使用什么IDE,其实这个真的很难回答(各有所长),只能说看个人爱好了 ...
- 【Qt】Qt环境搭建(Qt Creator)【转】
简述 上一节中介绍了如何进行Qt和Visual Studio的下载安装,随后演示了如何将Qt集成到Visual Studio中,并完成了我们第一个Qt小程序-Hello World.下面主要讲解如何利 ...
- 转载 Elasticsearch开发环境搭建(Eclipse\MyEclipse + Maven)
概要: 1.使用Eclipse搭建Elasticsearch详情参考下面链接 2.Java Elasticsearch 配置 3.ElasticSearch Java Api(一) -添加数据创建索引 ...
- 让Qt Creator支持Windows Phone 8开发
让Qt Creator支持Windows Phone 8开发 近期QtCreator3.2出了.修复了一些Bug.比上一个版本号3.1.2要好了一些. 因为在上一个版本号(Qt for WinRT自带 ...
- Qt Creator介绍
简介 Qt Creator是使用Qt开发的IDE.Qt支持Windows.Linux/Unix.Mac OS X.Android.BlackBerry.QNX等多种平台,Qt Creator为不同平台 ...
随机推荐
- Codechef July Challenge 2019 Hit the Coconuts
假设现在有一堆数,我想要保证能取出一个,至少需要敲 (数的个数)*(这些数里的最小值)那么把这些数从大到小排序,$dp[i][j]$ 表示前 $i$ 个里面保证能取出 $j$ 个需要敲的次数.$dp[ ...
- Edraw Max 9.4 Crack Method
使用010editor修改以下两个文件. BaseCore.dll (修改二进制内容hex) Before C6 45 C8 62 C6 45 C9 64 C6 45 CA 65 C6 45 CB 6 ...
- nightwatch 基于Webdriver的端到端自动化测试框架
nightwatch 是使用nodejs编写的,基于Webdriver api 的端到端自动化测试框架 包含以下特性 清晰的语法,基于js 以及css 还有xpath 的选择器 内置测试runner, ...
- BZOJ 1802: [Ahoi2009]checker
题目描述 若有两个红格相邻 第一问的答案为0,所有位置上的棋子都可以通过在这两个格子上放棋子得到 第二设f[i]表示想让第i个格子上有棋子需要放的棋子数 若没有,第一问答案为偶数格子上白格的个数,第二 ...
- 【转】Impala 中的 Invalidate Metadata 和 Refresh
前言Impala采用了比较奇葩的多个impalad同时提供服务的方式,并且它会由catalogd缓存全部元数据,再通过statestored完成每一次的元数据的更新到impalad节点上,Impala ...
- ffmpeg结合SDL编写播放器(二)
我们将对帧数据做一些处理,比如将每一帧的 图像转为jpg或者bmp或者ppm等格式保存下来. 举例:在ffmpeg-2.8.8文件夹下编写test.c程序 /* test.c */ #include& ...
- Windows(win2016、win2019、win10)在IIS下添加.NET Framework 3.5 NetFx3 失败 (状态为:0x800f0950)的解决办法
今天一个客户自己的电脑安装了一个windows server 2016 想装一个IIS,程序一个C+写的ERP,NET是必然,NET4.7可以安装了,但就是3.5,如何也装不上,错误(状态为:0x80 ...
- kalman滤波原理
2017拜拜啦,怎么过元旦呢?当然是果断呆实验室过... 应该是大二的时候首次听说kalman,一直到今天早上,我一看到其5条“黄金公式”,就会找各种理由放弃,看不懂呀...但是研究lidar定位需要 ...
- mysql(一)工作原理 & 数据库引擎
参考文档 http://www.cnblogs.com/xiaotengyi/articles/3641983.html innodb:https://www.cnblogs.com/Aiapple/ ...
- vmware vsphere各版本差别,及各套件差别
最近要开始全面支持虚拟化了,客户私有云环境用的多的为vmware vsphere,特地恶补下vmware vsphere的各个差别. 首先是vSphere,ESXi和vCenter 的区别. ESXi ...