Building a Theoretical Foundation for Real-time ROS

Project: Research

View graph of relations


ROS (Robot Operating System) is currently the most popular robotic software framework, used by hundreds of thousands of developers to power a large number and different types of robotic systems. Robotic software is typically subject to timing constraints, in order to match the inherent dynamics of physical objects and the environment. The real-time capability, although initially was not the main concern of ROS, is becoming a first-order consideration on its development path. ROS2, the second generation of ROS, is significantly restructured to achieve better real-time performance. The real-time working group in ROS community is now actively working on discussing, experiencing and validating many new features in ROS to improve its real-time performance. The efforts by ROS community is necessary, but not sufficient to support real-time robotic software. Building real-time systems needs not onlysystemsupport, but also theguaranteethat timing constraints will be honored. Such a guarantee has to be built on a solid theoretical foundation: we need rigorous models to describe the system and mathematical methods to formally prove the properties of interests. A theoretical foundation is also important to guide the evolvement of ROS. Many subtle design choices and implementation details in ROS not only makes the analysis difficult, but also leads to poor timing predictability at the first place. With good theoretical insights, we could see through those subtle design choices and implementation details, to understand the essential conflicts we are facing and fundamental properties we could have for a real-time ROS. The target of this project is to build such a theoretical foundation for ROS, which is missing now. More precisely, we aim to develop theories to enforce and reason about important properties concerning real-time performance of robotic systems based on ROS. ROS is used in a wide spectrum of applications with diverse real-time requirements. Some applications may require strict timing guarantee. Some applications may satisfy with certain level of real-time responsiveness, but are more sensitive to throughput, resource utilization or development efficiency. We will look into the following three different but related aspects, to address different concerns in different applications:-Determinism:exhibiting timing behaviors in a determined manner.-Predictability:predicting the worst-case real-time performance.-Robustness:tolerating disturbance affecting the expected timing behaviors.Each of the three aspects raises significant challenges. First, timing determinism often relies on highly restricted execution paradigm (e.g., timed-triggered execution), which may lead to significant resource waste. As a general robotic software framework, ROS will unlikely accept such harsh restrictions. We need to develop a more flexible execution paradigm, which both matches the essential features of ROS, and can be proved to have the desired determinism properties. To address this challenge, our idea is to find a good balance between flexibility and strength of determinism, by developing a weaker form of timing determinism based on insights in existing theories for functional determinism. Second, the unique and complex features of ROS, on the level of both individual components and the entire application structure, existing real-time scheduling theory is insufficient to solve its worst-case real-time performance analysis problem. In this project, we solve the problem with a general constraint-solving approach, and which can not only analyze individual components more precisely, but also generate auxiliary offset information to tighten the end-to-end analysis results. Third, to make ROS systems robust to disturbances that invalidate the assumptions in timing analysis, we will develop new theories to enable us to efficiently perform resource re-allocation at runtime and stabilize real-time performance of critical tasks. We propose to express and monitor system status using abstract information what can be obtained and computed with low overhead at runtime, while precisely identifying the bottleneck of the system and effectively guiding the resource re-allocation.   By close interaction with the ROS development community, the research outcomes of this project will potentially be useful not only for building real-time performance analysis tools that are directly beneficial to development of real-time software based on current versions of ROS, but also to provide insights to guide its long-term evolvement towards stronger real-time capability.    


Project number9043274
Grant typeGRF
StatusNot started
Effective start/end date1/01/22 → …