HOG-Man - Hierarchical Optimization for Pose Graphs on Manifolds

HOG-Man is an optimization approach for graph-based SLAM. It provides a highly efficient error minimization procedure that considers the the underlying space is a manifold and not a Euclidian space. It furthermore generates a hierarchy of pose-graphs which is used perform the operations during online mapping in a highly efficient way. The approach works in 2D and 3D.

Giorgio Grisetti; Rainer Kuemmerle; Cyrill Stachniss;

Get the Source Code!

Long Description
HOG-Man is a new hierarchical optimization solution to the graph-based simultaneous localization and mapping (SLAM) problem. During online operation, the approach corrects only the coarse structure of the scene and not the overall map. In this way, only the updates for the parts of the map that need to be inspected for making the data associations are carried out. The hierarchical approach provides accurate non-linear map estimates while being highly efficient. It applies an error minimization approach considering that the underlying space is a manifold. In this way, it avoids singularities in state space parameterization. The overall approach is accurate, efficient, designed for online operations, overcomes singularities, provides a hierarchical representation, and outperforms a series of state-of-the-art methods (02/2010).

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.

Format of the 2D graph files:

Every line in the file specifies either one vertex or one edge

The vertices are specified as follws: VERTEX2 id x y orientation (A 2D node in the graph)

EDGE2 observed_vertex_id observing_vertex_id forward sideward rotate inf_ff inf_fs inf_ss inf_rr inf_fr inf_sr (A 2D-edge in the graph. inf_xx are the information matrix entries of the constraint)

EQUIV id1 id2 (Equivalence constraints between nodes. It merges the node id1 and id2 wrt to the constraint between both vertices.)

Format of the 3D graph files:

Every line in the file specifies either one vertex or one edge

The vertices are specified as follws: VETREX3 x y z phi theta psi

The edges are specified as follows: EDGE3 observed_vertex_id observing_vertex_id x y z roll pitch yaw inf_11 inf_12 .. inf_16 inf_22 .. inf_66 (the information matrix is specified via its upper triangular block that means 21 values).

Type of Map
Graphs (nodes and edge)

Hardware/Software Requirements
Developed under Linux (GCC). Tested under Linux and Windows. Requires CSparse.

Papers Describing the Approach
Giorgio Grisetti, Rainer Kuemmerle, Cyrill Stachniss, Udo Frese, and Christoph Hertzberg: Hierarchical Optimization on Manifolds for Online 2D and 3D Mapping., IEEE International Conference on Robotics and Automation (ICRA), 2010 (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.

HOG-Man is licenced under LGPL v.3

Further Information
C++ code, well-coded, compact, efficient. Requires CSparse, QT and QGLViwer

*** OpenSLAM.org is not responsible for the content of this webpage ***
*** Copyright and V.i.S.d.P.: Giorgio Grisetti; Rainer Kuemmerle; Cyrill Stachniss; ***