本文跟随高翔博客,对SLAM 环境进行配置总结。
教程博客 http://www.cnblogs.com/gaoxiang12/default.html?page=3
中 《一起做RGB-D SLAM》 系列。
环境:Ubuntu 16.04 LTS
一、安装opencv
下载依赖项
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
下载opencv源码,解压。
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
可以安装ccmake,来查看编译选项
sudo apt-get install cmake-curses-gui
ccmake ..
编译
sudo make -j8
sudo make install
备注:也可以使用sudo apt-get install libopencv-dev
安装OpenCV 2.4.9
二、安装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
在 Ubuntu 16.04,PCL库已经存在于公共软件源中,直接安装即可:
sudo apt-get install libpcl-dev pcl-tools
但是,在16.04中PCL的配置似乎有bug,需要在cmakelist中加一条指令修复。具体指令为
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4") # use this in Ubuntu 16.04
使用方法见高翔的github里CMakeList。
安装好这一部分可以编译好第一节和第五节的内容。但是从第二节内容开始在编译时会报错(不报错的可以忽略)
tuanbool@tuanbool:~/workplace/rgbd-slam-tutorial-gx-1/part02/build3$ make
Scanning dependencies of target generate_pointcloud
make[2]: Warning: File '../bin/generate_pointcloud' has modification time 27629 s in the future
[ 25%] Building CXX object src/CMakeFiles/generate_pointcloud.dir/generatePointCloud.cpp.o
<command-line>:0:15: warning: missing whitespace after the macro name
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so', needed by '../bin/generate_pointcloud'。 停止。
CMakeFiles/Makefile2:87: recipe for target 'src/CMakeFiles/generate_pointcloud.dir/all' failed
make[1]: *** [src/CMakeFiles/generate_pointcloud.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
对问题进行定位,应该是libproj.so库的问题,发现路径下确实缺失这个库,但有libproj.so.9,建立一个软链接即可。
sudo ln -s /usr/lib/x86_64-linux-gnu/libproj.so.9 /usr/lib/x86_64-linux-gnu/libproj.so
三、安装g2o
下载路径 https://github.com/RainerKuemmerle/g2o
安装依赖项
sudo apt-get install libeigen3-dev libsuitesparse-dev libqglviewer-dev
编译安装
mkdir build
cd build
cmake ..
sudo make
sudo make install
安装成功后,你可以在/usr/local/include/g2o
中找到它的头文件,而在/usr/local/lib
中找到它的库文件。运行g2o_viewer命令如果提示错误libg2o_viewer.so
找不到,需要执行ldconfig
命令,将新生成的库加入系统路径中。
四、安装Pangolin
Pangolin是一个用于OpenGL显示/交互以及视频输入的一个轻量级、快速开发库。
https://github.com/stevenlovegrove/Pangolin
(1)安装一些必要的库:
Glew:
sudo apt-get install libglew-dev
CMake:
sudo apt-get install cmake
Boost:
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
Python2 / Python3:
sudo apt-get install libpython2.7-dev
(2)在安装完上述依赖后,就可以开始安装Pangolin了,安装过程十分简单:
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
sudo make -j
如果安装遇到问题,可以参考 http://www.cnblogs.com/liufuqiang/p/5618335.html
五、安装 ORB-SLAM2
ORB-SLAM是西班牙Zaragoza大学的Raul Mur-Artal编写的视觉SLAM系统。开源代码包括前期的ORB-SLAM和后期的ORB-SLAM2。第一个版本主要用于单目SLAM,而第二个版本支持单目、双目和RGBD三种接口。
https://github.com/raulmur/ORB_SLAM2
安装环境依赖于pangolin。安装步骤如下
cd ORB_SLAM2
chmod +x build.sh
./build.sh