WiROS: A QoS Software Solution for ROS2 in a WiFi Network
Abstract
Robot Operating System (ROS) has played a pivotal role as a communication middleware
among different peripherals, including sensors and actuators of robotics and other systems, with the advancement of connected systems around the globe. The development
of DDS (Data Distribution Service) based ROS2 has also increased its popularity for
applications involving multi-bot communication over the network. The performance of
ROS2 communication among the locally connected ROS2-based application endpoints
depends mainly upon the system’s computational capabilities. However, when these
endpoints are connected over wireless networks, various network-level parameters must
be considered. Although there are existing QoS (Quality of Service) options, such as
reliability, durability, etc., in the ROS2 framework, they are primarily application-level
QoS implemented to verify the authentication and validation of the ROS2 topic stream’s
messages. But QoS configurations in ROS2 do not ensure network layer QoS, e.g., IP
(Internet Protocol) and MAC (Media Access Control) layer QoS. In a band-limited network, ensuring the network layer QoS becomes essential for the flow of latency-critical
messages. In this thesis, we address this shortcoming in the current ROS2 software.
First, to present the main problem, we set up ROS2 with the Gazebo simulator.
We send latency-sensitive, mission-critical sensory data through a ROS 2 node in the
presence of high throughput background image traffic. We observe that this results in
traffic confluence at the ROS2 publisher node’s host system’s Network Interface Card
(NIC), with large packets enqueued at the NIC buffer ahead of the mission-critical packet
even when we change QoS settings of ROS2 appropriately. In particular, we observe that
a control task in the Gazebo framework fails in this setting.
Our main contribution in this thesis is an add-on to ROS2 communication to mitigate the data traffic confluence problem and allow the integration of network-level QoS guarantees with ROS2. Our solution uses iproute2’s
tc (traffic control) tool, an open-source collection of user-space tools for controlling and
monitoring various aspects of networking in the Linux kernel. Specifically, we take the
priorities and traffic requirements of each topic and implement the necessary prioritization of packets using HTB (Hierarchical Token Bucket) filters of tc. We provide QoS
assurance for ROS2-based communication in the form of a software solution called “ROSQOS-PANEL”, which allows the option to set up different schedulers that need to be
implemented for the queues associated with traffic flows of various topics. This software
can also monitor the queues and ROS2-associated topics statistics in real time, which
can be fed back to applications to make them network-aware, and may be of independent
interest.
We demonstrate the working of ROS-QOS-PANEL software and showcase how it
helps achieve the required QoS in a remote driving operation over a Wi-Fi networkbased testbed. The testbed has been prepared using a simulated robotic and a real
network environment. We plan on making an open-source contribution to the ROS2
stack based on this software. We conclude with the future scope of this project and
discuss the scope for improvement and enhancement for “ROS-QOS-PANEL”.