(@童童同学)关于orb_slam2的配置与安装<Ubuntu16.04>
1.官网介绍
orb_slam2的官网为 https://github.com/raulmur/ORB_SLAM2 ,其中介绍了orb_slam2的License,Prerequisites,Building ORB-SLAM2 library and examples.
2.环境配置
C++11 or C++0x Compiler
Pangolin(用于可视化和用户界面)
Pangolin官网: https://github.com/stevenlovegrove/Pangolin
下载Pangolin的最新版本
git clone https://github.com/stevenlovegrove/Pangolin.git
依赖项
- c++11
- OpenGL (Desktop / ES / ES2)
sudo apt install libgl1-mesa-dev
- Glew
sudo apt install libglew-dev
- CMake (for build environment)
sudo apt install cmake
- Python2 / Python3, for drop-down interactive console
sudo apt install libpython2.7-dev
-
Wayland
pkg-config
Wayland and EGLsudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
Building
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
bindings
Python
sudo python -mpip install numpy pyopengl Pillow pybind11
git submodule init && git submodule update
The python module pypangolin must be on your python path, either through installation, or by setting it explicitly:
import sys
sys.path.append('path/of/pypangolin.so')
OpenCV
opencv官网:https://opencv.org/
也可以参考博客:https://www.cnblogs.com/fx-blog/p/8213704.html
从github中down下OPenCV + OpenCV_Contrib库,可以从https://github.com/opencv上下载(注意版本对应),也可以通过指令下载(建议使用):
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
这个过程需要等待一段时间,具体依赖与你的网速啦,下载成功后,可以在你的home目录下看见opencv和opencv_contrib两个文件夹,将opencv_contrib目录移到opencv目录下。
在下载的过程中,我们可以添加opencv所需要的依赖库:
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
以上步骤完成后,我们进入opencv目录,创建build目录:
cd opencv
mkdir build
进入build目录,开始编译,执行(注意后面的两个点不能少):
cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
接下来执行
make -j8
sudo make install
Eigen3
Eigen3官网:http://eigen.tuxfamily.org
安装Eigen3,它是一个开源线性库,可进行矩阵运算
sudo apt-get install libeigen3-dev
DBoW2 and g2o (Included in Thirdparty folder)
DBoW2是DBow库的改进版本,DBow库是一个开源的C++库,用于索引图像并将其转换为单词表示形式。
g2o是一个开源的C ++框架,用于优化基于图的非线性误差函数。
这两个库在ORB-SLAM2项目的第三方文件夹中,在此不单独编译,后续统一编译。
ROS (optional)
ROS安装教程,参见博客:https://blog.csdn.net/WY_star1/article/details/81564319
3.相关代码
安装ORB-SLAM2
克隆仓库,生成ORB_SLAM2文件夹
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
编译ORB-SLAM2,第三方库中的DBoW2和g2o,并解压ORB词典
cd ORB_SLAM2
chmod +x build.sh
./build.sh
4.EXAMPLES
单目实例
有TUM、KITTI、EuRoC三种数据集,本实验使用TUM数据集,从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载序列并解压缩。
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER
其中PATH_TO_SEQUENCE_FOLDER为数据集的存储路径,并将tumx.yaml与下载的数据集对应,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml 分别对应 freiburg1, freiburg2 和 freiburg3。
下载的数据集能够运行的话,说明ORB_SLAM2安装成功.
(注意安装路径,有时候应该打开新的终端再输入代码,否则会出现找不到文件的结果)