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.
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.
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.
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.
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
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
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