Skip to content
forked from mit-acl/dpgo

Distributed Pose Graph Optimization

License

Notifications You must be signed in to change notification settings

DanMcGann/dc2-pgo

 
 

Repository files navigation

dpgo

Introduction

This repository contains implementation of synchronous and asynchronous Distributed Pose Graph Optimization (DPGO). The algorithms are described in the following publications:

Building the C++ Library

Install dependencies.

sudo apt-get install build-essential cmake-gui libsuitesparse-dev libboost-all-dev libeigen3-dev libgoogle-glog-dev

Inside the C++ directory, execute the following commands.

mkdir build
cd build
cmake ../
make

Running a minimal example

The built executables are located in directory build/bin. For a minimal 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

More Examples in ROS

A ROS wrapper of dpgo is provided: dpgo_ros. The ROS extension also provides examples for using the complete set of features implemented in dpgo. These include running the asynchronous version, speeding up convergence with Nesterov acceleration, and using robust optimization on real-world datasets to reject outlier measurements. To try out these examples, please checkout the README.

Usage in multi-robot collaborative SLAM

DPGO is currently used as the distributed back-end in Kimera-Multi, which is a robust and fully distributed system for multi-robot collaborative SLAM. Check out the full system as well as the accompanying datasets!

Citations

If you are using this library, please cite the following 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={37},
  number={6},
  pages={2137-2156},
  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}}

About

Distributed Pose Graph Optimization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 90.9%
  • CMake 9.1%