Participants : Ève Coste-Manière, Nicolas Turro, Michel Perrier, Alexis Peuch, Howard Wang, Vincent Rigaud
Il s'agit de poursuivre les études sur les architectures de commande et de perception d'engins autonomes, semi autonomes ou téléopérés (par exemple sous-marins dans le cadre du projet UNION) en se positionnant au niveau d'abstraction où l'utilisateur du système manipule différentes entités (actions et fonctions d'observations) pour atteindre les buts de diverses missions. Une mission robotique peut être considérée comme la succession dans le temps de l'exécution d'actions dont l'activation et la terminaison dépendent d'événements internes ou externes perçus par le système de commande via différentes fonctions d'observations telles que des capteurs intelligents (cf paragraphe 3.2 dans le cas de la vision ou pour l'étude de l'intégration d'une fonction de prévision sur le déroulement de la mission comme étudié avec Ifremer). Initialement, ESTEREL a été choisi comme langage de programmation de missions. L'approche synchrone permet en effet de traiter dans un cadre formel la réactivité inhérente aux systèmes robotiques. De plus, elle rend la programmation des comportements déterministe et permet d'effectuer des vérifications qui assurent la fiabilité du système. Cependant, ESTEREL est difficilement manipulable par un utilisateur non expert. Le but est alors d'étudier la définition de primitives de manipulation (un langage) de haut niveau, traduites en ESTEREL pour spécifier et valider les différentes missions à réaliser. L'outil logiciel CENTAUR développé dans le projet CROAP a permis de prototyper et d'identifier les primitives principales nécessaires pour l'écriture d'un programme. Actuellement, le prototypage du langage se poursuit. Ceci consiste à intégrer l'ensemble des résultats précédents (cf paragraphe 3.3) lors du développement de ces primitives essentielles (SEQ, PAR, LOOP, conditions...). Les développements portent en particulier sur :
Ces primitives de haut niveau, vérifiées et fiabilisées permettent à l'utilisateur de décrire des applications dans un formalisme proche de ceux fournis en sortie de planificateurs automatiques, couvrant ainsi toute la chaîne de programmation d'une application robotique.