/laserIMUCalibration

Detect movements in Pointclouds to calibrate Laserscanner with Interial Measurement Units and GPS

Primary LanguageC

Automated LiDAR-IMU Calibration with ICP

I wrote this program as part of my mastersthesis.

It provides an automated calibration method that uses movement data collected by Inertial Measurement Units (IMU)- and Global Positioning Satellite Systems (GNSS)-sensors to calibrate the mounting-pose of a Light Detection and Ranging (LiDAR)-scanner.

Background

Unmanned aircraft fulfil dirty, dangerous and demeaning tasks for human beings. Some applications require a map of the environment by consecutively registering point-cloud-data generated by LiDAR-sensors. The registration-process requires a mounting-pose between the LiDAR and NAV sensors (IMU and GNSS). Due to inaccurate measured mounting-poses the registration fails.

Approach

In this thesis I propose a method for an automated relative extrinsic calibration between the LiDAR and NAV, that uses a non-linear optimisation (Levenberg-Marquardt) to optimize the given mounting-pose. The results show, that the calibration may fail when the point-cloud data suffers from geometric instability, therefore I present different filter-techniques such as covariance-sampling to improve the point-cloud-data. This promising approach needs investigation concerning the parametrization of the proposed techniques.

Implementation

This repository contains the developed research code. The implementation uses Qt5 for a Graphical User Interface (GUI), VTK for algorithm visualisation and the Point-Cloud-Library (PCL) for point-cloud management as well as the Levenberg-Marquardt implementation from Dr. Joachim Wuttke.

Installation

Dependencies

To install the software and its dependencies on Mac OS X, use the package manger Homebrew.

After the installation of Homebrew you should install the software.

brew install cmake pcl graphviz doxygen

Fix for CMake and Qt5

When you use Qt5 you need to fix some links according to the wireshark-documentation.

brew link --force qt5 && ln -s /usr/local/Cellar/qt5/5.4.1/mkspecs /usr/local/mkspecs && ln -s /usr/local/Cellar/qt5/5.4.1/plugins /usr/local/plugins

Download

Replace <YOUR_DESTINATION> with the path where you want to store the source-code (e.g. ~/Development).

git clone https://github.com/gismo141/laserIMUCalibration.git <YOUR_DESTINATION>
cd <YOUR_DESTINATION>
mkdir build && cd build
cmake ..
make