ROSCon 2017 Vancouver Day 2: Determinism in ROS – or when things break /sometimes / and how to fix it… from Open Robotics on Vimeo.

ROSCon 2019 Macau: Concurrency in ROS 1 and 2: from AsyncSpinner to MultithreadedExecutor from Open Robotics on Vimeo.

Cite: Concurrency and parallelism in ROS 1 and ROS 2: application APIs

ROS主节点采用 XMLRPC 实现。主节点为发布者、订阅者和服务提供者提供需注册 APIs。主节点的统一资源标识符存储在 ROS_MASTER_URI,对应正在运行的 XML-RPC server 服务器,默认端口是 11311

话题传输

话题连接的步骤

  1. Subscriber starts. It reads its command-line remapping arguments to resolve which topic name it will use. (Remapping Arguments)
  2. Publisher starts. It reads its command-line remapping arguments to resolve which topic name it will use. (Remapping Arguments)
  3. Subscriber registers with the Master. (XMLRPC)
  4. Publisher registers with the Master. (XMLRPC)
  5. Master informs Subscriber of new Publisher. (XMLRPC)
  6. Subscriber contacts Publisher to request a topic connection and negotiate the transport protocol. (XMLRPC)
  7. Publisher sends Subscriber the settings for the selected transport protocol. (XMLRPC)
  8. Subscriber connects to Publisher using the selected transport protocol. (TCPROS, etc…)

话题连接的步骤

服务连接的步骤

  1. Service registers with Master
  2. Service client looks up service on the Master
  3. Service client creates TCP/IP to the service
  4. Service client and service exchange a Connection Header
  5. Service client sends serialized request message
  6. Service replies with serialized response message.

References