g2o - General Graph Optimization
================================
[![Build Status](https://travis-ci.org/RainerKuemmerle/g2o.svg?branch=master)](https://travis-ci.org/RainerKuemmerle/g2o)
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
### License
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/
* Qt5 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
- Qt4: `libqt4-dev`, `qt4-qmake`, `libqglviewer-dev` (Or `libqglviewer-qt4-dev` in modern distributions)
- Qt5: `libqt5-dev`, `qt5-qmake`, `libqglviewer-dev`
#### Mac OS X
If using [Homebrew](http://brew.sh/), then
`brew install homebrew/science/g2o`
will install g2o together with its required dependencies. In this case no manual compilation is necessary.
### Compilation
Our primary development platform is Linux. Experimental support for
Mac OS X, Android 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.
### Cross-Compiling for Android
- `mkdir build`
- `cd build`
- `cmake -DCMAKE_TOOLCHAIN_FILE=../script/android.toolchain.cmake -DANDROID_NDK=<YOUR_PATH_TO_ANDROID_NDK_r10d+> -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" -DEIGEN3_INCLUDE_DIR="<YOUR_PATH_TO_EIGEN>" -DEIGEN3_VERSION_OK=ON .. && cmake --build .`
### 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]>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
毕设&课设&项目&实训-基于ROS的RGBDSLAM程序.zip (707个子文件)
robots.bib 2KB
cs_amd.c 16KB
cs_dmperm.c 6KB
cs_maxtrans.c 4KB
cs_util.c 4KB
cs_lu.c 4KB
cs_sqr.c 4KB
cs_qr.c 3KB
cs_counts.c 3KB
cs_chol.c 3KB
os_specific.c 2KB
cs_scc.c 2KB
cs_qrsol.c 2KB
cs_updown.c 2KB
cs_symperm.c 2KB
cs_dfs.c 2KB
cs_multiply.c 2KB
cs_print.c 1KB
cs_add.c 1KB
cs_dupl.c 1KB
cs_spsolve.c 1KB
cs_etree.c 1KB
cs_schol.c 1KB
cs_ereach.c 1KB
cs_post.c 1KB
cs_permute.c 1KB
cs_leaf.c 1012B
cs_transpose.c 1008B
cs_compress.c 997B
cs_fkeep.c 942B
cs_tdfs.c 917B
cs_randperm.c 893B
cs_malloc.c 890B
cs_scatter.c 877B
cs_lusol.c 858B
cs_cholsol.c 854B
cs_house.c 743B
cs_reach.c 682B
cs_happly.c 582B
cs_cumsum.c 564B
cs_usolve.c 519B
cs_utsolve.c 518B
cs_ltsolve.c 517B
cs_lsolve.c 512B
cs_load.c 494B
cs_pinv.c 467B
cs_norm.c 461B
cs_entry.c 448B
cs_gaxpy.c 426B
cs_ipvec.c 316B
cs_pvec.c 315B
cs_droptol.c 236B
cs_dropzeros.c 215B
android.toolchain.cmake 80KB
FindBLAS.cmake 13KB
FindLAPACK.cmake 10KB
FindG2O.cmake 3KB
FindG2O.cmake 3KB
FindEigen3.cmake 3KB
FindSuiteSparse.cmake 3KB
FindCholmod.cmake 2KB
FindDBoW3.cmake 2KB
FindQGLViewer.cmake 2KB
FindCSparse.cmake 576B
FindCSparse.cmake 576B
doxy.config 74KB
COPYING 1KB
flex_scanner.cpp 48KB
freeglut_stroke_mono_roman.cpp 47KB
freeglut_stroke_roman.cpp 47KB
bison_parser.cpp 36KB
g2o-unfold.cpp 31KB
optimizable_graph.cpp 29KB
g2o.cpp 25KB
graph_optimizer_sparse_incremental.cpp 21KB
sparse_optimizer.cpp 20KB
g2o_hierarchical.cpp 20KB
types_sba.cpp 18KB
simple_star_ops.cpp 17KB
bal_example.cpp 15KB
main_window.cpp 15KB
command_args.cpp 15KB
sclam_pure_calibration.cpp 14KB
g2o_slam_interface.cpp 14KB
simulator_3d_plane.cpp 14KB
generate_commands.cpp 12KB
simulator.cpp 12KB
sba_demo.cpp 11KB
types_icp.cpp 11KB
ba_anchored_inverse_depth_demo.cpp 11KB
types_six_dof_expmap.cpp 10KB
estimate_propagator.cpp 10KB
converteSegmentLine.cpp 10KB
convertSegmentLine.cpp 10KB
ba_demo.cpp 10KB
gm2dl_io.cpp 9KB
hyper_graph_action.cpp 9KB
hyper_dijkstra.cpp 9KB
graph_optimizer_sparse_online.cpp 9KB
sclam_odom_laser.cpp 9KB
共 707 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功