g2o - General Graph Optimization
================================
Linux: [![Build Status](https://travis-ci.org/RainerKuemmerle/g2o.svg?branch=master)](https://travis-ci.org/RainerKuemmerle/g2o)
Windows: [![Build status](https://ci.appveyor.com/api/projects/status/9w0cpb9krc6t4nt7/branch/master?svg=true)](https://ci.appveyor.com/project/RainerKuemmerle/g2o/branch/master)
[![Code Quality: Cpp](https://img.shields.io/lgtm/grade/cpp/g/RainerKuemmerle/g2o.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/RainerKuemmerle/g2o/context:cpp)
[![Total Alerts](https://img.shields.io/lgtm/alerts/g/RainerKuemmerle/g2o.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/RainerKuemmerle/g2o/alerts)
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
### Documentation
A detailed description of how the library is structured and how to use and extend it can be found in /doc/g2o.pdf
The API documentation can be generated as described in doc/doxygen/readme.txt
### 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
* cmake http://www.cmake.org/
* Eigen3 http://eigen.tuxfamily.org
On Ubuntu / Debian these dependencies are resolved by installing the
following packages.
- cmake
- libeigen3-dev
#### Optional requirements
* 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.
- libsuitesparse-dev
- qtdeclarative5-dev
- qt5-qmake
- libqglviewer-dev
#### Mac OS X
If using [Homebrew](http://brew.sh/), then
`brew install brewsci/science/g2o`
will install g2o together with its required dependencies. In this case no manual compilation is necessary.
#### Windows
If using [vcpkg](https://github.com/Microsoft/vcpkg), then
`scripts\install-deps-windows.bat`
will build and install the required dependencies. The location of `vcpkg` and required triplet are determined by the environment variables `VCPKG_ROOT_DIR` and `VCPKG_DEFAULT_TRIPLET`.
### 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.
On Windows with `vcpkg` the following two commands will generate build scripts for Visual Studio 2017 MSVC 14 tool set:
- `mkdir build`
- `cd build`
- `cmake -G "Visual Studio 14 2017 Win64" -DG2O_BUILD_APPS=ON -DG2O_BUILD_EXAMPLES=ON -DVCPKG_TARGET_TRIPLET="%VCPKG_DEFAULT_TRIPLET%" -DCMAKE_TOOLCHAIN_FILE="%VCPKG_ROOT_DIR%\scripts\buildsystems\vcpkg.cmake" ..`
If you are compiling on Windows and you are for some reasons **not** using `vcpkg` 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.
### Projects using g2o
- [g2opy](https://github.com/uoip/g2opy): Python binding
- [.Net wrapper](https://github.com/fugro/g2o)
### Contact information
Rainer Kuemmerle <kuemmerl@informatik.uni-freiburg.de>
Giorgio Grisetti <grisetti@dis.uniroma1.it>
Hauke Strasdat <strasdat@gmail.com>
Kurt Konolige <konolige@willowgarage.com>
Wolfram Burgard <burgard@informatik.uni-freiburg.de>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
根据ORBSLAM2编写的基于ROS平台的SLAM(练手项目).zip (1343个子文件)
local_setup.bash 283B
local_setup.bash 283B
local_setup.bash 283B
local_setup.bash 283B
local_setup.bash 283B
local_setup.bash 283B
setup.bash 260B
setup.bash 260B
setup.bash 260B
setup.bash 260B
setup.bash 260B
setup.bash 260B
install-deps-windows.bat 970B
robots.bib 2KB
feature_tests.bin 12KB
CMakeDetermineCompilerABI_CXX.bin 8KB
CMakeDetermineCompilerABI_CXX.bin 8KB
CMakeDetermineCompilerABI_C.bin 8KB
CMakeDetermineCompilerABI_C.bin 8KB
CMakeDetermineCompilerABI_CXX.bin 8KB
CMakeDetermineCompilerABI_C.bin 8KB
CMakeCCompilerId.c 24KB
CMakeCCompilerId.c 24KB
CMakeCCompilerId.c 18KB
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 4KB
cs_counts.c 3KB
cs_chol.c 3KB
os_specific.c 2KB
cs_scc.c 2KB
cs_qrsol.c 2KB
cs_symperm.c 2KB
cs_updown.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 1KB
cs_transpose.c 1KB
cs_compress.c 1019B
cs_fkeep.c 967B
cs_tdfs.c 941B
cs_malloc.c 925B
cs_randperm.c 915B
cs_scatter.c 899B
cs_lusol.c 884B
cs_cholsol.c 880B
cs_house.c 766B
cs_reach.c 701B
feature_tests.c 688B
cs_happly.c 601B
cs_cumsum.c 581B
cs_usolve.c 537B
cs_utsolve.c 536B
cs_ltsolve.c 535B
cs_lsolve.c 530B
cs_load.c 509B
cs_pinv.c 478B
cs_norm.c 476B
cs_entry.c 461B
cs_gaxpy.c 443B
cs_ipvec.c 325B
cs_pvec.c 324B
cs_droptol.c 245B
cs_dropzeros.c 224B
cache-v2 0B
cache-v2 0B
.catkin 129B
.catkin 115B
CATKIN_IGNORE 0B
CATKIN_IGNORE 0B
local_map.cbp 91KB
gmock.cbp 52KB
googletest-distribution.cbp 52KB
gtest.cbp 45KB
cmake.check_cache 85B
cmake.check_cache 85B
cmake.check_cache 85B
android.toolchain.cmake 82KB
Makefile.cmake 25KB
FindBLAS.cmake 13KB
cmake_install.cmake 11KB
cmake_install.cmake 10KB
FindLAPACK.cmake 10KB
feature_tracking-genmsg.cmake 10KB
feature_trackingConfig.cmake 10KB
feature_trackingConfig.cmake 9KB
local_mapConfig.cmake 9KB
共 1343 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于单片机的便携式粮食水分测试仪的研究
- 测绘基坑支护工程变形监测报告1.pdf
- 基于PHP+swoole实现的微信机器人,依赖vbot和微信网页版的功能,帮助管理微信群/聊天/踢人等+源码+开发文档+运行教程
- com.xunmeng.pinduoduo_Release_cd290ca9_ARM64.apk
- 2788727d-25a0-41b2-b6b4-265d193edb95.doc
- 基于AVR单片机的伺服电机系统研究
- Lab-Electronic Craft Practicum-2-Simulation of a Single Tube Com
- 贪吃蛇基于TypeScript
- CS-CP1-2C3WF固件
- 软件测试测试用例设计方法大全
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功