1. 机器人是一种高度复杂的系统性实现,在机器人上可能集成各种传感器(雷达,摄像头,GPS等)。ROS是进程分布式框架,从而分散计算压力,然而不同的进程之间需要通信(数据交换)
2. ROS中的基本通信机制主要有三种实现策略
a) 话题通信(发布订阅模式)
发布、订阅双方通过话题关联起来。发布方发布话题相关内容;订阅方接收话题相关内容
b) 服务通信(请求响应模式)
client发送请求,server做出响应
c) 参数服务器(参数共享模式)
data存储在参数服务器中,节点可以向其中存储或读取节点
3. 话题通信
使用频率最高;用于不断更新的,逻辑处理量少的数据传输场景
分为master,talker,listener
master可以根据话题建立发布者和订阅者之间的连接
a) talker在master中进行注册,提供远程调用地址及话题
b)listener在master中进行注册,提供关注的话题
c)master将talker以及listener的话题进行比对,一致则将talker的RPC地址发给listener
d)listener根据RPC地址远程访问talker
e)talker做出响应,返还TCP地址
f)listener根据TCP地址访问talker
g) talker传输数据
# 使用的协议为RCP及TCP(前5个为RCP,后两个为TCP)
a、b步骤可以互换
talker与listener都可以存在多个
talker与listener建立联系后,manager可以关闭
上述流程已经封装,可以直接调用,我们需要关注话题设置,listener实现以及信息载体