Projet Bip

previous up next contents
Précédent : Logiciels Remonter : Projet BIP, Contrôle/commande de robots Suivant : Actions industrielles



Résultats nouveaux

Biomécanique et Robotique



Participants : Emmanuel Cordier , Ambarish Goswami , Mihail Trandafir


Mots-clés : biomécanique


Modélisation de la marche humaine

Résumé : Ce thème concerne l'analyse, principalement cinématique, de la marche humaine sur pente en vue de la synthèse et de l'analyse comparative de marches artificielles. Nous cherchons ici à extraire automatiquement des paramètres caractéristiques ou des grandeurs invariantes et à y associer des méthodes de représentation. Un dialogue avec les biomécaniciens nous permet de bénéficier de travaux déjà effectués sur ce thème et d'associer à notre approche de modélisation des aspects issus de la physiologie, de l'anatomie ou du contrôle moteur.


Partant de données expérimentales acquises par nos soins (2200 cycles de marche enregistrés sur un tapis roulant à inclinaison variable entre -13o et +13o par pas de 1o ), nous avons proposé une technique nouvelle pour la paramétrisation des cycles. Celle-ci est basée sur les cyclogrammes, courbes fermées obtenues par la représentation graphique simultanée de deux (ou plus) angles articulaires pendant un cycle de marche. Nous avons montré que les moments géométriques des contours des cyclogrammes reflètent de manière significative l'évolution de la cinématique de la marche suivant différentes inclinaisons du plan support de locomotion [24,23,15]. Nous avons proposé une nouvelle interprétation du périmètre des cyclogrammes et mis en évidence deux invariants potentiels de la marche régulière sur plans inclinés. De plus, nous avons développé plusieurs traitements automatiques des enregistrements de la marche, traitements jusqu'à présent réalisés à la main par les biomécaniciens [16,17] :

Enfin, une interface conviviale réalisée sous MATLAB (Walking Data Handler, WDH) permet d'intégrer les nombreux outils originaux déjà développés par l'équipe pour l'extraction, la sélection, la visualisation et l'analyse [21] des cycles de marches.

Modélisation et analyse de la cinématique des articulations biologiques

Bien que les mesures des angles articulaires soient au coeur de l'analyse des mouvements des systèmes polyarticulés et de la marche, les définitions communément utilisées restent imprécises. Nous avons proposé une nouvelle approche pour définir de manière systématique les angles articulaires pour une chaîne cinématique plane à plusieurs articulations. La définition est basée sur le concept de centre de rotation virtuel (VCOR). Le VCOR est une généralisation du centre de rotation. Il définit la position optimale du centre d'une articulation. La position angulaire de l'articulation est définie comme étant l'angle entre les droites reliant les VCORs successifs. Nous avons calculé les positions des articulations de la jambe lors de la marche humaine régulière en utilisant ce concept. Nous avons montré par des techniques numériques que la méthode proposée était robuste aux bruits et aux erreurs de mesure. Un des principaux avantages de notre méthode est que les angles articulaires ne dépendent pas explicitement des positions individuelles de chaque marqueur, mais prennent en compte l'intervalle complet de déplacement de l'articulation. Le VCOR est obtenu à partir des données en position de marqueurs enregistrées au cours de l'évolution cinématique de l'articulation.

Modélisation et commande



Participants : Ambarish Goswami , Frank Génot , Marco Mata , Laure France , Laurence Roussel , Ahmed Keramane , Nicolas Andreff , Bilal El-Ali


Mots-clés : commande, commande référencée capteur, mécanique, mécanique des solides, modélisation,LCP,systèmes hybrides


Résumé : Ce thème concerne essentiellement la commande des robots marcheurs vus comme des systèmes hybrides, c'est-à-dire dont le comportement résulte d'une dynamique différentielle continue et d'équations algébriques de transitions instantanées induisant une horloge discrète naturelle. On s'intéresse également dans ce cadre aux interactions avec l'environnement: modélisation de contacts unilatéraux, utilisation de capteurs extéroceptifs.


Systèmes dynamiques soumis à des impacts

Etude des systèmes avec jeu et frottement :

Ce travail a été effectué en collaboration avec Carlos Canudas de Wit, du Laboratoire d'Automatique de Grenoble (LAG).

D'une manière générale, les chocs modifient considérablement le comportement dynamique d'un système mécanique, et l'on peut observer par exemple la création de cycles limites dans des systèmes dont la dynamique ``hors chocs'' est extrêmement simple. Les impacts mettent en jeu des impulsions qui entrainent des discontinuités très importantes au niveau des vitesses. Ils se produisent, entre autres, dans les systèmes mécaniques : le jeu mécanique entre deux parties actives d'une machine, généralement dû à une imprécision d'usinage (faible au demeurant), à des effets thermiques ou au jeu dans un engrenage, favorise la production d'impacts dans ces machines. Ces impacts, responsables d'instabilité et de phénomènes de rebonds (``chattering'') sont extrêmement difficiles à commander.

Pour étudier le phénomène du jeu mécanique et ses non-linéarités inhérentes, nous utilisons un modèle dit impact damper model. Nous avons proposé un schéma de commande proportionnel-dérivé (PD) afin de générer des trajectoires périodiques. Nous avons montré que les gains du contrôleur pouvaient être choisis tels que le système en boucle fermée soit localement stable autour d'une orbite symétrique périodique désirée [25]. Nous avons utilisé la section de Poincaré pour démontrer la stabilité locale du mouvement induit par la loi de commande. Dans le but d'élargir le bassin d'attraction de cette orbite, nous proposons [26] d'utiliser une commande hybride en addition de la commande PD.

Il est donc possible de stabiliser un système avec du jeu autour d'un cycle symétrique périodique désiré à l'aide d'un schéma de commande de type PD. Cependant, pour que cette commande ait une valeur pratique, elle doit être robuste vis-à-vis des perturbations. Pour cela, nous proposons une commande ``constante-plus-impulsion'' qui génère une trajectoire pour aller vers le bassin d'attraction de la commande PD. Une fois ce dernier atteint, la commande PD reprend alors le contrôle. Cette stratégie de commande hybride fonctionne bien dans le cas idéal où l'on suppose les états parfaitement mesurables, la connaissance précise des paramètres du système (masse, amplitude du jeu, coefficient de restitution, ...) et l'impulsion idéale appliquée exactement à l'instant désiré. Nos futures recherches s'attacheront à relâcher ces hypothèses. Il faut souligner que, les résultats analytiques paraissant actuellement hors d'atteinte pour de tels systèmes non-linéaires, nos études ont un recours important à l'analyse numérique.

Etude des systèmes avec contacts unilatéraux :

Ce travail a été effectué en collaboration avec Bernard Brogliato, du Laboratoire d'Automatique de Grenoble (LAG).

L'enchaînement de dynamiques continues (phase de balancement, phase d'appui d'une jambe), ponctuées par des événement discrets (impact du pied avec le sol, décollage du pied), inscrit les robots marcheurs dans la classe des systèmes hybrides. Ces robots diffèrent notablement des robots manipulateurs classiques dans le sens où, durant la locomotion, aucune partie du robot ne reste en contact permanent avec le sol. L'interaction avec le sol met en jeu la loi de frottement de Coulomb. Une modélisation rigoureuse du robot dans son environnement consiste en un système articulé ``libre'' de corps rigides, soumis à des contraintes unilatérales (non-interpénétration des différents corps) et non bilatérales, comme dans le cas des robots manipulateurs. L'intégration de la dynamique continue fortement non-linéaire du système passe par une formulation propre des contacts unilatéraux sous la forme de relations de complémentarité entre accélérations relatives des points de contact et forces de contact. Le calcul de ces forces se résume en la résolution d'un LCP (Linear Complementarity Problem) dans le cas 2D. L'extension au cas 3D peut être obtenue par une approximation pyramidale du cône de frottement.

Une première étape, indispensable à l'étude de tels systèmes, a consisté en une étude bibliographique des contributions aux domaines des LCP et des lois de chocs multiples. Une illustration des difficultés de preuve d'existence et d'unicité de solutions au LCP est donnée sur le cas d'école que constitue l'Exemple de Painlevé. Nous avons effectué une étude complète de ce modèle, qui nous a permis de conclure quant à l'existence de solutions continues au LCP pour des coefficients de frottement supérieurs à ceux proposés jusqu'ici dans la littérature [22]. Nous sommes convaincus que les techniques d'analyses que nous avons employées pour cet exemple sont généralisables à des systèmes ayant un nombre de degrés de liberté plus élevé.

La compréhension de la problématique sous-jacente aux LCPs nous a permis d'établir des conditions nécessaires et suffisantes sur la commande pour forcer le décollage en certains points et empêcher le glissement aux autres points de contact du Bipède avec le sol. De même, des conditions sur les vitesses pré-impacts pour garantir le non-glissement en post-impact ont été dérivées. Ces conditions se traduisent par des contraintes non linéaires sur la commande. Aussi un contrôleur efficace de la marche du Bipède devra-t-il pouvoir prendre en compte de manière explicite des contraintes d'inégalité linéaires (bornes des actionneurs) ainsi que non linéaires (telles que celles citées plus haut). Les techniques de commande prédictive permettent une minimisation en ligne, sous contraintes d'égalité et d'inégalité, d'une fonction coût, qui pourrait correspondre, dans le cas du Bipède, à une erreur en position accompagnée de la consommation d'énergie. Une étude de mise en oeuvre de ces techniques pour la commande temps réel est en cours [7].

Commande optimale pour les robots Bipèdes

Les techniques de commande utilisables ou pertinentes pour un robot Bipède dépendent fortement de la tâche à effectuer et des caractéristiques de l'environnement. Ainsi, pour une simple tâche de marche en ligne droite sur sol plan sans obstacles, le robot Bipède est un système hautement redondant : il a bien plus de degrés de liberté (DDLs) qu'il n'est nécessaire d'un point de vue strictement cinématique pour marcher. Afin de spécifier le mouvement de ces articulations supplémentaires, on peut formuler un problème de commande optimale qui viserait à minimiser, soit le temps de déplacement, soit le parcours des articulations, soit la puissance, ou encore l'énergie dépensée Tous ces critères sont raisonnables, mais le mouvement résultant sera-t-il nécessairement semblable à celui de l'humain ? La marche chez les humains répond-elle à un critère d'optimalité?

Bien que la courbe d'énergie consommée lors de la marche humaine possède un minimum peu marqué, le critère minimisé est l'énergie calorifique par unité de distance parcourue. Cependant, il est fort probable que si la marche est optimale, elle minimise une fonction de coût multi-critères. La littérature disponible concernant l'optimalité de cette marche humaine est riche en théories et en suggestions ingénieuses, mais reste pauvre en validations expérimentales. Par exemple, l'influence de la taille des membres ou des malformations physiques sur le critère optimal est mal connue.

Notre travail sur un modèle de robot Bipède coplanaire à 4DDL montre qu'un robot avec des proportions anthropomorphiques (géométriques et inertielles) peut reproduire une phase de vol presque passivement. Ceci confirme les résultats d'autres chercheurs, aussi bien en biomécanique qu'en robotique. Notre travail vise à valider un schéma de commande optimale pour un cycle complet de marche, comprenant la phase de simple support ou phase de vol, la phase de double support ainsi que les très importantes phases de transition.

Après avoir réalisé une comparaison de trois méthodes de génération de trajectoires optimales pour le robot marcheur à 4DDL durant la phase de simple support [27], nous avons obtenu des trajectoires balistiques à partir d'une commande constante par morceaux, ce qui signifie que, durant la phase de simple support, aucune énergie n'est dépensée. Autrement dit, l'optimisation trouve les conditions initiales de vitesse telles que le mouvement soit réalisé sans énergie injectée, alors que les autres méthodes comparées induisent des coûts énergétiques bien supérieurs dûs à une restriction sur l'espace des commandes admissibles. Nous avons ensuite étendu les résultats obtenus à un cycle complet de marche comprenant les phases de simple et double support, ainsi que les phases de transition comme le contact pied/sol ou le décollage. Une série d'optimisations a été réalisée en faisant varier les paramètres de la marche (longueur de pas, vitesse moyenne de marche ...), ce qui a permis de réaliser un générateur de trajectoires optimales. Les résultats obtenus sont comparés à des courbes de consommation d'énergie de la marche humaine.

Par ailleurs, le problème de la modélisation du contact, loin d'être résolu, divise les communautés mécanicienne et automaticienne, car les modèles ``réalistes'' de la mécanique se révèlent être lourds en temps de calcul, donc mieux adaptés à la simulation qu'à l'implémentation. Au contraire, les modèles dédiés à la commande restent dans l'ensemble discontinus en temps. C'est pourquoi nous avons utilisé une modélisation de la surface en contact comme une surface compliante non linéaire, afin de ne plus avoir de discontinuité temporelle à l'impact [19]. Ce modèle n'est pas encore intégré dans l'optimisation car il convient d'étendre le résultat à un modèle surfacique représentant l'ensemble de la semelle en contact avec le sol.

Modèles de marcheurs simplifiés: le compas

Il a été prouvé qu'il était possible de construire des robots Bipèdes pouvant ``marcher'' pendant un temps infini le long de plans inclinés descendants, sans être actionnés. L'énergie permettant au robot de marcher ainsi indéfiniment provient simplement de la conversion de l'énergie potentielle de pesanteur du robot en énergie cinétique, l'atteinte d'un cycle stable étant liée à l'existence d'impacts [9].

Le but de notre étude est l'étude systématique de la marche passive d'un robot Bipède particulièrement simple appelé ``compas''. D'un point de vue cinématique, le compas est identique à un double pendule, possédant deux jambes sans genoux avec deux masses ponctuelles et une troisième masse ponctuelle au niveau de l'articulation de la hanche. Le mouvement du compas est décrit par trois paramètres : l'inclinaison de la pente, ses masses et ses longueurs normalisées. Nos principaux objectifs à travers cette étude sont :

Notre recherche suggère que la marche stable d'un modèle de robot donné est complètement déterminée par l'inclinaison de la pente. En d'autres termes, le cycle de marche stable décrit par le robot sur une pente donnée est unique. Cela laisse supposer l'existence d'un principe organisationnel de la locomotion Bipède. Ce résultat reste cependant en attente de preuves analytiques.

Par ailleurs, nous avons montré [30,2] qu'en réponse à une variation continue de l'un de ses paramètres, le cycle de marche régulier et stable évoluait généralement, à travers un régime de bifurcations caractérisées par des cycles asymétriques de complexité croissante, vers un régime de marche en apparence chaotique où deux pas successifs ne peuvent être identiques. Le robot peut maintenir ce cycle de marche indéfiniment. La stabilité de ce régime a été établie en utilisant des techniques numériques.

Nous envisageons de replacer ce travail dans le cadre plus général des machines passives qui ne comprennent pas seulement des corps massifs mais aussi d'autres éléments passifs. Ce travail est utile à la modélisation et la synthèse de la locomotion humaine naturelle, car les éléments passifs dans un robot jouent le rôle des amortisseurs et des élasticités propres aux articulations humaines. Nos recherches initiales montrent qu'un amortisseur placé dans l'articulation de la ``hanche'' du robot accroît d'une façon significative la stabilité et la souplesse des démarches qui en résultent.

Commande référencée vision

Nous nous intéressons ici à l'asservissement visuel d'un bras manipulateur auquel est fixée de manière rigide une caméra, en exprimant les lois de commande selon le formalisme des fonctions de tâche [4]. Dans ce cadre, nous nous intéressons plus particulièrement à un asservissement dans l'image, c'est-à-dire à la régulation à zéro de la différence entre une image courante et une image de référence. Nous lions alors la variation dans l'image à un torseur cinématique de commande que l'on souhaite appliquer au repère de commande du robot.

Cette relation fait apparaître une matrice, notée ${\mathbf L^T}$et appelée matrice d'interaction (ou Jacobien de l'image lorsque l'on considère les points dans les images) que l'on exprime dans le repère de commande et qui se décompose sous la forme suivante :

\begin{eqnarray*}{\mathbf L^T} = \left(\begin{array}{cc}-\alpha_{u} & \alph... ...R_X}^{T} \vec{\mathbf t}_X)\\ 0 & {\mathbf R_X}\end{array}\right)\end{eqnarray*}

$\alpha_{u}$, $\alpha_{v}$ et $\theta$ sont des paramètres de formation d'image, ${\mathbf L^T_c}$ est la matrice d'interaction canonique exprimée dans le repère de la caméra (dont la forme est connue), ${\mathbf A_s}(\bullet)$ représente la matrice antisymétrique associée au produit vectoriel et ${\mathbf R_X}$ et $\vec{\mathbf t}_X$ sont respectivement la matrice de rotation et le vecteur de translation de la transformation pince-caméra : lorsque le système composé de la pince et de la caméra se déplace, la caméra subit la transformation rigide ${\mathbf A} =({\mathbf R_A},\vec{\mathbf t}_ A)$ et la pince la transformation rigide ${\mathbf B} = ({\mathbf R_B},\vec{\mathbf t}_B)$. Ces deux déplacements sont reliés par l'équation de composition de changements de repère ${\mathbf A} {\mathbf X} ={\mathbf X} {\mathbf B} $.

Étalonnage en ligne :

Pour résoudre cette équation, dans le cas où ${\mathbf A}$ et ${\mathbf B}$ sont connus, nous la reformulons sous la forme :

\begin{displaymath}\underbrace{\begin{array}{c}\\ \left(\begin{array}{cc}... ...ay}\right)\\ \\ \end{array} }_{\displaystyle{\vec{\mathbf y}}}\end{displaymath}

$\otimes$ représente le produit de Kronecker et $\vec{\mathbf i}$,$\vec{\mathbf j}$ et $\vec{\mathbf k}$ sont les vecteurs lignes de la matrice ${\mathbf R_X }$.Cette équation est utilisée dans un filtre récursif ayant $\vec{\mathbf x}$pour vecteur d'état et $\vec{\mathbf y}$ pour vecteur de mesure. Les premiers résultats de simulation [12] montrent la convergence de ce filtre et son applicabilité aux mouvements de faible amplitude.

Étalonnage sans mire :

Dans la pratique, il est nécessaire de calculer le déplacement ${\mathbf A}$ de la caméra, qui ne peut pas être mesuré. Cela est généralement fait en estimant la pose d'un objet dont on connaît de manière très précise la forme.

Cette procédure peut être évitée en utilisant une reconstruction euclidienne [CH96] qui permet d'obtenir (à un facteur d'échelle près) les positions successives d'une caméra par rapport à une scène inconnue à partir d'une séquence d'images. Pour éliminer l'indétermination d'échelle, nous utilisons un invariant du mouvement, c'est-à-dire une valeur qui doit être identique pour le mouvement de la caméra et celui de la pince. Il s'agit, pour chaque mouvement, de la projection de sa translation sur l'axe de sa rotation. Le rapport du calcul de cet invariant pour le mouvement de la pince et de son calcul pour le mouvement reconstruit de la pince nous fournit le facteur d'échelle. Il ne reste plus alors qu'à appliquer les méthodes numériques des étalonnages classiques.

Animation et simulation

La majeure partie de ce travail est effectué en collaboration avec le projet IMAGIS. La simulation dynamique d'un robot marcheur est nécessaire à l'étude des commandes en boucle fermée qui seront mises en oeuvre sur le robot réel. La simulation doit de plus permettre de valider le comportement d'une commande dans un environnement, ce qui nécessite de calculer les interactions entre le robot et cet environnement, éventuellement à travers l'action de capteurs de contacts ou de proximité. Notre travail a consisté à considérer la dynamique dans l'animation des robots et à intégrer des modèles de capteurs dans la simulation.

Animation :

Pour calculer et évaluer les commandes d'un robot, les automaticiens ont recours à SCILAB. Cependant, d'une part, la visualisation du résultat est limitée, et d'autre part, la simulation de ce modèle mécanique ne prend en compte les forces d'interaction que très localement. Aussi, il s'est révélé nécessaire d'utiliser en plus un logiciel graphique permettant le calcul des interactions dans l'espace 3D. Notre choix s'est porté sur FABULE (développé chez IMAGIS), qui présente pour nous deux avantages: il est évolutif, de par sa nature modulaire, ce qui permet d'implémenter assez facilement de nouveaux algorithmes, et il possède déjà certaines méthodes de synthèse d'images implémentées, telles que le calcul de collisions entre objets ou le calcul de frottements de Coulomb.

Pour produire des simulations réalistes du robot dans son environnement, il est donc nécessaire de faire coopérer deux approches : l'une calcule la dynamique intrinsèque du robot et la commande à appliquer aux articulations ; l'autre synthétise un modèle d'environnement et calcule les interactions du robot avec cet environnement. Notre simulateur a donc été créé en interfaçant un logiciel mathématique et un logiciel d'animation, via un protocole de communication. Afin de faire coopérer les deux programmes, intégration d'un côté, gestion des évènements de l'autre, un travail de communication a été réalisé grâce au logiciel PVM (Parallel Virtual Machine). Ainsi, le programme de simulation peut être exécuté sur une machine dédiée aux calcul intensif, tandis que l'animation se fait sur une machine dédiée au graphisme.

Nous avons ensuite développé un ensemble de programmes, afin de créer sous FABULE le modèle d'un robot Bipède, défini par ses paramètres physiques, ainsi qu'un environnement de synthèse. Cette modélisation d'environnement a été effectuée pour tester de manière réaliste les capteurs envisagés (de contact, proximité ...), au travers de différentes marches possibles (sol plat, escalier, obstacles divers).

Ainsi, pour simuler la démarche du robot dans un environnement, SCILAB calcule de son côté la dynamique du mouvement, et communique les couples articulaires pour chaque articulation à FABULE; ce dernier les intégre avec les forces générées par le contact avec le sol pour obtenir la nouvelle position de chaque élément du robot. Le robot est ainsi directement animé sous FABULE. Ensuite, ces positions (ainsi que les vitesses et accélérations nouvellement obtenues) sont communiquées à SCILAB pour que celui-ci calcule la nouvelle dynamique du mouvement.

Simulation de capteurs :

Une autre facette de nos travaux concerne la modélisation et la simulation de capteurs. Une fois la dynamique de la marche traitée, le robot doit pouvoir s'adapter localement à son environnement : par exemple, lorsqu'il rencontre un obstacle, il doit modifier sa trajectoire. Il lui est donc nécessaire de connaître cet environnement, à l'aide de capteurs que nous devrons simuler. Ces capteurs pourront être de plusieurs types : des inclinomètres pour la mesure de la gravité, des semelles permettant d'obtenir une carte des pressions, des capteurs de proximité optiques ou ultrasonores.

Notre étude porte actuellement sur le développement d'un capteur proximétrique de base, pour lequel l'interaction avec un obstacle est calculée par lancer de rayon, technique fort bien maîtrisée en synthèse d'images. Ce capteur est placé sur le robot de manière interactive. Cela permet, entre autres, d'étudier les placements pertinents des capteurs de divers types, selon l'environnement considéré.

Contrôle de la posture

Le contrôle de la posture d'un robot nécessite la commande de son centre de masse. Nous avons montré que la position du centre de masse d'un système articulé arborescent quelconque était cinématiquement équivalente à celle de l'organe terminal d'une chaîne simple, purement séquentielle. Nous avons également, en collaboration avec le projet SHARP, entrepris l'étude du comportement du centre de masse d'un robot en interaction avec le sol à l'aide du logiciel Robot$\Phi$.

Contrôle et programmation



Participants : Alain Girault , Sofiane Abdou


Mots-clés : simulation, environnement de programmation, véhicules automatiques, automates, systèmes hybrides


Résumé : Ce thème regroupe les activités logicielles du projet. Notre but est de fournir un environnement de programmation adapté tout particulièrement aux systèmes robotiques. Le résultat est l'environnement ORCCAD (section [*]). Nos recherches sur ORCCAD visent aussi bien a faire progresser ce logiciel qu'à l'utiliser en grandeur réelle afin de programmer des robots : Staubli Rx90, véhicules Ligier et Cycab ...


Développement, simulation et vérification d'un protocole d'insertion

En collaboration avec Marco Antoniotti (UCB PATH project) et Akash Deshpande (idem), nous avons développé et mis en oeuvre une micro-simulation d'un protocole d'insertion de véhicules pour autoroutes automatiques. Ce travail est destiné à des véhicules équipés de contrôle d'allure intelligent et autonome (AICC selon la terminologie anglaise). Un véhicule avec AICC ajuste automatiquement sa vitesse en fonction du véhicule le précédant et des caractéristiques de l'autoroute. Concrètement, cela nécessite des capteurs ainsi que des actionneurs pour accélérer, freiner et tourner.

Le but de cette simulation était d'expérimenter un nouveau protocole d'insertion de véhicules dans le cadre d'un tracé et d'un trafic autoroutiers réels. Notre exemple a été établi selon une portion de l'Interstate 10 autour de Houston, Texas. Cette portion est longue de 10 kms et comporte trois voies d'accélération et trois sorties. Nous avons étudié deux conditions de trafic fournies par l'administration autoroutière de Houston : 1800 véhicules par heure en trafic faible et 4000 en trafic chargé.

Nous avons complètement programmé le protocole avec des composants SMART-AHS développés par l'équipe PATH de l'université de Californie à Berkeley [Des97]. Ces composants sont eux-mêmes programmés à l'aide du langage SHIFT [DGS97]. SHIFT est un langage de programmation permettant de simuler des réseaux dynamiques d'automates hybrides. Il est particulièrement bien adapté à de telles simulations de trafic car, d'une part le contrôleur des véhicules peut être naturellement décrit par un automate hybride, et d'autre part les véhicules peuvent être facilement introduits et enlevés de la simulation, puisque le réseau est dynamique. De plus cette approche est très flexible et modulaire. En particulier, il serait très facile de modifier l'actuel contrôleur afin de simuler d'autres scénarios, comme l'évitement d'obstacle ou la coopération entre véhicules.

L'algorithme que nous avons mis en oeuvre est intégré au contrôleur du véhicule. Il spécifie la liste des étapes à suivre pour qu'un véhicule dans une voie d'accélération ajuste sa vitesse en fonction de la voie principale, s'aligne sur un espace entre deux véhicules consécutifs, s'insère dès que les conditions de sécurité sont réunies, ou au contraire quitte la simulation en signalant un échec si ces conditions ne sont jamais satisfaites. De même, l'algorithme spécifie à quel moment un véhicule dans la voie principale doit céder le passage à un véhicule dans la voie d'accélération. De plus l'algorithme calcule à tout instant l'accélération longitudinale du véhicule en fonction de l'écart le séparant des véhicules le précédant immédiatement sur la voie principale et sur la voie d'accélération, des vitesses relatives, et de la vitesse nominale de l'autoroute.

Les résultats des simulations que nous avons effectuées montrent que des accidents se produisent en raison d'un phénomène de saturation de l'accélération. Nous avons montré que le délai nominal séparant deux véhicules consécutifs doit dépendre de la densité de trafic si l'on veut que tous les véhicules s'insèrent harmonieusement sur l'autoroute (c'est-à-dire sans accident ni congestion). Ce travail a donné lieu à deux publications [14,13].

Récemment, avec Sergio Yovine (VERIMAG et équipe PATH ), nous avons utilisé ce protocole comme étude de cas pour la vérification formelle. La principale difficulté vient du fait que le système à vérifier est un système hybride non linéaire. Actuellement, seule la classe des systèmes hybrides linéaires permet de faire des vérifications formelles, et encore, le succès n'est-il jamais garanti puisque cela fait intervenir des techniques d'approximation [HRP94]. Nous étudions donc des simplifications du calcul de l'accélération et des approximations par des fonctions linéaires par morceaux.

Définition et programmation d'une API pour SHIFT

SHIFT est un langage de programmation pour réseaux dynamiques d'automates hybrides [DGS97]. De tels systèmes sont constitués de composants qui peuvent être créés, interconnectés et détruits au fur et à mesure que le système évolue. Chaque composant a un comportement hybride constitué de phases continues séparées de transitions discrètes. Les composants peuvent évoluer indépendamment ou interagir par entrées/sorties ou événements exportés. Le réseau de ces interactions peut lui-même évoluer.

Ce modèle offre un niveau d'abstraction idéal pour décrire des applications complexes telles que des autoroutes automatiques, des contrôleurs de trafic aérien, des usines équipées de robots, des sous-marins, et tout autre système difficile à modéliser avec un modèle conventionnel. L'équipe PATH a développé un compilateur transformant un programme SHIFT en un programme C, ainsi qu'un exécutif simulant le programme source.

Dans ce contexte, nous avons mis en oeuvre plusieurs fonctionnalités nouvelles du langage (un opérateur de copie pour tableaux et ensembles, un état terminal implicite, un mécanisme d'héritage ...). Nous avons également défini et mis en oeuvre une interface de programmation (API selon la terminologie anglaise) qui fournit une vue externe de l'état courant d'une simulation : nombre, type et état courant des composants, valeur courante des variables internes ... Nous avons par conséquent défini des nouvelles structures de données pour représenter l'état interne d'une simulation, ainsi qu'un ensemble de fonctions pour y accéder. Nous avons également reprogrammé le debogueur en ligne de SHIFT à l'aide de l'API afin de la valider.

Etude du couplage d'automates d'état finis hiérarchiques avec des modèles de calcul parallèles

Cette étude, menée en collaboration avec Edward Lee (EECS Department of UCB) et Bilung Lee (idem), a donné lieu à une publication [31]. Les automates d'état finis sont un bon moyen pour spécifier un système informatique, car leur sémantique est simple et comprise par tous. Cependant, dès que la taille du système grandit, il devient impossible de le spécifier avec un automate, car celui-ci est beaucoup trop gros (plus d'un million d'états). C'est pourquoi les automates hiérarchiques ont été proposés. Pour aller encore plus loin, la possibilité de composer parallèlement plusieurs automates a été offerte : le formalisme STATECHARTS [Har87] est le premier exemple d'automates hiérarchiques parallèles. Dans STATECHARTS, le modèle de parallélisme est le modèle synchrone. Nous avons, pour notre part, étudié la combinaison des automates hiérarchiques avec différents modèles de calcul parallèles: flots de données, événements discrets, synchrone/réactif.

Notre approche permet de mélanger les divers modèles dans un ordre quelconque, et le nombre de niveaux de hiérarchie est illimité. On obtient ainsi des combinaisons hétérogènes, ce qui permet de construire des systèmes complexes à partir de composants modulaires, programmés séparément chacun avec le modèle parallèle qui lui est le mieux adapté.
Nous avons appelé ce nouveau modèle *CHARTS, le ``*'' étant la ``wild card'' d'UNIX. Ceci représente le fait que l'utilisateur a le choix du modèle de parallélisme, contrairement aux autres modèles dont nous avons parlé ci-dessus.

Spécification, vérification et programmation dans Praxitèle

Ce travail concerne la programmation de missions complexes pour des véhicules automatiques. Nous avons développé une approche structurée de spécification et de vérification pour une application définie dans le projet PRAXIT`ELE. Le scénario de la mission est le ramassage et la distribution de véhicules vides par un seul conducteur. Des lois de commandes longitudinale et latérale sont établies pour réaliser un ``train virtuel'' de véhicules sans lien matériel. Une fois que le le véhicule est arrivé à sa destination, il quitte le train pour se garer automatiquement [32]. Un générateur de trajectoire est alors nécessaire pour réaliser les manoeuvres de parking. Nous avons utilisé l'environnement ORCCAD pour programmer ces diverses tâches. Cela nous a amenés à développer une bibliothèque spécifique de lois de commandes pour nos véhicules automatiques.



previous up next contents Précédent : Logiciels Remonter : Projet BIP, Contrôle/commande de robots Suivant : Actions industrielles