Open Source Robotics

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

LiDAR Odometry

  • Detto anche: laser odometry, LO
  • Categoria: State estimation & navigation › Localisation
  • Tag: lidar, odometry, slam, state-estimation, point-cloud-registration

Stima del moto di un robot registrando scansioni LiDAR successive l'una rispetto all'altra o rispetto a una mappa locale; deriva con la distanza se non viene corretta da una chiusura del loop.

Definizione

Odometria LiDAR (LiDAR odometry) stima il moto di un sensore LiDAR, e del robot che lo trasporta, allineando ogni nuova scansione con i dati precedenti. È una forma di odometria: come l'odometria delle ruote o l'odometria visiva, integra il moto relativo nel tempo e quindi accumula deriva. Si distingue dall'odometria visiva per l'ingresso, misure dirette di distanza invece di immagini della telecamera, che danno la scala metrica con un solo sensore e la rendono in gran parte indipendente dall'illuminazione. Si distingue dall'Iterative Closest Point per portata: ICP è un algoritmo di registrazione, spesso usato all'interno di un sistema di odometria LiDAR, mentre l'odometria LiDAR è l'intera pipeline di pre-elaborazione, registrazione, compensazione del moto e gestione della mappa.

Esistono due famiglie principali. I metodi basati su feature, come LOAM di Zhang e Singh del 2014, estraggono punti di spigolo e punti planari da ogni scansione e li associano alle feature di una mappa locale. I metodi densi registrano la maggior parte dei punti, tipicamente con ICP punto-piano o con una Normal Distributions Transform, rispetto alla scansione precedente o a una mappa locale sottocampionata. La registrazione scan-to-map deriva meno di quella scan-to-scan, perché ogni scansione viene allineata a una struttura costruita da molte scansioni precedenti.

Un LiDAR rotante raccoglie una scansione nell'arco di una rotazione completa, quindi un sensore in movimento la distorce. I sistemi correggono questo effetto eliminando la distorsione dei punti (de-skewing) con una velocità costante ipotizzata, una IMU o, come in CT-ICP, una traiettoria a tempo continuo con pose separate all'inizio e alla fine di ogni scansione. L'odometria LiDAR è in difficoltà dove la geometria non vincola tutti e sei i gradi di libertà: corridoi lunghi, gallerie, campi aperti e strade piane. La fusione stretta con una IMU, come nell'odometria LiDAR-inerziale, aiuta con i moti rapidi e i brevi tratti degeneri, e un sistema SLAM completo aggiunge la chiusura del loop e l'ottimizzazione del grafo delle pose per eliminare la deriva accumulata.

Perché è importante

L'odometria LiDAR è la principale fonte di stime del moto per molti veicoli autonomi, robot mobili e sistemi di mappatura, soprattutto all'aperto e al buio, dove le telecamere sono in difficoltà. La sua precisione limita la qualità di ogni mappa e di ogni risultato di localizzazione costruiti su di essa.

Applicazioni principali

  • Stima dell'ego-motion per auto autonome e robot per le consegne
  • Front end di sistemi SLAM LiDAR e di mappatura 3D
  • Mappatura mobile portatile e a zaino
  • Navigazione in miniere, gallerie e altri ambienti bui
  • Stima dello stato per robot con gambe e droni con LiDAR a bordo

In pratica

Un team monta un LiDAR rotante e una IMU su un robot per rilievi che percorre un cantiere. Ogni scansione viene corretta dalla distorsione con la IMU, sottocampionata in una griglia di voxel e registrata con ICP punto-piano rispetto a una mappa locale delle scansioni recenti. La posa risultante alimenta lo stack di navigazione del robot alla frequenza di scansione. Quando il robot percorre un corridoio lungo e spoglio, il team vede la stima della posizione allungarsi lungo l'asse del corridoio, perché le pareti non vincolano il moto in quella direzione; aggiunge quindi un controllo di degenerazione sulla soluzione ICP, si affida di più alla IMU e all'odometria delle ruote in quei tratti ed esegue la chiusura del loop offline per correggere la mappa finale.

Idee sbagliate comuni

  • L'odometria LiDAR fornisce posizioni globali prive di deriva — integra il moto relativo e deriva, quindi per percorsi lunghi serve una chiusura del loop o un riferimento globale
  • L'odometria LiDAR è la stessa cosa di ICP — ICP è un passo di registrazione; l'odometria comprende anche la correzione della distorsione, il filtraggio, la gestione della mappa e spesso la fusione con la IMU
  • Poiché il LiDAR misura direttamente la distanza, funziona ovunque — scene geometricamente prive di caratteristiche, come gallerie o campi aperti, lasciano alcune direzioni non vincolate
  • Ogni scansione è un'istantanea presa in un solo istante — un LiDAR rotante esegue la scansione nel tempo, quindi un sensore in movimento produce scansioni distorte se non vengono corrette

Chi dovrebbe saperlo

  • Ingegneri di SLAM e di stima dello stato
  • Team di percezione per la guida autonoma
  • Sviluppatori di mappatura mobile e rilievo topografico
  • Ingegneri di robotica sul campo che lavorano all'aperto o nel sottosuolo

Tecnologie correlate

  • LOAM
  • KISS-ICP
  • CT-ICP
  • Odometria LiDAR-inerziale (Lidar-Inertial Odometry)
  • Normal Distributions Transform

Termini correlati

  • Odometry
  • Visual Odometry
  • Iterative Closest Point
  • LIDAR
  • Loop Closure
  • SLAM

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
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • evo: De-facto standard tool for evaluating and plotting odometry/SLAM trajectories

Video

  • LiDAR Odometry - 5 Minutes with Cyrill: Cyrill Stachniss

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