ORBSLAM3 安装及测试教程(Ubuntu20.04)
1. 准备工作
1.1 安装依赖
sudo apt install git cmake gcc g++ mlocate
1.2 下载 ORBSLAM3 源码
可以去 Github 下载源码:https://github.com/UZ-SLAMLab/ORB_SLAM3
或者终端内下载:git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
⚠️ 如果需要使用 ROS2 的话,建议安装修改版的 ORBSLAM3:https://github.com/zang09/ORB-SLAM3-STEREO-FIXED
2. 安装 Eigen3
2.1 和 2.2 方法任选其一。
2.1 命令行安装
直接命令安装:sudo apt-get install libeigen3-dev
2.2 编译安装
可以去 Github 下载源码:https://github.com/eigenteam/eigen-git-mirror/tree/3.3.4
一定要下载 3.3.4 版本的。
解压下载好的压缩包:unzip eigen-git-mirror-3.3.4.zip
编译安装:
cd eigen-git-mirror-3.3.4
mkdir build
cd build
cmake ..
sudo make install
安装后,头文件安装在 /usr/local/include/eigen3/
3. 安装 Pangolin0.6
可以去 Github 下载源码:https://github.com/stevenlovegrove/Pangolin/tree/v0.6
一定要下载 0.6 版本的。
根据 Github 给的依赖挨个安装。
安装好依赖之后解压下载的 Pangolin 压缩包 unzip Pangolin-0.6.zip
。
编译安装(一行一行的输入):
cd Pangolin-0.6/
mkdir build
cd build
cmake ..
make -j4
sudo make install
测试效果:
cd Pangolin-0.6/examples/HelloPangolin
mkdir build
cd build/
cmake ..
make
./HelloPangolin
运行后,效果显示是一个红绿蓝立方体,表示即为安装成功。
4. 安装 OpenCV
去 OpenCV 官网下载 4.4.0 版本:https://opencv.org/releases/。
点击 Sources 下载压缩包。
下载完成后解压:unzip opencv-3.4.3.zip
在 GitHub 下载 contrib 版本(下载 4.4.0 版本): https://github.com/opencv/opencv_contrib/tree/4.4.0
下载完成后解压:unzip opencv_contrib-4.4.0.zip
在你的主文件夹内(Home)新建 opencv 文件夹,把上面解压的 2 个文件夹放入 opencv 文件夹内。
下载缺少的文件:https://wwtt.lanzouw.com/if60o1cwvv4h 密码:d5fx
下载完成后解压,将里面的十几个文件放到 opencv_contrib-4.4.0/modules/xfeatures2d/src 文件夹内。
修改 opencv_contrib-4.4.0/modules/xfeatures2d/test/test_features2d.cpp 文件,将里面的第 51~52 行代码路径改为:
#include "../../../../opencv-4.4.0/modules/features2d/test/test_detectors_regression.impl.hpp"
#include "../../../../opencv-4.4.0/modules/features2d/test/test_descriptors_regression.impl.hpp"
修改 opencv_contrib-4.4.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp 文件,将里面的第 7~8 行代码路径改为:
#include "../../../../opencv-4.4.0/modules/features2d/test/test_detectors_invariance.impl.hpp" // main OpenCV repo
#include "../../../../opencv-4.4.0/modules/features2d/test/test_descriptors_invariance.impl.hpp" // main OpenCV repo
打开终端输入:
sudo apt update && sudo apt install -y cmake g++ wget unzip
cd opencv
mkdir -p build && cd build
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules ../opencv-4.4.0
make -j4
sudo make install
5. 安装 ORBSLAM3
解压之前下载好的 ORBSLAM3 压缩包:unzip ORB_SLAM3.zip
5.1 打开 ORBSLAM3 可视化选项(可选)
打开 Examples/Monocular 文件夹下的 mono_euroc.cc 文件,找到第 83 行:
ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);
将最后的 false
改为 true
。
⚠️ 如果这一节选择不做,后面想要再打开图形化显示功能的话,需要将
false
改为true
之后再编译安装一下 ORBSLAM3 的文件,安装方法在 5.2 或 5.3。
5.2 第一种安装方法
⚠️ 该方法是直接执行 ORBSLAM3 官方给的安装指令,但是容易报错,推荐下面的 5.3 方法。
编译安装:
cd ORB_SLAM3
chmod +x build.sh
./build.sh
5.3 第二种安装方法
打开 ORBSLAM3 文件夹,找到 build.sh 这个文件,打开它。
然后打开终端,进入 ORBSLAM3 文件夹内
cd ORB_SLAM3
再按照 build.sh 里面的代码,一行一行的输入进终端里,直到完成。
终端可能会输出一些警告,不用管。
6. 数据集测试
数据集下载地址:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads
把第一个 Machine Hall 01 数据集下载下来,下载 ASL 格式的。
下载完成后,解压压缩包,里面有一个 mav0 的文件夹。
然后在你的文件夹下(随便哪里,只要你能找到),创建一个文件夹叫 dataset。在 dataset 文件夹下再创建一个 MH01 文件夹,然后把刚才下载的 mav0 文件夹放到 MH01 里面去。
然后打开终端,进入 ORBSLAM3 文件夹内,执行测试:
⚠️ 将最后一行指令中的
/home/xiao/dataset/MH01
改成你的 MH01 文件夹的地址。
cd ORB_SLAM3
cd Examples
./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml /home/xiao/dataset/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt
若出现:
则表示成功。