Install dependencies
sudo apt-get install build-essential cmake-gui libsuitesparse-dev libboost-all-dev libeigen3-dev libgoogle-glog-devInside the C++ directory, execute the following commands
mkdir build
cd build
cmake ../
makeThe built executables are located in directory build/bin. For a minimal demo of DC2-PGO on one of the benchmark g2o datasets, inside the build directory run:
./bin/multi-robot-example 5 ../data/smallGrid3D.g2oFor a minimal demo of CORA on one of the benchmark pyfg datasets, inside the build directory run:
./bin/single-robot-example-ra-slam ../data/tiers.pyfgAny contributions should pass all checks in our .pre-commit-config.yaml file. To install the pre-commit hooks, run pre-commit install in the root directory of this repository. You may need to install some dependencies to get the pre-commit hooks to work.
pip install pre-commit
sudo apt-get install cppcheck
cd /path/to/dcora
pre-commit installRun the unit tests via
./bin/testDCORAIf you use this code in your research, please cite the following paper:
@inproceedings{thoms2025distributed,
booktitle = {2025 IEEE International Conference on Robotics and Automation (ICRA)},
isbn = {9798331541392},
keywords = {Distributed algorithms ; Noise},
language = {eng},
pages = {6190-6197},
publisher = {IEEE},
title = {Distributed Certifiably Correct Range-Aided SLAM},
year = {2025},
author = {Thoms, Alexander and Papalia, Alan and Velasquez, Jared and Rosen, David M. and Narasimhan, Sriram},
}