Systèmes autonomes critiques









Présentation
Calendrier
Bibliographie
Publications

réservé intranet Réunions SAC

Présentation du projet

Le projet « systèmes autonomes critiques » est mené conjointement par les groupes TSF (tolérance aux fautes et sûreté de fonctionnement informatique) et RIA (robotique et intelligence artificielle) du LAAS-CNRS.
Une première thèse, « tolérance aux fautes dans les systèmes robotisés », se déroule actuellement dans le cadre de ce projet.

Résumé

L’objectif du projet est l’étude et le développement d’architectures sûres de fonctionnement pour des systèmes robotiques ou similaires, comme les satellites autonomes. L'accent sera placé sur des mécanismes de tolérance aux fautes au niveau décisionnel. Ces mécanismes seront prototypés, et validés en présence de fautes.

Contexte scientifique

L’architecture de contrôle d’un robot est l’ensemble de ses fonctions organisées de manière à lui permettre d’accomplir des tâches dans son environnement en respectant les contraintes temps-réel.

Le développement de telles architectures est au centre des problèmes de conception de systèmes robotiques complets. L’état de l’art a abouti aujourd’hui à un certain consensus sur la nécessité d’inclure dans cette architecture une composante délibérative pour les prises de décision et l’anticipation des actions à effectuer et une composante réactive pour leur mise en œuvre et la réaction aux événements en temps réel.

Le groupe RIA a ainsi contribué depuis plusieurs années au développement d’une architecture qui est opérationnelle sur les robots du LAAS et dans des applications à l’extérieur. Cette architecture comprend trois niveaux dont les éléments clés sont :

(a)
Un niveau décisionnel composé d’un superviseur basé sur un système de raisonnement procédural sélectionnant des procédures pré-établies pour exécuter des tâches, et pouvant utiliser un planificateur temporel comme ressource pour générer des plans d’actions qui seront mis en œuvre grâce à ces procédures. Il transmet les actions à effectuer au niveau suivant.
(b)
Un système de contrôle d’exécution temps-réel dont le rôle est : (a) de maintenir une représentation de l’état du robot ; (b) de traduire les actions à effectuer en termes de commandes au niveau suivant en les validant en fonction de l’état du robot ; (c) de transmettre une réponse sur le résultat des actions (succès, échec).
(c)
Un niveau fonctionnel composé par un ensemble de modules encapsulant les capacités de traitement des données des capteurs et de commande des actuateurs, ou d’autres calculs. Les données produites sont partagées et peuvent aussi être accédées par le superviseur. Ces modules sont contrôlés en temps-réel.

Des outils de développement spécifiques ont été conçus pour chaque niveau, respectivement Propice et IxTeT, Kheops puis R2C, et GENOM.

Cette structure permet d’obtenir une robustesse globale dans le fonctionnement du système. On retrouve des structures similaires dans d’autres projets (par exemple, CLARAty et Remote Agent développés par la NASA).

Sous l'angle de la sûreté de fonctionnement, les roboticiens se sont principalement intéressés à la robustesse, qui vise à tenir compte d’une certaine variabilité de l’environnement. Mais aujourd'hui, les préoccupations vont bien au-delà — il s’agit de pouvoir garantir aussi une sûreté de fonctionnement dans un sens plus proche de celui des systèmes informatiques en général, aussi bien pour les composants de l’architecture que pour elle-même dans son ensemble. Ceci est important d’un point de vue de la recherche de base, mais devient vital pour certaines applications critiques, par exemple, les applications médicales dans lesquelles le robot est en étroite interaction avec l’homme, et les applications spatiales autonomes, dont la défaillance peut réduire à néant des investissements importants.

Objectifs scientifiques

Le but du projet est de définir une méthode de développement des systèmes autonomes destinés à des applications critiques.

Par système autonome, on comprend un système (tel un robot) doté de moyens décisionnels basés sur le raisonnement logique, percevant et agissant dans son environnement. Lorsque de tels systèmes sont utilisés dans des applications critiques comme la chirurgie, l’espace, voire dans le domaine militaire, leur sûreté de fonctionnement devient une préoccupation majeure en raison des conséquences potentiellement catastrophiques de leur défaillance éventuelle. La sûreté de fonctionnement d’un système autonome peut être défavorablement affectée par au moins quatre facteurs :

(a)
des situations adverses de l’environnement dans lequel le système évolue ;
(b)
des manques de connaissance ou des imprécisions dans la perception de cet environnement ;
(c)
des fautes physiques affectant ses capteurs, actionneurs ou moyens de traitement ;
(d)
des fautes introduites lors de la conception du système, et plus particulièrement, au niveau de son architecture informatique (qui comprend notamment les logiciels de prise de décision).

Le projet est focalisé sur cette dernière source potentielle de dysfonctionnement. La méthode de développement à définir pourra faire appel aux quatre méthodes de la sûreté de fonctionnement :

  • la prévention de fautes : techniques de conception visant à empêcher l’occurrence ou l’introduction de fautes ;
  • la tolérance aux fautes : l’adjonction de redondances visant à remplir la fonction du système en dépit des fautes ;
  • l’élimination des fautes : techniques de vérification visant à réduire la présence (nombre, sévérité) des fautes ;
  • la prévision des fautes : techniques d’évaluation visant à estimer la présence, la création et les conséquences des fautes ;

mais un accent particulier sera placé sur les techniques de tolérance aux fautes pouvant être introduites au niveau de l’architecture du système autonome.

Le succès de projet pourra être jugé au moyen du développement ou l’adaptation d’un prototype de système autonome dont la robustesse par rapport aux fautes de conception sera démontrée au moyen de fautes injectées artificiellement. Malgré les fautes injectées, le système autonome devra se montrer sûr dans un scénario opératoire réaliste (à définir).

Approche

La spécificité des systèmes autonomes qui rend particulièrement intéressant l’étude de leur sûreté de fonctionnement réside en l’utilisation du raisonnement logique à partir de faits, de règles, de procédures et d’objectifs représentés dans une base de connaissances. De tels systèmes de raisonnement peuvent être caractérisés par trois propriétés :

(a)
justesse (« soundness ») : les conclusions inférées sont « vraies » ;
(b)
complétude : une conclusion vraie sera inéluctablement inférée ;
(c)
calculabilité (« tractability ») : la conclusion peut être inférée en temps et espace polynomiaux.

Or, bien que de nombreuses procédures de raisonnement (par exemple, celles fondées sur la logique des prédicats) soient justes et complètes, elles sont malheureusement non calculables (« NP-hard »), voire semi-décidables, dans le sens qu’elles ne peuvent pas démontrer si une conclusion ne peut pas être inférée à partir des connaissances contenues dans la base. Par conséquent, on doit faire souvent appel à des heuristiques ou des formulations spéciales qui permettent de rendre le raisonnement faisable.

Parfois, la justesse ou la complétude des procédures est sacrifiée (la conclusion obtenue est parfois fausse, ou bien une conclusion vraie ne peut pas être démontrée) en faveur de l’efficacité dans les situations les plus probables. Par ailleurs, il faut aussi prendre en compte la possibilité que le contenu de la base de connaissances puisse être incorrect ou incomplet.

Lorsque de telles procédures de raisonnement sont utilisées dans un système autonome critique, il devient dès lors indispensable de concevoir le système de façon à :

(a)
assurer une fiabilité (« reliability ») adéquate au moyen de techniques permettant la prise de décisions correctes et rapides ;
(b)
assurer une sécurité-innocuité (« safety ») adéquate en rendant négligeable la probabilité d’occurrence de défaillances catastrophiques, face aux situations où :
  • une décision ne peut pas être prise à temps (à noter, il ne s’agit pas nécessairement d’une « faute » mais de l’essence même des problèmes non calculables ou semi-décidables) ;
  • la décision prise est erronée (à noter, dans le cas d’un compromis de conception pour favoriser l’efficacité « moyenne » de la procédure de décision, il s’agit d’une faute de conception « intentionnelle mais sans volonté de nuire » ; toutefois, il existe aussi la possibilité d’une décision erronée en raison de connaissances incorrectes ou incomplètes).