Git Product home page Git Product logo

gmmcalib's Introduction

GMMCalib

Extrinsic Calibration of LiDAR Sensors using GMM-based Joint Registration

This is the project for the LiDAR-to-LiDAR Calibration framework GMMCalib. GMMCalib performs a joint registration of LiDAR point clouds and provides a transformation matrix between the sensors as well as the reconstructed shape of targets in the environment.

Abstract: State-of-the-art LiDAR calibration frameworks mainly use non-probabilistic registration methods such as Iterative Closest Point (ICP) and its variants. These methods suffer from biased results due to their pair-wise registration procedure as well as their sensitivity to initialization and parameterization. This often leads to misalignments in the calibration process. Probabilistic registration methods compensate for these drawbacks by specifically modeling the probabilistic nature of the observations. This paper presents GMMCalib, an automatic target-based extrinsic calibration approach for multi-LiDAR systems. Using an implementation of a Gaussian Mixture Model (GMM)-based registration method that allows joint registration of multiple point clouds, this data-driven approach is compared to ICP algorithms. We perform simulation experiments using the digital twin of the EDGAR research vehicle and validate the results in a real-world environment. We also address the local minima problem of local registration methods for extrinsic sensor calibration and use a distance-based metric to evaluate the calibration results. Our results show that an increase in robustness against sensor miscalibrations can be achieved by using GMM-based registration algorithms.

Preprint: https://arxiv.org/abs/2404.03427

Prerequisites

To begin, prepare the PCD files for each sensor, following the example provided in the /data directory. The more frames (i. e. the more pcd files) of the LiDAR scans are provided, the better the results!

Configuration

The config file currently has four entries:

  • Initial Transformations: If an initial alignment of your point cloud is known and desired, you can define the roll, pitch, yaw angles as well as the translation vector. This can be of use if you want to perform calibration in a common reference frame.
  • Target position: In case you want to use a calibration target as well as a coarse position information of the target, you can use the parameters min_bound and max_bound. If you do not have a target, you can set them to [-50, -50, -50] and [50, 50, 50] or any desired range of the point cloud.

Use GMMCalib

A Dockerfile is provided for GMMCalib:

You can build the Docker file with a defined <tag>:

docker build -t gmmcalib:<latest> -f docker/Dockerfile .

Then run the GMM-based calibration with:

docker run -v $(pwd)/output:/app/output -it  gmmcalib:latest

The results, namely the calibration matrix and the numpy array of the reconstructed object, are saved in the /output path.

Work in Progress (WIP)

GMMCalib is an ongoing project. Future developments include:

  • Improving the usability of GMMCalib, including input data handling and configuration.
  • Include routine for initial target placement.
  • Enhancing the code to support an arbitrary number of LiDAR sensors.
  • Implementing pre-processing steps to reduce computation effort for target-less calibration.

Citation

@article{tahiraj2024gmmcalib,
  title={GMMCalib: Extrinsic Calibration of LiDAR Sensors using GMM-based Joint Registration},
  author={Tahiraj, Ilir and Fent, Felix and Hafemann, Philipp and Ye, Egon and Lienkamp, Markus},
  journal={arXiv preprint arXiv:2404.03427},
  year={2024}
}

gmmcalib's People

Contributors

ilirtahiraj avatar tumftm avatar

Stargazers

 avatar Loic Stratil avatar  avatar Roald Ong avatar Juwon Kim avatar Gilhwan Kang avatar Felix Fent avatar  avatar theme avatar mmc avatar  avatar weiWang avatar Wei-Lung Hsu avatar  avatar 李郑骁 avatar maky avatar Wangchao_Yu avatar  avatar YJZ_Lucky_Boy avatar  avatar  avatar  avatar NEU-Junshun avatar Dominik Kulmer avatar

Watchers

 avatar

gmmcalib's Issues

More detailed guidance

Recently, I've been focusing on the research of multi-radar calibration, according to your readme, the time-synchronized two lidar pcd file was placed in the data/sensor_1 and sensor_2 folder, but there are not right result out, The output is as follows. Maybe is there more detailed guidance?
`GMM Iteration: 93
GMM Iteration: 94
GMM Iteration: 95
GMM Iteration: 96
GMM Iteration: 97
GMM Iteration: 98
GMM Iteration: 99
Calibration Error:

[[ 9.99999101e-01 1.02013295e-03 8.70470902e-04 -2.00419349e-02]
[-1.02021259e-03 9.99999475e-01 9.10515112e-05 -6.24217816e-02]
[-8.70377561e-04 -9.19394947e-05 9.99999617e-01 1.67179780e-02]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00]]`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.