SSA is an open-source C++ tool for post optimization of graph-based 2D SLAM
solutions. SSA iteratively refines robot poses and 2D surface points in one
global graph optimization system and produces highly accurate 2D laser maps.
Laser scans are not treated as rigid body and might be refined during the
optimization procedure. This leads to substantially less accumulated noise
in the resulting map. SSA uses g2o as optimization back-end.
Long Description
The goal of Sparse Surface Adjustment 2D is to learn highly accurate
laser-based maps. Therefore it treats the overall mapping problem as a joint
optimization problem over robot poses and laser points.
Under the assumption that a laser range finder measures points sampled
from a regular surface this algorithm utilize an improved likelihood
function that accounts for two phenomena affecting the laser measurements
that are often neglected: the conic shape of the laser beam and the
incidence angle of a beam on the underlying surface. A maximum likelihood
configuration of all robot poses and all points is computed with g2o.
Since the data association is hard to solve on points only, SSA iteratively
updates the data association and local surface characteristics.
Sample datasets can be downloaded at:
http://www.informatik.uni-freiburg.de/~ruhnke/
Input Data
Nodes and edges of a graph.
Logfile Format
A set of simple text messages to represent nodes and edges of the graph.
Note that examples files are in the repository. See folder data.
Type of Map
Graphs (nodes and edge)
Hardware/Software Requirements
Developed under Linux (GCC). Tested under Linux.
CMake is needed for building. Uses SuiteSparse if available, requires Qt4
and libQGLViewer for the GUI. Furthermore libkdtree++ is needed.
Includes a copy of g2o.
Papers Describing the Approach
Michael Ruhnke, Rainer Kuemmerle, Giorgio Grisetti and Wolfram Burgard:
Highly Accurate Maximum Likelihood Laser Mapping by Jointly Optimizing Laser Points and Robot Poses,
IEEE International Conference on Robotics and Automation (ICRA), 2011 (
link)
License Information
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The authors allow the users of OpenSLAM.org to use and modify the source code for their own research. Any commercial application, redistribution, etc has to be arranged between users and authors individually and is not covered by OpenSLAM.org.
ssa is licenced under LGPL v3
Further Information
C++ code, well-coded, compact, efficient.