[Documentation] [TitleIndex] [WordIndex

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-07-13 14:38