Projet : BIP

previous up next contents
Précédent : Perception et simulation Remonter : Résultats nouveaux Suivant : Contrats industriels (nationaux, européens et


Sous-sections


   
Contrôle/commande de systèmes robotiques complexes



Participants : D. Simon, A. Girault, Ch. Le Gal, M. Sighireanu.

ORCCAD et la téléopération

Jusqu'à présent, les applications d' ORCCAD concernaient des robots mobiles ou des bras manipulateurs fonctionnant de façon automatique. Nous nous proposons d'appliquer et d'adapter notre système pour la programmation de robots fonctionnant en mode mixte automatique/téléopéré[*].

Le type de tâche à exécuter est typiquement la manipulation en mode téléopéré avec stabilisation automatique du porteur face à une structure, tâches pour lesquelles l'intervention d'un ou plusieurs opérateurs reste requise. La présence de plusieurs activités s'exécutant en parallèle (commande du bras, commande du véhicule, gestion de l'interface opérateur) pose de nouveaux problèmes de synchronisation et de répartition. Dans ce cas le flot de données entre l'opérateur et le contrôleur est beaucoup plus riche que dans le cas des robots autonomes. En fait, on trouve deux types de liaison entre le contrôleur et la station opérateur :  i) une ou des liaisons haut débit permettant de transférer les trajectoires émises par la station maître et de récupérer des informations sensorielles de type images ou retour d'effort ; ii) une liaison faible débit permettant de forcer les modes de marche du contrôleur esclave et de récupérer des informations concernant l'état d'avancement de la mission. Enfin, la gestion de la station opérateur, e.g. le choix des modes de visualisation, peut être assurée par un contrôleur du même type que celui utilisé dans le contrôleur esclave temps réel (figure 4).


  
Figure 4: Architectures de systèmes autonomes et téléopérés
\begin{figure} \centerline{ \epsfxsize=12cm \epsfbox{control_f.id} } \par \par\end{figure}

Deux types de problèmes ont été plus particulièrement étudiés, faisant suite aux expérimentations menées l'année précédente en collaboration avec l'Ifremer [[17]] :

Répartition du code de contrôle

Distribuer le code de contrôle produit par ESTEREL sur les différents sites doit permettre d'améliorer la tolérance aux pannes du système, en donnant une certaine autonomie à chaque site et en permettant au moins la possibilité d'arrêt contrôlé d'un sous-système isolé. Deux méthodes de répartition ont été testées, soit automatiquement par l'utilisation de OCREP ([[27]]), soit manuellement à partir du fichier source. Cette dernière méthode ne permet pas de conserver la possibilité d'effectuer des vérifications sur l'application globale mais permet de ne générer qu'un nombre restreint de communications inter-sites. Un protocole de transmission sécurisé permettant à chaque site d'avoir une vision cohérente de l'application a été étudié[Tur98], étude qui doit se poursuivre dans le cadre de l'action incitative Tolere.

Maquettage de l'interface opérateur

Une maquette d'interface opérateur permettant de faire communiquer une station maître et un contrôleur esclave a été partiellement réalisée. Cette interface graphique doit permettre a l'opérateur d'envoyer des signaux au site distant de façon à forcer certains modes de fonctionnement et également de reparamétrer en ligne des lois de commande, ce qui peut être très utile en phase de réglage.

Contrôle de véhicules autonomes

Avec S. Yovine[*], nous avons étudié une loi de contrôle pour véhicules autonomes. Nous nous sommes placés dans le cas général de deux véhicules qui se suivent sur une route rectiligne sans autre trafic. Le véhicule leader freine et accélère alternativement, pendant que le véhicule suiveur essaye de le suivre en évitant les collisions. Le véhicule suiveur est contrôlé directement par son accélération, et doit maintenir un délai inter-véhicule constant : ce type de contrôle utilise exclusivement des données accessibles par capteur et est le mieux adapté au cas des autoroutes automatiques sans trains de véhicules. Dans le but de prouver la justesse de cette approche, nous avons étudié la stabilité de notre loi de contrôle. Pour cela nous avons établi plusieurs résultats sur le ratio r(t) entre le délai avant collision et le délai désiré. Ces résultats prouvent que notre loi d'accélération permet d'éviter les collisions [[30]].

Répartition dirigée par les horloges

Avec X. Nicollin[*], nous avons défini une méthode de répartition automatique de programmes synchrones dirigée par les horloges. Cette méthode est basée sur le répartiteur de programmes synchrones OCREP [[27]] qui utilise le format intermédiaire en automate d'états fini OC [Pa93]. Elle est originale en cela qu'elle permet de programmer des tâches de longue durée dans un programme synchrone. Les étapes successives sont :

1.

construire l'arbre des horloges du programme source centralisé,
2.

en déduire des directives de répartition sous la forme d'une partition de l'ensemble des entrées/sorties du programme source en autant de sous-ensembles qu'il y a de sites de calculs spécifiés dans la répartition,
3.

déterminer quelle est l'horloge la plus rapide de chaque site de calcul,
4.

répartir l'automate du programme en autant d'automates qu'il y a de sites de calcul et insérer les actions de communication nécessaires à un comportement fonctionnel équivalent au comportement du programme source,
5.

appliquer des techniques de bisimulation pour minimiser localement le programme de chaque site de calcul [[2]],
6.

synchroniser les programmes des sites en ajoutant les actions de communications nécessaires à un comportement temporel équivalent au comportement du programme source.

Planification réactive

En utilisant les compétences de l'équipe PRIMA du laboratoire GRAVIR- IMAG dans les domaines de l'intégration et de l'Intelligence Artificielle, nous nous intéressons à l'intégration d'un générateur de plans au-dessus des trois niveaux d'abstraction existants sous ORCCAD (module, commande, procédure).

En théorie un générateur de plans n'est pas indispensable : tout superviseur réagissant à des événements discrets peut être décrit sous la forme d'un automate d'états fini, et donc compilé au niveau procédure. Nous pensons toutefois qu'une telle couche décisionnelle est nécessaire à la programmation de missions complexes. Elle permettrait :

Plusieurs travaux ont tenté de proposer des moyens d'intégrer des méthodes de haut niveau à des outils issus de l'automatique. On peut les classer en plusieurs catégories selon le domaine dont ils sont issus :

Bien que notre but soit d'ajouter une couche décisionnelle à des systèmes réactifs déjà existants, nous nous classons ici plutôt dans la première catégorie.

Pour essayer d'être, dans la mesure du possible, proche du monde réel, nous avons choisi une application déjà existante : le parking automatique décrit par S. Abdou [Abd97]. Toutefois cette application n'étant pas encore implémentée sous forme de procédures robots pour les véhicules disponibles (CyCAB), un simulateur de véhicule à été programmé. Ce simulateur utilise la même décomposition en niveaux qu' ORCCAD, ce qui devrait faciliter l'application aux CyCABs dans l'avenir.

Un premier générateur de plan a été écrit. Il permet, moyennant une modélisation du monde pour l'instant peu réaliste, de séquencer les procédures robots disponibles à partir d'un but exprimé dans un langage de haut niveau. Un travail conséquent reste à fournir, en particulier sur les possibilités de modélisation automatique du monde, se basant principalement sur les informations disponibles aux niveaux inférieurs (pré-conditions, post-conditions, ...) et sur des bases de connaissances générales [[22],[21]].



Footnotes

... automatique/téléopéré[*]
Travail partiellement réalisé dans le projet Icare
... Yovine[*]
Laboratoire VERIMAG, université Joseph Fourier, Grenoble.
... Nicollin


previous up next contents
Précédent : Perception et simulation Remonter : Résultats nouveaux Suivant : Contrats industriels (nationaux, européens et