Formal Verification of the Functional Layer of Robotic and Autonomous Systems - LAAS - Laboratoire d'Analyse et d'Architecture des Systèmes
Thèse Année : 2018

Formal Verification of the Functional Layer of Robotic and Autonomous Systems

Vérification Formelle des Modules Fonctionnels de Systèmes Robotiques et Autonomes

Mohammed Foughali

Résumé

The goal of this thesis is to add to the efforts toward the long-sought objective of secure and safe robots with predictable and a priori known behavior. For the reasons given above, formal methods are used to model and verify crucial properties, with a focus on the functional level of robotic systems. The approach relies on automatic generation of formal models targeting several frameworks. For this, we give operational semantics to a robotic framework, then several mathematically proven translations are derived from such semantics. These translations are then automatized so any robotic functional layer specification can be translated automatically and promptly to various frameworks/languages. Thus, we provide a mathematically correct mapping from functional components to verifiable models. The obtained models are used to formulate and verify crucial properties on real-world complex robotic and autonomous systems. This thesis provides also a valuable feedback on the applicability of formal frameworks on real-world, complex systems and experiencebased guidelines on the efficient use of formal-model automatic generators. In this context, efficiency relates to, for instance, how to use the different model checking tools optimally depending on the properties to verify, what to do when the models do not scale with model checking (e.g. the advantages and drawbacks of statistical model checking and runtime verification and when to use the former or the latter depending on the type of properties and the order of magnitude of timing constraints).
Les systèmes robotiques et autonomes ne cessent d’évoluer et deviennent de plus en plus impliqués dans les missions à coût considérable (e.g. exploration de l’espace) et/ou dans les milieux humains (e.g. chirurgie, assistance handicap). Cette implication remet en question les pratiques adoptées par les développeurs et ingénieurs pour donner un certain degré de confiance à ces systèmes. En effet, les simulations et campagnes de tests ne sont plus adaptées à la problématique de sûreté et fiabilité des systèmes robotiques et autonomes compte tenu (i) du caractère sérieux des défaillances éventuelles dans les contextes susmentionnés (un dommage à un robot très coûteux ou plus dramatiquement une atteinte aux vies humaines) et (ii) de la nature non exhaustive de ces techniques (les tests et simulations peuvent toujours passer à côté d’un scénario d’exécution catastrophique. Les méthodes formelles, bien qu’elles offrent une solution mathématique élégante aux problèmes de sûreté de fonctionnement et de fiabilité, peinent à s’imposer, de leur côté, dans le domaine de la robotique autonome. Cette limitation devient encore plus visible au niveau fonctionnel des robots, i.e. les composants logiciels interagissant directement avec les capteurs et les actionneurs. Elle est due à plusieurs facteurs. D’abord, les composants fonctionnels reflètent un degré de complexité conséquent, ce qui mène souvent à une explosion combinatoire de l’espace d’états atteignables (comme l’exploration se veut exhaustive). Ce problème force les spécialistes soit à se limiter à des applications très simples, soit à recourir à des abstractions qui s’avèrent fréquemment exagérées, ce qui nuit à la véracité des résultats de la vérification (e.g. l’oubli des contraintes temporelles, la non inclusion des spécificités du hardware). En outre, les composants fonctionnels sont décrits à travers des languages et frameworks informels (ROS, GenoM, etc.). Leurs spécifications doivent alors être traduites en des modèles formels avant de pouvoir y appliquer les méthodes formelles associées. Cette opération, nommée formalisation, est souvent pénible, lente, et exposée à des erreurs vu la complexité des comportements que représentent les composants fonctionnels des robots. La formalisation fait face également à un autre problème également pesant, à savoir le manque de portabilité. Cela se résume au fait que chaque traduction doit être refaite dès qu’un composant change ou évolue, sans parler des nouvelles applications faites de nouveaux composants, ce qui implique un investissement dans le temps aux limites de la rentabilité. A noter que cette thèse ne s’intéresse pas aux composants du haut niveau dits “décisionnels” des systèmes robotiques et autonomes. En effet, ces composants sont souvent basés sur des modèles bien définis, même formels, ce qui facilite leur connexion aux méthodes formelles. Le lecteur intéressé peut trouver dans lalittéature de nombreuses contributions y étant pertinentes. Aux limitations décrites précédemment, s’ajoute le problème de l’indécidabilité visà- vis les formalismes et les techniques de vérification. Par example, les travaux comparant les Réseaux de Petri Temporels “à la , Merlin” et les Automates Temporisés, deux formalismes phares de modélisation des systèmes concurrents, demeurent trop formels pour les communautés autres que celle des méthodes formelles. Il existe néanmoins des travaux qui présentent des techniques qui permettent de bénéficier des deux formalismes, bien qu’elles ne soient (i) appliquées qu’à des exemples académiques classiques, loin de la complexité des composants fonctionnels robotiques et autonomes et (ii) restreintes aux classes des réseaux non-interprétés (pas de possibilité d’avoir des données/variables partagées). Nous proposons, dans ce travail de recherche, de connecter GenoM3, un framework de développement et déploiement de composants fonctionnels robotiques, à des langages formels et leurs outils de vérification respectifs. Cette connexion se veut automatique pour pallier aux problème de non portabilité, décrit au paragraphe précédent. GenoM3 offre un mécanisme de synthèse automatique pour assurer l’indépendance des composants du middleware. Nous exploitons ce mécanisme pour développer des templates en mesure de traduire n’importe quelle spécification de GenoM3 en langages formels. Ceci passe par une formalisation de GenoM3: une sémantique formelle opérationnelle est donnée au langage. Une traduction à partir de cette sémantique est réalisée vers des langages formels et prouvée correcte par bisimulation. Nous comparons de différents langages cibles, formalismes et techniques et tirerons les conclusions de cette comparaison. La modélisation se veut aussi, et surtout, efficace. Un modèle correct n’est pas forcément utile. En effet, le passage à l’échelle est particulièrement important. Cette thèse porte donc sur l'applicabilité des méthodes formelles aux composants fonctionnels des systèmes robotiques et autonomes. Le but est d'aller vers des robots autonomes plus sûrs avec un comportement plus connu et prévisible. Cela passe par la mise en place d'un mécanisme de génération automatique de modèles formels à partir de modules fonctionnels de systèmes robotiques et autonomes. Ces modèles sont exploités pour vérifier des propriétés qualitatives ou temps-réel, souvent critiques pour les systèmes robotiques et autonomes considérés. Parmi ces propriétés, on peut citer, à titre d'exemple, l'ordonnançabilité des tâches périodiques, la réactivité des tâches sporadiques, l'absence d’interblocages, la vivacité conditionnée (un évènement toujours finit par suivre un autre), la vivacité conditionnée bornée (un évènement toujours suit un autre dans un intervalle de temps borné), l'accessibilité (des états “indésirables” ne sont jamais atteints), etc. Parmi les défis majeurs freinant l'atteinte de tels objectifs, on cite notamment: - Contrairement aux spécifications décisionnelles, les modules fonctionnels sont décrits dans de langages informels. La formalisation est dure, inévidente, et sujette à des erreurs compte tenu des comportements atypiques qui peuvent se présenter à ce niveau. Cette formalisation est aussi non réutilisable (besoin de re-formaliser pour chaque nouvelle application). Il existe une multitude de techniques de vérification et de formalismes mathématiques pour la modélisation. Le choix n'est pas évident, chaque formalisme et chaque technique présentant des avantages et des inconvénients. La complexité des modules fonctionnels (nombre de composants, mécanismes de communication et d'exécution, contraintes temporelles, etc.) mène à des problèmes sérieux de passage à l'échelle (explosion de l'espace d'états atteignables). - Il existe une déconnexion importante entre les deux communautés (de robotique et de vérification formelle). D'une part, les roboticiens n'ont ni la connaissance ni les moyens (en terme de temps surtout mais aussi de background) de s'investir dans les méthodes formelles, qui sortent de leur domaine. D'autre part, les spécialistes des méthodes formelles restent loin de s'attaquer à des problématiques si complexes faute de connaissances en robotique. Cette thèse tacle la totalité de ces problèmes en proposant une approche de traduction prouvée mathématiquement et automatisée de GenoM vers: - Fiacre/TINA (model checking) - UPPAAL (model checking) - UPPAAL-SMC (statistical model checking) - BIP/RTD-Finder (SAT solving) - BIP/Engine (enforcement de propriétés en ligne) La thèse propose également une analyse du feedback expérimental afin de guider les ingénieurs à exploiter ces méthodes et techniques de vérification efficacement sur les modèles automatiquement générés.
Fichier principal
Vignette du fichier
FOUGHALI Mohammed.pdf (8.35 Mo) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

tel-02080063 , version 1 (26-03-2019)
tel-02080063 , version 2 (26-03-2020)

Identifiants

  • HAL Id : tel-02080063 , version 1

Citer

Mohammed Foughali. Formal Verification of the Functional Layer of Robotic and Autonomous Systems. Automatic. Institut national des sciences appliquées de Toulouse, 2018. English. ⟨NNT : ⟩. ⟨tel-02080063v1⟩

Collections

GDR_MACS
268 Consultations
89 Téléchargements

Partager

More