{'fraction_non_alphanumeric': 0.022222222222222223, 'fraction_numerical': 0.0, 'mean_word_length': 5.14540059347181, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Fault Detection and Diagnosis for Component-based Robotic Systems

In the software engineering domain, much work has been done for fault detection and diagnosis (FDD) and many methods and technologies have been developed, especially for safety-critical systems. In the meantime, component-based software engineering has emerged and been widely adopted as an effective way to deal with various issues of modern systems such as complexity, scalability, and reusability. Robotics is one of the representative domains where this trend appears. As technology advances, robots are beginning to inhabit the same physical space as humans and this makes the safety issue more important, even critical. However, the safety of recent component-based robotic systems has not been extensively investigated yet. One effective way to achieve system safety is fault tolerance based on FDD which recent robot systems can benefit from. For this purpose, we propose a FDD scheme for component-based software systems with the requirements of flexibility, extendability, and efficiency. The proposed FDD scheme consists of three main components: filter and history buffer, filtering pipeline, and FDD pipeline. We implemented this scheme using the cisst framework and show how it can be systematically deployed in an actual system. As an illustrative example, a FDD pipeline is set up to detect a thread scheduling fault on various operating systems (Linux, RTAI, and Xenomai) and experimental results are presented. Although the target of this example is only one type of fault, it demonstrates how the proposed FDD scheme can be introduced to component-based environments in flexible and systematic ways and how system designers can define a fault and FDD pipeline for it. It is obvious that the importance of dependability-especially safety-of robots will significantly increase as robots are deployed in our daily lives, directly operate on us, or interact closely with us. Thus, the FDD scheme proposed in this paper can be a useful basis for robot dependability research in the future.