视觉SLAM进阶从零开始手写VIO学习笔记(一)

前言

主要介绍SLAM后端优化的方法。

g2o简介

g2o是基于图优化的库,支持各种不同的solver, csparse, eigen可扩展性好,有很多slam常用的edge/vertex type。

官方文档

https://github.com/RainerKuemmerle/g2o

安装依赖

libqt4-dev 
qt4-qmake 
libqglviewer-dev 
libsuitesparse-dev
libcxsparse3.1.4 
libcholmod3.0.6

编译安装

cd g2o 
mkdir build 
cd build 
cmake .. 
make -j4
sudo make install

gtsam简介

gtsam是基于因子图优化的后端SLAM库,gtsam 4.0 加了个新的expression,号称比ceres的AD快,而且可以compose,目前看来处理slam问题gtsam是最好的选择。

官方文档

https://bitbucket.org/gtborg/gtsam/downloads/
http://borg.cc.gatech.edu/download.html#quickstart

安装依赖

sudo apt install libtbb-dev

编译安装

cd gstam 
mkdir build 
cd build 
cmake .. 
make -j4
sudo make install

ceres

ceres google用在Production code里,质量没得说,现在加入了一点点对slam的支持,tutorial里面有2d和3d slam的例子。

ceres官方文档

https://github.com/ceres-solver/ceres-solver/releases
http://ceres-solver.org/installation.html#linux

安装依赖

sudo apt-get install cmake

google-glog + gflags
sudo apt-get install libgoogle-glog-dev

BLAS & LAPACK
sudo apt-get install libatlas-base-dev

Eigen3
sudo apt-get install libeigen3-dev

SuiteSparse
sudo apt-get install libsuitesparse-dev

可能需要的依赖

liblapack-dev 
libcxsparse3.1.4 
libgflags-dev 
libgtest-dev

ceres的编译命令

cd ceres-solver
mkdir build
cd build
cmake ..
make  -j4
sudo make install

ceres的安装位置

头文件: /usr/local/include/ceres/
编译相关: /usr/local/lib/cmake/Ceres/
静态库文件:/usr/local/lib/libceres.a

AprilSAM

三个库ceres,g2o,gtsam都非常棒,然而都不是我要的。
太依赖各种库了,比如boost和eigen。
漫长的删boost和拆模板的过程。
参见AprilSAM。gtsam编译完百M级别的编译后大小,他是百k。

Sophus

Sophus库是一个较好的李群李代数库,此处安装的是非模板类的Sophus库。

官方文档

https://github.com/strasdat/Sophus

编译

cd sophus 
mkdir build 
cd build 
cmake .. 
make -j4
sudo make install

猜你喜欢

转载自blog.csdn.net/qq_21950671/article/details/105574720