/mix-cal

Extrinsic Calibration of Multiple Inertial Sensors from Arbitrary Trajectories

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Extrinsic Calibration of Multiple Inertial Sensors from Arbitrary Trajectories

This program serves the extrinsic calibration of multiple 6DOF inertial measurement unit (IMU) with arbitrary measurements. This program, wrapped with ROS as of now, requires the installation of Ceres Solver. Some code has been adapted from the OpenVINS, a open-sourced visual-inertial simulator.

Dependencies

The codebase has a dependency to the following libraries and tools:

Dataset [Link]

The dataset consists of (1) two IMUs, (2) one camera, and (3) trajectory captured by VICON for ground-truth, under three different perceptual conditions: (1) baseline, (2) ill-lit, and (3) blurry scenes. Collected while the camera heads toward the fiducal marker, this dataset is organized to our framework's performance to Kalibr, a camera-IMU calibration toolbox widely used.

How to execute

Disclaimer: The command below shows an example of how to build the program and execute it by roslaunch. The details on running it with the aforementioned dataset will be appeared shortly.

# setup your own workspace
mkdir -p ${YOUR_WORKSPACE}/catkin_ws/src/
cd ${YOUR_WORKSPACE}/catkin_ws
catkin init
# repositories to clone
cd src
git clone https://github.com/jongwonjlee/mix-cal.git
# go back to root and build
cd ..
catkin build -j4
# run the calibration
source devel/setup.bash
roslaunch imucalib run_record.launch csv_filepath:="${IMU_DATA_PATH}/" csv_filename:="results.csv"

Credit / Licensing

Please cite the following papers below for any academic usage:

@article{lee2022extrinsic,
  title={Extrinsic Calibration of Multiple Inertial Sensors from Arbitrary Trajectories},
  author={Lee, Jongwon and Hanley, David and Bretl, Timothy},
  journal={IEEE Robotics and Automation Letters},
  year={2022},
  publisher={IEEE}
}

@inproceedings{lee2024efficient,
  title        = {Efficient Extrinsic Self-Calibration of Multiple IMUs using Measurement Subset Selection},
  author       = {Lee, Jongwon and Hanley, David and Bretl, Timothy},
  booktitle    = {IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  year         = {2024},
  month        = {October},
  address      = {Abu Dhabi},
  organization = {IEEE}
}

The program is licensed under the GNU General Public License v3 (GPL-3) inherited from that of OpenVINS where some part of it is adapted. If you use code in this program pertaining to OpenVINS, please also cite the following:

@Conference{Geneva2020ICRA,
  Title      = {OpenVINS: A Research Platform for Visual-Inertial Estimation},
  Author     = {Patrick Geneva and Kevin Eckenhoff and Woosik Lee and Yulin Yang and Guoquan Huang},
  Booktitle  = {Proc. of the IEEE International Conference on Robotics and Automation},
  Year       = {2020},
  Address    = {Paris, France},
  Url        = {\url{https://github.com/rpng/open_vins}}
}