![]()
Précédent : Formalisation des actions manipulées
Remonter : Programmation de Missions
Suivant : Robotique sous-marine
Initialement, ESTEREL a été choisi comme langage de programmation de missions en raison des avantages maintenant reconnus de l'approche synchrone (cadre formel de manipulation de la réactivité et preuves associées). Cependant l'utilisation d'ESTEREL et des outils de vérification associés n'est pas toujours adaptée à cause d'une trop grande expressivité et d'une représentation insuffisante des actions asynchrones dans notre contexte.
Il est, de fait, souhaitable de fournir à l'utilisateur un langage plus naturel (actuellement appelé « scénario »), mais doté des mêmes avantages que l'approche synchrone. On propose ainsi un ensemble d'opérateurs manipulant les vues abstraites des actions élémentaires identifiées et pouvant être traduits dans un formalisme formel tel que par exemple ESTEREL.
L'outil logiciel CENTAUR développé dans le projet CROAP a permis d'implémenter un prototype évolutif de langage de programmation [20].

Figure 5: Exemple de Programme de Mission
La sémantique opérationnelle est obtenue par traduction dans un langage cible (ici le langage synchrone ESTEREL ). La traduction a plusieurs avantages : d'une part, elle rend la spécification indépendante du modèle formel choisi comme cible de traduction (on pourrait envisager dans le futur une traduction selon le formalisme TIMED-ARGOS comme proposé à Grenoble dans le projet BIP ) et masque certaines subtilités de programmation. D'autre part elle effectue, de façon automatique et transparente, des vérifications préliminaires sur la cohérence de la spécification (par exemple, portées des actions manipulées).
Actuellement, un prototype du langage de programmation de mission est disponible (Figure 5 ). Il possède un ensemble d'opérateurs permettant d'exprimer séquence, conditions, itérations d'actions (SEQ, LOOP, UNTIL, PROCEDURE, ...). Les actions qu'il manipule sont paramétrables. La traduction en langage cible ESTEREL des opérateurs, des PROCéDURES-ROBOT et des TâCHES-ROBOTS est réalisée de manière automatique lorsque la cohérence de la spécification a été validée. Certaines propriétés logiques sont garanties par construction (vérification par méthodes comportementales). La vérification des propriétés opérationnelles correspondant à la réalisation de l'objectif final de l'application n'est par contre pas garantie a priori. Cependant, la forme compacte de spécifications proposée contraint l'utilisateur final à rester proche des objectifs de l'application. Une traduction d'un programme simulable en SIMPARC (voir la section 3.5.2 ) est envisageable pour valider, par simulation, à la fois les aspects dynamiques et les aspects logiques de l'application.
Plusieurs domaines d'expérimentations ont permis de valider les aspects implantés (par exemple, en robotique sous-marine [5, 20] avec le VORTEX de l'IFREMER ). L'utilisation du prototype ARGéS du projet ROBOTVIS [14] a permis de valider l'ensemble des opérateurs du langage.
Ainsi, les primitives proposées à l'utilisateur sont garanties de haut niveau, vérifiées et fiabilisées.