ROS学习与实践 第二章 ROS 通信机制——话题通信(一)

ROS学习与实践

ROS 的通信机制——话题通信(一)

前言

话题通信是在ROS中使用最多的通信方式,话题通信基于发布与订阅模式的。

一、话题通信是什么?

话题通信:话题通信是基于发布与订阅模式的,也就是其中一方订阅消息,另外一方则会发布消息,在ROS中,两者通过共同的话题建立联系,实现通信

二、话题通信的应用场景

在ROS的学习中,话题通信应用广泛,比如以激光雷达导航为例,及激光雷达采集的信息要传输到计算机进行处理,处理完成的信息又要传送给机器人的底盘,控制机器人的运动,因此在这个过程中就应用了两次话题通信,首先,激光雷达作为发布方,计算机作为订阅方。第二次通信时,计算机作为发布方,二小车的底盘作为订阅方。除了在激光雷达的导航中使用话题通信之外,其他的传感器的使用中也同样要使用到话题通信。话题通信适用于不断更新的信息传输场景。

三、 话题通信的核心要素

发布方
订阅方
话题

四、 话题通信的理论模型在这里插入图片描述

话题通信的角色:

发布者talker
订阅者listener
管理者master

话题通信的流程:

根据上图:
第0步:发布者(talker)会在master中将自己的话题以及远端调用地址(RPC)在master中进行登记;
第1步:订阅者(listener)会将自己的话题在master中进行登记;
第2步:master会将订阅者与发布者的话题进行对比,发现有匹配的两者是会把发布者的RPC地址发送给订阅者;
第3步:订阅者会根据RPC地址远程访问发布者,获取发布者的TCP地址;
第4步:发布者受到请求后会把自己的TCP地址发送给订阅者;
第5步:订阅者根据TCP地址访问发布者;
第6步:发布者将自己的信息发送给订阅者,实现两者间的信息交流。

注意事项

话题通信使用的协议:RPC,TCP
talker和listener可以存在多个
master在talker和listener建立连接之后就会关闭
上述的实现流程已经完成封装,使用者只需要调用即可。只需要实现发布方与订阅方,不用关心具体的协议。

猜你喜欢

转载自blog.csdn.net/qq_52111026/article/details/121708801
今日推荐