Précédent : Les robots bipèdes
Remonter : Fondements scientifiques Suivant :
Domaines
d'applications
Mots clés : architecture de contrôle, contrôle/commande, systèmes embarqués, programmation synchrone, vérification formelle, environnement de programmation, temps réel, systèmes hybrides .
Un des problèmes principaux de la programmation des systèmes robotiques est d'aborder dans un cadre cohérent la description de l'évolution dynamique des deux composantes -continue et discrète- de ces systèmes hybrides. Ceci nécessite d'intégrer différents formalismes, trop souvent spécialisés dans un domaine précis et déconnectés les uns des autres. Ainsi, l'étude des architectures de contrôle est primordiale pour développer concepts et méthodes permettant de gérer la complexité de la spécification et de l'analyse de la globalité du système.
Un contrôleur de robots doit être capable de traiter une grande diversité d'actions, allant par exemple de la commande d'une cellule flexible d'assemblage en milieu industriel au contrôle d'un véhicule autonome opérant en milieu hostile. La diversité des applications potentielles en robotique et le désir de mettre en oeuvre des algorithmes de commande sophistiqués impliquent une ouverture du système de programmation. D'un point de vue industriel, les contrôleurs actuels restent le plus souvent des machines fermées, dotées d'un langage limité ne permettant pas d'exécuter des actions complexes telles que des commandes référencées capteurs. Outre leurs limitations fonctionnelles, ils ne permettent pas de traiter correctement les aspects temps-réel sous-jacents à toute application robotique, même simple. L'architecture de contrôle ORCCAD [[7],[1]] propose actuellement deux niveaux : le niveau fonctionnel, où les aspects commande en temps discrétisé sont prépondérants, et le niveau contrôle, qui gère principalement les aspects réactifs. Au niveau fonctionnel, les actions élémentaires sont définies sous forme de TÂCHES-ROBOT : ce concept clé spécifie dans la même entité une partie algorithmique (loi de commande) et une partie logique réactive. Il s'agit d'un objet informatique hybride, à l'interface des aspects temps continu et discret. En l'absence de modèles unifiés et opérationnels des systèmes hybrides, cette approche permet de cantonner l'interface temps continu/discret dans la coquille réactive de la Tâche-Robot. Les actions élémentaires exécutées par le robot sont réalisées par l'exécution périodique d'une loi de commande en boucle fermée dont la conception repose sur les techniques de l'automatique classique comme la spécification par fonction de tâches [[6]], la commande référencée capteurs ou encore la commande instationnaire pour systèmes non holonomes. Cette loi de commande est encapsulée dans un comportement logique réactif rythmant son exécution à l'aide de signaux typés (pré-conditions, exceptions et post-conditions) constituant sa vue externe. Ce comportement réactif est codé à l'aide du langage synchrone ESTEREL, ce qui permet de bénéficier des outils de vérification formelle associés FC2TOOLS/ ATG.
Au niveau contrôle, les actions complexes sont spécifiées sous la forme de PROCÉDURES-ROBOT par composition structurée et hiérarchique de TÂCHES-ROBOT, manipulées par l'intermédiaire de leur vue externe, et de traitements d'exception. Nous pouvons ainsi définir de façon cohérente et dans un même formalisme des actions de complexité croissante, gérant les modes nominaux d'une mission robotique complexe ainsi que les modes dégradés dépendant des exceptions spécifiées et du contexte d'exécution. Tous ces aspects logiques sont également spécifiés en ESTEREL du niveau le plus haut (mission) jusqu'aux appels systèmes gérant l'exécution des lois de commande, un soin tout particulier étant pris quant à la gestion des transitions entre commandes successives. Ceci nous permet d'effectuer a posteriori une vérification formelle des programmes produits à un grand niveau de profondeur.
La formalisation des structures manipulées présente de nombreux avantages permettant la définition d'un environnement de programmation cohérent et convivial [[25]]:
De nombreux travaux restent cependant à réaliser et certains problèmes restent ouverts:
Nous proposons ainsi, dans un environnement cohérent, un ensemble d'outils intégrés permettant de programmer, de valider et de générer, de manière transparente pour l'utilisateur, ces méthodes et concepts bien formalisés.