发现
节点的发现通过 ROS 2 的底层中间件自动进行。其过程可以总结如下:
当启动一个节点时,它会向在同一 ROS 域(使用 ROS_DOMAIN_ID 环境变量设置)上的其他节点广告自己的存在。节点会对此广告进行响应,并提供有关自身的信息,以便建立适当的连接并进行通信。
节点定期广播其存在,以便在初始发现期之后能够与新发现的实体建立连接。
节点在离线时向其他节点进行广播。
只有当节点具有兼容的 Quality of Service 设置时,它们才会与其他节点建立连接。
以 talker-listener demo 为例。在一个终端中运行 C++ talker 节点会发布消息到一个主题上,而在另一个终端中运行的 Python listener 节点会订阅相同主题上的消息。
你应该看到这些节点会自动发现彼此,并开始交换消息。