Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
SLAM Constructor Framework for ROS
1. The SLAM constructor framework for ROS
Arthur Huletski, Dmitriy Kartashov Kirill Krinkin
St. Petersburg Academic University St. Petersburg State Electrotechnical
University “LETI”
Introduction
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 satisfies performance con-
straints is still a subject of research. Experiments with tinySLAM [1] and
GMapping and analysis of FastSLAM, DP-SLAM and some visual SLAMs such
as RatSLAM, LSD-SLAM and ORB-SLAM [2] 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).
Goals
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
sensor1
sensor2
tracking
s1
data
fMap
pose est.1
+
pose est.2
sensor
fusion
s2
data
poseest
sensorn — any sensor;
sn data — sensor data that can be filtered or refined;
tracking holds actual pose value and modifies 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 filter, Kalman filter, etc.);
“+” operator combines refined 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” modifications (e.g. ad-hoc details) introduced by an algorithm
and not mentioned in its paper became more noticeable.
Related Works
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) [3] provides a set of
libraries applied in common areas of robotics research. It implements several
SLAM methods as a set of customizable monolithic classes.
References
[1] A. Huletski, D. Kartashov, K. Krinkin, “TinySLAM Improvements for Indoor Navigation”, in
Proc. of IEEE International Conference on Multisensor Fusion and Integration for Intelligent
Systems, 2016.
[2] A. Huletski, D. Kartashov, K. Krinkin, “Evaluation of the modern visual SLAM methods”,
in Proc. of AINL-ISMW FRUCT, pp. 19-25, 2015.
[3] Mobile Robot Programming Toolkit, http://www.mrpt.org/
SLAM Framework Architecture
Input / Output
ROS AdapterVisual Debugger Physical Sensors
Core
Filtering
Particle Filter
Scan Matchers
Olson (BF)
Hough
Monte-Carlo
Mapping
Grid Map
SLAM Algorithms
GMapping
ORB-SLAMLSD-SLAM
tinySLAM
FastSLAM
Motion Model
Interoception-based
Visual Odometry
ORB Features
Kalman
Filters
Gradient
Descent
Graph
Map
Graph
Optimization
Loop
Closure
Cell
Models
GraphSLAM
(scan based)
Correlation
Functions
Semi-dense Depth
Map
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.
Ongoing Work
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,
monocular/stereo cameras);
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).
Conclusion
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
be implemented.
https://github.com/OSLL/slam-constructor ros@osll.ru