An end-to-end application with a graphical user interface for easily calibrating the extrinsics between range and visual sensors.
Specifically, the app can calibrate the extrinsics of RGB-D cameras, 3D LiDARs, and any combination between them or with RGB cameras. Automatic and target-less calibration algorithms based on plane-matching and line-matching have been integrated into the app, allowing the calibration to be performed in any generic scene setting without the need for any specific targets. The app allows visualizing the data and tuning the parameters through a GUI at each stage of the process, thereby easing calibration efforts.
Author : karnikram
Note : Solvers are not fully complete for real-world use, contributions are welcome!
A Qt-based GUI for integrating all the steps of the calibration process - raw data inspection, selecting sensors and grouping observations, feature extraction and matching, results visualization, iterative reruns with different parameters and algorithms - all into one app.
An implementation of the calibration from planes algorithm[1] for calibrating range sensors (RGB-D cameras and 3D LiDARs), and integrated with the GUI. This includes plane extraction and matching, and least-squares minimization of the geometric cost function.
An implementation of the calibration from lines algorithm[2] for calibration range sensors with RGB cameras, and integrated with the GUI. This includes 2D and 3D line extraction and matching, and least-squares minimization of the geometric cost function.
Well structured code using OOP principles, and with detailed documentation to encourage more contributions. The core algorithms are written independent of the GUI so they can also be potentially run from the command line, independent of the GUI.
git clone https://github.com/karnikram/autocalib-sensor-extrinsics
cd autocalib-sensor-extrinsics
mkdir build && cd build
cmake ..
make
./gui/autocalib-sensor-extrinsics
TODO
The source files have been documented using doxygen style comment blocks. Running the command doxygen doc/Doxyfile
from the root of the project directory will generate the documentation in HTML that can be browsed.
The source code is released under the new BSD license.
autocalib-sensor-extrinsics has been tested with Qt 5.9.5, OpenCV 3.2.0, and PCL 1.8 on Ubuntu 18.04. This contains research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
1) E. Fernandez-Moral, J. Gonzalez-Jimenez, P. Rives and V. Arevalo, "Extrinsic calibration of a set of range cameras in 5 seconds without pattern", IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Chicago (USA), 2014. [link] 2) A. Perez-Yus, E. Fernandez-Moral, G. Lopez-Nicolas, JJ. Guerrero and P. Rives, "Extrinsic calibration of multiple RGB-D cameras from line observations", IEEE Robotics and Automation Letters 3 (1), 273-280. DOI: 10.1109/LRA.2017.2739104 [link]
Please cite the above papers if this application was useful for your research.
This project is being developed as a part of Google Summer of Code.
Organization : Mobile Robot Programming Toolkit
Mentors : Eduardo Fernandez-Moral, Jose Luis Blanco Claraco, Hunter Laux
Weekly Progress Logs: http://karnikram.info/blog/gsoc-2018-progress/
Project discussion thread: https://github.com/mrpt/GSoC2018-discussions/issues/2
Other minor contributions: PR #789, Issue #2364