A component-based software framework for hybrid real-time and best-effort embedded applications

Embedded systems play an increasing role in our society. From consumer electronics to driving assistance in cars, from medical devices to space exploration, they are ubiquitous. To better assist human beings, embedded systems become more complex, and more intelligent or even autonomous behaviors are expected. To handle their interaction with the real-world, those systems rely on artificial intelligence methods but are also subject to real-time constraints imposed by their environment. Taking advantage of increasingly powerful embedded processors, most of the new intelligent functionalities are implemented in software. As a result, the complexity of embedded software increases dramatically and can no longer be managed by domain specialists that are neither computer scientists nor software engineers. Unfortunately, the computer science community has left aside embedded systems for many years, and most modern software engineering paradigms cannot be applied directly to develop embedded applications. In this work, we present a hybrid framework based on software components that embed value-adding contributions from domain specialists. The framework relies on a dual-kernel approach that executes both a real-time and a best-effort operating system on a single processor. It is centered on dual-portability of software components across hardware platforms and across execution modes. The hybrid framework empowers domain specialists and promotes reuse of valuable software assets. It also supports the generation of hybrid embedded applications that combine real-time and best-effort software components. Such applications can take advantage of both time determinism and high computational throughput to face uncertain and dynamic real-world environments in an intelligent manner. The application of the hybrid framework is illustrated through real-world case studies with autonomous mobile robots from ASL (Autonomous Systems Laboratory) and NASA (National Aeronautics and Space Administration). It is also adapted to support the development of integrated satellite payload controllers for ESA (European Space Agency).


Related material