DOOR-SLAM

Lajoie 2020 · Paper

One-line summary — DOOR-SLAM (Distributed, Online, and Outlier Resilient SLAM) is a fully distributed peer-to-peer SLAM system whose pairwise-consistency-based outlier rejection lets robot teams use aggressive place-recognition thresholds while safely filtering out spurious inter-robot loop closures.

Problem

Robot teams need a shared understanding of the environment and their location within it, without relying on an external positioning system such as GPS and with minimal information exchange. Distributed SLAM offers exactly this, but existing distributed systems were vulnerable to perception outliers: to avoid catastrophic false loop closures they used very conservative place-recognition parameters, which also rejected many valid loop-closure candidates and degraded trajectory accuracy. DOOR-SLAM decouples detection from validation — a robust back-end makes it safe to let more candidates through the front-end.

Method & architecture

Peer-to-peer architecture. Each robot performs single-robot SLAM when no teammate is in communication range and executes a distributed protocol during a rendezvous; there is no central server and no full-connectivity requirement. The implementation uses the Buzz swarm-programming language on top of ROS. Onboard, RTAB-Map stereo visual odometry produces the robot’s own pose graph; two distributed modules do the multi-robot work.

Distributed loop closure detection (no raw data exchange): each robot computes a NetVLAD descriptor (truncated to 128 dimensions) per keyframe. At a rendezvous, robot α\alpha sends robot β\beta only the descriptors generated since their last encounter; β\beta finds putative matches under a Euclidean-distance threshold and sends back, for those keyframes only, visual features (GFTT keypoints with ORB descriptors) and their 3D positions. Robot α\alpha runs geometric verification with OpenCV’s solvePnPRansac; a sufficient inlier set yields an inter-robot loop-closure measurement zˉβkαi\bar{\mathbf{z}}_{\beta_k}^{\alpha_i} (relative pose between keyframe ii of α\alpha and keyframe kk of β\beta).

Distributed outlier rejection — Pairwise Consistent Measurement set maximization (PCM). Two inter-robot loop closures zˉβkαj\bar{\mathbf{z}}_{\beta_k}^{\alpha_j} and zˉβlαi\bar{\mathbf{z}}_{\beta_l}^{\alpha_i} are pairwise consistent if the cycle they form with the two odometry segments composes to (near) identity:

(zˉαjαizˉβkαjzˉβlβk)zˉβlαiΣγ\left\|\left(\bar{\mathbf{z}}_{\alpha_j}^{\alpha_i}\oplus\bar{\mathbf{z}}_{\beta_k}^{\alpha_j}\oplus\bar{\mathbf{z}}_{\beta_l}^{\beta_k}\right)\ominus\bar{\mathbf{z}}_{\beta_l}^{\alpha_i}\right\|_{\Sigma}\leq\gamma

where Σ\|\cdot\|_\Sigma is the Mahalanobis distance, /\oplus/\ominus are pose composition/inversion, and the likelihood threshold γ\gamma comes from a chi-squared quantile. The largest set of mutually consistent measurements is found as a maximum clique of the consistency graph; everything outside the clique is rejected. Crucially, the metric only needs the loop-closure measurements and odometric pose estimates already exchanged for distributed PGO — outlier rejection comes “for free” in communication terms.

Distributed robust PGO. The inlier loop closures and odometry feed the two-stage distributed Gauss-Seidel optimizer of Choudhary et al.: robots first reach consensus on rotations, then recover full poses, exchanging only the pose estimates involved in inter-robot loop closures. The back-end is implemented in C++ on GTSAM.

Results

Why it matters for SLAM

Perceptual aliasing is the Achilles heel of multi-robot mapping: a single wrong inter-robot loop closure can fold two robots’ maps into each other irreparably. DOOR-SLAM made robust outlier rejection a first-class architectural component of distributed SLAM and demonstrated the payoff — aggressive front-end thresholds become safe, yielding more valid loop closures, not fewer. Its PCM formulation was subsequently adopted and extended by later systems (Kimera-Multi uses graduated non-convexity toward the same goal, and Swarm-SLAM comes from the same group). It is the reference design for outlier-resilient decentralized C-SLAM.