• Aucun résultat trouvé

Les travaux présentés dans cette partie concernent la construction de cartes topologiques sur la base de l’apparence uniquement. Notre solution repose pour cela sur la méthode de détection de fermeture de boucle décrite dans la première partie de ce mémoire. Toutefois, comme nous l’avons mentionné dans l’état de l’art de cette partie (cf. section 5.1, page 96), il est possible d’ajouter une information métrique dans une carte topologique. Cela permet alors d’estimer une position précise pour chaque noeud, sous la forme de coordonnées cartésiennes. D’une manière générale, l’ajout d’une information métrique dans la carte offre l’avantage majeur de pouvoir mémoriser des déplacements précis entre les différents noeuds, facilitant par conséquent la navigation entre ces noeuds. Dans une perspective expérimentale, nous avons adapté simplement notre modèle de SLAM topologique pour intégrer ce type d’information dans la carte, reposant pour cela sur une plateforme mobile fournissant une mesure de l’odométrie correspondant aux déplacements du robot. Ces travaux, au caractère préliminaire, ont été réalisés en collaboration avec Nicolas BEAUFORT dans le cadre d’un stage réalisé au sein du laboratoire [Beaufort].

6.3.1 Relaxation pour l’estimation de la position des noeuds

L’information utilisée dans notre cas provient des mesures d’odométrie fournies par le robot. Ces me- sures donnent une estimation du déplacement relatif du robot entre deux positions i et j, sous la forme de l’angle relatif φij les séparant et d’un vecteur de déplacement (caractérisé par sa longueur dij et son angle

θij dans le repère de la position i). Ce sont ces informations qui seront encodées dans les arêtes de la carte

et utilisées pour estimer la position des noeuds (voir figure 6.5).

On enregistre donc sur les arêtes une information de positionnement relatif des noeuds. A partir de cette information, il est possible d’obtenir une estimation de la position métrique de chaque noeud i, sous la forme de coordonées cartésiennes 2D plus une orientation (xi, yi, θi) exprimées dans un référentiel absolu.

Pour cela, nous employons une méthode simple de relaxation proposée par les auteurs de [Duckett et al., 2000]. Celle-ci a été développée spécifiquement pour la relaxation à partir d’informations de distance et d’orientation : c’est pourquoi nous l’avons préféré à la méthode plus basique utilisée pour la disposition du graphe (cf. section 6.2) qui ne prend en compte qu’une notion de poids sur les arêtes. La méthode retenue ici avait par ailleurs déjà été réutilisée dans le même contexte qu’ici dans [Filliat, 2001]. L’idée générale est

FIG. 6.5: Ajout d’une information métrique d’odométrie sur les arêtes de la carte. Entre les positions i

et j, l’odométrie mesure un déplacement relatif donné par l’angle φijet par le vecteur de déplacement

2D caractérisé par dijet θij. Cette information est alors ajoutée sur l’arête de la carte liant les noeuds

i et j.

de parcourir, pour chaque noeud du graphe, l’ensemble de ses voisins (i.e., l’ensemble des noeuds auxquels il est directement lié). On calcule alors, à partir de chacun des voisins, une position absolue pour le noeud considéré, en composant simplement la position du voisin avec l’information d’odométrie le liant au noeud considéré. On obtient donc, pour chaque noeud, un ensemble de positions calculées à partir des positions des noeuds voisins. On définit finalement la position du noeud considéré comme étant la moyenne des positions ainsi calculées. Cet algorithme, dont le pseudo-code est donné dans le tableau 6.3.1, est itéré jusqu’à ce que les variations des positions des noeuds soient négligeables.

Relaxation

tantque le graphe G n’a pas convergé faire

pour tous les noeuds Ni ∈ G sauf le premier faire

pour tous les voisins Vj de Ni faire

Positionj(Ni) = Position(Vj) + ∆ji fin pour Position(Ni) = P jPositionj(Ni) nb_voisins(Ni) fin pour fin tantque

TAB. 6.1: Pseudo-code pour l’algorithme de relaxation. ∆jidésigne le déplacement relatif permettant

de passer du noeud Vj au noeud Ni(i.e., il s’agit de l’information fournie par l’odométrie, voir figure

6.5.)

L’utilisation d’un algorithme de relaxation pour l’estimation de la position des noeuds permet de corriger la dérive de l’odométrie. En effet, l’intégration des mesures d’odométrie a des conséquences dramatiques

sur l’estimation de la position des noeuds de la carte : en intégrant ces mesures, on intègre également les erreurs sur ces mesures. Par conséquent, la position estimée pour les noeuds diverge rapidement de leur valeur réelle. En reposant sur un algorithme de relaxation pour l’inférence de la position des noeuds, on fusionne les estimations obtenues à partir de plusieurs noeuds pour calculer la position d’un noeud donné : on filtre ainsi le bruit sur les mesures d’odométrie, et la position inférée est plus cohérente à long terme.

Enfin, en cas de fermeture de boucle, l’information d’adjacence apportée par la fermeture du cycle per- met d’améliorer la cohérence globale des positions estimées pour les noeuds de la carte grâce à l’algorithme de relaxation. En effet, la fermeture de boucle va créer un lien entre le noeud de localisation du robot à l’ins- tant t − 1 et le noeud qui vient d’être reconnu. Il est donc possible d’inférer une topologie et une estimation de la position des noeuds qui soient cohérentes à la fois avec l’apparence des lieux (i.e., par la reconnaissance d’un lieu passé), et avec les positions relatives de ces lieux (i.e., grâce à l’information d’odométrie encodée sur les arêtes correspondantes). L’amélioration dans l’estimation des positions des noeuds est illustrée dans la figure 6.6.

FIG. 6.6: Illustration de l’amélioration de l’estimation de position des noeuds par l’algorithme de re-

laxation lorsqu’une fermeture de boucle est détectée. En détectant une fermeture de boucle entre les noeuds présents dans l’ellipse rouge (i.e., ces noeuds correspondent au même lieu), on introduit une nouvelle contrainte dans la carte qui permet d’améliorer la topologie estimée par l’algorithme de re- laxation.

Résultats expérimentaux

Ce chapitre est dédié aux résultats expérimentaux obtenus dans le cadre de l’application au SLAM topologique. Notamment, nous démontrons la qualité de notre approche par la construction de cartes topo- logiques en-ligne et en temps réel dans divers environnements sur la base d’une simple caméra monoculaire uniquement. Ces résultats ont été obtenus à partir de deux séquences d’images : la première correspond à une acquisition réalisée en intérieur uniquement, alors que la seconde contient à la fois des images d’intérieur et d’extérieur. Dans les deux cas, les environnements choisis présentent un aliasing perceptuel important, afin de prouver la robustesse de notre solution. Avec la première séquence, nous montrons qu’il est possible d’obtenir des résultats satisfaisants avec une seule caractérisation pour les images (i.e., grâce aux primitives SIFT), à condition que celles-ci présentent assez de texture. Cela permet notamment de limiter les traite- ments afin d’augmenter la rapidité générale. Pour la séquence “mixte” (i.e., intérieur / extérieur) en revanche, les deux espaces de représentation sont nécessaires afin d’obtenir une carte cohérente de l’environnement. Chacune des deux séquences est présentée séparément, dans une section dédiée. Par ailleurs, une section supplémentaire donne des résultats préliminaires en ce qui concerne l’ajout d’information métrique dans la carte. Les résultats exposés dans ce chapitre ont notamment fait l’objet d’une publication ([Angeli et al., 2008c]).