Contents — find the section you need

L'odometria si discosta leggermente da quella di partenza con ogni distanza percorsa, e la somma continua ad aumentare. Quando un robot gira intorno a una stanza e ritorna al punto di partenza, un sistema che considera solo l'ultimo fotogramma non è in grado di rilevare l'errore, anche se la sua posizione attuale sulla mappa differisce di decine di centimetri rispetto al punto di partenza. La chiusura del ciclo rileva che la vista corrente corrisponde a una vista precedente e utilizza il vincolo di "stesso luogo" per ricostruire la traiettoria lungo l'intero percorso.

Riepilogo in 30 secondi

  • La chiusura del ciclo si basa su due fasi: recupero dei candidati di posizione e verifica geometrica che corrispondano effettivamente allo stesso luogo.

  • Bag-of-Words, descrittori di immagine globali e riconoscimento di posizione basato sull'apprendimento recuperano rapidamente i candidati; la ri-corrispondenza delle caratteristiche e RANSAC rimuovono quindi i falsi positivi.

  • Il vincolo rilevato viene aggiunto a un grafo delle pose e l'ottimizzazione del grafo SE(2)/SE(3) corregge in modo fluido le pose precedenti. La mappa locale conserva l'errore di riproiezione.

  • Le stagioni, l'illuminazione, lo spostamento di mobili e la somiglianza dei corridoi possono generare falsi loop. È necessario verificare con criteri multipli: intervallo di tempo, distanza percorsa, numero di punti di riferimento e coerenza della mappa.

La chiusura dei loop non è "una formula magica che rende la mappa immediatamente corretta". Accettare un falso rilevamento distorce l'intera mappa in modo errato, pertanto sono essenziali soglie conservative e una progettazione reversibile.

1. Scrittura del vincolo di ciclo come equazione

Diagram 1 · Use the button to switch views
Grafico delle pose lasciato aperto dalla deriva dell'odometria prima della correzione e riconciliato alle pose di inizio e di rivisitazione dopo l'aggiunta di un vincolo di ciclo verificato

Figura 1 — Il riconoscimento della posizione propone un candidato, la verifica geometrica ammette un arco di ciclo e l'ottimizzazione robusta del grafo delle pose distribuisce la deriva accumulata lungo la traiettoria. Un candidato rosso non viene accettato incondizionatamente.

Sia T_i\in SE(3) la posa al tempo i e sia Z_{ij} l'osservazione della posa relativa quando al tempo j rivisita lo stesso punto. Il residuo del vincolo di ciclo può essere scritto come segue:

r_{ij}=\mathrm{Log}\left(Z_{ij}^{-1}T_i^{-1}T_j\right)\in\mathbb{R}^6

\mathrm{Log} è la mappa logaritmica che converte una trasformazione rigida in una rotazione e traslazione infinitesimale a 6 dimensioni. Combinando gli archi di odometria \mathcal E_o con gli archi di loop \mathcal E_l, l'ottimizzazione del grafo delle pose diventa

\min_{\{T_i\}}\sum_{(i,j)\in\mathcal E_o\cup\mathcal E_l} \rho\left(r_{ij}^{\mathsf T}\Omega_{ij}r_{ij}\right)

dove \Omega_{ij} è la matrice di informazione e \rho una funzione di perdita robusta come Huber. L'aggiunta anche di un solo arco di loop permette di distribuire l'errore accumulato su una lunga traiettoria sull'intero grafo.

2. Ricerca di candidati: trasformare un'immagine in un "bag of words"

Il metodo Bag-of-Words (BoW) quantizza i descrittori locali in un istogramma di parole visive e calcola la similarità rispetto ai keyframe precedenti utilizzando la frequenza inversa del documento (IDF). I sistemi della famiglia ORB-SLAM combinano un descrittore ORB leggero con un albero di vocabolario, riducendo i candidati a pochi senza confrontare ogni fotogramma con l'intera mappa.

Un descrittore globale comprime l'intera immagine in un singolo vettore per recuperare scene dall'aspetto simile. I metodi basati sull'apprendimento, come NetVLAD, CosPlace ed EigenPlaces, apprendono rappresentazioni robuste alle variazioni di illuminazione e punto di vista, ma le loro prestazioni variano in presenza di edifici, terreni agricoli o fabbriche diversi dalle regioni di addestramento. Il recupero dei candidati gestisce la velocità, mentre la verifica geometrica gestisce l'accuratezza: non bisogna affidarsi solo a uno dei due.

3. Verifica geometrica: la somiglianza non è sufficiente per chiudere il cerchio

I descrittori vengono nuovamente confrontati con l'immagine candidata per ottenere le corrispondenze. Per una telecamera monoculare, si stima una matrice essenziale/fondamentale tramite RANSAC; se esistono punti noti sulla mappa, si utilizza PnP; per texture planari, si utilizza un'omografia. Vengono controllati il conteggio degli inlier, l'errore di riproiezione, se la profondità è positiva e se la differenza di punto di vista è fisicamente La plausibilità aumenta la fiducia che il candidato sia effettivamente lo stesso luogo.

Un falso loop è pericoloso perché l'ottimizzazione del grafo distorcerà la mappa in una forma coerente con, anche se basata su, un'osservazione errata. Due corridoi simili, una fila di finestre, solchi in un campo o scaffalature in una fabbrica sono difficili da distinguere solo con BoW. Escludere i frame troppo vicini nel tempo dai candidati e richiedere corrispondenze coerenti su più keyframe consecutivi e concordanza con un sensore indipendente (IMU/LiDAR/GNSS).

4. Aggiornamento del Pose Graph e della mappa

Dopo aver aggiunto un arco di loop, ottimizzare prima solo le pose dei keyframe tramite il Pose Graph e fare in modo che i punti della mappa seguano le pose. Per una mappa su larga scala, separare la mappa locale dalla posa globale, anziché eseguire Bundle Adjustment su ogni punto ogni volta, semplifica il mantenimento delle prestazioni in tempo reale. Una volta terminata l'ottimizzazione, aggiornare la trasformazione map→odom corrente e progettare in modo che odom→base_link, che Dà priorità alla continuità e non effettua mai salti improvvisi.

In termini di ROS 2 TF2, l'odometria locale pubblica odom→base_link e la correzione globale di SLAM regola map→odom. È necessario smussare temporalmente la correzione in modo che il corpo del robot non sembri teletrasportarsi al momento della chiusura del ciclo. Tuttavia, smussare in modo troppo aggressivo per nascondere il divario tra la mappa e il mondo reale fa sì che la navigazione continui a utilizzare una posizione obsoleta, quindi è necessario registrare l'entità della correzione e il tempo in cui viene applicata.

5. Ambienti soggetti a errori

Condizione Perché è difficile Soluzione
Cambiamenti stagionali/giorno-notte Cambiamenti di colore, ombre, vegetazione Descrittori appresi, caratteristiche strutturali, fusione LiDAR
Persone/veicoli dinamici Stesso luogo, layout diverso Mascheramento di oggetti dinamici, corrispondenza solo con sfondo statico
Schemi ripetitivi Anche i luoghi sbagliati sembrano simili Verifica geometrica, vincoli di distanza, conferma multi-frame

Lunghe corsie/scaffalature | Bassa parallasse e distintività | IMU, marcatori artificiali, UWB |

Grandi variazioni di illuminazione | Variazioni dei descrittori di luminosità | Correzione HDR/esposizione, riconoscimento del luogo appreso |

Curve strette/sfocatura | Minore numero di corrispondenze | Previsione IMU, regolazione dell'intervallo dei keyframe |

6. Lista di controllo per l'implementazione

  1. Memorizzare l'immagine, il timestamp, la posa e i descrittori delle caratteristiche di ciascun keyframe.

  2. Escludere i fotogrammi recenti dai candidati e recuperare alcuni candidati precedenti tramite descrittori BoW/globali.

  3. Verificare geometricamente le corrispondenze, applicando una soglia al conteggio degli inlier, all'errore di riproiezione e alla profondità positiva.

  4. Confermare che lo stesso candidato sia valido in più fotogrammi in momenti diversi.

  5. Aggiungere il bordo del loop al grafo delle pose ed eseguire l'ottimizzazione robusta.

  6. Registrare l'entità della correzione, i motivi del rifiuto e il tempo di calcolo. Creare loop falsi Reversibile.

7. Direzioni di ricerca

La ricerca attuale si sta orientando verso la realizzazione di sistemi di recupero immagini robusti attraverso l'apprendimento auto-supervisionato su larga scala, la condivisione di descrittori tra LiDAR, telecamere e event camera, e l'aggiornamento stagionale di mappe a lungo termine. Sono in corso anche tentativi di utilizzare nuove rappresentazioni di scene come NeRF e 3D Gaussian Splatting per il riconoscimento di luoghi, sebbene sia necessario verificare la velocità di inferenza, l'ingombro di memoria, gli oggetti dinamici, le licenze e la riproducibilità.

In fabbriche e terreni agricoli, dove si ripetono corridoi o solchi di forma identica, la chiusura di cicli basata esclusivamente su immagini tende ad essere ambigua. L'utilizzo di percorsi di attrezzi, IMU, odometria delle ruote, RTK-GNSS e confini di lavoro mappati come informazioni a priori per limitare il raggio di ricerca dei candidati riduce i falsi rilevamenti. Quando si introduce un prototipo di ricerca sul campo, è opportuno impostare fin dall'inizio una procedura operativa in cui, se viene rilevato un falso ciclo, la mappa viene bloccata e può essere reinizializzata manualmente.

8. Conclusione

La chiusura del ciclo è un processo in tre fasi: recupero dell'immagine che richiama una scena passata, verifica geometrica che dimostra che si tratta dello stesso luogo e ottimizzazione che distribuisce l'errore sull'intero grafo. Non chiudere un ciclo basandoti solo sui punteggi BoW o sui descrittori appresi: conferma le corrispondenze, la concordanza dei sensori e la continuità temporale. Se gestita correttamente, la chiusura del ciclo corregge la deriva dell'odometria sull'intera mappa e mantiene coerente l'autolocalizzazione di un robot in funzione a lungo.

Verifica la tua comprensione
Un'immagine visivamente simile è sufficiente per chiudere un ciclo?

L'aspetto può produrre false corrispondenze. Verifica la geometria prima di aggiungere un vincolo; un ciclo errato può distorcere l'intera mappa.

Riferimenti

What to read next

Review the backgroundIntroduzione a VO/VIO: nozioni pratiche per la stima del movimento da una telecamera e da un'unità di misura inerziale (IMU)Continue the seriesIntroduzione al Visual-SLAM: come una telecamera impara "Dove mi trovo?"Explore another aspect of this fieldLab di luminosità e luminanza — esposizione, gamma e clipping