ROS系列:二、消息发布器与订阅器

ROS系列

第二部分: 消息发布器和订阅器



前言

在上一篇简单的程序上进行增加,学习ROS中的消息订阅与发布,实现节点间的通信

具体流程详见以下链接:
https://blog.csdn.net/hltt3838/article/details/107633168

一、发布者、订阅者、话题消息

新建一个功能包:Topic_example
该功能包包含两个节点程序:publish_node.cpp和subscribe_node.cpp
发布节点(publish_node)会从话题(Topic)发布节点,订阅节点(subscribe_node)能够从话题订阅消息。本次消息的传递的内容是String类型的消息,“How are you?”
当自定义话题消息时,也可以有不同类型的数据。

二、具体程序步骤

1.创建功能包

创建一个功能包,名称为:ros_topic。
添加依赖包:
message_generation
std_msgs(ROS标准消息功能包)
roscpp(在ROS中使用C/C++的客户端程序库)

cd ~/Desktop/test/catkin_ws/src
catkin_create_pkg ros_topic message_generation std_msgs roscpp

2.修改功能包配置文件(package.xml)

ROS的必备配置文件package.xml包含了功能包信息的XML文件,包含了描述功能包名称、作者、许可证和依赖包的信息。需要利用编辑器修改文件以匹配当前节点。
本项目无修改。

3.修改构建配置文件(CMakeLists.txt)

ROS的构建系统catkin基本上使用CMake,CMakeLists.txt文件中描述了构建环境,设置了可执行文件的创建、依赖包优先创建、链接创建等。
重点关注以下几点,可能需要修改:
1、依赖包
查看是否完整,构建消息需要的依赖包有:message_generation、std_msgs、roscpp
在这里插入图片描述

2、消息声明
声明我们在节点中要使用的.msg文件,假设是MsgSimple.msg
在这里插入图片描述

3、设置依赖性的选项
可能会由于std_msg没安装,构建时发生错误,需要generation
在这里插入图片描述
4、catkin功能包选项
直接在原有的文件内容上,打开“开关”就行
在这里插入图片描述

5、设置包含目录
在这里插入图片描述
6、publisher节点和subscriber节点的构建选项
配置可执行文件、目标链接库和其他依赖项
在这里插入图片描述
在这里插入图片描述

4.创建消息文件

在上一步骤中,我们给将要创建的消息命名为MsgSimple.msg
在这里插入图片描述

MsgSample.msg中内容:
time stamp
int32 data

5.创建发布者节点

在ros_topic/src中创建一个执行发布者节点函数的源代码。
在这里插入图片描述

6.创建订阅者节点

在这里插入图片描述

7.构建(build)节点

ros_topic功能包中构建了消息文件、发布者节点、订阅者节点。
消息文件在ros_topic/msg中,发布者/订阅者的源代码在ros_topic/src中。

8.运行发布者/订阅者

这里将涉及到3个终端
终端1输入并保持运行:roscore
终端2作为发布者,输入以下语句将使用ROS_INFO()函数将信息显示到屏幕上:

source devel/setup.bash
rosrun ros_topic topic_publisher

终端2
终端3作为1个订阅者节点或者使用rostopic等查看运行的发布者节点发布的消息:

rostopic echo /ros_msg

终端3


总结

概念性的知识还需要再了解下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值