• Aucun résultat trouvé

2.4 Moyens d’évaluation des approches

2.4.2 Simulateur de données de conduite automobile

Nous avons développé un simulateur de données qui a été utilisé pour évaluer plu-sieurs approches. Il se compose de deux parties principales : un générateur de scéna-rios de roulage et un générateur de données de capteurs. Le générateur de scénascéna-rios permet de générer des scénarios sur mesure, permettant d’outrepasser la limitation du nombre de véhicules disponibles ou encore d’avoir des scénarios de collision sans prendre aucun risque. Le générateur de données capteurs permet, lui, de simuler un nombre quelconque de capteurs et de varier leur précision. Le simulateur à été développé sous Matlab et est conçu pour s’adapter à nos besoins.

Générateur de scénarios

Le générateur de scénarios a pour but de fournir les données servant de vérité terrain par rapport à un scénario explicitement défini par l’utilisateur. Il s’agit des données relatives à l’état de chaque véhicule du scénario, sur toute la durée de la simulation, suivant la période d’échantillonnage définie. Il fournit également les dimensions de

2.4 Moyens d’évaluation des approches

chaque véhicule (paramètres non variables) et les données sur la route. La route est définie comme un agencement :

– de sections droites définies par leur longueur,

– de sections courbes définies par leur rayon de courbure constant, et leur angle d’ouverture,

– d’intersections définies par leur largeur et leur longueur,

– et de rond-points définis par leur rayon central (toujours 4 sorties).

Chacune de ces composantes est aussi définie par un point départ (bas, gauche), une largeur de voie, un nombre de voies et un angle d’orientation dans le repère cartésien considéré. Quelques fonctions de dessin permettent d’obtenir les différentes formes de base qui sont ensuite tournées et translatées selon la position souhaitée. Chaque forme a un rectangle englobant, de position connue, ce qui permet de retrouver les paramètres de la chaussée pour un point quelconque choisi sur la route ainsi définie. La figure 2.12 illustre un exemple de route simulée.

500 600 700 800 900 1000 -100 -50 0 50 100 150

Figure 2.12: Un exemple de route simulée, avec plusieurs sections de chaussées droites, un rond point et une intersection

L’état d’un véhicule, à un instant donné, est défini dans un repère cartésien fixe par

un vecteur X tel que

X = [x, y, θ, v, a, ω]T

où les paramètres sont respectivement l’abscisse, l’ordonnée, l’angle de cap ou la-cet, la vitesse linéaire, l’accélération tangentielle, et la vitesse de lacet. Pour générer un scénario, il faut définir, indépendamment, le mouvement de chaque véhicule sur toute la durée de simulation. Les interactions entre véhicules, comme par exemple, le dépassement d’un véhicule par un autre, s’obtiennent naturellement en gérant de façon manuelle le timing et les positions atteintes par chaque véhicule. Ce réglage

manuel est la partie qui demande le plus de temps, sans pour autant être une opé-ration complexe. En effet, nous avons d’abord défini deux fonctions qui servent à créer des mouvements de base :

– La fonction Continuer. Elle existe en deux versions et prend en argument l’état

courant du véhicule et, suivant la version, la durée ou la distance parcourue. Elle suppose que le véhicule a une vitesse de lacet et une accélération tangentielle constantes (possiblement nulles). A partir des équations analytiques décrivant un tel mouvement (voir annexe 6.3), nous obtenons l’état du véhicule pour chaque pas de temps, jusqu’à couvrir la durée/distance définie en argument. Pour simuler

le mouvement d’un véhicule se déplaçant à vitesse constante v dans une voie

de rayon de courbure R, il suffit de définir un point de départ à l’intérieur de

la voie, un lacet θ initial égal à l’orientation de la tangente de la voie en ce

point et une une vitesse de lacet ω = v/R. Cette fonction permet à elle seule de simuler le mouvement du véhicule dans un virage ou dans un rond-point. Pour changer le type de mouvement, il faut redéfinir manuellement la vitesse de lacet et l’accélération tangentielle qui ont donc par moment une variation instantanée, pas très naturelle.

– La fonctionChangerVoie. Elle permet de simuler un changement de voie. Pour ce

faire, on considère d’abord que la section de route sur laquelle a lieu la manœuvre est rectiligne. La fonction prend un argument l’état courant du véhicule ainsi que l’écart longitudinal dx et l’écart latéral dy entre entre le point départ et le point d’arrivée de la manœuvre. On suppose ensuite que la courbe tracée par la trajectoire du véhicule respecte une fonction polynomiale de degré 3 telles que

y=c3x3+c2x2+c1x+c0

avec cj|j=0..3 des coefficients constants à déterminer. En notant (xi, yi) la position initiale du véhicule, θi son orientation initiale, relative à l’orientation de la tan-gente de la voie en ce point, et en fixant son lacet final à zéro, on peut écrire le système d’équations suivant :

yi =c3x3i +c2x2i +c1xi+c0 yi+dy =c3(xi+dx)3+c2(xi+dx)2+c1(xi+dx) +c0 tanθi = 3c3x2i + 2c2xi+c1 0 = 3c3(xi +dx)2+ 2c2(xi+dx) +c1

En résolvant ce système nous déterminons les 4 coefficients inconnus. La courbe ainsi obtenue est ensuite déformée selon la vraie courbure de la section de route correspondante. La méthode de déformation est expliquée en annexe 6.5 et la figure 2.13 montre un exemple de déformation de trajectoire.

Nous considérons enfin que l’accélération tangentielle est constante pendant le changement voie pour obtenir la distance parcourue et la vitesse atteinte au bout de chaque période d’échantillonnage ainsi que le point correspondant sur la courbe déformée. Pour simuler un changement de voie brutal, il faut définir un dx petit.

2.4 Moyens d’évaluation des approches 0 10 20 30 40 50 60 70 80 90 -5 0 5 10 15 20 10 20 30 40 50 60 70 80 90 -15 -10 -5 0 5

Figure 2.13: Exemple de trajectoire de changement de voie déformée suivant la courbure de la voie. En haut, la trajectoire obtenue en supposant que la route est rectiligne et en bas, le résultat de la déformation pour un rayon de courbure égal à 150m

La grandeur de dy dépend de la largeur de la voie et son signe dépend de la

direction du changement de voie (vers la voie de gauche ou de droite). Le lacet et la vitesse de lacet sont post-calculés à partir des positions successives obtenues. La fonction retourne également la durée de la manœuvre simulée.

Avec ces deux fonctions élémentaires, il est possible de définir une série de manœuvres plus complexes pour un véhicule, en partant de son état initial défini arbitrairement. En définissant les mouvements de plusieurs véhicules, on peut ainsi obtenir des scénarios plus ou moins élaborés suivant les besoins.

Générateur de données de capteurs

Avec le simulateur, il est aussi possible de simuler les données de plusieurs capteurs à partir de la vérité terrain et des caractéristiques définies pour chaque capteur. Nous rappelons que dans notre cas, les capteurs sont des capteurs-pisteurs qui effectuent un suivi d’objet local et fournissent la liste des pistes obtenues. Il faut d’abord définir le véhicule considéré comme égo-véhicule puis, le principe est le même pour chaque capteur simulé. Le processus passe par les étapes suivantes :

1. Calcul de la visibilité des objets par rapport au champ de perception du capteur 2. Ajout de bruit à la vérité terrain pour simuler des mesures bruitées

3. Suivi de cibles par filtrage de Kalman, à partir des mesures bruitées

Calcul de la visibilité des objets L’utilisateur définit le champ de perception du capteur en fournissant sa portée, son ouverture angulaire et son orientation relative

par rapport à l’axe du véhicule. Le zéro du capteur est fixé au centre de l’égo-véhicule. A partir de la vérité terrain qui est définie dans un repère cartésien fixe, on peut alors déterminer à chaque pas d’échantillonnage les véhicules présents dans le champ de perception du capteur. Le simulateur ne gère pas les cas d’occultation d’un véhicule par un autre.

Ajout de bruit à la vérité terrain Le simulateur ne simule que la mesure de la position et de la vitesse relative. L’utilisateur fournit la précision du capteur telle qu’elle pourrait être définie dans la document technique d’un capteurs réel. Par exemple

Position relative

Précision (écart-type de l’erreur) 0-30m : 6%, 30-60m : 7%, 60-90m : 9% Vitesse relative

Précision (écart-type de l’erreur) 0-30m : 6%, 30-60m : 7%, 60-90m : 9%

Nous choisissons ce format parce que la précision varie généralement en fonction de la distance entre le capteur et l’objet mesuré. Les mesures du capteur sont normalement faites dans un repère mobile avec l’égo-véhicule. Comme nous avons choisi d’adopter un repère de travail fixe et pour garder une simplicité des opérations, nous rajoutons du bruit aux données de référence, en respectant la précision décrite pour le capteur. Par exemple, pour un véhicule cible visible à un instant donné de la simulation, on calcule d’abord la distance entre l’égo-véhicule et la cible ainsi que les écarts relatifs xrel, yrel, vx,rel et vy,rel correspondant respectivement aux paramètresx,y,vx et vy. Les deux derniers paramètres sont les composantes du vecteur vitesse de chaque véhicule suivant les axes du repère. Ils sont calculés comme ceci :

vx =v ·cosθ vy =v ·sinθ

Ensuite, la valeur du bruit à rajouter à la valeur de vérité terrain est obtenue par l’équation 2.5 où nous avons pris l’exemple du paramètrex.

xnoise=xstd·randn() (2.5)

avec

xstd=xrel· c

100 (2.6)

xnoise est le bruit aléatoire rajouté et c est la valeur en pourcentage définie en paramètre pour l’écart-type de l’erreur de mesure en fonction de la distance relative.