ROS机器人项目开发11例(原书第2版)
上QQ阅读APP看书,第一时间看更新

2.3.5 ROS-2中的通信

如果读者认真地阅读完了前一章的内容,那么一定对ROS-1如何使用一个简单的发布–订阅模型实现通信的过程还很熟悉,其中master用于在节点之间建立连接和实现数据通信。如前所述,ROS-2的工作方式略有不同:采用DDS实现进行通信,因此使用的是DDS互操作实时发布订阅协议(DDS Interoperability Real-Time Publish-Subscribe Protocol,DDSI-RTPS)。其目标是在节点之间建立安全而高效的通信,即使是在异构平台中也能可靠通信。DCPS模型如图2.4所示。

图2.4 DCPS模型

如图2.4所示,此通信模型中还涉及其他的组件。如前所述,节点在ROS-2中被称为参与者。每个参与者可以有一个或多个DDS话题,这些话题与ROS-1中的话题不同,既不是发布者也不是订阅者,而是ROS-2中的代码对象。

这些DDS话题可以在全局数据空间中获取。可以通过这些话题创建DDS发布者和订阅者,但它们不直接发布或订阅话题。发布或订阅话题的功能由被数据写入器和数据读取器完成。数据写入器和数据读取器以特定的消息类型写入或读取数据,这就是在ROS-2中实现通信的方式。设计和构建这些抽象层的目的是确保数据的安全高效传输。用户可以在每个层次上设置QoS配置参数,以提供性能最优的配置粒度。