Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

Loop Closure

  • Aussi appelé: loop closing, loop closure detection
  • Catégorie: State estimation & navigation › Localisation
  • Mots-clés: slam, localization, place-recognition, mapping, state-estimation

L'étape du SLAM où un robot reconnaît qu'il est revenu à un lieu déjà visité et utilise cette correspondance pour corriger la dérive accumulée en chemin.

Définition

Fermeture de boucle (loop closure) : reconnaissance, pendant la cartographie, du fait que le robot est revenu à un endroit qu'il a déjà vu, et utilisation de cette reconnaissance pour corriger sa trajectoire estimée. L'odométrie, qu'elle provienne des roues, d'une IMU, de caméras ou d'un LiDAR, accumule de petites erreurs à chaque pas. Après une longue boucle, l'estimation par le robot de l'endroit où il se trouve peut s'écarter sensiblement de son point de départ, même s'il est physiquement revenu au même endroit. Une fermeture de boucle relie la pose actuelle à la pose antérieure et permet au système de redistribuer l'erreur.

La fermeture de boucle comporte deux parties. La détection, souvent appelée reconnaissance de lieux (place recognition), décide que l'observation actuelle correspond à une observation antérieure. Les systèmes fondés sur des caméras utilisent couramment des méthodes de sac de mots visuels comme DBoW2 ou des descripteurs globaux appris ; les systèmes LiDAR utilisent des descripteurs de scan comme Scan Context ou une mise en correspondance géométrique directe. La vérification calcule ensuite la transformation relative entre les deux observations, par exemple par mise en correspondance de caractéristiques et RANSAC pour les images ou par ICP pour les nuages de points, et rejette les correspondances qui ne concordent pas géométriquement.

Une fois vérifiée, la fermeture de boucle est ajoutée comme contrainte, généralement une arête dans un graphe de poses, et le back-end réoptimise toutes les poses. La correction est répartie sur toute la boucle au lieu d'être appliquée seulement à la fin.

La principale difficulté est l'aliasing perceptif : des lieux différents peuvent se ressembler, comme des couloirs identiques, des rangées d'étagères ou des rangs de cultures répétés. Une fausse fermeture de boucle peut déformer toute la carte, c'est pourquoi les systèmes pratiques sont prudents et préfèrent manquer une vraie fermeture plutôt que d'en accepter une fausse.

Pourquoi c'est important

Sans fermeture de boucle, toute carte construite à partir de l'odométrie se dégrade lentement à mesure que la dérive augmente, et un même couloir peut finir cartographié deux fois à des endroits légèrement différents. La fermeture de boucle est ce qui permet à un système SLAM de construire des cartes globalement cohérentes sur de longues distances et des passages répétés.

Applications principales

  • Construction de cartes intérieures et extérieures cohérentes avec un SLAM LiDAR ou caméra
  • Correction de la dérive de l'odométrie visuelle et visuo-inertielle
  • Relocalisation après qu'un robot a été déplacé ou a perdu le suivi
  • Fusion de cartes issues de plusieurs sessions ou de plusieurs robots

En pratique

Sur un robot mobile qui exécute un paquet SLAM comme Cartographer, RTAB-Map ou ORB-SLAM, la fermeture de boucle tourne en arrière-plan à côté du suivi. Chaque nouvelle image clé ou sous-carte est comparée à une base de données des précédentes ; les candidats qui passent un seuil d'apparence sont vérifiés géométriquement, et seuls ceux qui ont assez d'inliers et une transformation cohérente sont transmis à l'optimiseur du graphe de poses. Lors de la cartographie d'un nouveau site, les équipes font généralement parcourir des boucles délibérées au robot pour que le système ait des occasions de les fermer, et elles règlent les seuils de détection selon l'environnement, en acceptant moins de fermetures dans les espaces répétitifs comme les entrepôts. Quand une carte montre des murs dédoublés ou un couloir courbé, une fermeture de boucle manquée ou fausse est l'une des premières choses que vérifient les ingénieurs.

Idées reçues

  • La fermeture de boucle ne corrige que la pose actuelle — elle ajoute une contrainte que l'optimiseur du back-end propage à toute la trajectoire
  • Si deux images se ressemblent, c'est le même lieu — l'aliasing perceptif impose de vérifier géométriquement les correspondances d'apparence avant de s'y fier
  • L'odométrie visuelle inclut déjà la fermeture de boucle — l'odométrie n'estime que le mouvement incrémental ; c'est la fermeture de boucle qui transforme l'odométrie en SLAM complet

Qui devrait le savoir

  • Ingénieurs SLAM et cartographie
  • Développeurs de navigation de robots mobiles et de drones
  • Ingénieurs en vision par ordinateur travaillant sur la reconnaissance de lieux
  • Équipes de robotique de terrain qui cartographient de grands sites extérieurs

Technologies associées

  • Reconnaissance de lieux (Place Recognition)
  • Sac de mots visuels (Bag of Visual Words)
  • RANSAC
  • ORB-SLAM
  • Cartographer
  • RTAB-Map

Termes associés

  • SLAM
  • Pose Graph Optimization
  • Visual Odometry
  • Odometry

Projets associés

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO

Vidéos

  • SLAM Course - 20 - SLAM Frontends (2013/14; Cyrill Stachniss): Cyrill Stachniss

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.