使用Qt构建ROS应用程序
目前使用Qt构建和调试ROS程序有两种方法:
1、使用QT creator直接打开CMakeList.txt文件,但是由于Qt每个版本对Cmake的支持程度不太一样,这种方式来编辑ROS的程序,代码提示工作总是有些问题。
2、一些大牛针对qt开发了ROS的插件来支持ROS程序的开发,但是环境配置比较复杂
我在使用中发现,Qt Creator通过少许的配置,即可在保证代码提示正常的情况下,编辑,编译,运行和debug ROS程序,记录下来,以后备用。
注:该方法仅支持c++程序,其他语言并不支持。
我们拿ROS的程序Talker为例子:
1、talker的程序目录结构如下:.
talker/
├── CMakeLists.txt
├── CMakeLists.txt~
├── include
│ └── talker
├── package.xml
└── src└── talker_node.cpp
2、打开qtcreator 点击File -> New File or Project... 选择 Import Project -> Import Existing Project
3、输入工程名,目录选择talker程序目录
4、一路next后,你将得到一个包含程序文件的标准C++工程,但是目前的工程的代码提示不能正常的提示ROS相关和QT相关的头文件。
5、下一步,双击编辑talker.includes文件,加入以下路径(根据个人环境不同,请适当做更改)
include
/opt/ros/indigo/include/
/usr/include/qt5/QtCore/
/usr/include/qt5/QtNetwork/
/usr/include/qt5/QtSerialPort
/usr/include/qt5/QtGui/
6、现在代码提示都正常了,问题是还不能执行构建指令,会进行如下提示:
7、点击qtcreator主面板左边的Projects选项,点击Add Build Step
8、按照下图输入配置信息(注意修改Build directory为catkin_make的目录,并删除Build Steps下面的make all项):
9、此时程序就可以进行构建了,但是还不能RUN和DEBUG,还是在上一个界面切换到run选项,进行下面的设置,程序就可以直接运行了,如果需要debug,必须在程序的CMakeList.txt文件的最后加上set(CMAKE_BUILD_TYPE Debug)然后就可以debug了。
使用Qt构建ROS应用程序相关推荐
- Qt Creator构建Web应用程序
Qt Creator构建Web应用程序 构建Web应用程序 要求 搭建开发环境 为WebAssembly设置Qt 启用WebAssembly插件 指定WebAssembly设置 添加WebAssemb ...
- QT编程从入门到精通之十一:“第三章:Qt Creator”之“3.5 构建与运行程序”
目录 第三章:Qt Creator 3.5 构建与运行程序 第三章:Qt Creator Qt在很长一段时间内都没有自己的开发环境,开发者通过QMake命令行进行编译,或者通过输入g++命令编译,在L ...
- 基于Qt搭建ROS开发环境
参考的博客: http://blog.csdn.net/u013453604/article/details/52186375 http://blog.csdn.net/dxuehui/article ...
- ROS项目开发实战(三)——使用QT进行ROS的GUI界面设计(详细教程附代码!!!)
序 本篇博客主要介绍怎么使用qt对ros进行gui设计与调试,包括使用列表视图显示ROS话题发布与接收的消息,点击QT按钮按钮进行ros消息的发布. 在阅读本文之前没有安装QT与配置环境可以参考博文: ...
- Qt Creator将应用程序部署到Android设备
Qt Creator将应用程序部署到Android设备 将应用程序部署到Android设备 包装应用 指定软件包的设置 选择API级别 建立AAB 签署Android套件 添加外部库 编辑清单文件 包 ...
- qt如何捕获应用程序输出_企业应用程序中需要捕获的5大Java性能指标
qt如何捕获应用程序输出 有兴趣了解如何使用AppDynamics捕获这些Java性能指标吗? 立即开始免费试用 ! 前几篇文章介绍了应用程序性能管理(APM),并指出了有效实施APM战略的挑战. 本 ...
- QT打开ROS工作空间时遇到的问题和解决方法
之前一直觉得不用IDE写程序看着好像我很能的样子. 其实就相当于工业时代我还钻木取火并且告诉别人你们用打火机根本不知道火被点燃的过程是怎样的. 因为这个技能并非人人都会,就可以拿出去到处臭屁 好了, ...
- AWS推出RoboMaker,可构建智能机器人应用程序
在最近的AWS re:Invent 2018大会上,Amazon推出了AWS RoboMaker,这项服务大规模简化了智能机器人应用程序的开发.测试和部署.RoboMaker包含机器人操作系统(ROS ...
- 【转】将QT开发的界面程序封装成DLL,在VC中成功调用
最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多 ...
最新文章
- ASP.NET的一套笔试题
- java判断直到_3. JavaSE-位运算及判断循环程序结构的讲解
- Python-生成模拟原始脑电数据
- linux中如何查询端口被占用的情况
- Quartus II12.0安装教程
- OpenCASCADE:函数机制的使用
- lucene4.7 高亮功能(八)
- SpringSecurity认证流程回顾
- iOS9 : Storyboard References
- Can‘t bind to formControl since it isn‘t a known property of input错误消息的处理
- python笔记-1(import导入、time/datetime/random/os/sys模块)
- Linux内核中TCP协议实现的关键数据结构
- 没有该栏目数据 可能缓存文件(data/cache/inc_catalog_base.inc)没有更新请检查是否有写入权限...
- ubantu安装cuda和cudnn
- 使用nginx+lua脚本读写redis缓存
- word2016 图片去底灰_87平开门见厅,镜面扩容,将黑白灰用到极致,不奢华但精致...
- ACS——网管的九阳神功
- 比较3个购书网站,china-pub,dangdang,joyo(amazon)
- 贪吃蛇c加加代码_C语言编写简单贪吃蛇游戏源代码
- 人工智能工程师要具备的5项基本技能
热门文章
- xxljob默认登录_三千字带你搞懂XXL-JOB任务调度平台
- 关于数据分析,管理者常犯的4个错误
- C语言margin的作用是,css中margin是什么意思,margin作用是什么
- checkra1n越狱错误79_新的unc0ver漏洞可让运行iOS / iPadOS 12至13.5的苹果iPhone和iPad越狱...
- 记人生第一次工作面试 - 小米前端实习
- 2022 CCF中国软件大会(CCF ChinaSoft)“CCF-华为胡杨林基金-软件工程专项”论坛成功召开...
- 英文参考文献按照首字母排序使用matlab实现
- 与开发“斗智斗勇”的小技巧
- Python的日志输出
- 京东cookie京东ck