Author: Álvaro Parra
iRotAvg (incremental rotation averaging) incrementally solves rotation averaging. iRotAvg is the optimisation core of L-infinity SLAM presented in [Á. Parra, T.-J. Chin, A. Eriksson, I. Reid: Visual SLAM: Why bundle adjust?, ICRA 2019].
This work was supported by Maptek and the ARC Linkage Project LP140100946.
Á. Parra, T.-J. Chin, A. Eriksson, I. Reid: Visual SLAM: Why bundle adjust?, ICRA 2019
iRotAvg is released under a GPLv3 license.
For a closed-source version of iRotAvg (e.g., for commercial purposes), please contact the author.
For an academic use of iRotAvg, please cite Á. Parra, T.-J. Chin, A. Eriksson, I. Reid: Why bundle adjust?, ICRA 2019.
- Eigen
- SuiteSparse
- opencv
- Boost (Filesystem)
In Mac:
brew install eigen
brew install suite-sparse
brew install opencv
brew install boost
In Ubuntu:
sudo apt install libeigen3-dev
sudo apt-get install libsuitesparse-dev
sudo apt-get install libboost-all-dev
For OpenCV wise, https://www.pyimagesearch.com/2018/05/28/ubuntu-18-04-how-to-install-opencv/ provides a good guide.
mkdir build
cd build
cmake ..
make
(binary is compiled inside src)
General usage follows ORB-SLAM input:
./irotavg orb_vocab.txt config.yaml sequence_path
where
orb_vocab.txt
Orb vocabulary as in ORB-SLAM.config.yaml
Configuration file as in ORB-SLAM.sequence_path
Directory containing the frame sequence.
To see more usage options simply execute:
./irotavg
To test iRotAvg with the KITTI dataset:
- Download the grayscale sequences from here.
- Download a configuration file from the ORB-SLAM monocular exampes. E.g.: KITTI00-02.yaml for sequences 0 to 2.
- Download and uncompress the orb vocabulary file from here.
- Execute
irotavg
passing the corresponding paths:./irotavg path/to/orb_vocab.txt path/to/config.yaml path/to/sequence/
The output is saved to:
rotavg_poses_ids.txt
Contains the ids (starting in 1) of frames in the view-graph (selected frames).rotavg_poses.txt
Contains the computed absolute poses.