dpgo
dpgo copied to clipboard
Distributed Pose Graph Optimization
DPGO
Introduction
This repository contains implementation of synchronous and asynchronous Distributed Pose Graph Optimization (DPGO). The algorithms are described in the following publications:
-
Y. Tian, K. Khosoussi, D. M. Rosen, J. P. How. Distributed Certifiably Correct Pose-Graph Optimization, in IEEE Transactions on Robotics, 2021.
-
Y.Tian, A. Koppel, A. S. Bedi, J. P. How. Asynchronous and Parallel Distributed Pose Graph Optimization, in IEEE Robotics and Automation Letters, RA-L best paper honorable mention, 2020.
Building the C++ Library
Install dependencies.
sudo apt-get install build-essential cmake-gui libsuitesparse-dev
Inside the C++ directory, execute the following commands.
mkdir build
cd build
cmake ../
make
The built executables are located in directory build/bin. For a serialized demo of distributed PGO on one of the benchmark datasets, inside the build directory run:
./bin/multi-robot-example 5 ../data/smallGrid3D.g2o
Optionally, run the unit tests by,
./bin/testDPGO
ROS Support
A ROS wrapper of dpgo is provided: dpgo_ros. If you want to use dpgo with ROS, please follow instructions in the README.
References
If you find this library useful, please consider citing our papers:
@ARTICLE{Tian2021Distributed,
author={Tian, Yulun and Khosoussi, Kasra and Rosen, David M. and How, Jonathan P.},
journal={IEEE Transactions on Robotics},
title={Distributed Certifiably Correct Pose-Graph Optimization},
year={2021},
volume={},
number={},
pages={1-20},
doi={10.1109/TRO.2021.3072346}}
@ARTICLE{Tian2020Asynchronous,
author={Tian, Yulun and Koppel, Alec and Bedi, Amrit Singh and How, Jonathan P.},
journal={IEEE Robotics and Automation Letters},
title={Asynchronous and Parallel Distributed Pose Graph Optimization},
year={2020},
volume={5},
number={4},
pages={5819-5826},
doi={10.1109/LRA.2020.3010216}}