ROS节点和主题 - 节点真的是分离的吗?

时间:2015-02-14 16:40:38

标签: nodes ros decoupling

  

注意双方是如何解耦的。所有hokuyo_node节点都是   发布扫描,不知道是否有人订阅。所有   rviz确实是订阅扫描,而不知道是否   有人发布它们。这两个节点可以启动,终止和   以任何顺序重新启动,不会导致任何错误情况。

我们都知道这些使用主题的语句,解耦ROS节点。但是,阅读有关如何建立节点之间的连接的文档让我质疑这个陈述。但是在运输部分中声明如下:

  

给定发布者URI,订阅节点协商连接,   通过XMLRPC与该发布者一起使用适当的传输。该   协商的结果是两个节点连接在一起   消息从发布者流向订阅者。

     

每个传输都有自己的消息数据协议   交换。例如,使用TCP,协商将涉及到   发布者向订户提供IP地址和端口   呼叫连接。 订阅者然后创建一个TCP / IP套接字   指定的地址和端口。节点交换连接头   其中包括消息类型的MD5总和等信息   主题的名称,然后发布者开始发送序列化   消息数据直接通过套接字。

所以我的问题是,发布者和订阅者真的脱钩了吗?毕竟,为了使订户获得消息,它必须打开发布者端口的TSP / IP连接。如果发布者是n,则订户需要打开n个连接。这意味着,如果其中一个发布者失败,则用户不会感到困扰,这并不完全正确。那么这个声明究竟意味着节点是分离的?

参考: http://wiki.ros.org/ROS/Technical%20Overview

答案

我也在ROS论坛上问了这个问题,我从link得到了相当不错的答案。

0 个答案:

没有答案