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%.