ORBSLAM3 安装及测试教程(Ubuntu20.04)

发布时间 2023-10-15 20:25:15作者: 滑稽果

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

2. 安装 Pangolin

可以去 Github 下载源码:https://github.com/stevenlovegrove/Pangolin/tree/v0.6

一定要下载 0.6 版本的。

根据 Github 给的依赖挨个安装。

img

安装好依赖之后解压下载的 Pangolin 压缩包 unzip Pangolin-0.6.zip

编译安装(一行一行的输入):

cd Pangolin-0.6/
mkdir build
cd build
cmake ..
make -j4
sudo make install

3. 安装 OpenCV

去 OpenCV 官网下载 3.4.3 版本:https://opencv.org/releases/。

img

下载完成后解压:unzip opencv-3.4.3.zip

安装依赖库:

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

⚠️注意:如果提示无法安装,无法定位包,解决办法是执行如下指令:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

运行完成后,在安装之前给的依赖:

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

依赖装完后,去 Github 把 ippicv 这个文件夹下载下来,放到你自己的文件夹内(只要你能找到路径就行):https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20170822

img

然后把你的 OpenCV 源文件中 /3rdparty/ippicv 文件夹下的 ippicv.cmake 中,第 47 行的 "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/" 改成你下载的 ippicv 文件夹路径,比如我:"file:///home/xiao/ippicv/"(最后一个 / 不能省)。

编译安装 OpenCV(一行一行的输入,可能会有警告的出现,不用管):

cd opencv-3.4.3/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4
sudo make install

添加库路径:

sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

更新系统库:

sudo ldconfig

配置 bash:

sudo gedit /etc/bash.bashrc

在末尾粘贴如下两行代码:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

保存,执行如下命令使得配置生效:

source /etc/bash.bashrc

更新:

sudo updatedb

opencv版本检测:

pkg-config --modversion opencv

⚠️ 如果输出 3.4.3 即为安装成功

4. 安装 Eigen3

可以去 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/

⚠️ 不要用该指令安装 Eigen3 : sudo apt-get install libeigen3-dev

安装完成后,再安装如下依赖包:

sudo apt install libpython2.7-dev

5. 安装 Boost

Boost 官网下载 1.77.0 版本压缩包:https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/

可以下载 tar.gz 格式的压缩包。

img

下载之后解压:tar -xzvf boost_1_77_0.tar.gz

编译安装:

cd boost_1_77_0
sudo ./bootstrap.sh
sudo ./b2 install

安装 libssl-dev:

sudo apt-get install libssl-dev

6. 安装 ORBSLAM3

解压之前下载好的 ORBSLAM3 压缩包:unzip ORB_SLAM3.zip

打开 ORBSLAM3 文件夹内的 CMakeLists.txt 文件,找到 find_package(OpenCV 4.4) 这行代码,将 OpenCV 版本号改为 find_package(OpenCV 3.4)

因为刚才安装的 OpenCV 是 3.4 版本的,而在最新的 ORBSLAM3 中要求是 4.4 及以上版本,改成 3.4 不影响安装以及使用。

6.1 打开 ORBSLAM3 可视化选项(可选)

打开 mono_euroc.cc 文件,找到第 83 行:

// Create SLAM system. It initializes all system threads and gets ready to process frames.
ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);

将最后的 false 改为 true

⚠️ 如果这一节选择不做,后面想要再打开图形化显示功能的话,需要将 false 改为 true 之后再编译安装一下 ORBSLAM3 的文件,安装方法在 6.2 或 6.3。

6.2 第一种安装方法

⚠️ 该方法是直接执行 ORBSLAM3 官方给的安装指令,但是容易报错,推荐下面的 6.3 方法。

编译安装:

cd ORB_SLAM3
chmod +x build.sh
./build.sh

6.3 第二种安装方法

打开 ORBSLAM3 文件夹,找到 build.sh 这个文件,打开它。

然后打开终端,进入 ORBSLAM3 文件夹内

cd ORB_SLAM3

再按照 build.sh 里面的代码,一行一行的输入进终端里,直到完成。

7. 数据集测试

数据集下载地址:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads

把第一个 Machine Hall 01 数据集下载下来,下载 ASL 格式的。

img

下载完成后,解压压缩包,里面有一个 mav0 的文件夹。

然后在你的文件夹下(随便哪里,只要你能找到),创建一个文件夹叫 dataset。在 dataset 文件夹下再创建一个 MH01 文件夹,然后把刚才下载的 mav0 文件夹放到 MH01 里面去。

然后打开终端,进入 ORBSLAM3 文件夹内,执行测试:

⚠️ 将最后一行指令中的 /home/xiao/MH01 改成你的 MH01 文件夹的地址。

cd ORB_SLAM3
cd Examples
./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml /home/xiao/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt

若出现:

img

则表示成功。