Giter Club home page Giter Club logo

openslam_g2o's Introduction

g2o - General Graph Optimization

g2o is an open-source C++ framework for optimizing graph-based nonlinear error
functions. g2o has been designed to be easily extensible to a wide range of
problems and a new problem typically can be specified in a few lines of code.
The current implementation provides solutions to several variants of SLAM and
BA.

A wide range of problems in robotics as well as in computer-vision involve the
minimization of a non-linear error function that can be represented as a graph.
Typical instances are simultaneous localization and mapping (SLAM) or bundle
adjustment (BA). The overall goal in these problems is to find the
configuration of parameters or state variables that maximally explain a set of
measurements affected by Gaussian noise. g2o is an open-source C++ framework
for such nonlinear least squares problems. g2o has been designed to be easily
extensible to a wide range of problems and a new problem typically can be
specified in a few lines of code. The current implementation provides solutions
to several variants of SLAM and BA. g2o offers a performance comparable to
implementations of state-of-the-art approaches for the specific problems
(02/2011).

Papers Describing the Approach:
Rainer Kuemmerle, Giorgio Grisetti, Hauke Strasdat,
Kurt Konolige, and Wolfram Burgard
g2o: A General Framework for Graph Optimization
IEEE International Conference on Robotics and Automation (ICRA), 2011
http://ais.informatik.uni-freiburg.de/publications/papers/kuemmerle11icra.pdf

g2o is licensed under the BSD License. However, some libraries are available
under different license terms. See below.

The following parts are licensed under LGPL3+:
- csparse_extension

The following parts are licensed under GPL3+:
- g2o_viewer
- g2o_incremental
- slam2d_g2o (example for 2D SLAM with a QGLviewer GUI)

Please note that some features of CHOLMOD (which may be used by g2o, see
libsuitesparse below) are licensed under the GPL. To avoid that your binary has
to be licensed under the GPL, you may have to re-compile CHOLMOD without
including its GPL features. The CHOLMOD library distributed with, for example,
Ubuntu or Debian includes the GPL features. The supernodal factorization is
considered by g2o, if it is available.

Within the folder EXTERNAL we include software not written by us to
guarantee easy compilation.
- csparse: LPGL2.1 (see EXTERNAL/csparse/License.txt)
  csparse is compiled if it is not provided by the system.
- ceres: BSD (see EXTERNAL/ceres/LICENSE)
  Headers to perform Automatic Differentiation
- freeglut: X Consortium (Copyright (c) 1999-2000 Pawel W. Olszta)
  We use a stripped down version for drawing text in OpenGL.

See the doc folder for the full text of the licenses.

g2o 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.  See the
licenses for more details.


Requirements:
g2o requires cmake and Eigen3 to build. The other requirements are optional.
  * cmake             http://www.cmake.org/
  * Eigen3            http://eigen.tuxfamily.org
  * suitesparse       http://www.cise.ufl.edu/research/sparse/SuiteSparse/
  * Qt4               http://qt-project.org
  * libQGLViewer      http://www.libqglviewer.com/

  On Ubuntu / Debian these dependencies are resolved by installing the
  following packages.
    - cmake
    - libeigen3-dev
    - libsuitesparse-dev
    - libqt4-dev
    - qt4-qmake
    - libqglviewer-qt4-dev


Compilation:
Our primary development platform is Linux. Experimental support for
Mac OS X and Windows (MinGW or MSVC).
We recommend a so-called out of source build which can be achieved
by the following command sequence.

- mkdir build
- cd build
- cmake ../
- make

The binaries will be placed in bin and the libraries in lib which
are both located in the top-level folder.
If you are compiling on Windows, please download Eigen3 and extract it.
Within cmake-gui set the variable G2O_EIGEN3_INCLUDE to that directory.



Acknowledgments:
We thank the following contributors for providing patches:
- Simon J. Julier: patches to achieve compatibility with Mac OS X and others.
- Michael A. Eriksen for submitting patches to compile with MSVC.
- Mark Pupilli for submitting patches to compile with MSVC.


Contact information:
Rainer Kuemmerle <[email protected]>
Giorgio Grisetti <[email protected]>
Hauke Strasdat <[email protected]>
Kurt Konolige <[email protected]>
Wolfram Burgard <[email protected]>

openslam_g2o's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

openslam_g2o's Issues

Make File error while building g2o_viewer

Hi Sir, I wanted to run the openslam and for that I am compiling openslam_g2o library. However, after "cmake .." when run the "make" command, I get the following error and I am unable to resolve it.

Scanning dependencies of target g2o_simulator3d_application
[ 41%] Building CXX object g2o/apps/g2o_simulator/CMakeFiles/g2o_simulator3d_application.dir/test_simulator3d.cpp.o
[ 41%] Linking CXX executable ../../../../bin/g2o_simulator3d
[ 41%] Built target g2o_simulator3d_application
[ 41%] Generating moc_properties_widget.cxx
[ 42%] Generating ui_base_main_window.h
[ 42%] Generating ui_base_properties_widget.h
[ 43%] Generating moc_main_window.cxx
Scanning dependencies of target viewer_library
[ 44%] Building CXX object g2o/apps/g2o_viewer/CMakeFiles/viewer_library.dir/g2o_qglviewer.cpp.o
/home/aquarius/openslam_g2o/g2o/apps/g2o_viewer/g2o_qglviewer.cpp:46:13: error: conflicting return type specified for ‘virtual float g2o::{anonymous}::StandardCamera::zNear() const’
float zNear() const {
^
In file included from /usr/include/QGLViewer/qglviewer.h:26:0,
from /home/aquarius/openslam_g2o/g2o/apps/g2o_viewer/g2o_qglviewer.h:22,
from /home/aquarius/openslam_g2o/g2o/apps/g2o_viewer/g2o_qglviewer.cpp:19:
/usr/include/QGLViewer/camera.h:231:16: error: overriding ‘virtual qreal qglviewer::Camera::zNear() const’
virtual qreal zNear() const;
^
/home/aquarius/openslam_g2o/g2o/apps/g2o_viewer/g2o_qglviewer.cpp:53:13: error: conflicting return type specified for ‘virtual float g2o::{anonymous}::StandardCamera::zFar() const’
float zFar() const
^
In file included from /usr/include/QGLViewer/qglviewer.h:26:0,
from /home/aquarius/openslam_g2o/g2o/apps/g2o_viewer/g2o_qglviewer.h:22,
from /home/aquarius/openslam_g2o/g2o/apps/g2o_viewer/g2o_qglviewer.cpp:19:
/usr/include/QGLViewer/camera.h:232:16: error: overriding ‘virtual qreal qglviewer::Camera::zFar() const’
virtual qreal zFar() const;
^
g2o/apps/g2o_viewer/CMakeFiles/viewer_library.dir/build.make:80: recipe for target 'g2o/apps/g2o_viewer/CMakeFiles/viewer_library.dir/g2o_qglviewer.cpp.o' failed
make[2]: *** [g2o/apps/g2o_viewer/CMakeFiles/viewer_library.dir/g2o_qglviewer.cpp.o] Error 1
CMakeFiles/Makefile2:610: recipe for target 'g2o/apps/g2o_viewer/CMakeFiles/viewer_library.dir/all' failed
make[1]: *** [g2o/apps/g2o_viewer/CMakeFiles/viewer_library.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
aquarius@aquarius-7G-Series:~/openslam_g2o/build$

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.