1. Introduction

2. Keyframe-based Monocular SLAM Architecture
2.1. KSLAM architecture
2.2. Data association
2.3. Visual Initialization
2.4. Pose estimation
2.5. Topological/metric map generation
2.6. BA/PGO/map maintenance
2.7. Global Localization

3. Design choices
3.1. Data association
3.2. Visual initialization: choices made
3.3. Pose estimation: choices made
3.4. Topological/Metric Map generation: choices made
3.5. BA/PGO/Map maintenance: choices made
3.6. Failure recovery: choices made
3.7. Loop closure: choices made

4. Closed source systems

5. Discussion
5.1. Traits of Data association
5.2. Traits of initialization
5.3. Traits of pose estimation
5.4. Traits of map generation
5.5. Traits of BA/PGO/map maintenance
5.6. Traits of global localization

6. Conclusions