RGB-D SLAM学习总结(1)

第一讲 环境搭建


最近跟着高博的博客《一起做RGB-D SLAM系列》将整个过程实现了一遍,下面是学习总结:

博客:https://www.cnblogs.com/gaoxiang12/p/4633316.html
作者源码:https://github.com/gaoxiang12/rgbd-slam-tutorial-gx
自己代码:https://pan.baidu.com/s/1O8w2TR2XOZ_G63x_dfNeFA

  • 编程环境

ubuntu14.04

必要软件的安装:

1、OpenCV2

Step1: 下载opencv源码:http://opencv.org/downloads.html

在下载过程中,可以先安装依赖项:

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

Step2: 解压并进入opencv目录,用cmake安装:

mkdir build
cd build
cmake ..
make
sudo make install

这里要特别说明一下,因为我已经安装了OpenCV3,所以在安装OpenCV2的时候要实现两个版本共存。因为在OpenCV3时使用的是上述默认安装的方式,所以在安装OpenCV2时要指定安装的目录:

首先查看已安装的版本:

pkg-config --modversion opencv 

下载OpenCV2后同样进入目录使用cmake安装:

mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D WITH_V4L=ON -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2413 .. 
make 
sudo make install

在这里,我将OpenCV2.4.13安装在了/usr/local/opencv2413的目录下。

紧接着需要配置下文件,通过修改bashrc文件来设置:

sudo gedit ~/.bashrc

在文件末尾加上:

export PKG_CONFIG_PATH=/usr/local/opencv2413/lib/pkgconfig export LD_LIBRARY_PATH=/usr/local/opencv2413/lib

保存之后,在使用命令:

source ~/.bashrc

在查看版本,就变成opencv2.4.13了。

今后在使用时通过在CMakeLists.txt里设置源代码路径即可使用opencv2.4.13(最后一句MESSAGE打印出当前使用的版本):

SET(OpenCV_DIR "/home/lzy/opencv-2.4.13.6/build")
FIND_PACKAGE(OpenCV REQUIRED)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#MESSAGE(STATUS "version:${OpenCV_VERSION}")

返回opencv3,直接使用:

FIND_PACKAGE(OpenCV REQUIRED)

安装方法来自:https://blog.csdn.net/hansry/article/details/75309906

2、PCL

PCL就是Point Cloud Library,处理点云的必备工具。

在Ubuntu 1404或更低版本,你需要通过私有源来安装PCL库。

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all

3、g2o

用于图优化。

github源码:https://github.com/RainerKuemmerle/g2o

依赖项:

sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2 libcholmod-dev

接下来就是熟悉的cmake安装。

4、Eigen

c++线性代数库,它提供了快速的有关矩阵的线性代数运算。

输入以下命令安装:

sudo apt-get install libeigen3-dev

值得一提的是,Eigen是一个纯用头文件搭建起来的库。在使用时,只需引入头文件即可,不需要链接库文件。

  • 项目

目录结构:

RGB-D SLAM学习总结(1)_第1张图片

bin 用来放编译好的可执行二进制文件。
src 用来放源代码。
lib 用来放编译好的库文件。
include 用来放头文件。 

我们要把目录结构告诉cmake。所以我们在代码根目录下写一个CMakeLists.txt。cmake在生成代码时,会读这个文件,并按照它来编译你的代码。写入:

CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) #设定版本
PROJECT( slam ) #设定工程名
SET( CMAKE_CXX_COMPILER "g++") #设定编译器
SET( CMAKE_BUILD_TYPE Release  )
SET( CMAKE_CXX_FLAGS "-std=c++11 -O3")
#设定可执行二进制文件的目录
SET( EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 
	
#设定存放编译出来的库文件的目录
SET( LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) 
#并且把该目录设为连接目录
LINK_DIRECTORIES( ${PROJECT_SOURCE_DIR}/lib)
	
#设定头文件目录
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include)
	
#增加子文件夹,也就是进入源代码文件夹继续构建
ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src)

不过在实际做的过程中并没有将库文件拿过来,所以也就没有使用到lib文件夹,不过问题不大。。。

通过上述操作,基本的目录结构和使用的库也就搭好了。接下来就开始一步步实现RGB-D SLAM吧~

你可能感兴趣的:(SLAM)