  SLAM (Simultaneous Localization And Mapping) seeks to provide a moving agent
with real-time self-localization. To achieve real-time speed, SLAM
incrementally propagates position estimates. This makes SLAM fast but also
makes it vulnerable to local pose estimation failures. As local pose estimation
is ill-conditioned, local pose estimation failures happen regularly, making the
overall SLAM system brittle. This paper attempts to correct this problem. We
note that while local pose estimation is ill-conditioned, pose estimation over
longer sequences is well-conditioned. Thus, local pose estimation errors
eventually manifest themselves as mapping inconsistencies. When this occurs, we
save the current map and activate two new SLAM threads. One processes incoming
frames to create a new map and the other, recovery thread, backtracks to link
new and old maps together. This creates a Dual-SLAM framework that maintains
real-time performance while being robust to local pose estimation failures.
Evaluation on benchmark datasets shows Dual-SLAM can reduce failures by a
dramatic $88\%$.
