I. Introduction

II. Taxonomy of Existing Approaches

III. Incremental Motion Estimation

IV. Global Relocalization

V. Mapping

VI. Loop-Closing and SLAM Back-Ends

VII. Uncertainty Estimation

VIII. Sensor Fusion

IX. Discussions