Précédent : Logiciels Remonter : Projet BIP, Contrôle/commande de robots
Suivant : Actions industrielles
Participants : Emmanuel Cordier , Ambarish Goswami ,
Mihail Trandafir
Mots-clés : biomécanique
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.
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.
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.
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.
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].
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.
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.
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 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 :
où ,
et
sont des
paramètres de formation d'image,
est la
matrice d'interaction canonique exprimée dans le repère de la
caméra (dont la forme est connue),
représente la matrice antisymétrique associée au produit
vectoriel et
et
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
et la pince la transformation rigide
. Ces deux déplacements sont reliés par
l'équation de composition de changements de repère
.
Pour résoudre cette équation, dans le cas où et
sont connus, nous la reformulons sous
la forme :
où représente le produit de Kronecker et
,
et
sont
les vecteurs lignes de la matrice
.Cette
équation est utilisée dans un filtre récursif ayant
pour vecteur d'état et
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.
Dans la pratique, il est nécessaire de calculer le déplacement
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.
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.
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.
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é.
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.
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 ...
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.
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.
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.
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.