Paper: Subjective Local Maps for Hybrid Metric-Topological SLAM

Subjective Local Maps for Hybrid Metric-Topological SLAMRobotics and Autonomous Systems, 2009 – (PDF).

Abstract: Hybrid maps where local metric sub-maps are kept in the nodes of a graph-based topological structure are gaining relevance as the focus of robot Simultaneous Localization and Mapping (SLAM) shifts towards spatial scalability and long-term operation. In this paper we examine the applicability of spectral graph partitioning techniques to automatically generate metric sub-maps by establishing groups in the sequence of observations gathered by the robot. One of the main aims of this work is to provide a probabilistically grounded interpretation of such a partitioning technique in the context of generating these local maps. We also discuss how to apply it to different kinds of sensory data (stereo images and laser range scans) and how to consider them simultaneously. An important feature of our approach is that it implicitly takes into account the intrinsic characteristics of the sensors, such as the sensor field of view, to perform the partitioning instead of applying heuristics supplied by a human as in other works, and thus the robot builds “subjective” local maps. The ideas presented here are supported by experimental results from a real mobile robot as well as simulations for statistical analysis. We discuss the effects of considering different combinations of sensors in the resulting clustering of the environment.


2. Source code

The main method described in the paper, partitioning a map using a spectral graph-cut technique, is implemented in the class mrpt::slam::CIncrementalMapPartitioner. The generic algorithm for partitioning any graph given its adjacency matrix is implemented in mrpt::math::CGraphPartitioner.

There is a ready-to-use application, map-partition, which takes a map as input (a “.simplemap” file), and processes it to build the adjacency matrix and generate the partitions. It also shows graphically the original and the rearranged weight matrix (Ω in the paper).

3. The experiments

3.1. Statistical results

The statistical experiments reported in the paper have been obtained by invoking 150 times the following MRPT programs:

The first program simul-landmarks, takes its parameters from “config.ini” and generates a synthetic dataset “out.rawlog”.

Next, the application kf-slam executes the EKF filter and generates a file “OUT_KF-SLAM/ERRORS.txt” with an analysis of the information losses for each partitioning algorithm (refer to the paper for details).

The contents of the configuration files is:



3.2. Real dataset

In this experiment the input is a map built from data gathered by one of our mobile robots, Sancho. The raw data is available for download with the name “dataset_malaga_floor2.3_2lasers_stereo”.

However, for this experiment the data has been already processed and maps have been built using positions corrected through laser scans (using rbpf-slam). The already made maps, in the “.simplemap” file format can be downloaded here:

This package contains the following files:

  • 2007-05MAY-22_Floor2.3_1laser.simplemap
  • 2007-05MAY-22_Floor2.3_2laser.simplemap
  • 2007-05MAY-22_Floor2.3_2laser+visual_LM.simplemap
  • 2007-05MAY-22_Floor2.3_visual_LM.simplemap

Each of the maps contains one, two, or more sensor data (laser scanners & stereo images). To generate the partitions, the program map-partition is invoked with the map file as its argument on the command line, e.g:

The optional parameter “THRESHOLD” can be used to provide a different Ncut partitioning threshold in the range [0,2] (\tau in the paper). This will generate the sub-maps and also the auxiliary graph weight matrix, before and after rearranging it according to the partitioning, as in the attached screenshot.