这里我们汇总一下SLAM开发中常用的库及安装方法:
OpenCV安装 & CMake安装
安装步骤
https://blog.csdn.net/Jum_Tsai/article/details/72466026
https://www.2cto.com/net/201702/592621.html
配置Bash
https://blog.csdn.net/cocoaqin/article/details/78163171
下载源码,包括opencv、opencv_contrib、opencv_extra,具体不做介绍。
https://github.com/opencv
OpenCV也是一个cmake工程,提供了大量的开源图像算法,是计算机视觉的必备库。
PCL安装
http://blog.csdn.net/mush_room/article/details/78339578
基本就三步:
1 sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
2 sudo apt-get update
3 sudo apt-get install libpcl-all
PCL(Point Cloud Library)是跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构.
Eigen安装
sudo apt-get install libeigen3-dev
Eigen是一个C++开源线性代数库,用来表示矩阵和矢量运算,数值分析及其相关的算法。
VIM配置
http://zuoqiang.iteye.com/blog/1155102
kdevelop安装
https://userbase.kde.org/KDevelop/Install#GNU.2FLinux
ceres-solver安装
http://ceres-solver.org/installation.html
ceres-solver是由Google开发的开源的非线性最小二乘问题的算法库。Ceres官网上的非常详细地介绍了其具体使用方法。
g2o安装
https://github.com/RainerKuemmerle/g2o
这里安装最容易出问题,不同Ubuntu版本对应的库不一样,这里是16.04版本安装的依赖库:
sudo apt-get install libeigen3-dev libsuitesparse-dev libqt4-dev qt4-qmake libqgliviewer-dev-qt4
基本上依赖的就是这几种库,但是,一定通过Tab键看看是不是更新过。
接下来就是解压,编译,安装了。
g2o是基于图优化的非线性误差函数的一个开源的C++框架。g2o已扩展到大范围的一个新的问题,问题通常可以在几行代码指定。目前的实现为SLAM和BA的几种变体提供了解决方案。
参考文献:
Grisetti, Giorgio, et al. “A tutorial on graph-based SLAM.”
Pangolin安装:
* use pangolin: slambook/3rdpart/Pangolin or download it from github: https://github.com/stevenlovegrove/Pangolin
* install dependency for pangolin (mainly the OpenGL):
sudo apt-get install libglew-dev
* compile and install pangolin
cd [path-to-pangolin]
mkdir build
cd build
cmake ..
make
sudo make install
编译之前,通常将源码目录Pangolin\src\display\device下的display_x11.cpp文件注释下面的两行代码:
staticint visual_attribs[] =
{
GLX_X_RENDERABLE , True,
GLX_DRAWABLE_TYPE , GLX_WINDOW_BIT,
GLX_RENDER_TYPE , GLX_RGBA_BIT,
GLX_X_VISUAL_TYPE , GLX_TRUE_COLOR,
GLX_RED_SIZE , 8,
GLX_GREEN_SIZE, 8,
GLX_BLUE_SIZE, 8,
GLX_ALPHA_SIZE, 8,
GLX_DEPTH_SIZE, 24,
GLX_STENCIL_SIZE, 8,
GLX_DOUBLEBUFFER , glx_doublebuffer ? True : False,
//注释这一行GLX_SAMPLE_BUFFERS , glx_sample_buffers,
//注释这一行 GLX_SAMPLES , glx_sample_buffers > 0 ? glx_samples : 0,
None
};
Pangolin是对OpenGL进行封装的轻量级的OpenGL输入/输出和视频显示的库。
DBoW2
https://github.com/dorian3d/DBoW2
DBoW2是一种高效的回环检测算法,DBow2算法的全称为Bags of binary words for fast place recognition in image sequence,使用的特征检测算法为Fast,描述子为BRIEF描述子,是一种离线方法。ROS安装
http://wiki.ros.org/kinetic/Installation/Ubuntu
OpenGL也是用到的系统库,它是一种高性能图形算法行业标准,是行业领域中最为广泛接纳的 2D/3D 图形 API。
Sophus,李群&李代数库
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
boost (C++库)
sudo apt-get install libboost-all-dev
Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。
最后,把依赖库写到这里:
sudo apt-get install libeigen3-dev libsuitesparse-dev libqt4-dev qt4-qmake libqglviewer-dev-qt4
sudo apt-get install liblapack-dev
sudo apt-get install liblpack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev
libgoogle-glog-dev libgtest-dev
# 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
sudo apt-get install libsuitesparse-dev
上述,只是视觉处理过程中遇到的库,借助已经做好的库,已经实现的算法,实现我们的阶梯。