An accurate and robust initialization is crucial for visual inertial odometry (VIO). Existing loosely-coupled VIO initialization methods suffer from poor stability from structure-from-motion (SfM). Whereas tightly-copupled methods often ignore the gyroscope bias in the closed-form solution, resulting in limited accuracy. Moreover, the aforementioned two classes of methods are computationally expensive, because 3D point clouds need to be reconstructed simultaneously. We propose a novel VIO initialization method, which decouples rotation and translation estimation, and achieves higher efficiency and better robustness. This code is the implementation of our proposed method, which runs on Linux. We also provide the code of loosely coupled method and tightly coupled method for comparision as described in the paper. Since I am still busy cleaning up the code, we released the drt-vio-initialization and other comparison algorithms will be released later.
1.1 Ubuntu
1.2. Dependency
Clone the repository and compile the project:
git clone https://github.com/boxuLibrary/drt-vio-init.git
cd ~/drt-vio-init/
mkdir build
cd build
cmake ..
make -j4
./executableFile codeType dataType
where codeType means the initialization method. You can set to be drtTightly or drtLoosely. And dataType means the name of save file, that is consistent with the running dataset.
@InProceedings{He_2023_CVPR,
author = {He, Yijia and Xu, Bo and Ouyang, Zhanpeng and Li, Hongdong},
title = {A Rotation-Translation-Decoupled Solution for Robust and Efficient Visual-Inertial Initialization},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2023},
pages = {739-748}
}
If you use drt-vio-initialization for your academic research, please cite our related papers.
The source code is released under GPLv3 license.