1 SLAM有什么依赖项?
SLAM开发的依赖项有下列7项:
1.1 KDevelop
是集成开发环境。创建新工程、导入工程、编译、执行文件。
1.2 Eigen
Eigen 是一个线性算术的C++模板库,包括:vectors, matrices, 以及相关算法。功能强大、快速、优雅以及支持多平台。
1.3 pangolin
Pangolin是对OpenGL进行封装的轻量级的OpenGL输入/输出和视频显示的库。可以用于3D视觉和3D导航的视觉图,可以输入各种类型的视频、并且可以保留视频和输入数据用于debug。
参考地址:
【1】Pangolin:https://github.com/stevenlovegrove/Pangolin
【2】Pangolin安装问题:http://www.cnblogs.com/liufuqiang/p/5618335.html
【3】Pangolin的Example:https://github.com/stevenlovegrove/Pangolin/tree/master/examples
【4】Pangolin的使用:http://docs.ros.org/fuerte/api/pangolin_wrapper/html/namespacepangolin.html
【5】特性:http://www.stevenlovegrove.com/?id=44
转载原文:https://blog.csdn.net/c602273091/article/details/65441315
1.4 sophus
一个较好的 李代数库是由Strasdat维护的Sophus库。Sophus库支持三维运动的 SO(3)、 SE(3),此外还支持二维运动的 SO(2)、 SE(2)和相似变换 Sim(3)等内容。它是直接在Eigen库基础上开发的,因此我们不需要安装额外的依赖库。
1.5 opencv
opencv安装教程 - 多弗朗强哥 - 博客园 (cnblogs.com)
从略
1.6 ceres
Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。Ceres官网上的文档非常详细地介绍了其具体使用方法,相比于另外一个在slam中被广泛使用的图优化库G2O,ceres的文档可谓相当丰富详细。本篇博客介绍一下Ceres库的基本使用方法。
1.7 g2o
图优化本质上仍然是非线性优化。只不过利用图的方式表现出来,使问题可视化,然后可以根据可视化的结果来更好的调整优化过程。
常见的,比如bundle adjustment,ICP,数据拟合,都可以用g2o来做。甚至我还在想神经网络能不能写成图优化的形式呢……
深入理解图优化与g2o:g2o篇 - 半闲居士 - 博客园 (cnblogs.com)
从代码层面来说,g2o是一个c++编写的项目,用cmake构建。它的github地址在:https://github.com/RainerKuemmerle/g2o
2 依赖项的安装过程
2.1 kdevelop安装过程
- sudo apt-get install cmake
- sudo apt-get install kdevelop
测试,输入: Kdevelop
出现可视化界面就OK了。
2.2 Eigen安装过程
- sudo apt-get install libeigen3-dev
2.3 pangolin安装过程
2.3.1 安装依赖
-
sudo apt-get install libglew-dev
-
sudo apt-get install cmake
-
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
2.3.2 下载Pangolin
- sudo git clone https://github.com/stevenlovegrove/Pangolin.git
2.3.3 编译Pangolin
cd Pangolin # [此为Pangolin的克仑路径)] 打开解压后的Pangolin文件夹
mkdir build
cd build # 无序列表
cmake ..
make # (或者用cmake --build .)
sudo make install # (.h默认安装到了/usr/local/include)
到此,Pangolin已经被安装好了。
2.3 安装Sophus代数
sudo git clone http://github.com/strasdat/Sophus.git
cd Sophus # [此为Sophus的克仑路径)] 打开解压后的Sophus文件夹
mkdir build
cd build # 无序列表
cmake ..
make # (或者用cmake --build .)
sudo make install # (.h默认安装到了/usr/local/include)
2.4 安装opencv
2.4.1 下载opencv
mkdir ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
2.4.2 安装依赖项
http://opencv.org/releases.html
sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
gfortran openexr libatlas-base-dev python3-dev python3-numpy \
libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \
libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
2.4.3 生成编译场地
cd ~/opencv_build/opencv
mkdir -p build && cd build
2.4.4 预编译
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
出现下面提示,说明预编译完成。
-- Configuring done
-- Generating done
-- Build files have been written to: /home/vagrant/opencv_build/opencv/build
2.4.5 开始编译
make -j16
2.4.6 开始安装
sudo make install
检查版本
pkg-config --modversion opencv4
2.5 安装ceres
2.5.1下载:
sudo git clone https://github.com/ceres-solver/ceres-solver
2.5.2 安装依赖
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev
libgoogle-glog-dev libgtest-dev
2.6.3 编译
mkdir build
cd build
cmake ..
make -j4
2.6.4 安装
sudo make install
2.7 安装g2o
2.7.1 下载g2o:
链接github下载地址直接下载比较慢。
可以通过以下链接下载:链接:https://pan.baidu.com/s/1g5QpMNWeUdSI063qiMbZpA 提取码:aqxp
2.7.2 安装依赖
sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2
根本不需要编译源码直接一行命令就可以 sudo apt-get install libpcl-dev 如果没有安装pcl_viewer就再加一行命令 sudo apt-get install pcl-tools 就完事了! |