Overview
ORB-SLAM3 features a sophisticated multi-map system called the Atlas, which can create, manage, and merge multiple independent maps within a single session. This capability enables robust long-term operation, seamless map merging, and recovery from tracking failures.The Atlas system was introduced in ORB-SLAM3 based on the research paper “ORBSLAM-Atlas: a robust and accurate multi-map system” (IROS 2019).
The Atlas Class
The Atlas is the core data structure managing all maps in the system. Definition:include/Atlas.h:49-166
Key Concepts
Active Map
The active map is the map currently being used for tracking and mapping.Only one map is active at any given time. Tracking and local mapping operate on the active map.
Map States
Maps in the Atlas can be in different states:Active Map
Currently being used for tracking and mapping operations.
Inactive Maps
Previously created maps stored in the Atlas, available for reactivation.
Bad Maps
Maps marked as bad due to insufficient data or errors, scheduled for removal.
Multi-Map Workflows
Scenario 1: Tracking Loss and Recovery
Scenario 2: Revisiting Locations
When the camera revisits a previously mapped area:- Place Recognition detects the known location
- Map Matching identifies which inactive map corresponds to the location
- Map Activation switches the active map or merges maps
- Seamless Transition continues SLAM operation without interruption
Map Creation and Management
Creating a New Map
Accessing Maps
Inertial Map Properties
For visual-inertial SLAM, maps track additional IMU-related state:IMU Initialization: Visual-inertial maps require 2-15 seconds of initialization to estimate scale, gravity direction, and velocity. The
isImuInitialized() flag indicates when this process is complete.Map Merging
Map merging is one of the most powerful features of the Atlas system.When Maps Merge
Maps are merged when:- Loop Closure Detection finds a connection between maps
- Place Recognition identifies overlapping areas
- Sufficient Common Features are found between maps
Merging Process
Detect Overlap
Place recognition system identifies that the current location exists in an inactive map.
Compute Transformation
Calculate the relative transformation (rotation, translation, scale) between maps.
Seamless Fusion: Map merging happens automatically without user intervention, creating a unified map with globally consistent poses.
Map Persistence
ORB-SLAM3 supports saving and loading maps for reuse across sessions.Saving Maps
Loading Maps
Camera and Map Association
Multi-Camera Support
The Atlas manages cameras across different maps:include/Atlas.h:92-93.
Reference Map Points
Database Integration
KeyFrame Database
The Atlas integrates with the keyframe database for place recognition:ORB Vocabulary
The ORB vocabulary is shared across all maps:Statistics and Monitoring
Map Cleanup
Removing Bad Maps
Clearing Data
Serialization
The Atlas supports Boost serialization for save/load operations:Best Practices
Map Management Strategy
Map Management Strategy
- Let the system handle map creation automatically on tracking loss
- Don’t manually switch maps unless you have a specific reason
- Monitor map statistics to understand system behavior
- Save maps periodically for long-term applications
Memory Management
Memory Management
- Each map consumes memory for keyframes and map points
- Bad maps are automatically cleaned up
- For long sessions, consider saving and clearing old maps
- Merged maps free memory from the absorbed map
Inertial Considerations
Inertial Considerations
- Each new inertial map requires 2-15 seconds for IMU initialization
- Scale consistency is maintained across merged maps
- Check
isImuInitialized()before relying on metric scale
Place Recognition
Place Recognition
- Map merging depends on reliable place recognition
- Ensure good visual overlap between environments
- Loop closure quality affects merge quality
Use Cases
Long-Term Operation
Robot operating over multiple days/weeks, automatically managing maps as it explores new areas.
Exploration and Mapping
Creating separate maps for different floors or buildings, merging when overlap is detected.
Recovery from Failure
Automatically recovering from tracking loss by creating a new map, then merging when possible.
Multi-Session SLAM
Saving maps from previous sessions and merging them with new explorations.
Related Topics
SLAM Overview
Understand the overall SLAM architecture
System API
System class methods for map management
Loop Closing
How loop closure triggers map merging
Save/Load Maps
Guide to persisting maps across sessions
Technical Details
Thread Safety
The Atlas class uses mutexes for thread-safe operation:Map ID Tracking
Performance Considerations
- Memory: Each map stores keyframes (poses + features) and map points (3D positions)
- Computation: Map merging involves pose graph optimization (expensive but infrequent)
- Real-time: Active map operations are optimized for real-time performance
- Scaling: System tested with multiple maps totaling thousands of keyframes