Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Loop Closure

  • Detto anche: loop closing, loop closure detection
  • Categoria: State estimation & navigation › Localisation
  • Tag: slam, localization, place-recognition, mapping, state-estimation

Il passo dello SLAM in cui un robot riconosce di essere tornato in un luogo già visitato e usa quella corrispondenza per correggere la deriva accumulata lungo il percorso.

Definizione

Chiusura del loop (loop closure) è il riconoscimento, durante la mappatura, che il robot è tornato in un luogo che ha già visto, e l'uso di questo riconoscimento per correggere la traiettoria stimata. L'odometria, che provenga dalle ruote, da un'unità di misura inerziale (IMU), da fotocamere o da un LiDAR, accumula piccoli errori a ogni passo. Dopo un lungo anello, la stima del robot su dove si trova può discostarsi sensibilmente dal punto di partenza, anche se fisicamente è tornato nello stesso posto. Una chiusura del loop lega la posa attuale a quella precedente e permette al sistema di ridistribuire l'errore.

La chiusura del loop ha due parti. Il rilevamento, spesso chiamato riconoscimento dei luoghi (place recognition), stabilisce che l'osservazione attuale corrisponde a una precedente. I sistemi basati su fotocamere usano comunemente metodi bag-of-visual-words come DBoW2 o descrittori globali appresi; i sistemi LiDAR usano descrittori di scansione come Scan Context oppure il matching geometrico diretto. La verifica calcola poi la trasformazione relativa tra le due osservazioni, per esempio con il matching delle feature e RANSAC per le immagini o con ICP per le nuvole di punti, e scarta le corrispondenze che non tornano geometricamente.

Una volta verificata, la chiusura del loop viene aggiunta come vincolo, di solito un arco in un grafo delle pose, e il back end riottimizza tutte le pose. La correzione viene distribuita sull'intero anello invece di essere applicata solo alla fine.

La difficoltà principale è l'aliasing percettivo: luoghi diversi possono sembrare uguali, come corridoi identici, file di scaffali o filari di colture ripetuti. Una falsa chiusura del loop può deformare l'intera mappa, quindi i sistemi pratici sono conservativi e preferiscono perdere una chiusura vera piuttosto che accettarne una falsa.

Perché è importante

Senza chiusura del loop, qualsiasi mappa costruita dall'odometria si degrada lentamente man mano che la deriva cresce, e lo stesso corridoio può finire mappato due volte in posizioni leggermente diverse. La chiusura del loop è ciò che permette a un sistema SLAM di costruire mappe globalmente coerenti su lunghe distanze e passaggi ripetuti.

Applicazioni principali

  • Costruzione di mappe coerenti di interni ed esterni con SLAM basato su LiDAR o su fotocamere
  • Correzione della deriva nell'odometria visiva e visivo-inerziale
  • Rilocalizzazione dopo che un robot è stato spostato o ha perso il tracciamento
  • Unione di mappe di più sessioni o di più robot

In pratica

Su un robot mobile che esegue un pacchetto SLAM come Cartographer, RTAB-Map o ORB-SLAM, la chiusura del loop gira in background accanto al tracciamento. Ogni nuovo keyframe o sottomappa viene confrontato con un database di quelli precedenti; i candidati che superano una soglia di aspetto vengono verificati geometricamente, e solo quelli con abbastanza inlier e una trasformazione coerente vengono passati all'ottimizzatore del grafo delle pose. I team di solito percorrono anelli deliberati quando mappano un sito nuovo, così che il sistema abbia occasioni per chiuderli, e regolano le soglie di rilevamento per ogni ambiente, accettando meno chiusure negli spazi ripetitivi come i magazzini. Quando una mappa mostra pareti sdoppiate o un corridoio piegato, una chiusura del loop mancata o falsa è una delle prime cose che gli ingegneri controllano.

Idee sbagliate comuni

  • La chiusura del loop corregge solo la posa attuale — aggiunge un vincolo che l'ottimizzatore del back end propaga lungo tutta la traiettoria
  • Se due immagini sembrano uguali, il luogo è lo stesso — l'aliasing percettivo fa sì che le corrispondenze di aspetto vadano verificate geometricamente prima di fidarsene
  • L'odometria visiva include già la chiusura del loop — l'odometria stima solo il moto incrementale; è la chiusura del loop a trasformare l'odometria in uno SLAM completo

Chi dovrebbe saperlo

  • Ingegneri SLAM e di mappatura
  • Sviluppatori di navigazione per robot mobili e droni
  • Ingegneri di visione artificiale che lavorano sul riconoscimento dei luoghi
  • Team di robotica sul campo che mappano grandi siti all'aperto

Tecnologie correlate

  • Riconoscimento dei luoghi (Place Recognition)
  • Bag of Visual Words
  • RANSAC
  • ORB-SLAM
  • Cartographer
  • RTAB-Map

Termini correlati

  • SLAM
  • Pose Graph Optimization
  • Visual Odometry
  • Odometry

Progetti correlati

  • 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

Video

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

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.