Simultaneous Localization And Mapping (SLAM) consists in the concurrent construction of a model of the environment (the map), and the estimation of the pose of the robot moving within it. To obtain accurate reconstruction of the scene, in the last decade many LiDAR-based SLAM systems have been proposed, exploiting dense point clouds to track the motion of the robot and build a 3D map. Existing systems, however, usually do not include additional information like prior maps, which may prove to be useful in the whole SLAM process. For this reason, we improve an existing system that includes 2D maps information (prior map) to solve the SLAM problem. The maps correspond to the shapes of the buildings of a city and are provided by OpenStreetMap (OSM). By processing data coming from an on-board LiDAR, the robot perceives the surrounding buildings and tries to match them with the prior map. This way, the robot will simultaneously localize itself and correct the maps while moving. To deal with this problem, an existing Graph-based SLAM system (baseline) is used and improved, as main contribution of this thesis. The system consists of a graph (pose graph) whose nodes correspond to the poses of the robot and the buildings (i.e. their centroids) and whose edges represent constraints between the poses. To improve the baseline system, we developed different algorithms and procedures. First we implemented a procedure to asynchronously download and buffer the maps to deal with the long OSM servers response time. In order to extract the relevant features from the LiDAR point clouds, we implemented an algorithm to extract line segments using RANSAC. Moreover, we present a line segments based scan matching algorithm to extract the map priors along with its extension to generate geometrical constraints in order to prevent the overlapping of the buildings within the map. Finally, leveraging the g2o API, we partitioned the pose graph in order to balance the localization and map constraints. We compared the developed system against the baseline using the KITTI dataset, showing that our system has greatly improved the baseline system, reducing the robot localization error and generating visually more consistent maps.

Simultaneous Localization And Mapping (SLAM) consiste nella costruzione simultanea di un modello dell’ambiente (la mappa) e nella stima della posa del robot che si muove al suo interno. Per ottenere una ricostruzione accurata della scena, nell’ultimo decennio sono stati proposti molti sistemi SLAM basati su LiDAR, che sfruttano dense nuvole di punti (point clouds) per tracciare il movimento del robot e costruire una mappa 3D. I sistemi esistenti, tuttavia, di solito non includono informazioni aggiuntive come l’utilizzo di mappe preesistenti (map priors), che possono rivelarsi utili nell’intero processo SLAM. Per questo motivo, miglioriamo un sistema esistente che include mappe 2D preesistenti per risolvere il problema SLAM. Le mappe corrispondono alle forme degli edifici di una città e sono fornite da OpenStreetMap (OSM). Elaborando i dati provenienti da un LiDAR, il robot percepisce gli edifici circostanti e cerca di abbinarli alla mappa precedente. In questo modo, il robot simultaneamente si localizzerà e correggerà le mappe mentre si muove. Per affrontare questo problema, viene utilizzato e migliorato un sistema SLAM basato su grafi esistente (baseline), come contributo principale di questa tesi. Il sistema è costituito da un grafo (grafo delle pose) i cui nodi corrispondono alle pose del robot e degli edifici e i cui archi rappresentano vincoli tra le pose. Per migliorare la baseline, abbiamo sviluppato diversi algoritmi e procedure. Inizialmente abbiamo implementato una procedura per scaricare e bufferizzare in modo asincrono le mappe per gestire il lungo tempo di risposta dei server di OSM. Per estrarre le caratteristiche rilevanti dalle point cloud del LiDAR, abbiamo implementato un algoritmo per estrarre le linee usando RANSAC. Inoltre presentiamo un algoritmo di corrispondenza delle point cloud (scan matching) basato su linee per estrarre i vincoli (map priors) dalla mappa di OSM insieme alla sua estensione per generare vincoli geometrici al fine di non far sovrapporre gli edifici nella mappa. Infine, sfruttando l’API g2o, abbiamo partizionato il grafo delle pose per bilanciare i vincoli sulla localizzazione e quelli estratti dalla mappa. Abbiamo confrontato il sistema sviluppato con la baseline utilizzando un dataset di KITTI, dimostrando che il nostro sistema ha notevolmente migliorato la baseline, riducendo l’errore di localizzazione del robot e generando mappe visivamente più coerenti.

Improved graph SLAM with Open-StreetMap priors

Del Tufo, Massimo;Del Tufo, Stefano
2021/2022

Abstract

Simultaneous Localization And Mapping (SLAM) consists in the concurrent construction of a model of the environment (the map), and the estimation of the pose of the robot moving within it. To obtain accurate reconstruction of the scene, in the last decade many LiDAR-based SLAM systems have been proposed, exploiting dense point clouds to track the motion of the robot and build a 3D map. Existing systems, however, usually do not include additional information like prior maps, which may prove to be useful in the whole SLAM process. For this reason, we improve an existing system that includes 2D maps information (prior map) to solve the SLAM problem. The maps correspond to the shapes of the buildings of a city and are provided by OpenStreetMap (OSM). By processing data coming from an on-board LiDAR, the robot perceives the surrounding buildings and tries to match them with the prior map. This way, the robot will simultaneously localize itself and correct the maps while moving. To deal with this problem, an existing Graph-based SLAM system (baseline) is used and improved, as main contribution of this thesis. The system consists of a graph (pose graph) whose nodes correspond to the poses of the robot and the buildings (i.e. their centroids) and whose edges represent constraints between the poses. To improve the baseline system, we developed different algorithms and procedures. First we implemented a procedure to asynchronously download and buffer the maps to deal with the long OSM servers response time. In order to extract the relevant features from the LiDAR point clouds, we implemented an algorithm to extract line segments using RANSAC. Moreover, we present a line segments based scan matching algorithm to extract the map priors along with its extension to generate geometrical constraints in order to prevent the overlapping of the buildings within the map. Finally, leveraging the g2o API, we partitioned the pose graph in order to balance the localization and map constraints. We compared the developed system against the baseline using the KITTI dataset, showing that our system has greatly improved the baseline system, reducing the robot localization error and generating visually more consistent maps.
FROSI, MATTEO
ING - Scuola di Ingegneria Industriale e dell'Informazione
6-ott-2022
2021/2022
Simultaneous Localization And Mapping (SLAM) consiste nella costruzione simultanea di un modello dell’ambiente (la mappa) e nella stima della posa del robot che si muove al suo interno. Per ottenere una ricostruzione accurata della scena, nell’ultimo decennio sono stati proposti molti sistemi SLAM basati su LiDAR, che sfruttano dense nuvole di punti (point clouds) per tracciare il movimento del robot e costruire una mappa 3D. I sistemi esistenti, tuttavia, di solito non includono informazioni aggiuntive come l’utilizzo di mappe preesistenti (map priors), che possono rivelarsi utili nell’intero processo SLAM. Per questo motivo, miglioriamo un sistema esistente che include mappe 2D preesistenti per risolvere il problema SLAM. Le mappe corrispondono alle forme degli edifici di una città e sono fornite da OpenStreetMap (OSM). Elaborando i dati provenienti da un LiDAR, il robot percepisce gli edifici circostanti e cerca di abbinarli alla mappa precedente. In questo modo, il robot simultaneamente si localizzerà e correggerà le mappe mentre si muove. Per affrontare questo problema, viene utilizzato e migliorato un sistema SLAM basato su grafi esistente (baseline), come contributo principale di questa tesi. Il sistema è costituito da un grafo (grafo delle pose) i cui nodi corrispondono alle pose del robot e degli edifici e i cui archi rappresentano vincoli tra le pose. Per migliorare la baseline, abbiamo sviluppato diversi algoritmi e procedure. Inizialmente abbiamo implementato una procedura per scaricare e bufferizzare in modo asincrono le mappe per gestire il lungo tempo di risposta dei server di OSM. Per estrarre le caratteristiche rilevanti dalle point cloud del LiDAR, abbiamo implementato un algoritmo per estrarre le linee usando RANSAC. Inoltre presentiamo un algoritmo di corrispondenza delle point cloud (scan matching) basato su linee per estrarre i vincoli (map priors) dalla mappa di OSM insieme alla sua estensione per generare vincoli geometrici al fine di non far sovrapporre gli edifici nella mappa. Infine, sfruttando l’API g2o, abbiamo partizionato il grafo delle pose per bilanciare i vincoli sulla localizzazione e quelli estratti dalla mappa. Abbiamo confrontato il sistema sviluppato con la baseline utilizzando un dataset di KITTI, dimostrando che il nostro sistema ha notevolmente migliorato la baseline, riducendo l’errore di localizzazione del robot e generando mappe visivamente più coerenti.
File allegati
File Dimensione Formato  
Improved_Graph_SLAM_with_OpenStreetMap_Priors.pdf

accessibile in internet per tutti

Dimensione 12.94 MB
Formato Adobe PDF
12.94 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/195534