Ubuntu18.04下ORB-SLAM2安装教程(附个人踩坑记录及解决办法)

1、ORB-SLAM2的下载(Linux下)

从github.com 下载ORB-SLAM2 的代码。地址在:https://github.com/raulmur/ORB_SLAM2.
提⽰:在安装git 之后,可以⽤以下 命令下载ORB-SLAM2。(如果你没有安装git,请参考https://blog.csdn.net/ykf173/article/details/105624488?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161283685016780299096952%252522%25252C%252522scm%252522%25253A%25252220140713.130102334…%252522%25257D&request_id=161283685016780299096952&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-4-105624488.pc_search_result_before_js&utm_term=git%25E5%25AE%2589%25E8%25A3%2585Linux

git clone https://github.com/raulmur/ORB_SLAM2

2.运行程序前的一些配置(很重要)

以下步骤你也可以通过直接运行build.sh代替,他将帮助你直接编译运行。然后你就可以运行可执行文件了。

(1)打开ORB-SLAM2文件夹,进入Thirdparty文件夹,分别进入DBoW2,g2o文件夹进行cmake,make编译。(你应该已经安装了cmake工具)

在这里插入图片描述

(2)然后进入Vocabulary文件夹

在这里插入图片描述
在这里插入图片描述

解压命令

tar -xvf ORBvoc.txt.tar.gz

左边的txt文件是解压后的文件。

(3)进入include里的System.h文件

在这里插入图片描述

添加一行

#include<unistd.h>

为了防止编译阶段出现usleep报错,系统会提示你将usleep改成fseek,实际上这并没有用,这两个命令含义不同,替换不能解决问题,实际上是缺少usleep的头文件导致的。笔者原先是直接编译,一行一行改错(全是血泪QAQ)。

3、在https://github.com/raulmur/ORB_SLAM2下载数据集(Dataset)

因为笔者要运行mono_tum文件,所以选择下载TUM Dataset。(当然如果你要运行其他文件,可以下载对应得数据集)

在这里插入图片描述

TUM Dataset下载网址http://vision.in.tum.de/data/datasets/rgbd-dataset/download

我在ORB-SLAM2文件夹里新建downloads文件夹,将下载的压缩包放在此文件夹下,并解压,解压命令请参考上一条。

4、到这里配置结束了,可以开始编译了

在ORB-SLAM2下文件夹下,cmake,make编译

在这里插入图片描述

5、运行得到了mono_tum可执行文件,接下来运行它。

直接运行会报错。

在这里插入图片描述

查阅GitHub官方文档,知道了要按照以下格式执行此可执行文件。

在这里插入图片描述

运行命令格式为:./mono_tum path_to_vocabulary path_to_settings path_to_sequence

该命令共有4个参数:

mono_tum 编译生成的针对MONO_KITTI数据集的可执行文件,一般路径为ORB-SLAM2工程目录下Examples/Monocular/mono_tum;

path_to_vocabulary为所选词典的路径,路径为ORB-SLAM2/Vocabulary/ORBvoc.txt;

path_to_settings为配置文件,存放在ORB-SLAM2/Examples/Monocular下,该配置文件中存放的相机的内参和外参,提取特征时候图像金字塔相关参数,可视化过程中用到的参数;

path_to_sequence为数据集路径,这个根据自己下载的kitti数据集路径来指定(就是第三步中下载的数据集

参考博客:https://blog.csdn.net/moyu123456789/article/details/90180635?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161284111216780269848854%252522%25252C%252522scm%252522%25253A%25252220140713.130102334…%252522%25257D&request_id=161284111216780269848854&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-90180635.pc_search_result_before_js&utm_term=Usage%253A+.%252Fmono_tum+path_to_vocabulary+path_to_settings+path_to_sequence

所以我最后的运行代码是

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/neo/ORBcode/ORB_SLAM2/downloads/rgbd_dataset_freiburg1_xyz 

请你根据以上代码,修改地址,然后运行即可。

运行结果

在这里插入图片描述

至此,你应该可以成功运行示例程序了。

6、关于一些库

在上面的叙述中我没有提到相关库的安装,它需要OpenCV,pangolin,Eigen等库,这些库是运行程序的先决条件,如果你没有安装,请参考其他博客安装,本文不再赘述。

猜你喜欢

转载自blog.csdn.net/qq_50195602/article/details/113768403