Home

Awesome

MAKS - Motion Averaging

MAKS contains routines for pose graph optimization and rotation averaging.

Dependencies

Compiling (C++)

The first thing you need to know is that the MATLAB code is independent from C++. So no need to compile anything!

The C++ code depends on the Eigen library for matrix operations and Intel® oneApi MKL for the PARDISO sparse solvers and BLAS.

We provide a (hopefully) fast way of compiling everything. Just run.
source install.sh

This script will try to locate everything needed and compile the code with either icc or g++.
If you run into trouble, edit the paths for Eigen and for your installation of oneAPI MKL in the shell script.

The executable has the name ravess_example.

To run:
./ravess_example ../data/sphere_SO3.g2o

References

[1] Gabriel Moreira, Manuel Marques and João Paulo Costeira. Rotation Averaging in a Split Second: A Primal-Dual Method and a Closed-Form for Cycle Graphs. Internacional Conference on Computer Vision (ICCV), 2021. [PDF] [Video]
[2] Gabriel Moreira, Manuel Marques and João Paulo Costeira. Fast Pose Graph Optimization via Krylov-Schur and Cholesky Factorization. IEEE/CVF Winter Conference on Applications of Computer Vision (WACV), 2021. [Video #1] [Video #2] [Video #3]

Datasets

The datasets are provided as .g2o files. You will find certain datasets with a naming convention like "_SO3.g2o". These were the ones used in our ICCV paper [1]. The difference between e.g., sphere.g2o and sphere_SO3.g2o is that the latter was cleaned of repeated edges and has no vertex/node information, only edge measurements.

Some of the original datasets can be found here:

[3] L. Carlone, R. Tron, K. Daniilidis, and F. Dellaert. Initialization Techniques for 3D SLAM: a Survey on Rotation Estimation and its Use in Pose Graph Optimization. In IEEE Intl. Conf. on Robotics and Automation (ICRA), pages 4597-4604, 2015.
[4] L. Carlone, D. M. Rosen, G. C. Calafiore, J. J. Leonard, and F. Dellaert. Lagrangian Duality in 3D SLAM: Verification Techniques and Optimal Solutions. In IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems (IROS), 2015.

Gabriel Moreira July 2022