• Aucun résultat trouvé

2.3 SLAM pour l’EKF dans un contexte de robotique mobile

3.1.2 Étude de la littérature

Les problèmes de linéarisation évoqués dans la sous-section précédente sont gé- néralement traités dans la littérature via une méthode d’initialisation particulière. Cette dernière, couplée à une représentation plus adaptée des amers peut grande- ment réduire les erreurs de linéarisation. On distingue deux courants principaux : les initialisations retardées et les initialisations immédiates.

Dans la première catégorie, il est question de retarder l’initialisation jusqu’à ce que l’amer soit assez précis pour avoir sa profondeur bien estimée et ainsi éviter les erreurs de linéarisation. Dans [Bailey 2003] par exemple, Bailey propose d’at- tendre au moins 2 observations d’un même point pour avoir une estimation de sa profondeur. Il est précisé qu’avec seulement deux points l’initialisation peut être mal conditionnée (pas assez précise). Trois facteurs permettent de décider si une initia- lisation est correcte ou pas : l’incertitude quant à la pose du véhicule, l’incertitude des mesures et enfin l’écart entre les 2 poses véhicule à partir desquelles l’amer a été observé. Un indice cumulant ces informations permet de décider si les 2 mesures de l’amer sont suffisantes ou s’il est nécessaire d’attendre d’autres observations. Dans [Davison 2003], un filtre particulaire est utilisé afin de pouvoir tester simultanément plusieurs hypothèses de profondeur. La caméra évoluant en intérieur, 100 particules sont étalées sur 5 mètres (distance maximale des points). Chaque particule projetée

dans l’image donne une ellipse dans laquelle une observation est cherchée. En fonc- tion des associations faites, des poids sont distribués aux particules. Dès lors que l’approximation de la distance devient meilleure, l’amer est initialisé dans un EKF et l’incertitude est approximée par une gaussienne.

Ces méthodes sont efficaces et évitent les erreurs de linéarisation. Cependant, retarder l’intégration d’un amer pose le problème de la perte de données entre l’ins- tant où il est vu la première fois et le moment où il est réellement inséré dans le filtre. Pendant ce laps de temps, le suivi d’un amer peut apporter des informations précieuses quant à l’orientation du véhicule étant donné que l’amer est plutôt bien localisé de ce point de vue. De plus, cela signifie qu’au cours de virages serrés qua- siment aucune autre information que l’odométrie ne sera disponible. En effet, les amers n’auront pas le temps de converger et ne seront donc jamais intégrés au filtre, laissant ainsi l’estimation du véhicule se reposer uniquement sur des informations proprioceptives.

Les approches se reposant sur des initialisations immédiates proposent en re- vanche d’intégrer les amers dès leur première observation. Afin d’éviter les problèmes de linéarisation, les approches [Kwok & Dissanayake 2004] et [Solà et al. 2005] in- sèrent plusieurs estimations par amer dans le vecteur d’état. Au fur et à mesure que de nouvelles observations sont disponibles, les hypothèses qui s’avèrent fausses sont supprimées. Des poids sont également associés aux hypothèses afin d’éviter que les corrélations dans les données ne viennent perturber le bon fonctionnement du filtre. Ces travaux sont assez similaires à ceux de Davison et al. [Davison 2003], seulement les amers sont directement intégrés dans le vecteur d’état. Il est donc nécessaire de stocker plusieurs hypothèses par point ce qui induit un surcoût mémoire important. Le plus handicapant reste que chaque point devra être traité dans le cadre du filtre, impliquant ainsi des étapes de prédiction et de mise à jour supplémentaires en plus de la gestion des poids. La charge calculatoire induite par ces initialisations multi- hypothèses est un inconvénient puisque cela limite le nombre d’amers qui peuvent être suivis simultanément.

Toujours dans les initialisations immédiates, la méthode la plus couramment em- ployée est l’utilisation de la paramétrisation en profondeur inverse. Cette représenta- tion a été introduite dans [Montiel et al. 2006], puis reprise dans [Civera et al. 2008] et appliquée au SLAM monoculaire avec succès. La représentation en profondeur in- verse offre l’avantage de mieux représenter les grandes incertitudes suivant un axe. Les amers 3D exprimés en profondeur inverse requièrent 6 paramètres pour estimer leur position. Un amer 3D ai est défini comme suit :

ai=xi yi zi θi φi ρi

T

(3.8) où xi, yi et zi représentent le centre optique de la caméra où le point 3D a été

observé pour la première fois (ancre). θi et φi sont l’azimut et l’élévation du rayon

d’observation m(θi, φi). La profondeur du point di est codée par sa valeur inverse

Ces 6 paramètres modélisent un point 3D situé à : ⎛ ⎝ xi yi zi ⎞ ⎠+ 1 ρi m(θi, φi) (3.9)

La figure 3.6, issue de [Montiel et al. 2006], montre les différents repères pour deux observations d’un point et la place de la représentation inverse dans ceux-ci.

Figure 3.6 – Paramétrisation inverse et représentation de [Montiel et al. 2006] Bien que cette représentation soit intéressante, elle demande à ce que chaque point de la carte soit stocké avec 6 paramètres au lieu de 3 pour une représentation cartésienne classique. Cela signifie que la taille de la carte est doublée en mémoire pour le vecteur d’état et quadruplée pour la covariance associée. Souvent, les points sont d’ailleurs convertis depuis la profondeur inverse vers la forme cartésienne clas- sique [Civera et al. 2007]. L’état intermédiaire des points doit alors être géré et des indices doivent être calculés pour savoir quand passer d’un point en profondeur in- verse à un amer classique. Cela induit aussi qu’il faut être prudent quant à la manière dont sont traités les points puisque les représentations sont différentes et n’ont pas les mêmes implications sur l’étape de mise à jour. Enfin, et c’est certainement le plus important, la représentation en profondeur inverse n’empêche pas les erreurs de linéarisation de se produire. Bien que le risque soit réduit, l’éventualité est tou- jours présente [Bekris et al. 2006]. Même avec cette représentation, une solution aux erreurs de linéarisation doit être envisagée.

La communauté s’est, en grande partie, concentrée sur le problème de l’initiali- sation et de la représentation des amers qui sont souvent les principaux générateurs

d’erreurs de linéarisation. Néanmoins, même avec une représentation adaptée, ces problèmes sont toujours présents et des solutions doivent être trouvées pour le suivi des points ainsi que leurs mises à jour.

Dans le cas du suivi, la méthode la plus employée reste l’utilisation des ja- cobiennes. Dans [Davison et al. 2007], celle-ci est appelée recherche active et est identique à la méthode décrite précédemment. Son utilisation est fréquente dans la littérature. D’autres techniques ont misé sur des fenêtres de recherche dont la taille est fixe. C’est le cas de [Mouragnon et al. 2006] qui propose de calculer la taille maximale de celles-ci en fonction du déplacement maximum possible du véhicule entre deux images successives. Malheureusement, les boîtes englobantes obtenues dans l’image sont souvent trop grandes par rapport à l’incertitude réelle du point. Enfin, d’autres méthodes, ne dépendant pas d’une fenêtre de recherche, existent. On peut par exemple citer [Petrovskaya & Thrun 2009] qui propose d’utiliser la méthode de Laplace pour positionner correctement une gaussienne au maximum global de la fonction d’observation. Néanmoins, cette méthode nécessite une étape de minimisation qui peut être coûteuse.

Pour la mise à jour via le filtre de Kalman, nous pouvons également citer les approches de Davison [Davison 2003] qui ne font que de petites mises à jour pour éviter des corrections de Kalman fausses. Pour ce faire, il est nécessaire d’utiliser des caméras très rapides ou d’avoir un véhicule qui ne se déplace que très lentement. Ces deux contraintes sont difficilement envisageables dans notre contexte. Enfin, nous pouvons noter les travaux de Parsley et al. [Parsley & Julier 2008] qui a été le premier à constater la possibilité pour des amers mis à jour de passer derrière le véhicule, et ce même en utilisant la paramétrisation en profondeur inverse. La solution proposée dans cet article consiste simplement à annuler la mise à jour dès lors que le point est mis à jour avec une profondeur négative.

En conclusion, l’état de l’art sur les problèmes de linéarisation dans le cas mo- noculaire donne quelques clefs pour comprendre comment envisager le problème. Néanmoins, aucune solution ne semble optimale pour construire une approche qui soit à la fois économe (temps de calcul et consommation mémoire) et robuste. En effet, la localisation peut très rapidement diverger et rendre le processus de SLAM complètement faux. Dans la section suivante, nous proposerons de traiter chaque point où les linéarisations interviennent afin d’avoir une approche capable de parer à toutes les éventualités.