Overlapping Domain Decomposition for Distributed Pose Graph Optimization
Organizations: MIT Department of Aeronautics and Astronautics. · Draper Scholar, The Charles Stark Draper Laboratory, Cambridge, MA. · University of Michigan Robotics Department.
Abstract
We present ROBO (Riemannian Overlapping Block Optimization), a distributed and parallel approach to multi-robot pose graph optimization (PGO) based on the idea of overlapping domain decomposition. ROBO offers a middle ground between centralized and fully distributed solvers, where the amount of pose information shared between robots at each optimization iteration can be set according to the available communication resources. Sharing additional pose information between neighboring robots effectively creates overlapping optimization blocks in the underlying pose graph, which substantially reduces the number of iterations required to converge. Through extensive experiments on benchmark PGO datasets, we demonstrate the applicability and feasibility of ROBO in different initialization scenarios, using various cost functions, and under different communication regimes. We also analyze the tradeoff between the increased communication and local computation required by ROBO's overlapping blocks and the resulting faster convergence. We show that overlaps with an average inter-robot data cost of only 36 Kb per iteration can converge 3.1 faster in terms of iterations than state-of-the-art distributed PGO approaches. Furthermore, we develop an asynchronous variant of ROBO that is robust to network delays and suitable for real-world robotic applications.
Figures & tables
| Method | % Problems Solved at Iteration ( ) | ||||||||
| Dist. Chordal | Spanning Tree | Odometry | |||||||
| 100 | 500 | 1000 | 100 | 500 | 1000 | 100 | 500 | 1000 | |
| RBCD ++ | 45.5 | 45.5 | 59.1 | 13.6 | 27.3 | 31.8 | 0.00 | 9.1 | 22.7 |
| AMM-PGO # | 40.9 | 81.8 | 90.9 | 18.2 | 54.5 | 63.6 | 0.00 | 22.7 | 54.5 |
| ROBO-1 | 45.5 | 72.7 | 81.8 | 9.1 | 40.9 | 45.5 | 9.1 | 18.2 | 27.3 |
| ROBO-2 | 63.6 | 81.8 | 86.4 | 13.6 | 54.5 | 72.7 | 13.6 | 40.9 | 63.6 |
| Dataset | Opt. | Init. | Objective after 100 iterations | ||
|---|---|---|---|---|---|
| AMM-PGO # | ROBO-2 | ROBO-3 | |||
| ais2klinik (2D) | 188.5 | 2.6e8 | 488 | 1742 | 3.4e4 |
| city (2D) | 638.6 | 1.1e7 | 717.8 | 638.6 | 638.6 |
| cubicle (3D) | 717.1 | 2.5e6 | 852.9 | 717.1 | 717.1 |
| grid (3D) | 84319.01 | 4.9e5 | 84319.10 | 84319.01 | 84319.01 |
| rim (3D) | 5460.9 | 3.8e7 | 8702.3 | 5461.7 | 5460.9 |
| AMM-PGO # | ROBO-2 | ROBO-3 | |
| Avg. poses per iteration | 50 | 130 | 159 |
| Max. poses per iteration | 481 | 1010 | 1153 |
| Avg. data per iteration (Kb) | 11 | 29 | 36 |
| Max. data per iteration (Kb) | 108 | 226 | 258 |
| Avg. speedup over AMM-PGO # | - | 2.6 | 3.1 |
| Method | % Problems Solved at Iteration | ||||||
| RMSE APE | |||||||
| 100 | 500 | 1000 | 100 | 500 | 1000 | ||
| Sync. | MESA-parallel | 13.6 | 27.3 | 27.3 | 31.8 | 31.8 | 31.8 |
| ROBO-1 | 45.5 | 59.1 | 72.7 | 45.5 | 54.5 | 59.1 | |
| ROBO-2 | 50.0 | 68.2 | 77.3 | 54.5 | 63.6 | 72.7 | |
| ROBO-3 | 59.1 | 72.7 | 81.8 | 59.1 | 68.2 | 72.7 | |
| Dataset | Opt. | Init. | ROBO- objective after 30 s | ||||
|---|---|---|---|---|---|---|---|
| 2 | 3 | 4 | 5 | ||||
| ais2klinik (2D) | 188.5 | 322 | 196.9 | 195.5 | 194.3 | 193.8 | 192.6 |
| city (2D) | 638.6 | 711 | 650.3 | 642.6 | 640.1 | 639.3 | 638.8 |
| cubicle (3D) | 717.1 | 835 | 720.2 | 719.0 | 718.0 | 749.5 | 717.2 |
| grid (3D) | 84319 | 87265 | 84319 | 84334 | 84324 | 84324 | 84436 |
| rim (3D) | 5460.9 | 8084 | 5890.2 | 5535.2 | 5469.3 | 5467.1 | 5464.6 |
Pose Graph Optimization
Pose graph optimization estimates globally consistent positions and orientations by reconciling relative-pose measurements in a graph.
See all 28 papers