SSA: Sparse Surface Adjustment 2D

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.

Michael Ruhnke; Rainer Kuemmerle; Giorgio Grisetti; Wolfram Burgard;

Get the Source Code via SVN
svn co

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:

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 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

ssa is licenced under LGPL v3

Further Information
C++ code, well-coded, compact, efficient.

*** is not responsible for the content of this webpage ***
*** Copyright and V.i.S.d.P.: Michael Ruhnke; Rainer Kuemmerle; Giorgio Grisetti; Wolfram Burgard; ***