Sie sind auf Seite 1von 60

Rapport de stage

Guillaume de Cagny
Du 22 Mars au 27 Aot 2010 u

REMERCIEMENTS

Je tiens ` remercier toutes les personnes avec qui jai travaill tout au long de a e ces quelques mois, notamment Armand Yvet, Cristian Sandu, Sbastien Chaue rin, Vincent Ducrot, Franois Charlot, Mohamed Marouf, Paulo Resende et bien c entendu, tout particuli`rement mon tuteur de stage Clment Boussard, ainsi que e e ma tutrice Brigitte dAndra-Novel du ct de lcole des Mines. e oe e

De faon gnrale, je remercie lensemble de lquipe IMARA pour ces quelques c e e e mois agrables et enrichissants. e

Table des mati`res e


1 Introduction 1.1 Le contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 LINRIA et le projet IMARA . . . . . . . . . . . . . 1.1.2 Les vhicules . . . . . . . . . . . . . . . . . . . . . . e 1.1.3 Les capteurs . . . . . . . . . . . . . . . . . . . . . . 1.1.4 Un logiciel pour tout assembler : Intempora RTMaps 1.2 La mission . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Intrt dune telle plate-forme de simulation . . . . . ee 1.2.2 Le simulateur Pro-SiVIC . . . . . . . . . . . . . . . 1.2.3 Contenu de la mission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 6 8 9 10 10 11 12 14 14 14 15 15 16 16 16 17 17 17 17 18 19 19 25 25 26

2 Organisation technique et applications de la plate-forme de simulation 2.1 Des scripts Pro-SiVIC modulaires . . . . . . . . . . . . . . . . . . 2.1.1 Des scripts lmentaires . . . . . . . . . . . . . . . . . . . ee 2.1.2 Des scripts scnarios assemblant les prcdents . . . . . . e e e 2.1.3 Ajout facile de nouveaux scnarios . . . . . . . . . . . . . e 2.2 Une forte interchangeabilit . . . . . . . . . . . . . . . . . . . . . e 2.2.1 SivicLow2High . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 SivicHigh2Low . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Des composants capteurs ayant la mme forme que leurs e quivalents rels : . . . . . . . . . . . . . . . . . . . . . . . e e 2.3 Une plate-forme oprationnelle malgr quelques probl`mes rsiduels e e e e 2.3.1 Des algorithmes tests et valids . . . . . . . . . . . . . . e e 2.3.2 Une exploitation plus pousse de la simulation . . . . . . e 2.3.3 Quelques probl`mes rsiduels . . . . . . . . . . . . . . . . e e 3 Exploitation du simulateur pour amliorer des algorithmes de e contrle o 3.1 Le suivi de trajectoire . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Le suivi monotrace . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Prsentation de lalgorithme . . . . . . . . . . . . . . . . . e 3.2.2 Intrt de lalgorithme et perspectives de ralisation . . . ee e

3.2.3 3.2.4

fabrication dun composant RTMaps mettant en oeuvre lalgorithme . . . . . . . . . . . . . . . . . . . . . . . . . . le dport ` lentre de virage . . . . . . . . . . . . . . . . e a e

27 27 31 33

4 Conclusion 5 Annexe : Mode demploi du simulateur

Chapitre 1

Introduction
Ce rapport prsente lintgralit du travail eectu lors de mon stage de n e e e e dtudes ` lINRIA Rocquencourt. Dans un premier temps il prsentera lINe a e RIA, et plus particuli`rement le projet IMARA dont jai fait partie, ainsi que e le contexte du stage et les missions qui mont t aectes, puis une seconde ee e partie prsentera le travail que jai eectu. Une troisi`me partie prsentera les e e e e rsultats obtenus et les utilisations de la plate-forme de simulation que jai pu e raliser pour lINRIA. e

1.1
1.1.1

Le contexte
LINRIA et le projet IMARA

LINRIA LINRIA, Institut National de Recherche en Informatique et Automatique, est un centre national de recherche regroupant les comptences scientiques e publiques dans le domaines des sciences informatique et du contrle. On lui doit o plusieurs projets comme les logicels Scilab et Scicos, concurrents respectivement de Matlab et Simulink, ou encore le langage Caml. Le centre de recherche de Rocquencourt est le premier centre de lINRIA qui en compte depuis 7 autres partout en France. LINRIA a ft ses 40 ans en 2007. ee Le projet IMARA Lquipe IMARA est lquipe ` laquelle jai t aect. IMARA signiant e e a ee e Informatique, Mathmatiques, et Automatique pour la Route Automatise, e e ce projet est celui qui soccupe de crer la voiture de demain, en quipant le e e vhicule dune certaine intelligence pour vacuer tout ou partie de la fonction e e du conducteur, et ainsi obtenir une conduite plus optimale, moins risque ou e encore de nouvelles formes de transport urbain.

Ce projet fait lobjet dune JRU (Joint Research unit) avec le CAOR de lcole des Mines qui porte le nom de LaRA (La route automatise). Cette e e JRU permet de partager du matriel, notamment des vhicules, ainsi que des e e comptences. Ainsi plusieurs personnes travaillent partiellement ` lcole des e a e Mines et ` lINRIA Rocquencourt. a

Au sein de lINRIA, le projet IMARA a la particularit de se dmarquer des e e autres par le fait quil se fait pratiquement exclusivement en collaboration avec des entreprises prives ou des administrations, ainsi, plusieurs de ses projets e font lobjet de dmonstrations ou sont directement nancs par des entreprises e e telles que Valeo mais galement des structures plus petites telles que la PME e Modulowatt base ` Paris. e a Les projets dIMARA Bien entendu, la voiture sans conducteur est un projet tr`s large qui ne peut e pas tre trait comme un tout, cest pourquoi lquipe IMARA se divise en e e e plusieurs sous-projets qui recouvrent la majorit du probl`me. e e La communication : Une des facettes du projet est lquipe communie cation, qui se charge de mettre en oeuvre un rseau de communication e inter-vhicules ainsi quune communication vhicule-infrastructure. Pour e e ce faire, lutilisation de technologies vieillissantes est ` proscrire, et la a mise en oeuvre de technologies naissantes, telles que le protocole IPv6, ou encore dautres technologies enti`rement nouvelles et adaptes ` la come e a munication de courte dure, un vhicule ne restant ` porte dun autre e e a e vhicule ou dune portion dinfrastructure que sur une dure tr`s courte. e e e La camra linaire : Le projet de camra linaire est un projet de e e e e dveloppement de capteur qui permet de dterminer avec prcision la poe e e sition (x, y, ) dun metteur dans le rep`re du rcepteur, ce qui permet e e e dans la pratique de dterminer la position dun vhicule par rapport ` un e e a autre ainsi que son orientation (ce qui permet par exemple de dtecter si e un vhicule est en train de tourner) e Le suivi de vhicules en peloton : Cest un des projets sur lequel e jai le plus travaill. Il sagit de faire se suivre des vhicules pour former e e un peloton. La contrainte principale tant davoir lerreur latrale la plus e e faible possible, cest a dire que les vhicules doivent reproduire le plus ` e d`lement possible la trajectoire du prcdent, pour ne pas dborder dans e e e e les virages par exemple. Ici il sagit de suivi sans communication, cest ` a dire que les vhicules ne communiquent pas entre eux leur position par e des moyens de communications informatiques. La dtection doit se faire e soit au moyen de capteurs embarqus sur un vhicule (tel quun tlm`tre e e ee e laser) ou sur les deux vhicules (tel que la camra linaire) e e e 5

Le SLAM laser : (Simultaneous Localization and Mapping) : Ce projet est maintenant lun des plus aboutis de lquipe IMARA. Il consiste au e moyen dun ou plusieurs tlm`tre(s) laser de dtecter la forme de lenee e e vironnement dun vhicule et de crer une carte de cet environnement. e e Au fur et ` mesure que le vhicule se dplace, lalgorithme calcule le a e e dplacement de celui-ci en fonction du dplacement peru de lenvirone e c nement, et en dduit la position actuelle du vhicule par rapport ` cet e e a environnement. Cette technologie est particuli`rement intressante de par e e sa prcision (meilleure quun GPS), et un fonctionnement possible mme e e en intrieur ou dans des conditions o` le GPS ne fonctionne habituellement e u pas ou mal (montagnes...) Le suivi de trajectoire prenregistre : Ce projet est maintenant e e bien au point et consiste ` enregistrer une trajectoire avec un vhicule a e pour la reproduire plus tard sans conducteur. Ce syst`me est ` la base e a de dmonstrations ayant eu lieu notamment en Italie, et sur cette base e un syst`me de similaire au mtro a pu tre prsent : lutilisateur choisit e e e e e sa station et le vhicule rejoue les trajectoires prenregistres jusqu` la e e e a station choisie. Le projet AMARE : Ce projet, command par Modulowatt, consiste e a e ` prsenter un vhicule lectrique qui sattache automatiquement ` une e e a borne (un syst`me qui pourrait sapparenter au Vlib prsent dans Paris) e e e dans un premier temps puis ensuite dautre vhicules viendront sarrie mer au premier par le biais dune attache qui permettra de les recharger lectriquement et de se dplacer en peloton. e e et bien dautres. . . telles que de la dtection dobstacles, de pitons, du e e Cruise Control (adaptation de la vitesse en fonction du vhicule prcdent) e e e etc. . .

1.1.2

Les vhicules e

Le projet IMARA dispose dun matriel important, notamment au niveau e des vhicules : e 4 Citron C3 e

Figure 1.1 Les vhicules C3. e Appartenant ` la Joint Research Unit LaRA, ces voitures ne peuvent pas a tre modies dans leur motorisation mais servent ` tester des capteurs et les e e a

quipements de communication. Ainsi, une des C3 est notamment utilise pour e e dvelopper lalgorithme de SLAM. e 4 CyCabs Vhicules principaux du projet IMARA, les CyCabs sont des petits vhicules e e lectriques qui servent de plateformes de test ainsi que de dmonstrations. Faits e e sur mesure et adapts aux activits du projet IMARA, ils ont les caractristiques e e e suivantes : lgers : environ 300 kg. e dimensions : 1,90 m de longueur pour 1,20 m de largeur. un CyCab peut accueillir deux personnes avec des bagages. motorisation : quatre moteurs lectriques pouvant atteindre une vitesse e de 30 km/h. autonomie : deux heures dutilisation continue. un PC bas niveau sous Linux : ce PC recoit des consignes en vitesse pour chacune des roues, et en braquage des roues, et interagit avec llectronique e pour appliquer ces commandes. A noter que chacune des roues est commandable sparment, en vitesse et en braquage, dans la pratique, cette e e possibilit nest pas utilise et on reste au mod`le classique de la voiture e e e avec deux roues arri`res droites et une commande applique aux roues e e avant selon le mod`le bicyclette. e un PC haut niveau sous Windows : ce PC est celui qui excute le scnario e e dsir : il soccupe de toutes les interfaces homme/machine, des communie e cations, des capteurs et des algorithmes de traitement qui coordonnent le tout. Il excute ces scnarios par le biais dun logiciel de programmation e e graphique, RTMaps, cr par la socit Intempora et qui sera prsent ee ee e e dans la suite de ce rapport.

Figure 1.2 Le CyCab, vhicule phare du projet IMARA. e

4 CyBus Destins ` un usage de dmonstration, les CyBus, galement dnomms AGV e a e e e e sont construits sur le mme principe que les CyCabs mais peuvent accueillir plus e de passagers. Ils sont dclins dans deux mod`les, lAGV ouvert et lAGV ferm, e e e e plus proche dun vhicule traditionnel. e

Figure 1.3 Les CyBus, encore appels AGV. e

1.1.3

Les capteurs

Le projet IMARA utilise de nombreux capteurs pour permettre aux vhicules e de se rprer dans leur environnement ou danalyser celui-ci. Cela comprend : e e Des camras : Pour excuter un traitement dimage et doter le vhicule e e e dune vision. Des tlm`tres laser : Ces tlm`tres sont constitus dune diode laser ee e ee e e rotative qui envoie un nombre x dimpulsions par tour pour dterminer, e e sur une plage angulaire donne, la distance ` lobstacle le plus proche dans e a chaque direction. Des codeurs incrmentaux : gnralement xs sur les roues des vhicules, e e e e e ils donnent lindication du nombre de tours de roues eectus par chaque e roue. Selon la qualit du capteur, la prcision est de lordre dun 500`me e e e de tour de roue. Certaines techniques permettent de multiplier la prcision e par 4. Cela permet donc par une technique dintgration dobtenir la e position du vhicule. Ces capteurs permettent une excellente prcision e e mais ont linconvnient davoir une erreur qui saccumule et doivent donc e rguli`rement tre recals par un autre capteur. e e e e le GPS - RTK (Global Positioning System - Real Time Kinematic) : Bas sur un syst`me classique de GPS, le capteur est coupl ` e e ea une antenne xe dont la position est connue de faon extrmement prcise c e e et qui reoit galement le signal GPS. De cette faon lantenne calcule c e c

lerreur du GPS sur sa propre position et la transmet au vhicule qui e peut compenser sa propre erreur de position. L` encore la prcision est a e excellente, mais ncessite dtre ` porte de lantenne RTK. e e a e

1.1.4

Un logiciel pour tout assembler : Intempora RTMaps

Figure 1.4 Le logiciel RTMaps. Chaque brique bleue est un composant, les lignes oranges sont les liens entre les entres et sorties de donnes. e e Le logiciel RTMaps est au coeur des scnarios du projet IMARA : cest le e logiciel qui met en oeuvre tous les scnarios. A lorigine cr pour faire de la e ee fusion de donnes multicapteurs, il met en oeuvre des composants qui sont des e excutables avec des entres et des sorties de donnes dates et synchronises. e e e e e Ces composants sont organiss sous la forme dun diagramme o` lon dispose e u les composants voulus et lon connecte les sorties des uns avec les entres des e 9

autres. Une fois le diagramme cr, chaque composant sexcute et reoit des ee e c donnes, les traite et en renvoie. Il nest pas ncessaire que les composants aient e e des entres ou des sorties. Ainsi un gnrateur dimages na pas dentre mais e e e e une sortie, et un visualiseur dimage na pas de sortie mais juste une entre. e Les composants sont des excutables (sous Windows, ce sont des librairies e DLL) cods en C++ et peuvent donc interagir librement avec le syst`me. RTe e Maps fournit simplement un cadre pour lexcution et la forme de ces come posants. De ce fait, ce logiciel ore des possibilits tr`s larges, puisque lon peut e e rajouter nimporte quel composant excutant nimporte quelle action, et ore e galement une grande modularit, car tous les composants sont rutilisables et e e e il est tr`s facile de modier un diagramme pour crer un scnario lg`rement e e e e e dirent. e Ce logiciel est omniprsent dans le projet IMARA, ce qui fait que toutes les e briques de code dveloppes dans lquipe sont facilement assemblables en diae e e grammes et rutilisables, y compris par dautres. En association avec le syst`me e e SVN install dans lquipe, les composants sont de plus accessibles ` tous. e e a

1.2

La mission

Lintitul de mon stage tait Installation mise en oeuvre dune plate-forme e e de simulation physique raliste pour valider des algorithmes de platooning. e Cela a consist ` mettre en oeuvre le logiciel de simulation physique de vhicule ea e Pro-SiVIC et ` linterfacer avec RTMaps de telle sorte quil soit facile de passer a dun scnario rel ` un scnario simul. De faon ` obtenir un moyen simple de e e a e e c a valider des algorithmes de contrle de vhicule ou des algorithmes de traitement o e de donnes capteurs. Par la suite, il me fallait implmenter un algorithme de e e platooning tel que dcrit dans un article de Michel Parent et Plamen Petrov, et e exploiter les donnes produites pour pouvoir valider ou non cet algorithme. e

1.2.1

Intrt dune telle plate-forme de simulation e e

Malgr le nombre assez important de vhicules dont dispose lquipe IMARA, e e e tous ne sont pas disponibles en mme temps, du fait dune certaine mobilit des e e machines situes ` lintrieur, il arrive souvent, mme si un vhicule est libre, de e a e e e ne pas pouvoir lutiliser car le PC correspondant nest pas disponible et surtout, il est souvent intressant pour raliser des tests de changer la conguration des e e vhicules, comme la position dun capteur ou le type de capteur. Ces oprations, e e qui ncessitent un temps important pour tre ralises en rel, sont pratiquee e e e e ment instantanes en virtuel, puisquil sagit de modier ou dajouter quelques e lignes de code dans un script pour pouvoir les excuter. e De plus, dans la ralit, la validation de la prcision de certains algorithmes se e e e heurte ` un probl`me de mesurabilit : il nest pas possible dobtenir la position a e e relle dun vhicule, seulement de lestimer quelque soit la mthode utilise, e e e e que ce soit par odomtrie, par SLAM, par GPS ou autre. Dans le logiciel de e simulation, il est possible daccder ` un nombre important de valeurs exactes e a

10

ce qui permet de comparer facilement des algorithmes de traitement de donnes e et de mesurer leur erreur, dans le cas o` loeil nu ne permet pas dapprcier u e cette prcision. e Par ailleurs, le logiciel Pro-SiVIC tant conu pour fonctionner en parall`le e c e avec RTMaps (il lui transmet toutes ses informations et peut recevoir des commandes dRTMaps) il est un parall`le tout-`-fait naturel avec le matriel de e a e lINRIA, cest pourquoi jai essay dexploiter au maximum cette possibilit an e e de pouvoir interchanger les lments simuls sous Pro-SiVIC avec les vritables ee e e vhicules / capteurs de lINRIA, notamment en leur donnant le mme format e e pour les entres et sorties. e Enn, signalons quun tel simulateur ore des possibilits importantes de e dmonstration. Si le dplacement dun vhicule et lorganisation dune vritable e e e e dmonstration rel`ve dun projet ` part enti`re, la dmonstration dune simue e a e e lation est dune simplicit presque enfantine dans la mesure o` il est possible e u denregistrer des vidos et que la seule chose ` transporter est un chier. Dans e a le cas o` lon souhaiterait faire une dmonstration du simulateur en conservant u e les possibilits dinteraction et ne pas se contenter dune vido ge, il sue e e rait alors de dplacer lordinateur constituant la plate-forme de simulation pour e pouvoir tablir une dmonstration. e e

1.2.2

Le simulateur Pro-SiVIC

Le logiciel Pro-SiVIC est issu du logiciel Sivic, dvelopp conjointement par e e plusieurs laboratoires de recherche pour la plupart partenaires de lINRIA : le Laboratoire Central des Ponts et Chausses (LCPC), lINRETS et le Livic. A e lorigine un moteur open-source, ce logiciel est maintenant vendu par la start-up Civitec, qui a construit autour du concept original une nouvelle interface base e sur une fentre Windows o` lon peut rgler les param`tres sans passer par la e u e e console. Sivic est un moteur physique et graphique permettant de simuler de faon c raliste des vhicules dans un environnement. Le moteur int`gre un mod`le dye e e e namique de vhicule pouss, qui tient compte dans la simulation de param`tres e e e complexes tels que les amortisseurs, le rayon sous charge des roues ou encore le glissement. En outre lintrt principal de Sivic est de proposer dirents mod`les de ee e e capteurs reprenant la plupart des capteurs utiliss dans le projet IMARA : e tlm`tres laser, camras (pouvant tre utilises soit pour visualiser la sc`ne, ee e e e e e soit en tant que capteurs, auquel cas on peut leur ajouter des ltres de bruit, de ou...), codeurs incrmentaux pour lodomtrie... e e Ce logiciel est particuli`rement adapt ` Imara dans la mesure o` il est conu e ea u c pour fonctionner avec RTMaps : toutes les donnes capteur sont exploites par e e RTMaps tandis que celui ci retransmet une commande de couple ` appliquer au a vhicule. Ce transfert se fait au moyen de composants RTMaps fournis avec le e logiciel.

11

Figure 1.5 Le logiciel Pro-SiVIC.

1.2.3

Contenu de la mission

Mon stage sest droul en trois parties : e e Installation et prise en main du logiciel SiVIC. La premi`re partie de mon stage dans le projet Imara a t de mettre en e ee place le simulateur sur une machine acquise ` cet eet. Disposant dune congua ration puissante, celle-ci tait cense permettre ` lINRIA de faire fonctionner le e e a simulateur de faon immersive, avec trois crans, et des priphriques dinteracc e e e tion simulant les vhicules : volant, joystick, de faon ` obtenir une plate-forme e c a de dmonstration. e Pass cette installation, il fallait ajouter au simulateur les vhicules IMARA. e e Il sagissait donc dimplanter dans le simulateur des mod`les 3D des vhicules e e utiliss ` lINRIA, notamment le CyCab, et de les paramtrer comme ceuxe a e ci : rayon des roues, empattement, poids. . . an dobtenir un comportement de vhicule le plus proche possible des vhicules rels. e e e

12

Adaptation du simulateur au projet IMARA. Une fois le simulateur install, il fallait adapter son fonctionnement ` celui e a des projets de lINRIA, cest ` dire faire en sorte que des programmes, notama ment des diagrammes RTmaps, conus pour raliser des scnarios sur vhicules c e e e puissent tre rutiliss avec un minimum deort pour faire des simulations Sie e e VIC. Cela sest traduit par lcriture en C++ de plusieurs composants pour e RTMaps : un pour pouvoir commander le vhicule avec une commande en vitesse e comme un vritable CyCab. e un pour rcuprer les informations de la voiture et les formater au mme e e e format que les donnes sortant du PC bas niveau dun CyCab rel. e e un pour pouvoir obtenir une sensation immersive avec lachage sur trois crans et la possibilit de changer de camra en cliquant sur lcran. e e e e Utilisation du simulateur et exploitation de donnes e Une fois la plateforme de simulation prte et oprationnelle, jai pu men e e servir pour tudier et essayer damliorer des algorithmes de contrle. Plusieurs e e o algorithmes ont pu tre essays, soit ` des ns de dmonstration, soit ` des ns e e a e a de dboguage, mais deux ont t tudis dans leur fonctionnement et ont pu e ee e e tre travaills : e e lalgorithme de suivi dune trajectoire prenregistre. e e lalgorithme de commande en peloton correspondant ` la camra linaire. a e e Dans la section suivante, nous allons rentrer dans les dtails techniques de e mon travail sur la plate-forme de simulation.

13

Chapitre 2

Organisation technique et applications de la plate-forme de simulation


Comme dit prcdemment, la plate-forme de simulation est constitue dun e e e cadre logiciel (Pro-SiVIC / RTMaps) et dun certain nombre de petits outils permettant de substituer les programmes entre un vritable vhicule et un scnario e e e simul. Je vais maintenant prsenter tous ces outils que jai pu raliser pour e e e rendre lutilisation de la plate-forme la plus simple possible.

2.1

Des scripts Pro-SiVIC modulaires

Basiquement, Pro-SiVIC fonctionne avec une ligne de commande qui permet de lui ajouter des objets, de rgler leur proprits, dappeler leurs fonctions. Pour e ee obtenir un scnario, il faut regrouper toutes les commandes crant le scnario e e e (cration de voiture, choix du mod`le, rglage des param`tres...) dans un chier e e e e texte appel script. Il me fallait crire tous les scripts permettant dobtenir les e e scnarios usuels, et notamment ceux qui mont servi par la suite, ` savoir le e a suivi de trajectoire, le suivi monotrace et dautres.

2.1.1

Des scripts lmentaires ee

Pour que ces scripts soit rutilisables au maximum, ils ont t crs de faon e e e ee c modulaire, cest ` dire diviss en petits scripts. En eet, comme il existe une coma e mande qui excute toutes les commandes dun script (run fichier.script) il e est facile de diviser le code en plusieurs morceaux rutilisables. Ainsi de nome breux scripts lmentaires ont t crs : ee e e ee

14

des scripts environnement, permettant de choisir entre un environnement vide (plus lger) ou urbain. e 4 scripts crant une voiture, un CyBus ou un CyCab e 4 scripts ajoutant un tlm`tre laser ` la voiture concerne. ee e a e des scripts ajoutant des odom`tres ` chacun des vhicules. Ces odom`tres e a e e ont t rgls pour le projet AMARE et contiennent de cette faon le ee e e c mme nombre de ticks par tour de roue que ceux utiliss dans ce projet. e e des camras e des observeurs. Ces composants sont spciques au simulateur SiVIC et e permettent de transmettre toutes les donnes concernant un vhicule : e e rayon sous charge des roues, vitesse instantane de chaque roue, mais e aussi les valeurs exactes de param`tres plus usuels tels que la position e ou la vitesse du vhicule. e Ensuite, tous ces scripts ont t rutiliss dans des scripts correspondants ee e e cette fois ` des scnarios, qui peuvent tre mis en place et directement utiliss. a e e e

2.1.2

Des scripts scnarios assemblant les prcdents e e e

Voici une liste non exhaustive des scnarios crs : e ee Scenarios de suivi de trajectoire, en enregistrement et en rejeu, comportant un unique vhicule, en environnement urbain ou vide. e Scenarios de suivi monotrace : environnement urbain ou vide, avec deux ou quatre vhicules. e Scenario de SLAM : celui-ci a besoin par nature de lenvironnement urbain puisque le SLAM doit en dresser la carte. Scenario de parking automatique : celui-ci a t cr pour tester des algoe e ee rithmes de crneau automatique. e Scenario comportant une voiture avec des odom`tres, qui a t utilis pour e ee e AMARE pour compar la position calcule du vhicule avec sa position e e e relle. e ...

2.1.3

Ajout facile de nouveaux scnarios e

La liste prcdente laisse transpara quil est facile, avec les scripts lmentaires e e tre ee existants, de crer un scnario ou de modier un existant : pour rajouter un e e vhicule ou le modier, changer denvironnement, ajouter un capteur etc. . . , il e sut dappeler le script correspondant ` la place de celui quon veut remplacer. a Cela se traduit par la modication de quelques lignes de code, ce qui ` comparer a avec la modication dun vhicule rel permet une conomie de temps impore e e tante. On se reportera pour les dtails techniques au manuel en annexe de ce e rapport.

15

2.2

Une forte interchangeabilit e

Comme prcis, on souhaite pouvoir changer facilement un diagramme sie e e mul avec son quivalent rel. Pour cela il a fallu mettre en place deux compoe e e sants :

2.2.1

SivicLow2High

Ce composant est conu pour tre chang avec un composant utilis ` lINc e e e ea RIA dans les CyCabs et qui est dnomm CycabLow2High. Comme son nom e e le sugg`re, ce composant sert ` rcuprer linformation du PC bas niveau, noe a e e tamment la position et la vitesse du CyCab. Assez naturellement, ce composant rcup`re les informations sur le vhicule virtuel (` laide dun observeur) et les e e e a formate pour avoir les mmes sorties que CycabLow2High. e

Figure 2.1 Le contrleur PI, constitu de deux blocs RTMaps. o e

2.2.2

SivicHigh2Low

Ce composant, de la mme faon, est conu pour remplacer CyCabHigh2Low, e c c a ` savoir quil transmet une consigne de vitesse au vhicule virtuel. Cela pose e un lger probl`me dans la mesure o` un CyCab rel est command en vitesse, e e u e e alors quun vhicule de SiVIC est command en couple. Dans cette mesure, il e e a fallu implmenter un contrleur pour obtenir la bonne valeur de la vitesse e o dans un temps raisonnable. Il a t choisi dutiliser un contrleur classique de ee o type PI. (Proportionnel-Intgral). Pour que ce contrleur fonctionne, il est donc e o ncessaire davoir un feedback sur la vitesse relle du vhicule. Ce retour est bien e e e sr pris sur les sorties de SivicLow2High. Ce retour est la seule dirence entre u e les modules utiliss sur les scnarios rels, dans la mesure o` lutilisation de e e e u SivicHigh2Low requiert celle de SivicLow2High, chose qui nest pas ncessaire e sur les vritables CyCabs. e 16

Ces deux composants mont permis de trouver des quivalents ` linterface e a entre PC bas niveau et haut niveau. De la mme faon, des composants SiVIC e c correspondant aux dirents capteurs donnent les mmes donnes que leurs e e e quivalents rels : e e

2.2.3

Des composants capteurs ayant la mme forme que e leurs quivalents rels : e e

Les composants suivants, inclus dans Pro-SiVIC, ont une forme directement analogue ` celle de leurs quivalents rels. a e e ProSiVIC Telemetre schange avec AlascaXT qui est le composant qui e renvoie les informations du laser Alasca utilis ` lINRIA ea ProSiVIC Odometre renvoie les informations sur la distance parcourue, tel les codeurs incrmentaux. Cette information est quivalente ` un nombre e e a de ticks et peut tre transforme ` laide dun simple calcul. e e a ProSiVIC View renvoie une image, qui peut tre traite de la mme faon e e e c quun capteur camra. A noter quil y a un bien sur un risque que les e algorithmes de vision se comportent diremment sur une image simule, e e bien moins complexe quune image relle. e

2.3

Une plate-forme oprationnelle malgr quelques e e probl`mes rsiduels e e

En terme de rsultats, la plate-forme de simulation est pleinement oprationnelle. e e Il est tout ` fait possible de crer nimporte quel scnario et de le connecter ` a e e a un diagramme RTMaps, donc dexprimenter des algorithmes de contrle ou de e o traitement de donnes capteur, sur un environnement virtuel donc sans risque e et sans erreur de mesure.

2.3.1

Des algorithmes tests et valids e e

Plusieurs algorithmes ont t expriments ` laide de la plate-forme de siee e e a mulation : le SLAM, qui tait dj` au point et a montr une bonne performance e ea e le parking automatique, dont la simulation a permis de corriger les bugs. le suivi de trajectoire, qui a pu tre amlior. e e e le suivi monotrace pour la conduite en peloton, dont un probl`me a pu e tre mis en vidence, et pour lequel des tentatives damliorations ont pu e e e tre faites. e

2.3.2

Une exploitation plus pousse de la simulation e

Un autre des avantages de la simulation est que chaque donne peut tre e e exploite. Ainsi, il est possible denregistrer les trajectoires des vhicules, ce e e qui permet ensuite de les comparer dans le cas du suivi de trajectoire ou du 17

suivi monotrace. Dans le cas du SLAM, la simulation pourrait tre exploite en e e enregistrant les positions relles du vhicules et celles donnes par le SLAM, ce e e e qui permettrait de vrier la prcision de la localisation. e e Par ailleurs, il est galement possible de produire des vidos des simulations, e e ce qui a t fait pour les quatre exemples cits ci-dessus. De telles vidos ont un ee e e intrt indniable de dmonstration ou de prsentation des travaux de lINRIA. ee e e e

2.3.3

Quelques probl`mes rsiduels e e

D ` des probl`mes de performances graphiques de Pro-SiVIC, il nest pas ua e possible dobtenir une simulation satisfaisante en temps rels sur les trois crans, e e comme ce qui tait prvu au dpart. En eet, lutilisation systmatique deets e e e e graphiques sur tout lenvironnement demande une puissance de calcul colossale que mme les derni`res gnrations de processeurs graphiques nont pas pu e e e e orir. Cette fonctionnalit devra donc attendre une optimisation du moteur de e Pro-SiVIC. Dautre part, le rglage des amortisseurs sest avr dicile, malgr que e ee e le mod`le soit prsent dans le manuel de Pro-SiVIC et on observe toujours e e un tangage excessif des vhicules. Ce tangage est gnant dans la plupart des e e simulations qui utilisent un laser, car les donnes de celui-ci sont errones car e e celui-ci voit le sol lorsque le vhicule penche vers lavant. Un rglage plus n de e e ces amortisseurs virtuels, bas sur une tude de lamortisseur du CyCab rel, e e e serait souhaitable pour obtenir un rsultat plus d`le ` la ralit. e e a e e La partie suivante prsentera plus en dtail les rsultats de recherche obtenus e e e sur les algorithmes de suivi de trajectoire et de suivi monotrace.

18

Chapitre 3

Exploitation du simulateur pour amliorer des e algorithmes de contrle o


3.1 Le suivi de trajectoire

Cette section concerne lamlioration du suivi de trajectoire prenregistre e e e par le contrleur RoutePlanner de lINRIA. Ce contrleur prend en eet un o o chier en entre, ainsi quun point ` atteindre et calcule la trajectoire ` parcourir e a a a ` partir dune suite de points. La commande du CyCab se fait de faon classique avec une vitesse et un angle c de braquage. Ici, on applique une vitesse de rfrence arbitraire. La commande ee applique en braquage est un correcteur proportionnel de lerreur latrale et de e e lerreur en angle du type = K e + K e (3.1)

o` e est lcart latral avec la trajectoire et e lerreur dorientation du vhicule. u e e e Il est apparu que ce type de contrle perdait beaucoup dinformation en se o contentant dune correction derreur. Il est beaucoup plus judicieux dinclure un angle volant de rfrence, que lon peut soit enregistrer pendant lenregistrement ee de la trajectoire, soit calculer ensuite en fonction de la courbure, ce qui nous donne une commande en = ref + K e + K e (3.2)

19

Pour valider cette amlioration, nous utilisons le simulateur SiVIC pour ene registrer une trajectoire et la rejouer. Les graphiques des trajectoires suivies avec les direntes mthodes. En traant les trajectoires quon se rend compte e e c que sans le ref on observe eectivement un retard aux virages et parfois un phnom`ne doscillation. e e En rouge, sont traces les trajectoires du vhicule qui enregistre. En vert, les e e trajectoires reproduites par le contrleur. Deux trajectoires sont eectues, puis o e prsentes dabord sans angle de braquage prenregistr (en correction dere e e e reur) puis avec lamlioration qui consiste ` rajouter un angle de braquage de e a rfrence. ee

20

Figure 3.1 Sans langle de braquage.

21

Figure 3.2 Avec langle de braquage.

22

Figure 3.3 Sans langle de braquage.

23

Figure 3.4 Avec langle de braquage.

24

On constate bien une amlioration du suivi de trajectoire. Dans ce cas prcis, e e il serait sans doute facile de montrer mathmatiquement que la seconde mthode e e est meilleure que la premi`re. En revanche, pour des situations plus complexes, e lintrt de la simulation appara de faon claire, puisquune simple simulaee t c tion renseigne lutilisateur sur lintrt dun algorithme par rapport ` un autre. ee a Dans le cas o` a se rv`le concluant, il peut tre intressant dapprofondir les uc e e e e mathmatiques sous-jacentes, dans le cas contraire, cela permet de se rendre e compte instantanment que la piste suivie nest pas la bonne. Lutilisation du e simulateur rsulte donc encore une fois dans un gain de temps. e

3.2

Le suivi monotrace

Je vais maintenant prsenter un algorithme que jai pu tudier dapr`s lare e e ticle de Michel Parent et Plamen Petrov, Nonlinear Adaptive Control for Autonomous Vehicle Following. Cet article prsente une mthode de suivi qui e e permet dobtenir, sous certaines conditions, le suivi monotrace.

3.2.1

Prsentation de lalgorithme e

Figure 3.5 Algorithme de suivi monotrace. Il sagit, plutt que de recourir ` un asservissement de la distance autour o a dune valeur xe - ce qui pose des probl`mes de cutting the corner -, dasservir e e la position dun point ctif de la voiture avant sur celle dun autre point ctif

25

de la voiture arri`re. En loccurrence, on choisit un point en arri`re du vhicule e e e avant, le point R1r , et un point en avant du vhicule arri`re, le point R2f . e e On asservit alors la position de R2f sur celle de R1r , et si L1 et L2 sont les longueurs de la gure, alors, pour L1 = L2 le suivi monotrace sera obtenu en courbe stable. Par courbe stable, on entend lorsque le rayon de courbure est constant et tabli. e Prsentons maintenant lalgorithme en dtail : on se place dans le rep`re e e e local du vhicule de tte. On y calcule les quations direntielles rgissant les e e e e e erreurs : ex erreur en distance, ey erreur latrale, et e = 2 1 (attention e e nest pas une erreur au sens o` on ne cherche pas ` lannuler : en courbe, cette u a valeur nest pas nulle.) Ces equations sont : 0 ey v1 L1 + 2 ex 1 1 0 (3.3) o` (v1 , 1 ) et (v2 , 2 ) sont les vitesses linaires et angulaires des vhicules 1 u e e et 2. on op`re un changement de commande, et on pose deux commandes u1 et e u2 telles que : u1 cos e L2 sin e v2 = (3.4) u2 sin e L2 cos e 2 On suppose que L2 est non nul (ce cas ne correspond de toute faon pas ` c a une situation relle), ce qui nous permet dassurer que lon pourra passer dune e commande ` lautre. On obtient a ex = v1 + 1 ey + u1 ey = (L1 ex )1 + u2 On pose alors : u1 = kx ex + v1 1 ey u2 = ky ey (L1 ex )1 (3.6) (3.5) ex cos e ey = sin e e 0 L2 sin e 1 v2 L2 cos e 0 2 1 0

Ce contrleur permet dasservir la position du point ctif du vhicule arri`re o e e sur celui du vhicule avant, ce qui rpond en thorie au probl`me. Cependant, e e e e il reste a estimer les vitesses v1 et 1 , ce qui correspond ` la partie adaptative ` a du contrleur. Cette partie nayant pas t mise en place dans la simulation, je o ee ne la dcris pas ici. e

3.2.2

Intrt de lalgorithme et perspectives de ralisation e e e

Obtenir un suivi monotrace simple est une chose tr`s intressante pour e e mettre en place un accrochage immatriel entre plusieurs vhicules. Ainsi dans e e

26

le cadre du projet AMARE, qui utilise lui une accroche matrielle, un tel ale gorithme pourrait permettre de minimiser leort sur laccroche, ` condition de a ne pas avoir trop derreur dans la position relative des points ctifs. En loccurrence, cet algorithme a t mis en place pour tester la mise des vhicules en ee e peloton. Cet algorithme a pour intrt majeur de ne ncessiter pour sa mise en place ee e que tr`s peu dinformation : seules la position et lorientation du vhicule de e e tte dans le rep`re du vhicule suiveur sont requises. Or, ces informations sont e e e exactement celles qui sont donnes par la camra linaire, cest pourquoi il e e e appara tr`s intressant de dvelopper cet algorithme avec ce capteur. t e e e

3.2.3

fabrication dun composant RTMaps mettant en oeuvre lalgorithme

Dans la mesure o` lalgorithme a besoin dinformations sur la distance et u lorientation du vhicule suiveur dans le rep`re du leader, et dans la mesure e e o` le capteur camra linaire nest pas prsent dans SiVIC ces informations u e e e ont t rcupres dans les observeurs de SiVIC. Ce qui constitue une facilit, ee e ee e puisquon rcup`re position et orientations relles de chaque vhicule, avant de e e e e calculer les informations qui nous intressent. Cela vite les erreurs de mesure e e et de capteurs. En revanche pour implmenter cet algorithme sur vhicule il e e faudra comprendre le fonctionnement des estimes et les implmenter. e e Les premiers rsultats de simulation conrment le bon fonctionnement de e lalgorithme. on constate bien un suivi monotrace dans les courbes stables.

3.2.4

le dport ` lentre de virage e a e

Il y a toutefois un phnom`ne de dport en entre de virage : le vhicule e e e e e suiveur commence par faire un dport dans la direction oppose du virage du e e vhicule de tte. Lexploitation des donnes de simulation ont clairement fait e e e appara ce dport de faon plus claire que la simple observation du comportre e c tement sur vido. Le probl`me tant que ces erreurs saccumulent et nissent e e e au quatri`me vhicule par atteindre des erreurs proches du m`tre. Ce nest pas e e e acceptable et jai par la suite tent de voir comment amliorer ce rsultat. e e e Description du phnom`ne e e Commenons par dcrire le probl`me, qui est intrins`que au principe de c e e e lalgorithme : en eet, le fait dasservir un point ctif sur un autre correspond a ` syst`me de remorquage. Or, sur un convoi de remorques, il est tout-`-fait e a logique dobtenir ce genre de comportement : en eet, si on suppose qu` un a instant donn le vhicule entre en virage vers la droite, alors laccroche, qui est e e situe en arri`re du vhicule, va commencer par tourner ` gauche ! Il ne sagit e e e a donc pas dune erreur dans le code ou dans lalgorithme mais bien intrins`que e au fonctionnement de lalgorithme.

27

Figure 3.6 La trajectoire suivie par quatre vhicules en peloton. e Correction du probl`me e Pass cette remarque, nous avons essay plusieurs mthodes pour tenter de e e e corriger le probl`me : faire varier le point daccroche entre les voitures, insrer e e un deuxi`me point daccroche, et dautres... Une mthode a donn quelques e e e rsultats : il sagit de vrier dans le composant, que la commande volant que e e lon souhaite appliquer nest pas contradictoire, cest-`-dire ne va pas amplier a lerreur e . Cela rsulte dans une tr`s bonne amlioration de lentre de virage. e e e e En revanche, le fait de refuser de tourner dans le sens de e est nuisible au suivi monotrace puisque les corrections ne peuvent se faire que dans un sens. Cette mthode donne toutefois de tr`s bon rsultats dans certains cas, notamment e e e lorsque la trajectoire du vhicule leader est simple (avancer, tourner, avancer, e tourner)

28

Figure 3.7 Illustration du dport lors des changements de courbure : Si on e consid`re que les deux vhicules suivent exactement la mme trace, sur une e e e portion de courbure constante (un arc de cercle), les accroches vont suivre une trajectoire concentrique ` celle du vhicule. Lors dun changement de courbure, a e lattache du vhicule avant va suivre la trace rouge, alors que celle du vhicule e e arri`re va suivre la trace verte. Ce qui explique que lalgorithme ne peut assurer e un suivi monotrace lors des changements de courbure. On obtient certes une mthode perfectible, mais la simulation a permis e didentier un probl`me et de commencer ` chercher des solutions. Cela montre e a une fois de plus lintrt pratique quun tel simulateur peut avoir dans un projet ee de recherche tel quIMARA.

29

Figure 3.8 Trajectoire ainsi 30 corrige, ici avec deux vhicules. e e

Chapitre 4

Conclusion
Ce stage maura permis dapprhender concr`tement un projet de recherche e e intressant et de raliser un outil utile et pratique pour le dveloppement de e e e nouveaux algorithmes. Le fait davoir un sujet de stage au croisement de beaucoup des projets de lquipe IMARA a t tr`s instructif, dans la mesure o` e ee e u jai pu ctoyer de nombreux projets et avoir un peu de recul pour pouvoir avoir o une vision globale sur les projets en cours. Jai ainsi pu me rendre compte plus ecacement des forces et faiblesses de lINRIA. Dune faon gnrale, ce stage ma permis dapprhender le monde de la c e e e recherche publique, avec ses avantages et ses inconvnients, dont je vais dcrire e e ce que jai peru. Dune faon gnrale, lINRIA dispose dun excellent confort c c e e matriel : le budget pour lachat de matriel est tr`s large et plusieurs dpenses e e e e importantes ont pu tre faites autour de moi lors de mon stage. Jai moi-mme e e eu loccasion de commander du matriel, certes pour un budget limit (environ e e 1000 euros) mais qui na pos aucun probl`me de vrication. Par ailleurs, la e e e rputation de lINRIA lui permet de travailler avec de nombreux partenaires et e sur de nombreux projets. En revanche, lINRIA comme la plupart des instances publiques soure du cloisonnement des budgets, cest-`-dire que mme si le budget allou au matriel a e e e est tr`s important, le budget humain est beaucoup plus strict : Mme la proe e longation dun mois du stage dun de mes coll`gues, cette fois, doit tre pese e e e avant dtre valide. Dune faon gnrale, jai cru comprendre que le projet e e c e e IMARA manque de main-doeuvre qualie sur les sujets techniques autres que e la recherche pure : aussitt embauch, un coll`gue lectronicien a eu une charge o e e e de travail importante, et a pu dbloquer des projets pour lesquels il manquait e justement cette comptence, ou du moins les personnes qualies taient dj` e e e ea charges de plusieurs autres projets. e Par ailleurs, le fort taux de renouvellement, du au fait que lessentiel des personnels sont en CDD, en stage ou en th`se, pose ncessairement des probl`mes e e e de transfert de comptences ` plus ou moins long terme. Mme si je nai pas e a e t aect par le probl`me, dautres personnes autour de moi ont t gnes par ee e e ee e e un manque de donnes sur leur probl`me alors que plusieurs personnes avaient e e 31

trait le sujet auparavant. Ce probl`me-ci est probablement intrins`que ` la e e e a fonction publique qui recrute sur concours ses permanents et nouvre que peu de postes. De mani`re gnrale, ce contact avec la recherche aura t enrichissant tout e e e ee en me permettant de produire moi-mme un projet fonctionnel et qui peut tre e e utile ` beaucoup, ce qui est toujours agrable et intressant. a e e

32

Chapitre 5

Annexe : Mode demploi du simulateur

33

INRIA Simulator User Manual


Guillaume de Cagny
August 24th, 2010

0.1

Introduction

This document provides the les to use and how to use all the software to make physically-realistic simulations using RTMaps and Pro-SiVIC. In this document, which is part of my internship report, I will provide every piece of technical information I used or gathered during my internship, so that new users can nd quickly all the information needed to run or modify the simulation platform. We will assume that the reader has basic knowledge of how to use RTMaps. For most operations, screenshots are provided to make it as easy as possible.

Grey boxes present code samples , commands to type or script files . They present the code needed to make an operation or the code used to build this operation .

Yellow boxes p r e s e n t some t i p s o r some u s e f u l i n f o r m a t i o n t o make an o p e r a t i o n e a s i e r o r more e f f i c i e n t .

Contents
0.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 3 3 3 4 4 7 7 9 15 15 18 1 The Basics: how to use the Inria Simulator 1.0.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 1.1 How to use Existing Sivic Scenarios . . . . . . . . . . . . . 1.1.1 Locate Needed Files . . . . . . . . . . . . . . . . . . 1.1.2 On Pro-SiVIC . . . . . . . . . . . . . . . . . . . . . 1.1.3 On RTMaps . . . . . . . . . . . . . . . . . . . . . . . 1.2 How to create new SiVIC Scenarios with existing elements. 1.2.1 Create a new Pro-SiVIC script . . . . . . . . . . . . 1.2.2 Pro-SiVIC RTMaps modules . . . . . . . . . . . . . 1.3 How to exploit the simulation data . . . . . . . . . . . . . . 1.3.1 How to plot the trajectory of the simulated car . . . 1.3.2 How to make a video of the simulation . . . . . . . .

2 How to make enhancements to the simulation platform 20 2.1 How to add new elements to SiVIC (non-existing elements) to build more complex simulations . . . . . . . . . . . . . . . . . . . 20 2.1.1 The camera script . . . . . . . . . . . . . . . . . . . . . . 20 2.1.2 The Vehicule1.script . . . . . . . . . . . . . . . . . . . . . 22 2.2 How to add a new car model to SiVIC . . . . . . . . . . . . . . . 24 2.2.1 .mesh les : the 3D les used by SiVIC . . . . . . . . . . 25

Chapter 1

The Basics: how to use the Inria Simulator


1.0.1 Introduction
This section will describe the organisation of the RTMaps/Pro-SiVIC simulation platform. Pro-SiVIC is a simulation software that is designed to make physically realistic simulations with cars. It comes with several included car physical models and 3D models. It allows the user to manually control the car, load a recorded trajectory (without physics) and to control the car with RTMaps modules. This last possibility is the most useful, because it will allow to control it with control algorithms, with the exactly same modules which are used to control a real CyCab.

1.1
1.1.1

How to use Existing Sivic Scenarios


Locate Needed Files

To play a scenario we need two things. The RTMaps diagram with the desired modules The Pro-SiVIC script that creates a simulation with the desired environment, the desired vehicles with proper equipment (cameras, laser telemeters, ...) here is a list of the existing scenarios: All RTMaps diagrams in relation with sivic have a name beginning with sivic whereas the SiVIC scripts begin with Scenario-. To execute those scripts in an urban environment with buildings, replace Scenario- with ScenarioU-.

The scenarios are located in the SVN, so if X:\is the SVN directory, all the needed objects are located in X:\scenarios\ internal\Sivic\. The diagrams are in the diagrams subfolder. The Pro-SiVIC scripts are located in C:\Pro-SiVIC\scripts in the simulator. single-trace following : in Pro-SiVIC : Scenario-followController.script (4 vehicles) or Scenario-followController2.script (2 vehicles) in RTMaps : sivic cycab manual play follow rec.rtd trajectory replay in Pro-SiVIC : Scenario-replay.script in RTMaps : sivic cycab trajectory replay.rtd trajectory replay

1.1.2

On Pro-SiVIC

in the console. This will load the environment and create all the objects needed for the chosen scenario. It is also possible to run a script with the Open button in Pro-SiVIC. In that case, the les are located in C:\ProgramFiles(x86)\Pro-SiVIC\scripts. when you are ready to connect SiVIC with RTMaps, type
run scenario . script

To launch an scenario, you need to launch Pro-SiVIC (do not forget to have the SG-Lock dongle plugged in) and type

in the console.
run goRTMaps

The goRTMaps and stopRTMaps scripts These are general scripts. goRTMaps puts every created object to its RTMaps mode. Every car, every sensor will be RTMaps-enabled. They contain commands for every possible object but some scenarios dont use some of these objects. In that case Pro-SiVIC will give you Object not found errors. This is normal. stopRTMaps puts every component to the O mode.

1.1.3

On RTMaps

Load the diagram in RTMaps, then run it. Do not forget to run goRTMaps in Pro-SiVIC before this. 4

Figure 1.1: type run scenario.script

Figure 1.2: ... or open it with the menu

The cars The pre-created elements contain up to four vehicles. The scripts are named Vehicule1.script to Vehicule4.script.
run Simulateur / Vehicule1 . script # for a Cycab run Simulateur / Vehicule1mini . script # for a mini run Simulateur / Vehicule1bus . script # for a CyBus

Of c o u r s e , i t s o n l y p o s s i b l e t o u s e each "slot" once . To c r e a t e one CyCab and one CyBus , type : run Simulateur / Vehicule1 . script run Simulateur / Vehicule2bus . script The telemeters, odometers To add telemeters to a vehicle, the scripts are named VehiculeXYZ.script, where X is the vehicle number (ie. Vehicule 1), Y is the type of vehicle and Z is the sensor. For example, to add laser telemeters to the 2nd vehicle which is a CyBus type:
run Simulateur / V e h i c u l e 2 C y b u s l a s e r . script

There are scripts that can add several sensors to the vehicle.

The observers For almost all simulations an observer for each vehicle will be required. This observer is a component which monitors every aspect of the vehicle : speed and position vectors, heading and steering angles, each wheel speed and radius, and more. It is needed to control the vehicle with RTMaps. As for telemeters and odometers, There are scripts for each of the four vehicles, but there is no need to provide the type of vehicle :
run Simulateur / Vehicle1obs . script

The cameras There are three cameras scripts : one basic with three cameras for the rst vehicle. The others add a fourth camera with a top view (useful to watch the vehicles trajectory.) but the good one to use depends whether there is a single or several cars.
run Simulateur / Cameras . script run Simulateur / C a me ra s Vo it ur e 2 . script # if there are at least two cars run Simulateur / C a m e r a s S a n s V o i t u r e 2 . script # if there is only one car .

A crucial element : sivicTime To be able to use the memory interface, it is necessary to create a sivicTime object. In every scenario, it is called time.
new sivicTime time

A simple script example : ScenarioU-followController.script

This paragraph will detail the ScenarioU-followController.script and its code. As the name explains, it is a scenario designed to be used with the follow controller, and it uses an urban environment (ScenarioU). This is design to prepare the control algorithms that will be used with the linear camera. As the linear camera doesnt exist in SiVIC, there are only observers, and the linear camera data is calculated in RTMaps from the positions of the cars.
# these four scripts come with SiVIC and create an Urban environment run scenario - urbain / SiVIC - Environnement - Urbain . script run scenario - urbain / objet . script run scenario - urbain / skate . script run scenario - urbain / batiment - texture . script

# now we need to create 4 cars , with observers . # we can see that it is not necessary to execute the observer script right after creating the vehicle run run run run run run run run Simulateur / Vehicule1 . script Simulateur / Vehicule2 . script Simulateur / Vehicule1obs . script Simulateur / Vehicule2obs . script Simulateur / Vehicule3 . script Simulateur / Vehicule4 . script Simulateur / Vehicule3obs . script Simulateur / Vehicule4obs . script

# now let s create cameras . There are more than 2 vehicles so we use C am er as V oi tu r e2 . script run Simulateur / Cameras . script run Simulateur / C a me ra s Vo it ur e 2 . script

# don t forget to create a clock . new sivicTime time

1.2.2

Pro-SiVIC RTMaps modules

To interface RTMaps with Pro-SiVIC, several components are needed. Here will be described all the components needed to make the Sivic-RTMaps interface work. The Pro-SiVIC package The requested modules are located in two packages : Pro-SiVIC.pck which is the package that comes with Pro-SiVIC and contain all the modules to connect RTMaps to the cars and other objects. 9

Figure 1.3: Put the Sivic clock as Main Clock SiVIC.pck which contains basic control algorithms (PI control) which allows to control vehicles with a speed rather than a couple (which is more adapted to CyCabs and CyBus.) The Pro-SiVIC clock First, the Pro-SiVIC clock is required to ensure that RTMaps and SiVIC are well synchronized. First add the clock (from Pro-SiVIC package) and then dene it as the main clock. Pro-SiVIC modules Here is the list of the modules included in the Pro-SiVIC package. 10

ProSiVIC VecteurDoubleVersRtMaps : This module gives the information from a sivicCarObserver sivic object. ProSiVIC Accelerations : This module allow to transmit an acceleration value to the specied car. Its possible to set which wheels are subject to this acceleration. Do not use ProSiVIC Acceleration (without an s) as it sets the acceleration on the front-left wheel only. ProSiVIC View : This modules has an image output that is the specied view. TempsProSiVIC : This is a RTMaps clock. It has no input nor output, but needs to be set as main clock in RTMaps. ProSiVIC Braquage : This module controls a cars steering angle. Attention : SiVIC uses positive values to turn right and negatives to turn left, so its often necessary to multiply the value by (-1). ProSiVIC Telemetre : This module gives the information from the sivic telemeter. This is a oat vector that gives centimeter values. ProSiVIC Odometre : This module gives the information from the sivic odometer. It has a Distance output and a Speed output. The four-camera display SiVIC currently doesnt have its own fullscreen display. As a workaround, the Pro-SiVIC.pck package contains a module to display the camera image and RTMaps can display it with a DirectShow module. In the rtmaps simulateur tools.pck package, there is an ImageMultiplexer module that allow to display a camera on a screen and switch camera by clicking on the screen.

11

The objects names To link an RTMaps module to its corresponding Sivic object, the name of the Sivic object has to be provided in the RTMaps module properties. The pre-created sivic scripts gives the following names : The vehicles : car, car2, car3, car4 (no matter the vehicle type) The observers : obs, obs2, obs3, obs4. The cameras : view, viewg (left), viewd, view2 (view from the second vehicle), vct (top view) The telemeters : laser, laser2, laser3, laser4 12

Figure 1.4: Provide the object name in the properties

13

The odometers : odo1left, odo1right, odo2left, odo2right, etc. The clock : time. To drive the vehicle with a speed instead of an acceleration The SiVIC.pck package contains a PI controller that allows to speed-control the vehicle. To use it, the vehicle need to have an observer attached and the following RTMaps modules :

Figure 1.5: The PI controller

SivicLow2High and SivicHigh2Low SivicHigh2Low and SivicLow2High can be found in the SiVIC.pck package. The usual INRIA diagrams use components called Low2High and High2Low, which respectly gather data and gives orders to the low-level part of the vehicles. These have the same role for simulated cars. The dierence is that to control the vehicle with a PI the SivicHigh2Low needs the actual speed of the vehicle. The source of this project can be found on the IMARA SVN. Launching the new simulation To launch the simulation, rst load the Pro-SiVIC script, then type run goRTMaps in the Pro-SiVIC console and then play the RTMaps diagram. Most times the simulation doesnt work the rst time (FIFO was not found message), so the RTMaps diagram has to be stopped and run again. The run goRTMaps command p u t s e v e r y car , o b s e r v e r , t e l e m e t e r e t c . i n t h e i r RTMaps mode . In t h i s mode , they need t o have t h e i r c o u n t e r p a r t i n RTMaps t h a t r e a d s t h e data , o t h e r w i s e they w i l l b l o c k Pro SiVIC . I f t h e r e i s a need t o have o n l y a p a r t o f 14

Figure 1.6: Creating a recorder.

Figure 1.7: Setting the le folder. Plot the trajectory using Gnuplot Gnuplot is a little utility coming from the Linux community and is installed on the simulator. Scripts have been built to plot two or four trajectories to compare them in order to measure the error of the following controller. To run 16

these, take two or four m les and put them in the enregistrements folder of the Desktop. They have to be named voiture1.m, voiture2.m (and voiture3.m and voiture4.m if any). Then launch Gnuplot from the quick launch icon and type in load plotscript2.txt for two cars or load plotscript.txt for four cars.

Figure 1.8: Launching gnuplot.

17

Figure 1.9: Plotting the trajectory.

1.3.2

How to make a video of the simulation

As for the trajectories, the recorder will record the images coming from the SivicCamera component. Create a recorder and plug the output of the sivicCamera. In the properties windows, select jpg les and check the two boxes. This will create one .jpg le per image coming from sivic. Run the simulation and wait a little before launching the interesting (if there is a controlled vehicle, wait about 30 seconds before moving it)

Figure 1.10: Recording the images.

18

When the simulation is nished, stop it. In the folder you specied, there will be a lot of jpg les. mencoder is installed on the simulator to make a video from the jpg les. ! ! Attention : ! ! t h e f i l e s a r e named v i d e o 1 . jpg , v i d e o 2 . j p g . . . videoYYY . j p g . Due t o t h e a l p h a b e t i c s o r t i n g , t h e f i l e s w i l l we be s o r t e d f i l e 1 . jpg , f i l e 1 0 . jpg , f i l e 1 1 . j p g . . . f i l e 1 9 . jpg , f i l e 2 . jpg , f i l e 2 0 . j p g . . . This w i l l r e s u l t i n i n c o h e r e n c i e s i n t h e v i d e o . To a v o i d t h i s , d e l e t e t h e f i r s t 99 o r 999 f i l e s . ( That s why i t i s recommended t o w a i t some time b e f o r e t h e b e g i n n i n g o f t h e s i m u l a t i o n ) Then open a Windows shell (cmd.exe) and go to the jpg les directory (ie. if the les are in C:\videoles\ type cd C:\videofiles\) then run the following command line :
mencoder mf ://*. jpg - mf w =320: h =240: fps =25: type = jpeg - ovc lavc - lavcopts vcodec = mpeg4 -o output . avi

Figure 1.11: Encoding the video.

19

Chapter 2

How to make enhancements to the simulation platform


2.1 How to add new elements to SiVIC (nonexisting elements) to build more complex simulations

For particular simulations, there could be a need of elements which are not yet coded in scripts, like more vehicles, dierent cameras or cameras used as sensors, new 3D models... Here will be explained and commented how the scripts were created and how to modify them. This will not be exhaustive, there are more information in the Pro-SiVIC manual. But most of the code can be re-used, and many upgrades can be done by duplicating the script les and modifying them.

2.1.1

The camera script

Here is the description of the Cameras.script script.


# internal sight from the first vehicle new sivicCamera cam new sivicVu eCamera view # left and right views new sivicCamera new sivicCamera new sivicVu eCamera new sivicVu eCamera camg camd viewg viewd

# # # # # # # # # # # # # # # # # # # # # # # VEHICULE 1 # # # # # # # # # # # # # # # # # # # # # # # # # #

# this is used to control cameras with the keyboard inside SiVIC , and is also used to control the cars when they are in mode 0 new m g P o s i t i o n C o n t r o l l e r cont # first settings to do with the camera . the Global position isn t used because it will then be attached to the car

20

cam . S e t G l o b a l P o s i t i o n cam . LocalRotate cam . Rotate cam . SetZFar cam . SetFocale camg . S e t G l o b a l P o s i t i o n camg . LocalRotate camg . Rotate camg . SetZFar camg . SetFocale camd . LocalRotate camd . Rotate camd . SetZFar camd . SetFocale

250.0 70.0 4 90.0 0.0 0.0 0.0 0.0 0.0 5000 2.0 1250.0 70.0 4 90.0 0.0 0.0 0.0 0.0 0.0 5000 2.0 90.0 0.0 0.0 0.0 0.0 0.0 5000 2.0

# this attaches the camera to the vehicle cam . MakeChildOf chassis # this puts the camera in the right way cam . Lo c al Po st R ot at e 0.0 -90.0 0.0 # the camera looks a little down cam . Lo c al Po st R ot at e -1.0 0.0 0.0 # this line decides of the position of the camera inside the vehicle cam . S e t L o c a l P o s i t i o n .288534 0 1.3 # same thing for the others cameras camg . MakeChildOf chassis camg . Lo ca l Po st Ro t at e 0.0 -90.0 0.0 camg . Lo ca l Po st Ro t at e camg . S e t L o c a l P o s i t i o n camg . LocalRotate camd . MakeChildOf camd . Lo ca l Po st Ro t at e camd . Lo ca l Po st Ro t at e camd . S e t L o c a l P o s i t i o n camd . LocalRotate -1.0 0.0 0.0 .288534 0 1.3 0 0 70 chassis 0.0 -90.0 0.0 -1.0 0.0 0.0 .288534 0 1.3 0 0 -70

# Objects view , view1 et view2 with type s ivicVueC amera : # this is an image buffer where the camera image is put . # ---------------------------------------------------------view . SetViewport 0 0 00% 00% # we cannot see the camera inside SiVIC ( display through RTMaps ) view . SetRenderSize 960 600 # resolution view . SetCamera cam # attach the view to the camera view . SetPath ../ Capteurs / sivicVu eCamera / # if one want to record the images with SiVIC . view . SetFileName camera view . SetExtension . cap view . SetFrequence 25.000000 # 25 fps view . SetPeriodeOn 0.040000 view . S e t P e r i o d e R e c o r d 0.040000 view . Se tR e co rd Fo r ma t pgm view . SetImageType rgb view . SetRenderer r # the renderer is created at the beginning of the scenario and every view must be attached to it view . SetColorMask 1 1 1 view . On

21

viewd . SetViewport viewd . SetRenderSize viewd . SetCamera viewd . SetPath viewd . SetFileName viewd . SetExtension viewd . SetFrequence viewd . SetPeriodeOn viewd . S e t P e r i od e R e c o r d viewd . S et R ec or d Fo rm at viewd . SetImageType viewd . SetRenderer viewd . SetColorMask viewd . On viewg . SetViewport viewg . SetRenderSize viewg . SetCamera viewg . SetPath viewg . SetFileName viewg . SetExtension viewg . SetFrequence viewg . SetPeriodeOn viewg . S e t P e r i od e R e c o r d viewg . S et R ec or d Fo rm at viewg . SetImageType viewg . SetRenderer viewg . SetColorMask viewg . On

0% 00% 0% 0% 960 600 camd ../ Capteurs / sivicV ueCamer a / camera2 . cap 25.000000 0.040000 0.040000 pgm rgb r 1 1 1 0% 00% 0% 0% 960 600 camg ../ Capteurs / sivicV ueCamer a / camera2 . cap 25.000000 0.040000 0.040000 pgm rgb r 1 1 1

# Object cont with type m g P o s i t i o n C o n t r o l l e r # this allows to control the camera position with A , Q , and on the num . pad 2 4 6 8 1 3 7 9 # -----------------------------------------------------------cont . AttachTo cam cont . S e t X P o s C o n t r o l l e r x_trans2 cont . S e t Y P o s C o n t r o l l e r y_trans2 cont . S e t Z P o s C o n t r o l l e r z_trans2 cont . S e t X R o t C o n t r o l l e r x_rot2 cont . S e t Y R o t C o n t r o l l e r y_rot2 cont . S e t Z R o t C o n t r o l l e r z_rot2 cont . S e t T r a n s l a t i o n S p e e d 1.000000 cont . S e t R o t a t i o n S p e e d 1.000000 cont . SetMode Fly

2.1.2

The Vehicule1.script

This scripts creates vehicle, names it car, attaches it to the Cycab 3D model and sets its physical properties. This script is useful to understand to add a fth car or to add a new car model (3D and physics)
# # # # # # # # # # # # # # # # # # # # # # # VEHICULE 1 # # # # # # # # # # # # # # # # # # # # # # # # # # # the sivicVueCar object displays the speed and steering values in the SiVIC window . new sivicVueCar vc # Sivic Car Objects creation # -------------------------------------------------# mgMeshActor are 3 D objects in the simulated environment . chassis is the 3 D model of the car , the others are the 3 D models of each wheel . new mgMeshActor chassis new mgMeshActor fl new mgMeshActor fr

22

car . Se t Ha ut eu r Ro ue s 0.100000 0.100000 car . SetRayonRoues 0.200000 # the wheel simulation : the displayed radius is the car . SetPosition 143.753 301.858 0.157 # car . SetAngle 0.000000 0.000000 0.0000

radius ( for the physical one of the 3 D model .) the position of the car # the heading of the car

# the following concern the trajectory replay , when car is in mode 1 or 2. car . SetPath ../ Trajectoires / car . S e t F i l e N a m e T r a j e c t o r y horsering1 car . S e t E x t e n s i o n T r a j e c t o r y trj car . S e t F i l e N a m e T r a c k horsering car . S e t E x t e n s i o n T r a c k trk # the modes : 0 ( controlled by keyboard ) , 1 ( trajectory replay ) , 2 ( trajectory replay with acceleration controlled by RTMaps ) , 3 ( controlled by RTMaps ) car . SetMode 0 car . SetSpeed 0 # physical parameters car . SetIndice 1 car . SetTyreGrip 1.2 car . S e t S h o c k A b s o r b e r F R 4000 car . S e t S h o c k A b s o r b e r F L 4000 car . S e t S h o c k A b s o r b e r R R 4000 car . S e t S h o c k A b s o r b e r R L 4000 car . SetCarMasses 300 300 300

6000 6000 6000 6000

# Objects vc with type sivicVueCar # ---------------------------------------------------------# this displays the vehicle data . vc . SetViewport 0 0 100 80 vc . SetCar car vc . SetPosition 0 0 vc . SetSize 100 vc . SetDigitWidth 0.150000 vc . S e tP os it i on Un i t 0.600000 vc . Filigrane vc . Braquage vc . SetPeriodeOn -1.000000 vc . S e t P e r i o d e R ec o r d -1.000000 vc . On

2.2

How to add a new car model to SiVIC

This is a dicult operation which does not always work. To implement a new 3D model in SiVIC, one needs to open it in Blender. Blender is absolety zerotolerant to faults and errors in 3D les, so sometimes it is dicult to open the les. The best way to open a 3D le in Blender is to have it in 3DS format (it is the one which worked the best.) Then put the 3D model as centered as possible. If it is not well centered, the output les can be manually corrected. Use the .mesh export script in blender. Set the right Pro-Sivic installation directory and choose a lename.

24

Figure 2.1: Loading the le into Blender. The model is created and can be used in Pro-SiVIC. However, often manually corrections are needed (materials, lighting). This depends on how good the 3D model is. To do this, one needs to open the les in data/meshes or data/material to correct it. The next section will discuss about the 3D les and how to modify them to correct little problems. I t i s r e q u i r e d t o c r e a t e a s e p a r a t e model f o r w h e e l s . O t h e r w i s e they won t be a b l e t o t u r n .

2.2.1

.mesh les : the 3D les used by SiVIC

Pro-SiVIC uses .mesh les to describe the 3D models, and material les to describe the material properties of the models (color, reects, transparency ...) There are two types of mesh les. Child meshes. Parent meshes.

25

Figure 2.2: Export the le to .mesh format.

Figure 2.3: Set the directory and lename.

26

The child les A child le is a le with raw 3D data like vertices, triangles and quads. There is little modication possible to do to those les (one would rather edit the 3D model directly in Blender) but sometimes it is useful to read the le to understand some problems. Here is an example :
# # # # # # # mgEngine mesh file exported from Blender mgEngine mesh import / export script version 0.4 written by Christophe Braillon Mesh name : Form12_Form12 . mesh

[ closed surface ] false [ clock wise ] false # this is the only interesting thing : the associated material file : color , shininess , ... [ material ] Form12 . material [ nb vertices ] 100 # Gravity center : ( -0.201807 , -0.272015 , 0.447231) [ vertex coordinates ] 0.000000 -0.003447 0.009883 0.002450 -0.003447 0.009573 0.002450 0.004432 0.009573 0.000000 0.004432 0.009883 0.004750 -0.003447 0.008663 0.004750 0.004432 0.008663 0.006750 -0.003447 0.007203

# # et caetera ... #

The parent les The parents mesh les are much more interesting, because they are a ecient way to make simple modications to the models : scale, rotation, translation. The parent mesh les are les where the 3D raw data is not present, but is rather called by listing several child les as part of a bigger model. So if one has a good model and wishes to scale it, it is possible to create a parent le with the good model as child with a scale coecient. Here is an example of a mesh parent script :
# childs are called with the [ child ] keyword , with several parameters # [ child ] # [ child ] [ child ] [ child ] | file | Translation | rotation | scale | | X Y Z | X Y Z | X Y Z 16 _3 . mesh 0.418 0.200 0.098 0 0 0 1.00 1.00 1.00 16 _2 . mesh 0.429 0.200 0.096 0 0 0 1.00 1.00 1.00 16 _1 . mesh 0.422 0.256 0.100 0 0 0 1.00 1.00 1.00

# etc ...

27

The material les The .material les are located in the material subfolder of Pro-SiVIC. They dene materials color, shininess, transparency... There are many properties that can be set. One can nd those properties in SiVIC manual or in existing les.

28