1.4 使用发布器和订阅器交换数据
1.4.1 引言
ROS节点最基本的交换数据的方式是发送和接收消息。消息通过主题传输,在ROS网络中,每一个主题都有唯一的名称。如果一个节点想要共享数据,那么它就要使用发布器将数据发送到主题。一个节点想要接收数据,需要使用接收器监听相应的主题。除了具有唯一的名称,每个主题都具有消息类型,决定主题所能传输的消息类型。
发布器/接收器具有如下特征:
主题用于多对多通信,多个发布器可以发送消息到同样的主题,多个接收器也可以接收同样的主题的数据。
发布器和接收器与主题是解耦的不挂钩的,它们可以用任何规则创建或者销毁。在主题没有接收器的情况下,消息仍然可以发送到主题上。
主题、发布器和接收器的概念如下图所示:
图4.1
这个例子展示了在ROS网络中怎样发布和订阅主题,另外还展示了:
等待直到接收新的消息。
使用后台调用的形式处理新消息。
需要的预备知识:1.2开始使用ROS,1.3连接到ROS网络。
1.4.2 订阅和等待消息
在MATLAB®中启动ROS主控节点,创建一个带有若干发布器和接收器的采样ROS网络。代码运行示例:
rosinit
exampleHelperROSCreateSampleNetwork
Initializ