ROS入门之 消息通信

本文介绍了ROS中的三种消息通信方式:话题(topic)、服务(service)和动作(action)。话题通信实现异步单向信息交换,如1对1、1对多等;服务则为同步双向通信,适用于一次性任务;动作允许异步双向通信,适合需要中间反馈的情况。文中通过创建发布者、订阅者、服务器和客户端程序,详细阐述了每种通信方式的实现过程。
摘要由CSDN通过智能技术生成

节点之间的消息通信主要有三种:

topic(话题):异步,单向,发布/订阅

service(服务):同步,双向,请求/响应

action(动作):异步,双向,目标/结果/反馈

1.话题

话题消息通信就是指发送消息的发布者和接受信息的订阅者以话题消息的形式发送和接收信息。

利用topic可以实现 1对1 、1对多、多对1 以及多对多的通信。

topic通信 实例:

建立一个发布者程序和一个订阅者程序,实现信息交互

(1)首先,我们要在home目录下创建一个工作空间,在工作空间的src文件夹下创建一个功能包,具体创建方法请看前面的文章

在实验中,我创建的工作空间为:easadon_ws

功能包为:learn_topic

(2)

我们要定义一个msg文件

我们在功能包 learn_topic 下创建一个msg文件夹,再在msg文件夹中创建一个msg文件,存放我们自定义的一些话题消息。

Person.msg

string name
uint8 gender
uint8 age

uint8 unknown = 0
uint8 male    = 1
uint8 female  = 2

 接下来我们要在package.xml 中添加功能包依赖

在CMakeLists.txt 添加编译选项

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值