Edge Robotics with ROS2 and Eclipse Zenoh
The Robot Operating System 2 (ROS2) is experiencing an incredible adoption in a large class of robotics applications, spanning from autonomous vacuum cleaners to industrial and commercial autonomous vehicles. Furthermore, ROS2 applications are further expanding to:
- Robot swarms, in which which a set of resourceful robots coordinate between themselves and potentially an ensemble of resource constrained robots, typically powered by MicroROS2 and running on micro-controller-like hardware, and
- Edge Robotics, in which arbitrary ensemble of robot swarms can be monitored, managed and controlled from the edge — reducing, in some cases, the needs to powerful hardware on the robot or enhancing the robot with additional capabilities.
The support for these uses cases in ROS2 is either sub-optimal or somewhat lacking. To understand the reasons for these limitations we need to briefly describe how robots communication takes place in ROS2.
ROS2 applications are build as a collection or nodes that communicate through DDS — DDS is used for communication across nodes within the same robot as well as across robots. MicroROS2 robots interacts with each other and with ROS2 robots through a DDS-XRCE broker. As a result communication between ROS2 nodes is peer-to-peer, while communication between MicroROS2 nodes is always brokered.
Whilst DDS is extremely effective in supporting the node-to-node communication within a robot and across a LAN, its underlying protocol was not necessarily designed to make it easy to scale across a WAN — discovery traffic and the nature of its reliability protocol being some of the challenges*. Likewise, having MicroROS2 nodes communicating through a broker makes it challenging as it introduces (1) the complexity of deciding where to deploy the broker — not always obvious with robots moving, and (2) a single point of failure — if the broker is not available no communication is possible.
These challenges can easily be addressed by leveraging Eclipse Zenoh.
Eclipse Zenoh is an innovative protocol that blends leading research on named-data-networking and IoT pub/sub protocols to provide a unified abstraction to deal with data in movement as well as data in rest. Eclipse Zenoh has been designed to scale out, up and down. Its routing infrastructure has been designed to run at internet scale, while at the same we have proven that a zenoh runtime can be squeezed in as little as 300 bytes on a 8-bit Atmel Microcontroller. Finally, the zenoh protocol supports transparently peer-to-peer as well as routed communication.
This presentation will provide with a clear descriptions of the challenges posed by the current ROS2 and MicroROS2 data-plane and illustrate how these challenges can be addressed by leveraging Eclipse Zenoh to (1) bring peer-to-peer to MicroROSs applications and (2) scale-out ROS2 applications and enable Edge Robotics management monitoring and control by means of a DDS-plugin for the zenoh routing network. Finally we will demonstrate edge management, monitoring and control of a robot swarm.
(*) The author of this proposal is one of DDS co-authors.