[Documentation] [TitleIndex] [WordIndex

Only released in EOL distros:  

Package Summary

The package provides implementation of several 2D laser-based simultaneous localization and mapping (SLAM) algorithms (tinySLAM, vinySLAM, GMapping) created with the SLAM constructor framework. The framework provides common SLAM components that may help to develop custom SLAM algorithms and can be accessed by provided links.

SLAM Constructor Framework

The SLAM constructor framework provides common functionality and classes that may be used to create custom SLAM algorithms (currently only 2D laser scan-based methods are supported). It also includes implementation of several SLAM algorithms tinySLAM, vinySLAM and GMapping, which can be used as a base of a new SLAM algorithm.

Hardware Requirements

Current implementation requires odometry data and laser scans to be provided by the ROS topics (see Subscribed topics). It also supposes that a laser scanner is fixed in (0, 0) of a robot and mounted horizontally.


Provided algorithms usage

Each algorithm is supplied with launch-files for the MIT Stata Center and PR2 – Willow Garage datasets that give the idea of how to launch algorithms. The _mit_ launch-files can be used in general case if data provided by a dataset do not require any preprocessing. For example, tinySLAM can be launched in the following way:

roslaunch slam_constructor tiny_mit_run.launch path:=[path to dataset]

In order to run an algorithm on data received in real time you can remove a dataset player node from a launch file, but make sure that sensor data are provided through Subscribed topics.

Single-hypothesis SLAM workflow

The following diagram shows the expected workflow of the general single-hypothesis SLAM algorithm:



The following parameters are common for all provided SLAM algorithms:

ROS-specific parameters

General SLAM parameters

Scan matcher parameters

Algorithm-specific parameters



GMapping has the following additional parameters (note that ~slam/scmtch/oope/type shouldn't be provided or must be custom), see gmapping documentation for details:

Subscribed topics

Published topics

Required tf transforms

Provided tf transforms

Offline mode

The package provides the tool lslam2d_bag_runner to launch algorithms in the offline mode to process rosbag datasets.

lslam2d_bag_runner <slam type> <bag file>
                   [-v] [-t <traj file>] [-m <map file>] [-p <properties file>]


2024-04-13 13:09