Current version: 0.0.1
IMU Preintegration is a real-time module library. It is able to use for VIO and VI SLAM. We provide two parameterized method (rotation matrix and quaternion) using two non-linear optimizations libraries for estimating the states. We also provide the examples to run this library and show how to use this IMU Preintegration module library.
This library is not bug-free, and welcome to improve it together!
version: 0.0.1
The version 0.0.1 only provide the API for computing the IMU Preintegration measurments. In next version will provide the g2o library state vertex and error edge for IMU Preintegration.
-
Forster C, Carlone L, Dellaert F, et al. On-Manifold Preintegration for Real-Time Visual--Inertial Odometry. IEEE Transactions on Robotics, 2017, 33(1): 1-21. PDF.
-
Tong Qin, Peiliang Li, Zhenfei Yang, Shaojie Shen, VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator, IEEE Transactions on Robotics. PDF
IMU Preintegration is released under a GPLv3 license. For a list of all code/library dependencies (and associated licenses), please see Dependencies.md.
We have tested the library in Ubuntu 14.04 and 16.04, but it should be easy to compile in other platforms. A powerful computer (e.g. i7) will ensure real-time performance and provide more stable and accurate results.
We use the new thread and chrono functionalities of C++11.
Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. Required at least 3.1.0.
BLAS and LAPACK libraries are requiered by g2o (see below). On ubuntu:
sudo apt-get install libblas-dev
sudo apt-get install liblapack-dev
We use modified versions of the g2o library to perform non-linear optimizations. The modified libraries (which are BSD) are included in the Thirdparty folder.
We also use ceres library to perform non-linear optimizations.
Clone the repository:
git clone [email protected]:mc275/IMU_Preintegration.git
We provide a script build.sh
to build the Thirdparty libraries and IMU Preintegration. Please make sure you have installed all required dependencies (see section 2). Execute:
cd IMU_Preintegration
chmod +x build.sh
./build.sh
This will create libIMU_Preintegration.so at lib folder and the executables main in bin folder.
-
Download a sequence (ASL format) from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets
-
Execute the following first command for V1 and V2 sequences, or the second command for MH sequences. Change PATH_TO_SEQUENCE_FOLDER and SEQUENCE according to the sequence you want to run.
./bin/main PATH_TO_SEQUENCE_FOLDER/imu0/data.csv
You can refer to the examples for IMU Preintegration and call this library API for your own datasets.