如何使用Qt进行ROS项目开发调式

一.前言

本文将介绍在Qt5.7.1等新版本下进行简单的ROS开发方案,通过使用ros_qtc_plugin插件,使得Qt创建ROS工作空间并在Qt中编译包、执行节点和调试项目。同时,通过ros-indigo-qt-ros这个包可创建GUI界面。

二.安装 ros_qtc_plugin插件

使用系统:Ubuntu14.04
1.使用apt-get方式安装

1)sudo add-apt-repository ppa:beineri/opt-qt571-trusty2)sudo add-apt-repository ppa:levi-armstrong/ppa 
(3)sudo apt-get update && sudo apt-get install qt57creator-plugin-ros 

2.安装完之后可以从应用程序中找到Qt5.7.1图标(如图),找到后直接点击图标打开

三.使用Qt创建ROS工作空间

1.打开前面所说的程序后,会看到以下界面

如何使用Qt进行ROS项目开发调式_第1张图片

2.点击New Project后进入子窗口,接着Import “Project” – “Import ROS”– “Workspace” – “Choose”

如何使用Qt进行ROS项目开发调式_第2张图片

3.按上图顺序操作后,可以看到以下界面,在这里,我将NAME这行命名为helloworld,点击Browse选择Wrokspace Path,在这里我选择为 home/user name(这里选择你的)/helloworld,点击next

如何使用Qt进行ROS项目开发调式_第3张图片

4.在Project Management 这个子窗口里,直接点击finnish

如何使用Qt进行ROS项目开发调式_第4张图片

四.创建Package

1.当点击finnish后,将出现以下界面,右键点击src,选择add new

如何使用Qt进行ROS项目开发调式_第5张图片

2.这里我们选择“ROS” – “Package” –“Choose”

如何使用Qt进行ROS项目开发调式_第6张图片

3.在这个界面里,如果你的Qt环境部没有配置中文支持请不要用中文,否则无法新建package,或者新建的package里面的package.xml会是空文件。
在这里,必须填写的有俩个地方,一个是Name这一栏,这里我填写的是helloworld,另一个是Catkin这一栏,因为我是要用C++来写的, 需要添加对roscpp的依赖 ,所以我这里输入的是roscpp,如果用的是Python,输入的是rospy,点击Next

如何使用Qt进行ROS项目开发调式_第7张图片

4.接着,出现一下界面,直接点finnish即可

如何使用Qt进行ROS项目开发调式_第8张图片

五.添加新的节点

1.目前这个package还是空的,没有任何nodes(节点),因此我们在helloworld的src文件夹上右键单击,选择“add new”

如何使用Qt进行ROS项目开发调式_第9张图片

2.选择“ROS”——“Basic Node”——“choose”,创建一个node,也就是新建一个.cpp文件

如何使用Qt进行ROS项目开发调式_第10张图片

3.这里输入节点名称为helloworld,点击next,下一步点击finnish

如何使用Qt进行ROS项目开发调式_第11张图片

六.修改CMakeLists.txt文件

1.需要注意的是,用ROS模板新建的节点源文件,是自动生成的一个Hello World程序,接着双击CMakeLists.txt文件,进而修改其文件

如何使用Qt进行ROS项目开发调式_第12张图片

2.在以上显示的CMakeLists.txt文件中加入以下代码,目的为生成可执行文件及调用库

1add_executable(helloworld src/helloworld.cpp)
(2target_link_libraries(helloworld ${catkin_LIBRARIES})

七.修改配置并编译节点

1.点击“Project”–“Add Run Step”–“ROS Run Step”,进行配置

如何使用Qt进行ROS项目开发调式_第13张图片

2.在Argument这里,我们需要输入的是Floder和node的名称,在这个里是helloworld helloworld

如何使用Qt进行ROS项目开发调式_第14张图片

3.打开Terminator 输入 roscore,接着点击左下角的绿色三角形进行编译,在正下方的Qt所带的Terminator中将会输出“Hello world!”,此时发布节点成功

如何使用Qt进行ROS项目开发调式_第15张图片

你可能感兴趣的:(Robotic,Operation,System)