A Priority-Based Real-Time Scheduling Framework for ROS2

More Info
expand_more

Abstract

Since its introduction in 2007, ROS (Robot Operating System) has become one of the most popular framework for developing automated solutions in a variety of applications, ranging from automotive to manufacturing. Meeting safety-critical timing requirements is a crucial element in many fields where ROS is present. The ROS community has introduced several improvements to allow developers to create more time-predictable implementations, with the introduction of ROS2 being the major step forward. In the following thesis, we examine structure of ROS2 to discover task scheduling and data distribution related challenges that developers will face when trying to implement latency-sensitive ROS2 applications based on periodic tasks. We propose a set of improvements that allow to mitigate presented challenges. A prototype of a new scheduling mechanisms embedded within ROS2 logic is introduced to combine both callback scheduling and efficient intra-process data exchange. Furthermore, by exploring possible new ROS2 extensions, we address scenarios where applications have to dynamically adjust to temporary changes in timing-constraints. We extend the existing ROS2 APIs with an option to easily create new scheduling policies to handle specific requirements for each application without the need for any kernel level scheduler modifications.