ROS通信机制

一、话题通信机制

  1.Talker 注册

  Talker启动,并通过RPC向ROS Master注册发布者的信息,包含所发布信息的话题名;ROS Master将注册的信息添加到注册列表中。

  2. Listener 注册

  Listener启动后,通过RPC向ROS Master注册订阅者的信息,包含需要订阅消息的话题名。

  3. ROS Master 进行信息匹配

  Master 根据Listener订阅的话题名称,从注册列表中查找匹配,如果匹配失败,则等待匹配的发布者加入,如果匹配成功,则通过RPC向Listener 发送Talker的RPC信息。

  4. Listener 发送连接请求

  Listener 接收到Master发送的Talker地址信息后,通过RPC向Talker发送连接请求,传输订阅的话题名、消息类型、通信协议(TCP/UDP)。

  5. Talker确认连接请求

  Talker接收到Listener发送的请求后,继续通过RPC向Listener发送确认连接信息,包含自身的TCP地址信息。

  6. Listener 尝试与Talker建立网络连接

  Listener 接收到确认信息后,使用TCP尝试与Talker建立连接。

  7. Talker向Listener发布数据

二、服务通信机制
  1. Talker 注册

  Talker启动,使用RPC (远程过程调用) 向ROS Master注册发布者信息,包含服务名;ROS Master会将注册信息添加到注册列表中。

  2. Listener 注册

  Listener 启动后,使用RPC向ROS Master注册订阅者的信息,包含需要查找的服务名。

  3. ROS Master进行信息匹配

  Master 根据Listener的订阅信息从注册列表中进行查找,如果没有找到匹配的服务提供者,则等待匹配的服务提供者加入;如果匹配成功,Master通过RPC向Listener发布Talker的TCP地址信息。

  4. Listener 与Talker建立网络连接

  Listener接收到确认信息后,使用TCP尝试与Talker建立网络连接,并且发送服务的请求数据。

  5. Talker接收到服务请求和参数后,开始执行服务功能,执行完毕后,向Listener发送应答数据。

三、其他通信机制

  1.进程间高效通信使用Nodelet。

  2.action 拥有goal、cancel、status、result、feedback。

posted @ 2020-12-03 10:49  数星星的猫  阅读(711)  评论(0)    收藏  举报