Resilient computing on ROS using adaptive fault tolerance. Issue 3 (3rd November 2017) - Lauer, Michael; Amy, Matthieu; Fabre, Jean‐Charles; Roy, Matthieu; Excoffon, William; Stoicescu, Miruna
Abstract: Computer‐based systems are now expected to evolve during their service life to cope with changes of various nature, ranging from evolution of user needs, eg, additional features requested by users, to system configuration changes, eg, modifications in available hardware resources. When considering resilient embedded systems that must comply with stringent dependability requirements, the challenge is even greater, as evolution must not impair dependability attributes. Maintaining dependability properties when facing changes is, indeed, the exact definition of resilient computing. In this paper, we consider the evolution of systems with respect to their dependability mechanisms and show how such mechanisms can evolve with the system evolution, in the case of ROS, the robot operating system. We provide a synthesis of the concepts required for resilient computing using a component‐based approach. We particularly emphasize the process and the techniques needed to implement an adaptation layer for fault tolerance mechanisms. In the light of this analysis, we address the implementation of adaptive fault tolerance on ROS in 2 steps: Firstly, we provide an architecture to implement fault tolerance mechanisms in ROS, and secondly, we describe the actual adaptation of fault tolerance mechanisms in ROS. Beyond the implementation details given in the paper, we draw the lessons learned from this work and discuss the limits of this run‐time support to implement adaptive fault tolerance features in embedded systems. Abstract : Modern Cyber‐Physical Systems need not only to be dependable, they need to be resilient: they need to stay dependable in spite of changes such as updates and upgrades. To achieve this goal, we use a component‐based approach to design and implement adaptive fault tolerance mechanisms. We show how this can be done in the ROS (Robot Operating System) framework and what are its limitations and benefits.