Header-based library for robust estimation: Graduated Non-Convexity + Black-Rangarajan duality. Code associated to the paper: Fast and Robust Relative Pose Estimation for Calibrated Cameras
Authors: Mercedes Garcia-Salguero, Javier Gonzalez-Jimenez
License: GPLv3
If you use this code for your research, please cite:
@misc{garciasalguero2021fast,
title={Fast and Robust Certifiable Estimation of the Relative Pose Between Two Calibrated Cameras},
author={Mercedes Garcia-Salguero and Javier Gonzalez-Jimenez},
year={2021},
eprint={2101.08524},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Note: This library wraps around the Optimization library
@article{rosen2019se,
title={SE-Sync: A certifiably correct algorithm for synchronization over the special Euclidean group},
author={Rosen, David M and Carlone, Luca and Bandeira, Afonso S and Leonard, John J},
journal={The International Journal of Robotics Research},
volume={38},
number={2-3},
pages={95--125},
year={2019},
publisher={Sage Publications Sage UK: London, England}
}
- Eigen
sudo apt install libeigen3-dev
- Optimization (own fork)
git clone https://github.com/mergarsal/Optimization.git
git clone --recursive https://github.com/mergarsal/GNCSO.git
cd GNCSO
mkdir build & cd build
cmake ..
make -jX
The compiled examples should be inside the examples
directory. Run:
./examples/GNC_rotation_example
In build
folder:
sudo make install
We also provide the uninstall script:
sudo make uninstall
In your project, add the package:
find_package(gncso REQUIRED)
In your executable, add the library in
target_link_libraries(XXX gncso)
See folder example_install
for an example.