Rigorous design of robot software: A formal component-based approach
We have recently started an effort to combine a state of the art tool for developing functional modules of robotic systems (GenoM) with a component based framework for implementing embedded real-time systems (BIP). Unlike some works which study the connection between formal approaches and the highest (decisional) level of the robot software architecture, where deliberative activities such as planning, diagnostics, and execution control are conducted, we tackle the problem of using formal methods for developing modules of the functional level of robots. Little attention has been drawn to the development of these modules whose robustness is paramount to the robustness of the overall platform. To this end, we have successfully developed the GenoM/BIP component based design approach and applied it to the functional level of a complex exploration rover. Here, we report on this work, and show how we: (i) produce a very fine grained formal computational model of the robot functional level; (ii) run the BIP engine on the real robot, which executes and enforces the model semantics at runtime; and (iii) check the model offline for deadlock freedom, as well as other safety properties. Moreover, we also extended this paradigm in a number of promising directions: (i) a real-time BIP engine which can now use and control a timed BIP model; (ii) distribution of the model and the engine over multiple CPUs; (iii) a user-friendly language for specifying constraints on the model; and (iv) linking the model with a temporal plan execution controller. Interestingly, although our approach was initially proposed for the lowest level of robot architectures, these more recent extensions now allow us to model and manage the deliberation taking place at the decisional layer.