欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用QT编写ROS订阅、发布程序

程序员文章站 2022-06-04 16:05:55
...

Linux下一直使用QT进行开发,支持cmake使得很容易导入其他工程。学习ROS过程中,很多函数名称难记,使用QT不仅可以提示补全,还为了以后开发GUI方便吧。 

1、安装ros_qtc_plugin

首先安装Qt,Qt我安装的是5.5.1版本,直接下载run文件安装即可。同样,ros_qtc_plugin我也是直接下载run运行安装。安装完成后在Terminal可以见到有qtcreator-ros直接运行即可。

2、ROS工程建立

2.1、新建工作区,点击New Project 选择Other Project -> ROS Workspace:

使用QT编写ROS订阅、发布程序

2.2、填写工作区名称,选择路径。选择路径时建议新建同名文件夹,工作区建立时没有自动新建文件夹:

使用QT编写ROS订阅、发布程序

 

使用QT编写ROS订阅、发布程序

2.3、新建package:左侧工程栏右击src,点击Add New,选择ROS -> Package

使用QT编写ROS订阅、发布程序

2.4、新建包的名字为hellowrld,配置包属性,一般需要依赖roscpp,这里我们写一对简单的发布、订阅程序,所以同时依赖roscpp message_generation std_msgs rospy,故配置如下:

使用QT编写ROS订阅、发布程序

2.5、现在我们来建立发布者节点文件,右键点击src -> Add New ->ROS ->Basic Publisher Node 命名为pub1.cpp

2.6、建立订阅者节点文件,右键点击src -> Add New ->ROS ->Basic Subscriber Node 命名为sub1.cpp。经过两步我们可以看到添加的两个文件,已经有写好的模板程序:

使用QT编写ROS订阅、发布程序

这时,我们看到Qt上面报错:找不到头文件,而且编辑时也没有提示补全!因为Qtcreator-ros中使用cmake来进行管理文件,在导入文件时没有在添加文件路劲进去cmakeList.txt中去。所以接下来做的就是添加关联!

2.7、添加生成可执行文件,并链接:在helloworld下的CMakeList.txt中添加下面几行:(注:add_executable尽量放在最后,不然生成的可执行文件会在build文件夹中而不是再devel中,最后导致rosrun报错找不到可执行文件(复制过去也行),血淋淋的教训):

add_executable(pub1 pub1.cpp)
target_link_libraries(pub1 ${catkin_LIBRARIES})
add_executable(sub1 sub1.cpp)
target_link_libraries(sub1 ${catkin_LIBRARIES})

2.8、右击blogbook,点击build,成功后重新打开cpp文件就不会再找不到头文件了。同时,工程也编译完毕!

3、执行文件

Qt内部可以添加run使得ROS节点很方便就能执行

3.1、 添加run:点击最右边工具栏Project,再Build & Run中选择run, Add Run Step,选择package:helloworld,  Target:pub1或者sub1(添加完一个添加另一个)

使用QT编写ROS订阅、发布程序

3.2、不要忘记先打开一个终端执行roscore,然后点击右边绿色三角或者工具栏中run运行。这时可能会发现没有运行结果??点击一栏:1、issues,2、Search...,3、Applic...点击三角形,选择08 ROS Terminal勾上可视即可。另外,可在发布者Terminal使用ctrl+c中断再运行,再观看订阅者Terminal!

使用QT编写ROS订阅、发布程序