SPM-SLAM Squared Planar Marker SLAM

Abstract

 

SLAM is generally addressed using natural landmarks such as keypoints or texture, but it poses some limitations, such as the need for enough textured environments and high computational demands. In some cases, it is preferable sacrificing the flexibility of such methods for an increase in speed and robustness by using artificial landmarks. 
 
The recent work MarkerMapper proposes an off-line method to obtain a map of squared planar markers in large indoor environments. By freely distributing a set of markers printed on a piece of paper, the method estimates the marker poses from a set of images, given that at least two markers are visible in each image. Afterwards, camera localization can be done, in the correct scale. However, an off-line process has several limitations. First, errors can not be detected until the whole process is finished, e.g., an insufficient number of markers in the scene or markers not properly spotted in the capture stage. Second, the method is not incremental, so, in case of requiring the expansion of the map, it is necessary to repeat the whole process from start. Finally, the method can not be employed in real-time systems with limited computational resources such as mobile robots or UAVs.
 
To solve these limitations, this work proposes a real-time solution to the problems of simultaneously localizing the camera and building a map of planar markers. This paper contributes with a number of solutions to the problems arising when solving SLAM from squared planar markers, coining the term SPM-SLAM.  The experiments carried out show that our method can be more robust, precise and fast, than visual SLAM methods based on keypoints or texture.
 

Citation

Rafael Muñoz-Salinas,Manuel J. Marín-Jiménez Manuel and Rafael Medina-Carnicer , "SPM-SLAM: Simultaneous Localization and Mapping with Squared Planar Markers", September 2018 Pattern Recognition DOI: 10.1016/j.patcog.2018.09.003

Code

Download Source Code

The dataset employed in Sect. 5.4 of the paper is available for Download. There is a README.txt file with details.

 

Compiling

The code has only one external dependency: OpenCv.

We know it compiles in Ubuntu. 

Compile using cmake:

mkdir build; cd build;cmake ..;make -j

 

The code will generate the program spm-slam. Run it without arguments to know how to use it or read the README file in the code.