Lightweight and Framework-Independent Communication Library to Support Cross-Plattform Robotic Applications and High-Latency Connections
In 15th International Symposium on Artificial Intelligence, Robotics and Automation in Space (i-SAIRAS '20), (i-SAIRAS), 19.10.-23.10.2020, Online-Conference, o.A., Oct/2020.
Modular design of software stacks and hardware components is indispensable for efficient, robust and scalable projects in many fields. Modularity enables independent parallel development and facilitates large cooperative projects. On the downside communication is slowed down extensively, if a number of different frameworks is of use. To overcome this drawback, the paper at hand introduces a lightweight communication library, specifically designed for robotic applications. It is framework and OS independent and intended to provide a unified communication layer. While being generic, the library is also flexible, offering individual channels for reliable command transfer and non-blocking telemetry data. The provided communication sockets are configurable to use any implemented transport protocol, while not being limited to ethernet based ones. By default the transport is using the networking library ZeroMQ, which provides various patterns, e.g. publish/subscribe, and supports many-to-many connections. An additional protocol implementation, UDT, is offered for high-latency connections. Conducted benchmark tests demonstrate that the library, especially the UDT transport implementation, provides a faster and more reliable middleware than what is currently used in native ROS. This is particularly the case for network setups with an emulated delay (2 s) or package loss (20%) and large chunks of telemetry data, which emphasizes the suitability of the library for space applications and high-latency scenarios.