A Formal High-level Modeling Approach to Develop Reliable Components in Vision-based Robotics

This paper proposes the use of the control-state Abstract State Machines for a rigorous foundation in high- level modeling and validating component-based applications in Vision-Based Robotics. In particular, an extension of the classical flowchart notation for control-state ASMs is proposed to support modularization and reuse in a direct way. The resulting ASM models are to be intended as "ground models" that can be used as basis or patterns to practically model and formally validate the behavior of typical robotic control tasks, and to link (via successive refinements) these high-level models of components to their implementation code by making their functional correctness mathematically controllable. The proposed flowchart extension and the availability of reusable and validated ground models allow a better system design and speed up the development of the system. Keywords-components; abstract state machines; ground mod- eling; robotic control tasks. I. INTRODUCTION Vision-based robotics is a challenging research field (1). One of the open and commonly stated problems in the field is the need for exchange of experiences, best practices, and high-level models of robust, reliable and flexible robot control applications with visual servoing functions. Recently, we investigated (2) the use of the Abstract State Machine (ASM) formal method (3) for a systematic study and a rigorous foundation of modeling and validating Visual Servoing (VS) applications. The ASM method is a discipline for reliable system development, which allows to bridge the gap between informal requirements and executable code. The ASM formalism supports concurrency, heterogeneous state and modularity (compositional design and verification techniques). These features are essential to tailor ground models of control tasks definitions and associated syn- chronization/communication patterns of VS applications in rigorous, compositional and abstract terms. Ground models are blueprints of the to-be-implemented piece of "real world" that "ground the design in the reality" (4). In particular, we exploit the notion of control state ASMs (a class of ASMs (3)) as a natural extension of Finite State Machines. In this paper, we present an extension - called pattern- oriented control-state ASMs - of the classical flowchart notation for control-state ASMs to support modularization and reuse in a direct way. The proposed notation is useful to denote explicitly modeling elements to be further refined, to allow the definition/instantiation of recurring design so- lutions or patterns, to perform initial validation of separate high-level models and to improve model traceability between the flowchart diagrams and their concrete (textual) ASM specifications during the ground modeling and development process. In this context, the term "pattern" is to be intended to have its classical meaning, i.e., as a schema of a recurring solution, rather than the meaning of "design pattern" as in the book of the GoF (Gang of Four). We here repeat our previous experience in the embedded system-on-a-chip domain (5)(6) to shift the focus from implementation to design through high-level modeling. Our approach combines the expressive power and accuracy of control state ASMs with the intuition provided by visual flowchart descriptions to capture the behavioral view of task-level control of VS applications. As starting point, we manually extracted from the structure of existing (basically C/C++) code architectural descriptions (in terms of UML component diagrams) of high-level models of component control tasks and also recurring synchronization/communica- tion patterns between tasks that could be used for the ground modeling and analysis in ASM. We then defined these ASM abstract models using the pattern-oriented control-state ASM notation, transformed such models into executable ASM models using the notation ASMETA/AsmetaL (7)(8), and then validated them through basic formal analysis techniques (simulation and scenario-based simulation) (9). The resulting and validated ASM models are used as basis or patterns for high-level modeling and validating typical control tasks of VS applications in a formal way, thus leading from the abstract models to executable (C/C++) code by making their functional correctness mathematically controllable.