• Aucun résultat trouvé

SLAM par ltrage de Kalman étendu

3.6 Retour au Visual SLAM

Dans le cas du Visual SLAM, l'observation est une fonction possédant 2 champs. Sous l'hypothèse d'indépendance des coordonnées, on peut alors, de la même ma-nière que dans le cas 2D, venir calculer un coecient de pondération sur chacune d'elles. Etant entendu qu'il ne faut pas rajouter de l'information au travers de la correction, c'est le plus petit coecient qui sera conservé, à la condition toutefois

3.6. Retour au Visual SLAM 97 qu'il appartienne au domaine de dénition ]0, 1]. La correction se fera donc ainsi :

ru = (uobs− uest)De (K2− uobsK1)RT (v→c)RT (m→v)Gpt∆ (3.32) rv = (vobs− vest)De (K3− vobsK1)RT(v→c)RT(m→v)Gpt∆ (3.33) r =    ru si 0 < ru < rv et ru< 1 rv si 0 < rv < ru et rv < 1 1 sinon (3.34) Gpt0 = r × Gpt si r ∈ ]0, 1] Gpt sinon (3.35)

où Gpt désigne la partie du gain de Kalman qui correspond à la mise à jour en regard du point en question (P t).

Avant de lancer la correction sur l'intégralité du parcours, nous allons étudier le cas d'un point 3D et de l'impact de la correction pour diérentes observations dénies dans l'image. Le scénario est simple et sa représentation est donnée par la gure 3.21. Depuis une première position, un rayon de vue sur lequel on place le

Figure 3.21 : Depuis une première position, on crée un point susamment loin (croix noire). Depuis une seconde position, on observe ce point ainsi que l'intégralité du rayon de vue (ligne verte) à l'aide d'un capteur de type caméra. Au sein de l'image (cadre noir en bas à droite), on dénit, sur la projection du rayon de vue, une série d'observations (croix rouges). Par une simple triangulation, on trouve la position d'un point relatif à une observation sur le rayon de vue 3D.

point ctif (labellisé 1 dans la gure3.21) est déni. Depuis une deuxième position, on projette dans l'image le point ctif et le rayon de vue. A partir de là, nous allons contrôler l'innovation pour observer où se situe la mise à jour sur le rayon de vue initial.

Etant donné que nous sommes en simulation, il est donc possible de calculer l'intersection des rayons de vue issus de chaque observation. Par conséquent, la

98 Chapitre 3. SLAM par ltrage de Kalman étendu position vraie du point 3D est directement observable par triangulation. En faisant croître l'innovation dans l'image (points 2, 3 et 4 dans la gure 3.21), on obtient les courbes de comparaison 3.22aet3.22b. On observe alors encore une fois l'impact de

(a) Résultats sans correction.

(b) Résultats avec correction.

Figure 3.22 : 3.22a : la distance entre chaque mise à jour non corrigée et le vrai point obtenu par triangulation.3.22b: la distance entre chaque mise à jour corrigée et le vrai point obtenu par triangulation.

la correction qui rend le système plus stable et moins divergent.

Remarquons qu'il n'est pas nécessaire que le point passe derrière l'observateur pour que la correction soit appliquée, comme c'est le cas dans [Martin 2008] (avec une paramétrisation du point en profondeur inverse). En des termes plus simples, il sut que la projection du point mis à jour passe au delà de l'observation sur la droite épipolaire.

A présent, on pourrait lancer l'algorithme uniquement en mode SLAM sans carte de référence (ce qui implique la non prise en compte du biais) pour voir le résultat de la correction. L'algorithme va donc cartographier l'environnement et simultanément se localiser, comme le ferait le premier véhicule qui défriche le parcours et doit donc construire la carte qui sera utilisable par les véhicules suivants. Ce test est réalisé dans l'environnement d'expérimentation PAVIN3situé à Clermont-Ferrand. La trajectoire acquise est représentée par la trace rouge dans la gure 3.23. Les résultats de ce test, avec et sans correction, sont fournis dans le tableau 3.2 et la gure 3.24b. On constate un nombre de points plus importants dans la carte nale dès lors que l'on utilise la correction du gain de Kalman. En eet, du fait de la disparition de la divergence, les points extraits des images sont observés plus longtemps. Par conséquent, cela explique le nombre d'initialisations (création de points 3D), plus important dans le cas non corrigé. De plus, la phase d'initialisation

3.6. Retour au Visual SLAM 99

(a) (b)

Figure 3.23 :3.23a: une vue réelle de l'environnement PAVIN en cours d'utilisation par un RobuCab. 3.23b : une vue virtuelle de l'environnement sur laquelle est représentée la trajectoire d'étude (trace rouge).

Avec correction Sans correction

Nombre de points 75 32

Nombre d'initialisations 134 384

Nombre de divergences 0 439

Nombre de corrections détectées 264 591 Correction la plus importante 0.0024134 x

Table 3.2 : Tableau comparatif des résultats d'un SLAM visuel avec et sans cor-rection du gain : la distance de travail est de 28 mètres, la vitesse reste inférieure à 1 m/s pour une cadence caméra de 10 Hz.

de points étant une phase supplémentaire et plus longue en temps de calcul, la version non-corrigée est plus lente : les temps n'ont pas été explicités ici étant donné qu'ils n'ont pas vraiment de sens avec un langage interprété tel que Matlab. Les divergences, quant à elle, sont dénies dès lors qu'une mise à jour n'est plus intègre vis à vis de l'observation. Cela se traduit par le fait que l'observation courante n'est pas intègre avec la projection de la mise à jour qu'elle génère : c'est justement dans ce cas que la correction entre en jeu. Les gures3.24aet3.24bdonnent entre autre, la disposition des points par rapport à la trajectoire. Il est à remarquer que, dans la version non-corrigée, peu de points proches ont été estimés correctement. Cela vient du fait que l'écart entre un point estimé et son observation est susamment important pour laisser s'exprimer la non-linéarité du modèle d'observation et faire diverger sa localisation.

Reste enn une question : comment déterminer si un point, après un certain temps de non-observation, est un point qui doit être gardé ou si c'est un point qui n'a pas eu le temps de converger ? La méthode explicitée est celle qui a été utilisée pour obtenir les cartes de la gure3.24.

100 Chapitre 3. SLAM par ltrage de Kalman étendu 0 20 40 60 80 100 −60 −40 −20 0 20 −10 0 10 20