orb_slam2的官网为 https://github.com/raulmur/ORB_SLAM2 ,其中介绍了orb_slam2的License,Prerequisites,Building ORB-SLAM2 library and examples.
git clone https://github.com/stevenlovegrove/Pangolin.git
sudo apt install libgl1-mesa-dev
sudo apt install libglew-dev
sudo apt install cmake
sudo apt install libpython2.7-dev
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
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')
从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,它是一个开源线性库,可进行矩阵运算
sudo apt-get install libeigen3-dev
DBoW2是DBow库的改进版本,DBow库是一个开源的C++库,用于索引图像并将其转换为单词表示形式。
g2o是一个开源的C ++框架,用于优化基于图的非线性误差函数。
这两个库在ORB-SLAM2项目的第三方文件夹中,在此不单独编译,后续统一编译。
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
./build.sh
有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安装成功.
(注意安装路径,有时候应该打开新的终端再输入代码,否则会出现找不到文件的结果)