The SLAM constructor framework for ROS
Arthur Huletski, Dmitriy Kartashov Kirill Krinkin
St. Petersburg Academic University St. Petersburg State Electrotechnical
Simultaneous Localization and Mapping (SLAM) methods are essen-
tial for mobile robots which are supposed to act in an unknown environment.
In spite of various algorithms have already been proposed, an algorithm that
robustly solves the problem in the general case and satisﬁes performance con-
straints is still a subject of research. Experiments with tinySLAM  and
GMapping and analysis of FastSLAM, DP-SLAM and some visual SLAMs such
as RatSLAM, LSD-SLAM and ORB-SLAM  have shown that all of these
SLAM methods have a similar structure. However, to the best of our knowl-
edge, there is no publicly available framework that provides a common set of
components in order to speed up SLAM research (frameworks and toolkits that
simplify development of SLAM parts are not taken into account).
creation of a framework that acts as a constructor of SLAM algorithms;
implementation of components that can be assembled into a SLAM method.
Typical SLAM Scheme
sensorn — any sensor;
sn data — sensor data that can be ﬁltered or reﬁned;
tracking holds actual pose value and modiﬁes it with s1 data (usually
odometry) to estimate robot’s current pose (pose est.1);
fMap stores information about an environment or robot’s trajectory in a
form that allows to extract an alternative pose estimate by s2 data;
sensor fusion combines given estimates to a more accurate one (e.g. with
Particle ﬁlter, Kalman ﬁlter, etc.);
“+” operator combines reﬁned pose estimate with sensor data to update
fMap with the most recent information.
Advantages of a SLAM Framework
speeds up an algorithm prototyping by usage of common components;
provides ability to combine goods of existent SLAMs in order to create a
better one (e.g. a version of a general method that is more robust when
it’s used in an indoor environment);
ROS integration allows to test an algorithm on well-known datasets;
“small” modiﬁcations (e.g. ad-hoc details) introduced by an algorithm
and not mentioned in its paper became more noticeable.
Manifold Toolkit (MTK) and g2o framework simplify nonlinear error
function optimization which is an essential part of a graph-based SLAM.
Mobile Robot Programming Toolkit (MRPT)  provides a set of
libraries applied in common areas of robotics research. It implements several
SLAM methods as a set of customizable monolithic classes.
 A. Huletski, D. Kartashov, K. Krinkin, “TinySLAM Improvements for Indoor Navigation”, in
Proc. of IEEE International Conference on Multisensor Fusion and Integration for Intelligent
 A. Huletski, D. Kartashov, K. Krinkin, “Evaluation of the modern visual SLAM methods”,
in Proc. of AINL-ISMW FRUCT, pp. 19-25, 2015.
 Mobile Robot Programming Toolkit, http://www.mrpt.org/
SLAM Framework Architecture
Input / Output
ROS AdapterVisual Debugger Physical Sensors
The current version of the framework is implemented in C++ and contains a
set of components required to implement a SLAM method that uses odometry
and 2D laser scans as sensors’ data.
add support for graph-based SLAM methods: base classes and optimization
methods (either ad-hoc or g2o-based);
implementation of extra scan matching methods (Hough, Olson);
add support for other sensors and measurement types (3D scans,
add extra components and algorithms that are commonly used by SLAM
methods (e.g. Kalman Filter, Information Filter);
implementation of feature-based SLAM methods (e.g. FastSLAM).
The framework provides basic components for implementation of SLAM
methods based on 2D laser scans.
The current C++ implementation is ROS compatible and also provides
such SLAM methods as GMapping and tinySLAM.
Development is in its initial stage and many features are still required to