GithubHelp home page GithubHelp logo

autol2lcalib's Introduction

AutoL2LCalib: an Automated LiDAR-to-LiDAR Extrinsic Pose Calibrator

aligned four lidars via the AutoL2LCalib

1. Descriptions

Note: This program is for a paper submission under review. After acceptance notifications, the paper information will be updated.

The AutoL2LCalib is a program to estimate an extrinsic relative pose of two 3D LiDARs by only using point clouds from the LiDARs without any aid of other sensors, such as cameras, inertial measurement units (IMUs), global positioning systems (GPS). By compensating range offset errors for each channel of LiDARs, accuracy of the relative pose estimation is improved.

The source code is written in two languages: MATLAB and C++.

Four main features of the AutoL2LCalib are like;

  • The algorithm needs no additional sensor except for LiDARs to estimate relative poses of LiDARs.
  • An arbitrarily-shaped planar board without dimensions is an only additional requirement to tackle the algorithm. (i.e. no need of chessboard!)
  • No assumption for operating environments is needed. (e.g. three orthogonal planes, horizontally-attached sensor configuration, specific environmental settings with known dimensions...)
  • The planar board regions in 3D point clouds are automatically extracted by the proposed planar board extraction and completion method. (no need of exhaustive user-intervention to specify target regions!)

The estimation accuracy of AutoL2LCalib is extensively evaluated by using four Velodyne VLP-16 LiDARs with various configurations and various planar boards (long board, broken board, and chess board).

The C++ version of the code will be uploaded soon.

Datasets used in the paper

The datasets used in our submission are available from a bottom URL. All data is obtained in a gym with a monocular camera and two Velodyne VLP-16 Puck LiDARs.

  • Camera: mvBlueCOUGAR-X104iG, Matrix Vision GmbH. (Provider)
  • LiDARs: Velodyne Puck LiDAR VLP-16, Velodyne. (Provider)

Especially, a dataset (referred as 'four_lidars') is obtained by using four Velodyne VLP-16 LiDARs. All extrinsic relative poses among LiDARs estimated by the proposed algorithm are included in each folder of datasets.

The detailed descriptions (data structure, intrinsic parameters, and etc..) can be seen a "READ_ME.txt" file in the dataset zip file.

2. How to use?

We provides two versions: MATLAB and C++ (with ROS).

1) Inputs

  • Common for both MATLAB and C++ versions.

Our program uses 3D point clouds from two LiDARs as forms of *" .pcd " files. The data fields of the pcd files could be like below,

pcd file inside

The order and types of data fields should obey below,

  • data fields: {x y z intensity ring time}
  • types: {float(4 Bytes) / float(4 Bytes) / float(4 Bytes) / unsigned long(2 Bytes) / float(4 Bytes)}

Each field means like,

  • x : x-coordinate of a 3D point
  • y : y-coordinate of a 3D point
  • z : z-coordinate of a 3D point
  • intensity : laser reflection intensity (0~255) of a 3D point
  • ring : # of a channel which a 3D point belongs
  • time : an acquisition timestamp of a 3D point

For more convenient use, we are working on ROS-based data streaming (from real-time acquisitions or rosbag) parser.

We are also working on new data parsers for MATLAB and C++ versions not to require the specific order of data fields.

2) MATLAB version

(a) Dependencies

Recommend: MATLAB version >= 2018b with Windows 10.

In versions under 2018a, some functions in the code could not be supported. Please notify us if you have problems when using the program.

(2) Installation

Just download the folder "MATLAB_VERSION" in this repository.

(3) Run

By starting the m-file " mainscript.m " in the folder, the AutoL2LCalib works automatically, and the mainscript shows aligned point clouds with the estimated relative pose of LiDARs. Default settings is for two Velodyne VLP-16 Pucks with 10 Hz (1,800 horizontal resoultion steps). You can modify the settings at the top of the mainscript.m to fit your own 3D LiDARs.

3) C++ version

TBD ASAP.

3. Cite AutoL2LCalib

Thank you for citing our AutoL2LCalib paper if you use any of this code:

  @inproceedings{
  title={Automated Extrinsic Calibration for 3D LiDARs with Range Offset Correction using an Arbitrary Planar Board},
  author={J. Kim, C. Kim, Y. Han, and H. J. Kim},
  booktitle={IEEE International Conference on Robotics and Automation (ICRA)},
  pages={5082-5088},
  year={2021},
  organization={IEEE}
  }

autol2lcalib's People

Contributors

junhaagu avatar changhyeonkim93 avatar

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.