Tutoriel · Intermédiaire · 21 min de lecture
SLAM, cartographie, localisation et dérive odométrique
Odometry et télémétrie combinés pour le SLAM, en quoi la localisation diffère de la cartographie, et comment diagnostiquer dérive et fermeture de boucle.
Un robot mobile a besoin de deux réponses liées : à quoi ressemble l’environnement, et où se trouve le robot dedans ? La localisation et cartographie simultanées (SLAM) estime les deux pendant que le robot explore. Une fois qu’une carte stable existe, un système de localisation peut estimer la pose sur cette carte fixe sans la reconstruire.
Le SLAM ne remplace pas l’odométrie. Il utilise des estimations locales de mouvement pour relier les observations des capteurs, puis corrige leur dérive accumulée quand l’environnement fournit assez de preuves.
Distinguez les quatre tâches
Les termes sont plus simples quand chacun a une sortie claire :
- Odométrie : mouvement local lisse issu des encodeurs de roues, de la centrale inertielle, du mouvement visuel, ou de leur fusion. Elle dérive avec le temps.
- Cartographie : construire une représentation comme une grille d’occupation à partir des observations et des poses.
- Localisation : estimer la pose du robot dans une carte existante.
- SLAM : construire la carte tout en estimant les poses et en révisant les estimations passées.
La navigation ajoute planification et commande par-dessus. Une bonne carte ne génère pas à elle seule une commande de vitesse sûre.
Suivez l’information dans le système
Pour du SLAM 2D en intérieur, un flux de données courant est :
- Les encodeurs de roues et une centrale inertielle estiment le mouvement local.
- Un lidar publie des balayages télémétriques avec horodatages et repère capteur.
- TF2 relie le capteur à
base_linket la pose locale àodom. - Le recalage de balayages aligne les nouvelles observations avec les balayages récents ou la carte en construction.
- Le moteur d’optimisation optimise un graphe de poses et de contraintes.
- Une grille d’occupation est mise à jour à partir des poses corrigées et des données télémétriques.
L’odométrie fournit une bonne hypothèse initiale. Sans elle, le recalage peut chercher dans un espace bien plus vaste ou s’aligner sur la mauvaise structure répétitive. Sans observations externes, les erreurs d’odométrie restent non bornées. C’est cette borne qui décide si un robot peut balayer un sol en rangées parallèles : les rangées cessent d’être parallèles après une dizaine, d’où un gyroscope, une caméra de plafond ou une balise embarqués sur toute machine qui planifie sa couverture. En extérieur, ce même rôle revient au GPS, fusionné plutôt que suivi.
Comprendre recalage et fermeture de boucle
Le recalage de balayages trouve une pose relative qui aligne au mieux les mesures télémétriques courantes avec la structure existante. Il peut corriger un petit patinage et une erreur d’échelle, mais il a besoin de formes géométriques. Un long couloir sans relief, une paroi vitrée, une foule mobile ou des rayonnages très répétitifs peuvent rendre plusieurs poses semblables.
Une fermeture de boucle survient quand le système reconnaît un lieu déjà visité et ajoute une contrainte entre la pose courante et une pose ancienne. Optimiser cette contrainte peut répartir l’erreur accumulée sur la trajectoire et réaligner les murs.
Une fermeture de boucle n’est pas automatiquement correcte. Un faux appariement dans deux couloirs semblables peut plier ou déchirer la carte. Les systèmes robustes utilisent des vérifications géométriques, des scores et des seuils d’acceptation réglables. Examinez les grandes corrections suspectes plutôt que de fêter chaque boucle fermée.
Préparez le robot avant de régler le SLAM
Le SLAM ne peut pas compenser un contrat d’entrée cassé. Vérifiez d’abord :
- sens, échelle et horodatages des encodeurs ;
- odométrie locale raisonnable en ligne droite et en rotation ;
- transformées
odom → base_link → capteurcorrectes ; - données télémétriques en bonnes unités avec lectures invalides identifiées ;
- accord des horloges entre les nœuds ;
- montage rigide du capteur ;
- portée et champ de vision suffisants pour l’environnement.
Roulez lentement pour établir la référence. Distorsion de mouvement et balayages clairsemés empirent avec la vitesse de rotation. Si le capteur ou le pilote supporte une compensation temporelle, configurez-la d’après le comportement mesuré plutôt que de supposer qu’elle est inutile.
Cartographiez avec méthode
Démarrez dans un lieu riche en repères et passez par des boucles plutôt que de longs allers-retours. Tournez souplement pour que le scanner observe les mêmes structures sous des points de vue qui se recouvrent. Évitez de porter ou déplacer de gros objets près du robot pendant la cartographie.
Surveillez la carte en direct : murs dédoublés, coins flous, sauts, pièces déconnectées. Ce sont des preuves, pas des défauts cosmétiques :
- des murs parallèles dédoublés suggèrent une erreur de pose ou de temporisation ;
- des murs courbés en rotation suggèrent de mauvaises transformées ou de la distorsion de mouvement ;
- une dérive d’échelle progressive suggère un étalonnage des roues ou des contraintes de recalage faibles ;
- un réarrangement global soudain suggère une fermeture de boucle, correcte ou fausse.
Ne sauvegardez la carte qu’après avoir vérifié que les couloirs importants restent praticables à la résolution choisie. Une grille plus fine coûte de la mémoire et peut conserver le bruit capteur ; une grille grossière peut fermer des passages étroits.
Localisez dans la carte sauvegardée
Après la cartographie, passez en mode localisation sur la carte sauvegardée. Un localisateur à filtre particulaire comme la localisation Monte-Carlo adaptative (AMCL) estime la pose à partir des observations télémétriques et du mouvement. Il a toujours besoin d’un modèle capteur raisonnable, de transformées et d’une odométrie correctes.
Donnez une pose initiale assez proche pour que le système identifie le bon lieu, surtout en environnement symétrique. Testez la récupération en partant de petites erreurs de pose, puis de plus grandes. La récupération après « enlèvement du robot » est une exigence séparée, à ne pas supposer acquise parce que le suivi normal fonctionne.
Dans le modèle de repères standard, l’odométrie locale publie odom → base_link, tandis que le SLAM ou la localisation publie map → odom. La transformée globale corrige la dérive sans faire sauter le repère de commande local et lisse.
Mesurez précision et répétabilité
Utilisez des repères physiques aux positions relevées ou soigneusement mesurées. Enregistrez la pose estimée quand le robot s’arrête à chaque repère depuis différentes directions d’approche. Séparez :
- la répétabilité au même endroit ;
- la dérive locale à court terme ;
- la cohérence globale de la carte après une boucle ;
- le temps de récupération après une perte capteur temporaire.
Comparez la carte aux distances connues, mais ne jugez pas seulement sur une belle image. La navigation a besoin d’espace libre correct, de frontières d’obstacles et de stabilité de pose plus que de jolis murs.
Enregistrez balayages, odométrie, transformées et sorties SLAM pour rejouer une panne. Un problème visible uniquement en direct est bien plus difficile à diagnostiquer.
Diagnostiquer les pannes SLAM courantes
- Murs dédoublés en ligne droite : échelle odométrique, temps capteur ou recalage incohérents.
- La carte se courbe en rotation : transformée capteur, odométrie angulaire ou distorsion de mouvement fausses.
- La pose saute dans des couloirs répétitifs : recalage ou fermeture de boucle a accepté un alignement ambigu.
- Aucune boucle ne se ferme : parcours sans recouvrement, observations trop clairsemées, ou seuils d’acceptation trop stricts.
- La localisation ne marche que près de la pose initiale : environnement symétrique ou récupération globale non configurée.
- La carte semble correcte mais la navigation touche les murs : empreinte, inflation ou configuration de la carte de coûts fausses.
- Régler chaque paramètre SLAM ne change rien : le contrat amont odométrie/TF/capteur est toujours cassé.
Commencez par l’étalonnage des encodeurs en quadrature et l’odométrie différentielle, puis utilisez les repères TF2 de ROS 2 pour vérifier la chaîne géométrique. Le simulateur de capteurs montre pourquoi biais et dérive ne se retirent pas par un simple lissage.
Explorer le graphe
Fait partie de ces réalisations
Les projets et parcours d'apprentissage qui incluent ce tutoriel.
Pour aller plus loin