发现

节点的发现通过 ROS 2 的底层中间件自动进行。其过程可以总结如下:

  1. 当启动一个节点时,它会向在同一 ROS 域(使用 ROS_DOMAIN_ID 环境变量设置)上的其他节点广告自己的存在。节点会对此广告进行响应,并提供有关自身的信息,以便建立适当的连接并进行通信。

  2. 节点定期广播其存在,以便在初始发现期之后能够与新发现的实体建立连接。

  3. 节点在离线时向其他节点进行广播。

只有当节点具有兼容的 Quality of Service 设置时,它们才会与其他节点建立连接。

talker-listener demo 为例。在一个终端中运行 C++ talker 节点会发布消息到一个主题上,而在另一个终端中运行的 Python listener 节点会订阅相同主题上的消息。

你应该看到这些节点会自动发现彼此,并开始交换消息。