Contents — find the section you need
Il sensore rotante sulla parte superiore di un'auto a guida autonoma, o il piccolo finestrino sulla parte superiore di un robot aspirapolvere: molti di questi sono LiDAR (Light Detection And Ranging), un sensore che misura direttamente la distanza dall'ambiente circostante utilizzando la luce laser. LiDAR-SLAM è la tecnologia che esegue l'autolocalizzazione e la mappatura simultaneamente utilizzando esclusivamente i dati della nuvola di punti restituiti da un LiDAR (eventualmente con l'ausilio di sensori come un'IMU). Mentre Visual-SLAM (vedi "Visual-SLAM Primer") cerca di ricostruire indirettamente la struttura 3D dalle immagini 2D di una telecamera, LiDAR-SLAM parte direttamente dalle informazioni sulla distanza 3D: questa è la differenza fondamentale. Questo articolo parte dal principio di ciò che un LiDAR misura effettivamente, analizza i due algoritmi principali per l'allineamento delle nuvole di punti — ICP e NDT — il design basato su caratteristiche (LOAM) che rappresenta, Loop Closure e Graph SLAM, e infine ripercorre la storia degli algoritmi di riconoscimento dei punti di riferimento e come scegliere tra di essi nella pratica. Gli sviluppi attuali sono trattati in "Tendenze tecnologiche nel LiDAR-SLAM".
Famiglia di LiDAR Velodyne
Esempi di LiDAR LivoxImmagini: Velodyne famiglia di sensori LiDAR (APJarvis, CC BY-SA 4.0) / Livox Mid-40, Horizon e Tele-15 (Dllu, CC BY-SA 4.0), Wikimedia Commons. Famiglie di prodotti rappresentative, non necessariamente gli ultimi modelli citati nel testo.
0. Contenuti dell'articolo
- Cosa misura effettivamente un LiDAR e perché ottiene la distanza "direttamente"
- Come si manifesta il problema fondamentale dello SLAM nel mondo delle nuvole di punti
- Come funzionano e in cosa differiscono i due algoritmi di corrispondenza delle scansioni a pilastro, ICP (Iterative Closest Point) e NDT (Normal Distributions Transform)
- La differenza tra le due modalità di odometria LiDAR, Scan-to-Scan e Scan-to-Map
- Perché LOAM estrae le caratteristiche (bordi e piani) e il pensiero progettuale che ne sta alla base
- Come si integrano la chiusura del ciclo e l'ottimizzazione del grafo delle pose
- Le differenze tra gli algoritmi di landmark — ICP / NDT / LOAM / LeGO-LOAM / A-LOAM / Cartographer / LIO-SAM / FAST-LIO2 — e come scegliere quello più adatto
1. Cos'è il LiDAR-SLAM?
In una frase: LiDAR-SLAM è la tecnologia che utilizza l'insieme di misurazioni di distanza ad alta precisione (una nuvola di punti) ottenute dal tempo di volo (o sfasamento) della luce laser, registrando ripetutamente scansioni successive l'una contro l'altra (scan matching), per stimare simultaneamente la traiettoria del sensore e una mappa 3D dell'ambiente circostante.
L'input è la nuvola di punti emessa da un LiDAR a intervalli fissi (da poche migliaia a centinaia di migliaia di punti per scansione), e l'output, proprio come nel Visual-SLAM, è costituito da due elementi: la posizione a 6 gradi di libertà del sensore in ogni istante (3 per la posizione, 3 per l'orientamento) e una mappa 3D della nuvola di punti dell'ambiente circostante. Esempi: un'auto a guida autonoma che mantiene precise relazioni di distanza con i veicoli circostanti, i pedoni e le infrastrutture stradali, stimando al contempo la propria posizione; un robot mobile autonomo che si muove con precisione tra gli scaffali di un magazzino; Un drone che vola attraverso spazi geometricamente complessi come gallerie o interni di edifici: in ognuno di questi casi, il LiDAR-SLAM è il sistema alla base del processo.
2. Cosa misura effettivamente un LiDAR?
I principi di misurazione della distanza tramite LiDAR si dividono in due grandi categorie. Nell'approccio ToF (Time of Flight), il sensore emette un impulso laser e misura il tempo T impiegato dalla luce riflessa dal bersaglio per tornare indietro, quindi ricava la distanza D dalla velocità della luce c.
Poiché la luce compie un viaggio di andata e ritorno, il tempo misurato T deve essere dimezzato per ottenere il tempo di propagazione unidirezionale. L'altro approccio, a spostamento di fase (FMCW/AMCW), trasmette un raggio laser modulato in modo continuo e ricava la distanza dalla differenza di fase tra il segnale trasmesso e quello riflesso. In entrambi i casi, un LiDAR non si limita a rilevare la presenza di un oggetto, ma ne determina la distanza effettiva e assoluta in una singola osservazione: una capacità che una fotocamera non possiede affatto. Come vedremo nella sezione 4, una singola immagine ripresa da una fotocamera monoculare non può mai ricostruire la scala reale da sola, mentre una nuvola di punti LiDAR include la scala metrica fin dall'inizio.
Esistono inoltre due famiglie di hardware LiDAR. Il LiDAR a rotazione meccanica ruota un insieme di elementi laser trasmettitori/ricevitori sovrapposti per creare una nuvola di punti completa a 360 gradi; Velodyne e Ouster sono produttori rappresentativi. Il LiDAR a stato solido non ha parti meccaniche rotanti, ma utilizza specchi MEMS o array ottici a fasi per scansionare un campo visivo limitato, ottenendo dimensioni più ridotte e costi inferiori; Livox è un esempio rappresentativo. Le unità a stato solido sacrificano un campo visivo più ristretto in cambio, in molti prodotti, di uno schema di scansione non ripetitivo (scansione dello stesso punto lungo un percorso leggermente diverso ogni volta), il che significa che le nuvole di punti diventano più dense man mano che vengono accumulate.
Le nuvole di punti LiDAR hanno anche una struttura che le immagini delle telecamere non possiedono affatto. Un LiDAR rotante emette più laser sovrapposti verticalmente (ad esempio, 16, 32 o 128 strati) mentre ruota orizzontalmente, producendo nuvole di punti dense orizzontalmente ma sparse e stratificate verticalmente: una distribuzione anisotropa. Questa struttura influenza direttamente la progettazione dell'estrazione delle caratteristiche di LOAM e della stima delle normali di ICP, che tratteremo entrambe più avanti.
3. Il problema fondamentale dello SLAM: "Dove si trova la nuvola di punti corrente sulla mappa?"
Così come il Visual-SLAM risolve il problema della "corrispondenza tra l'immagine corrente e le immagini precedenti e la mappa" tramite il confronto di punti caratteristici, il LiDAR-SLAM risolve il problema della "corrispondenza tra la scansione corrente (nuvola di punti) e le scansioni precedenti e la mappa" allineando le nuvole di punti tra loro. Il problema di fondo è essenzialmente lo stesso, indipendentemente dal sensore: una singola osservazione da sola non può mai determinare la posizione assoluta; l'unica strada percorribile è continuare a stimare la posizione corrente utilizzando la corrispondenza con le osservazioni precedenti (la mappa) come indizio.
Ciò che cambia è la natura di tale corrispondenza. Il Visual-SLAM rileva "punti salienti" (elementi caratteristici) in un'immagine, codifica numericamente l'aspetto circostante come descrittore e cerca le corrispondenze in base alla similarità del descrittore. Una nuvola di punti LiDAR, al contrario, non contiene quasi nessuna informazione sull'"aspetto", come luminosità o colore (l'intensità di riflettanza è disponibile, ma è molto meno discriminante di un descrittore di immagine). Di conseguenza, la corrispondenza delle nuvole di punti è, nella maggior parte dei casi, guidata esclusivamente dalla prossimità spaziale: "quale punto è geometricamente più vicino". L'intero processo di individuazione della trasformazione rigida (rotazione R, traslazione \mathbf{t}) tra due nuvole di punti è chiamato Scan Matching e costituisce il nucleo del LiDAR-SLAM.
Il concetto chiave di questa sezione è semplice: laddove il Visual-SLAM utilizza "corrispondenza di caratteristiche + geometria epipolare", il LiDAR-SLAM sostituisce quest'ultima con lo "scan matching". Le due sezioni successive trattano i due algoritmi principali che realizzano lo scan matching: ICP e NDT.
4. Comprensione dell'ICP
ICP (Iterative Closest Point) è un algoritmo classico per la registrazione di nuvole di punti, pubblicato da Besl e McKay nel 1992 su IEEE Transactions on Pattern Analysis and Machine Intelligence, e ancora oggi ampiamente utilizzato. Come suggerisce il nome, si basa su un'idea semplice: considerare il "punto più vicino" come punto corrispondente, quindi perfezionarlo ripetutamente.
L'algoritmo può essere organizzato in tre fasi.
-
Ricerca delle corrispondenze: per ogni punto p_i nella nuvola di punti in movimento (la sorgente), trovare il punto più vicino q_i nella nuvola di punti fissa (il target) — tipicamente utilizzando una struttura di ricerca spaziale come un albero KD.
-
Stima della trasformazione: dato questo insieme di corrispondenze \{(p_i, q_i)\}, trovare la rotazione R e la traslazione \mathbf{t} che minimizzano la somma delle distanze tra i punti corrispondenti. La versione più semplice, l'errore punto-punto, è definita come segue.
- Applica e itera: applica le trasformazioni R e \mathbf{t} risultanti all'intera nuvola di punti sorgente, quindi torna al passaggio 1 e cerca nuovamente le corrispondenze. Questo ciclo di ricerca delle corrispondenze → stima della trasformazione → applicazione si ripete finché l'errore non diventa sufficientemente piccolo (o smette di diminuire).
L'errore punto-punto è intuitivo, ma quando si allineano due piani ampi e piatti, ad esempio una parete, dal punto di vista dell'errore è quasi irrilevante la posizione esatta lungo quel piano in cui i punti corrispondono (un piccolo spostamento lungo il piano modifica a malapena l'errore, purché lo scostamento perpendicolare sia piccolo), quindi la convergenza tende ad essere lenta. L'errore Point-to-Plane risolve questo problema: stima un vettore normale n_i a partire dalla forma locale attorno al punto corrispondente q_i e minimizza solo la discrepanza lungo la direzione della normale (la distanza punto-piano).
Il metodo Point-to-Plane tollera gli scostamenti lungo il piano, penalizzando rigorosamente solo la discrepanza perpendicolare ad esso, ed è noto per convergere più velocemente e in modo più stabile rispetto al metodo Point-to-Point, soprattutto in ambienti ricchi di superfici piane come gli interni degli edifici. Detto questo, come notato nella sezione 2, la nuvola di punti di un LiDAR rotante ha una struttura stratificata e verticalmente sparsa, quindi una stima ingenua delle normali può produrre normali rumorose, influenzate dalla stratificazione: la stima delle normali stessa richiede attenzione.
L'ICP presenta due principali punti deboli. Innanzitutto, poiché la ricerca di corrispondenze si basa esclusivamente sul "vicino geometrico più prossimo", un grande offset iniziale porta a corrispondenze errate e alla convergenza verso un minimo locale: è quindi necessaria una buona stima iniziale. In secondo luogo, eseguire ripetutamente la ricerca del vicino più prossimo su nuvole di punti con decine di migliaia di punti per fotogramma è computazionalmente oneroso, con un costo che aumenta con le dimensioni della nuvola. NDT, che tratteremo in seguito, adotta un approccio diverso che evita completamente la ricerca di corrispondenze.
5. Comprensione di NDT
NDT (Normal Distributions Transform) è un algoritmo di corrispondenza di scansioni con un approccio fondamentalmente diverso da ICP, pubblicato da Biber e Straßer nel 2003 alla conferenza internazionale IEEE/RSJ sui robot e sistemi intelligenti (IROS). Originariamente era stato proposto per scanner laser 2D; in seguito è stato esteso per gestire anche nuvole di punti 3D.
L'idea centrale di NDT è quella di rappresentare una nuvola di punti non come un insieme di singoli punti, ma come una distribuzione di probabilità definita per voxel su una griglia regolare. La distribuzione dei punti all'interno di ciascun voxel viene approssimata come una distribuzione gaussiana (normale) con media \mu e matrice di covarianza \Sigma.
Avendo rappresentato l'intera nuvola di punti target in questo modo — come un insieme di distribuzioni gaussiane per voxel che formano una funzione di densità di probabilità differenziabile e continua a tratti — non è più necessario "cercare corrispondenze punto-punto" per allineare la nuvola di punti sorgente. Invece, per una trasformazione T (rotazione e traslazione) applicata a ciascun punto sorgente \mathbf{x}_i, che genera \mathbf{x}_i' = T(\mathbf{x}_i), si somma quanto "plausibile" sia quel punto trasformato rispetto alla gaussiana del suo voxel corrispondente, tramite una funzione di punteggio, e si trova il valore di T che lo massimizza.
Questa ottimizzazione viene risolta con metodi basati sul gradiente, come il metodo di Newton. A differenza dell'ICP, non è necessario alternare tra "ricerca delle corrispondenze" e "stima della trasformazione" come passaggi separati: è sufficiente valutare il gradiente rispetto ai parametri gaussiani precalcolati, evitando così completamente il costo della ricerca del vicino più prossimo. Inoltre, poiché il rumore nei singoli punti viene assorbito in una media e covarianza per voxel, il risultato tende ad essere robusto al rumore.
L'NDT presenta però un compromesso: la scelta della dimensione dei voxel. Voxel più grandi sono computazionalmente più leggeri, ma tendono a mediare le piccole differenze di forma, compromettendo la precisione dell'allineamento. Voxel più piccoli aumentano la risoluzione della forma, ma lasciano meno punti per voxel, rendendo la stima gaussiana stessa instabile, e l'aumento del numero di voxel incrementa anche il costo computazionale. Questo parametro regolabile, che l'utente deve impostare correttamente, è ciò che rende l'NDT praticamente complicato da usare.
6. Odometria LiDAR (Scansione-a-Scansione / Scansione-a-Mappa)
Il processo di utilizzo di ICP o NDT per trovare il movimento relativo tra fotogrammi successivi e accumulare tali stime nel tempo è chiamato odometria LiDAR. Come per l'odometria visiva nel Visual-SLAM, senza un meccanismo di riconciliazione con la mappa nel suo complesso (chiusura del ciclo), la deriva si accumula nel tempo e non può essere evitata.
L'odometria LiDAR si presenta in due varianti a seconda del parametro di riferimento utilizzato. La registrazione Scan-to-Scan registra ogni scansione solo rispetto alla scansione immediatamente precedente; è computazionalmente economica, ma poiché ogni errore di stima si ripercuote direttamente sulla stima iniziale per la scansione successiva, la deriva tende ad accumularsi. La registrazione Scan-to-Map registra la scansione corrente non rispetto a una singola scansione precedente, ma rispetto all'intera mappa locale accumulata; l'utilizzo di un maggior numero di osservazioni la rende meno sensibile al rumore e generalmente più precisa della Scan-to-Scan, a costo di una maggiore potenza di calcolo poiché la nuvola di punti di riferimento è più ampia.
La maggior parte delle implementazioni pratiche di LiDAR-SLAM combina le due metodologie. Si ottiene prima una stima iniziale rapida e approssimativa – tramite Scan-to-Scan, predizione IMU o un allineamento approssimativo basato su NDT descritto nella sezione 5 – e questa stima iniziale viene poi affinata con una registrazione Scan-to-Map precisa. La pipeline seguente illustra un flusso di elaborazione LiDAR-SLAM generale basato su questa idea a due fasi.
Figura 1 — Il percorso veloce per scansione va da La correzione della distorsione (Deswed) tramite registrazione locale per la posa e aggiornamenti della mappa locale, alimenta la successiva stima iniziale e la mappa di riferimento. Un percorso separato a velocità inferiore verifica le rivisitazioni dalla cronologia dei keyframe, ammette vincoli di ciclo e utilizza l'ottimizzazione del grafo per correggere la traiettoria globale e la mappa.
La fase di Deskew (correzione della distorsione durante la scansione) mostrata nel diagramma è specifica per il LiDAR. La singola scansione di un LiDAR rotante non viene acquisita istantaneamente: richiede da decine a centinaia di millisecondi per essere acquisita. Se il sensore stesso si muove durante tale intervallo, i punti acquisiti prima e i punti acquisiti dopo nella stessa scansione finiscono per rappresentare osservazioni provenienti da momenti e posizioni realmente diversi, tutti mescolati insieme all'interno di una singola scansione (distorsione da movimento). Il Deskew utilizza un IMU (o la precedente stima della velocità) per correggere questo movimento durante la scansione, ricostruendo la nuvola di punti come se fosse stata acquisita da un singolo istante. Questa correzione è profondamente connessa alla fusione IMU trattata in VIO/LIO (vedere "VIO/LIO Introduzione").
7. Comprensione di LOAM
LOAM (Lidar Odometry and Mapping in Real-time), pubblicato da Zhang e Singh nel 2014 su Robotics: Science and Systems (RSS), è alla base della progettazione di molte implementazioni LiDAR-SLAM ancora oggi. L'innovazione centrale di LOAM è quella di estrarre solo punti geometricamente distintivi invece di utilizzare ogni punto nella nuvola.
LOAM valuta la regolarità locale (curvatura) attorno a ciascun punto ed estrae i punti con elevata curvatura rispetto all'ambiente circostante come caratteristiche di bordo (angoli acuti o contorni di oggetti) e i punti con bassa curvatura come caratteristiche planari (parte di una superficie continua e uniforme, come un muro o un pavimento). Invece di utilizzare un'intera scansione con decine di migliaia di punti per la registrazione, restringere il campo a queste sole caratteristiche riduce drasticamente il costo computazionale della corrispondenza della scansione.
Una volta estratte le caratteristiche, l'errore La formulazione riprende le idee dell'ICP della sezione 4, ma l'elemento geometrico con cui viene effettuato il confronto è una "linea" o un "piano" anziché un "punto". Una caratteristica di bordo p_i viene confrontata minimizzando la sua distanza dalla linea formata da due punti corrispondenti p_a e p_b nella scansione precedente (o nella mappa).
Una caratteristica planare viene confrontata minimizzando la sua distanza dal piano formato da tre punti corrispondenti (la stessa forma dell'errore Punto-Piano nella sezione 4). Sommando queste distanze e minimizzando rispetto a rotazione e traslazione si ottiene il movimento relativo tra i fotogrammi.
L'altra scelta progettuale centrale di LOAM è la sua struttura a due livelli di odometria Lidar ad alta frequenza e mappatura Lidar a bassa frequenza. L'odometria Lidar esegue un confronto Scan-to-Scan basato sulle caratteristiche con la scansione immediatamente precedente ad alta frequenza. (ogni scansione), producendo una stima approssimativa ma veloce della posa. Il Lidar Mapping utilizza questa stima approssimativa come ipotesi iniziale ed esegue la corrispondenza Scan-to-Map sull'intera mappa accumulata, a una frequenza inferiore rispetto all'odometria Lidar, producendo una posa più accurata e una mappa più precisa. L'esecuzione dei due processi in parallelo a frequenze diverse, con il risultato del Lidar Mapping che corregge in ultima analisi la stima dell'odometria Lidar, consente di ottenere contemporaneamente un output ad alta frequenza e un'elevata precisione. Questa filosofia di progettazione "stima approssimativa ad alta frequenza + correzione precisa a bassa frequenza" è stata ereditata da molte delle successive implementazioni di LiDAR-SLAM e LIO trattate nella sezione 9.
8. Chiusura del ciclo e Graph SLAM
L'odometria LiDAR da sola accumula deriva nel tempo, proprio come l'odometria visiva nel Visual-SLAM, e anche dopo che un robot ritorna al punto di partenza, la traiettoria stimata non se ne accorge. Il meccanismo che corregge questo errore accumulato è la chiusura del ciclo.
La chiusura del ciclo nel Il mondo del LiDAR si articola in due fasi principali. La prima è il Riconoscimento della posizione: valutare se la nuvola di punti corrente assomiglia a una nuvola di punti di una posizione visitata in precedenza. Poiché le nuvole di punti non contengono informazioni sulla luminosità come le immagini, questo processo si basa su approcci che codificano la distribuzione della forma della nuvola di punti stessa come descrittore, ad esempio metodi come Scan Context, che dividono una scansione in celle a forma di ventaglio e codificano l'altezza massima in ciascuna cella come descrittore, oppure su metodi che riassumono le caratteristiche geometriche dell'intera nuvola di punti. La seconda fase è la verifica geometrica: per le coppie di scansioni proposte come candidate dal riconoscimento della posizione, si tenta effettivamente la corrispondenza delle scansioni con ICP o NDT e si verifica se concordano a sufficienza. Solo dopo aver superato entrambe le fasi, un vincolo che collega la "posizione corrente" e la "posizione quando quel luogo è stato visitato in precedenza" è considerato sufficientemente affidabile per essere adottato.
L'utilizzo di questo vincolo di chiusura del ciclo per correggere le pose accumulate e mapparle in un insieme coerente è il compito dell'ottimizzazione del grafo delle pose, o più in generale, del framework Graph SLAM. Esso costruisce un grafo i cui nodi sono i sensori. La posa in ogni istante di tempo, i cui bordi sono vincoli sul movimento relativo tra i fotogrammi (o tra due momenti distanti nel tempo collegati da un ciclo), quindi regola i nodi (pose) tramite ottimizzazione non lineare in modo che tutti i vincoli sui bordi siano il più possibile coerenti tra loro. Il bordo appena aggiunto dalla chiusura del ciclo svolge il ruolo di ridistribuire la deriva (Drift) – che fino ad allora si era propagata solo in una direzione – lungo l'intero percorso che costituisce il ciclo. Questa ottimizzazione, proprio come in Visual-SLAM (vedi "Visual-SLAM Primer", sezione 10), si basa comunemente su librerie come g2o, GTSAM e Ceres Solver anche all'interno delle implementazioni LiDAR-SLAM.
9. Algoritmi di punti di riferimento
La storia di LiDAR-SLAM è più facile da seguire lungo due assi: come vengono registrate le nuvole di punti e quanto la progettazione restringe le cose a caratteristiche esplicite.
ICP (Besl & McKay, 1992)** è, come trattato nella sezione 4, l'algoritmo fondamentale classico e tuttora ampiamente utilizzato per la registrazione di nuvole di punti. Raramente viene utilizzato da solo per SLAM in tempo reale, ma una qualche forma di minimizzazione basata sulla corrispondenza derivata da esso è presente in quasi tutti i metodi successivi.
NDT (Biber & Straßer, 2003) è, come trattato nella sezione 5, un algoritmo di corrispondenza di scansioni basato sulla distribuzione gaussiana che evita la ricerca di corrispondenze e si affianca a ICP come altra scelta fondamentale, ampiamente utilizzata da SLAM per robot indoor 2D ad applicazioni di guida autonoma 3D.
LOAM (Zhang & Singh, 2014) è, come trattato nella sezione 7, il metodo che ha introdotto l'estrazione di caratteristiche di bordi/piani insieme al design a due livelli di odometria ad alta frequenza + mappatura a bassa frequenza, alla base della progettazione di molte implementazioni LiDAR-SLAM e LIO fino ad oggi.
LeGO-LOAM (Lightweight and Ground-Optimized Lidar Odometry and Mapping, Shan & Englot, pubblicato nel 2018 alla IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS))** estende LOAM specificamente per i veicoli terrestri. In primo luogo, separa la nuvola di punti in punti di terra e punti non di terra, utilizzando i punti di terra per stimare rollio, beccheggio ed elevazione, e i punti non di terra per stimare i restanti gradi di libertà (posizione orizzontale e imbardata), ottenendo un design leggero in grado di operare in tempo reale anche su sistemi embedded con capacità di calcolo limitate.
A-LOAM (Advanced LOAM) è una reimplementazione semplificata e open-source delle idee di LOAM, basata sull'ottimizzazione non lineare di Ceres Solver, rilasciata da gruppi come l'HKUST Aerial Robotics Group. Abbandona parte della messa a punto ingegneristica di precisione del LOAM originale a favore di un codice più chiaro ed è spesso citato come un'implementazione accessibile per l'apprendimento e la sperimentazione con la famiglia di algoritmi LOAM.
Cartographer (Hess, Kohler, Rapp, Andor, pubblicato nel 2016 all'IEEE International Conference on Robotics and Automation (ICRA), Google) esegue la corrispondenza di scansioni locali basata su Ceres Solver su base per sottomappa (una sottomappa è un insieme di diverse scansioni), combinata con un rapido rilevamento della chiusura del ciclo tramite una ricerca Branch-and-Bound divide et impera sullo spazio dei candidati. Supporta sia 2D che 3D e, grazie anche alle implementazioni open-source ampiamente disponibili per ROS, è stato ampiamente adottato nella mappatura indoor.
LIO-SAM (Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping, Shan, Englot, Meyers, Wang, Ratti, Rus, pubblicato nel 2020 all'IROS) è un metodo di odometria inerziale LiDAR (LIO) strettamente accoppiato che ottimizza congiuntamente i fattori di preintegrazione IMU, i fattori di odometria di corrispondenza delle scansioni LiDAR, i fattori GPS e la chiusura del ciclo. fattori all'interno di un grafo fattoriale condiviso (vedere "VIO/LIO Primer" per i dettagli).
FAST-LIO2, pubblicato da Xu, Zhang e colleghi del MARS Lab dell'Università di Hong Kong, è un LIO veloce basato su un filtro di Kalman iterativo a stretto accoppiamento. Gestendo direttamente la nuvola di punti con una struttura di ricerca sequenziale del vicino più prossimo (un albero k-d incrementale, iKD-Tree), registra la nuvola di punti direttamente sulla mappa senza una fase esplicita di estrazione delle caratteristiche e la sua progettazione privilegia il funzionamento in tempo reale su piattaforme di piccole dimensioni con risorse di calcolo limitate. Gli sviluppi attuali (fino al 2026) sono descritti in "Technology Trends in LiDAR-SLAM".
10. Confronto dei metodi
| Metodo | Principio | Precisione | Costo computazionale | Robustezza | Implementazione Difficoltà |
|---|---|---|---|---|---|
| ICP | Ricerca del vicino più prossimo + minimizzazione iterativa della trasformazione rigida | Elevata precisione con una buona stima iniziale; altrimenti cade in minimi locali | Medio-alta (costo della ricerca iterativa del vicino più prossimo) | Debole in ambienti geometricamente privi di caratteristiche o contro grandi offset iniziali | Bassa (concettualmente semplice, molte implementazioni esistenti) |
| NDT | Massimizzazione dell'adattamento rispetto a distribuzioni gaussiane per voxel | Dipende dalla dimensione del voxel; relativamente robusto al rumore | Media (nessuna ricerca di corrispondenza, ma calcolo del gradiente coinvolto) | Robusto al rumore ma richiede la regolazione della dimensione del voxel | Media (la regolazione richiede una certa abilità) |
| LOAM | Estrazione di caratteristiche di bordo/planari + odometria/mappatura a due livelli | Elevata precisione in ambienti ricchi di caratteristiche | Media (più leggero rispetto all'utilizzo dell'intera nuvola di punti, grazie alla selezione delle caratteristiche) | Debole in ambienti poveri di caratteristiche (gallerie, ecc.) | Medio-alto (parametri e design complessi) |
LeGO-LOAM | Separazione dei punti a terra + ottimizzazione a due livelli in stile LOAM | Elevata precisione per veicoli terrestri; le ipotesi non sono valide per le piattaforme aeree | Medio (più leggero di LOAM) | Fortemente dipendente dalla presenza di un piano di appoggio piatto | Medio |
A-LOAM | Reimplementazione semplificata di LOAM tramite Ceres Solver | Approssimativamente equivalente a LOAM (varia a seconda dell'implementazione) | Medio | Eredita gli stessi punti deboli di LOAM | Basso-medio (facile da usare come riferimento per l'apprendimento) |
Cartographer | Corrispondenza di scansioni per sottomappa + chiusura del ciclo Branch-and-Bound | Elevata precisione in ambienti interni (2D); forte sulla coerenza globale | Medio-alto (gestione delle sottomappe e costo di ricerca Branch-and-Bound) | Forte in ambienti interni ricchi di cicli | Medio (facile da adottare nell'ecosistema ROS) |
LIO-SAM | Ottimizzazione del grafo fattoriale della preintegrazione IMU + odometria LiDAR + GPS + chiusura del ciclo | Elevata precisione con fusione IMU; La coerenza globale migliora ulteriormente con il GPS | Elevato (costo di ottimizzazione del grafo fattoriale) | L'IMU aiuta a contrastare la degenerazione geometrica | Medio-alto (ipotesi specifiche del sensore, ad esempio IMU a 9 assi) |
FAST-LIO2 | Registrazione diretta tramite filtro di Kalman iterato + albero iKD | Elevata precisione ad alta frequenza (particolarmente pronunciata su LiDAR a stato solido) | Basso-medio (il metodo diretto evita il costo di estrazione delle caratteristiche) | Dipende dall'IMU in presenza di degenerazione; debole in condizioni di geometria estremamente bassa | Medio (l'implementazione è pubblica, ma la messa a punto interna richiede competenze specifiche) |
Nel complesso, è utile considerare ICP e NDT come gli "algoritmi di registrazione fondamentali", la famiglia LOAM (LOAM/LeGO-LOAM/A-LOAM) come "guadagni di efficienza attraverso la progettazione delle caratteristiche", Cartographer come "coerenza globale e chiusura del ciclo efficienti" e LIO-SAM/FAST-LIO2 come "guadagni di robustezza attraverso un forte accoppiamento dell'IMU" - ciascuno un asse di miglioramento distinto costruito su Ciò che è venuto prima.
11. Dove LiDAR-SLAM ha difficoltà
Poiché il LiDAR emette attivamente luce laser per misurare la distanza, si comporta bene in condizioni di oscurità e controluce, ovvero negli ambienti in cui Visual-SLAM ha difficoltà. Ma LiDAR-SLAM ha anche i suoi punti deboli.
-
Degenerazione geometrica: in ambienti in cui la forma della nuvola di punti cambia a malapena lungo una particolare direzione, come una lunga galleria o un ampio parcheggio pianeggiante, la corrispondenza delle scansioni non può determinare in modo univoco la traslazione o la rotazione lungo quella direzione. Questo accade perché l'ottimizzazione ICP/NDT si ferma in una "valle piatta" in cui l'errore cambia a malapena per qualsiasi valore lungo quella direzione; condivide la stessa causa principale della debolezza di Visual-SLAM contro le pareti lisce.
-
Condizioni meteorologiche avverse: pioggia, neve, nebbia e polvere disperdono e assorbono la luce laser, attenuando i riflessi che altrimenti tornerebbero o generando punti di rumore (riflessi spuri che appaiono in posizioni in cui in realtà non esiste nulla).
-
Specchi e oggetti trasparenti: vetro e specchi possono Riflettono specularmente la luce laser, generando punti spuri in una posizione diversa da quella reale dell'oggetto (la posizione dell'immagine speculare).
-
Oggetti dinamici: l'utilizzo di punti su oggetti in movimento, come pedoni o veicoli, come se facessero parte di un ambiente statico durante la registrazione introduce un errore nella stima del movimento del sensore stesso. È quindi necessario rilevare ed escludere oggetti dinamici, o modellarli esplicitamente.
-
Il compromesso tra densità dei punti e costo computazionale: nuvole di punti ad alta risoluzione e alta frequenza tendono a produrre registrazioni più accurate, ma maggiore è il numero di punti per fotogramma, maggiore è il costo computazionale della corrispondenza delle scansioni. Nei sistemi embedded o nei droni con capacità di calcolo limitate, questo compromesso tra densità e velocità diventa un importante vincolo di progettazione.
-
Costo dell'hardware: i LiDAR rotanti ad alta risoluzione e a lungo raggio rimangono sostanzialmente più costosi delle telecamere, e il costo è spesso un vero ostacolo all'adozione.
Molti di questi punti deboli vanno in una direzione diversa rispetto ai punti deboli di una telecamera, il che rende la combinazione di telecamere (Visual-SLAM) e LiDAR (LiDAR-SLAM) — fusione di sensori (vedi "Introduzione alla fusione di sensori") — un metodo efficace per compensare i limiti di ciascun sensore preso singolarmente.
12. Scelta nella pratica
La scelta tra i metodi LiDAR-SLAM dipende fortemente dai sensori installabili, dalla potenza di calcolo disponibile, dalla precisione richiesta e dalle caratteristiche geometriche dell'ambiente.
-
Robot di servizio per interni e robot aspirapolvere: il LiDAR 2D a basso costo rimane una scelta valida e diffusa, e implementazioni SLAM 2D robuste come Cartographer sono ampiamente utilizzate. Gli spazi interni, ricchi di strutture come pareti e mobili, raramente presentano degenerazione geometrica, il che li rende un ambiente favorevole per il LiDAR-SLAM.
-
Auto a guida autonoma: il LiDAR 3D ad alta risoluzione combinato con la fusione multisensore di GPS, IMU e telecamera è l'ipotesi di base. Per contrastare la degenerazione geometrica... Per tratti come gallerie e cavalcavia, le configurazioni con IMU strettamente accoppiate come LIO-SAM/FAST-LIO2 assumono un peso significativo.
-
Droni: dati i rigidi vincoli di peso e potenza, si tende a preferire il LiDAR a stato solido (ad esempio, Livox) abbinato a un metodo diretto efficiente dal punto di vista computazionale come FAST-LIO2.
-
AGV/AMR per magazzini e fabbriche: gli ambienti con struttura regolare, simile a un corridoio, sono comuni, rendendo gli approcci Scan-to-Map basati su LiDAR 2D (ad esempio, Cartographer) una scelta pratica. Negli ambienti in cui la disposizione degli scaffali cambia frequentemente, anche la frequenza di aggiornamento della mappa è un fattore da considerare nella scelta.
-
Ambienti degeneri - gallerie, spazi sotterranei, lunghi corridoi rettilinei: il solo LiDAR tende a una registrazione instabile, quindi un accoppiamento stretto con IMU (LIO-SAM/FAST-LIO2) o la combinazione con una fonte indipendente come l'odometria delle ruote diventa praticamente essenziale.
-
Interni vs. esterni: gli spazi interni sono Le aree ricche di strutture e con abbondanti indizi geometrici favoriscono il LiDAR-SLAM, mentre gli spazi esterni pongono la sfida della degenerazione in aree aperte e condizioni meteorologiche avverse, rendendo la fusione IMU/GNSS più importante.
Come regola generale: un metodo diretto come FAST-LIO2 è ideale per risorse computazionali limitate e output ad alta frequenza, LIO-SAM per la coerenza globale che integra anche il GPS, e Cartographer per la sua comprovata efficacia in ambienti 2D e la stretta integrazione con l'ecosistema ROS. Una configurazione senza IMU (ICP/NDT/LOAM standalone) è diventata oggi una scelta quasi impraticabile, data la necessità di resilienza ad ambienti degradati, e la maggior parte dei sistemi operativi è ora progettata partendo da un forte accoppiamento con l'IMU come presupposto di base.
13. Riferimenti
- Besl & McKay, “A Method for Registration of 3-D Shapes” (IEEE TPAMI, 1992)
- Zhang & Singh, “LOAM: Lidar Odometry and Mapping in Real-time” (RSS, 2014)
- Xu et al., “FAST-LIO2: Fast Direct LiDAR-Inertial Odometry” (IEEE T-RO, 2022)
14. Riepilogo
LiDAR-SLAM utilizza le informazioni sulla distanza in scala metrica (nuvole di punti) ottenute dal tempo di volo di un laser, esegue la corrispondenza delle scansioni con ICP (registrazione iterativa dei punti più vicini) o NDT (adattamento a una funzione gaussiana per voxel). distribuzioni), accumula una traiettoria tramite odometria LiDAR combinando Scan-to-Scan e Scan-to-Map, e continua a correggere l'errore accumulato tramite Loop Closure e ottimizzazione del Pose Graph, ottenendo insieme autolocalizzazione e mappatura simultanee. La stirpe degli algoritmi di riferimento — la famiglia LOAM (efficienza tramite estrazione di caratteristiche), Cartographer (coerenza globale efficiente) e LIO-SAM/FAST-LIO2 (robustezza tramite stretto accoppiamento IMU) — si è evoluta ciascuna come risposta a una sfida specifica, e sul singolo punto di affrontare ambienti geometricamente degeneri, la maggior parte dei sistemi operativi è convergita su progetti basati su uno stretto accoppiamento IMU come linea di base.
La misurazione della distanza con successo determina in modo univoco la posizione LiDAR?
Piani e lunghi corridoi possono lasciare alcune direzioni di movimento debolmente vincolate. Il successo del rilevamento e l'osservabilità della registrazione sono due cose diverse.
Commenti
Accedi per continuare.
Nessun dato disponibile.