Skip to content
/ GNCSO Public
forked from mergarsal/GNCSO

Header-based library for robust GNC+BR

License

Notifications You must be signed in to change notification settings

MAPIRlab/GNCSO

 
 

Repository files navigation

GNCSO Library: GNC robust framework

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}
        }

Dependences

  • Eigen
       sudo apt install libeigen3-dev
  • Optimization (own fork)
       git clone https://github.com/mergarsal/Optimization.git

Build

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

Install

In build folder:

        sudo make install

We also provide the uninstall script:

        sudo make uninstall

How to use the library in your project

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.

About

Header-based library for robust GNC+BR

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 84.2%
  • CMake 15.8%