ORB_SLAM2下载编译及运行EuRoC数据集

        学习slam就不得不提经典框架orbslam2,了解其运行是我们的第一步。

        本教程为orbslam2的下载安装过程中操作集合。

目录

一、orbslam2下载

error: ‘usleep‘ was not declared in this scope

二、EuRoC数据集下载和使用

1.下载数据集

2.运行数据集

3.运行结果


一、orbslam2下载

        官网:GitHub - raulmur/ORB_SLAM2: Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities

        有一个别人写的简介:EuRoC数据集介绍_可即的博客-CSDN博客_euroc数据集

        我们利用命令行,进入预先准备好的文件夹,我将其放在了 /home/用户名/slam/  文件夹内:

cd /home/用户名/slam

        下载源码:

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

        如果文件夹名字不对可以改成ORB_SLAM2。这样源码就下载在 /home/用户名/slam/ORB_SLAM2  文件夹内。

        之后,按照官网例程。编译:

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

        中间我遇到的问题是:

error: ‘usleep‘ was not declared in this scope

        解决办法为:对应.cc文件中添加一行引用

#include <unistd.h>

        这个很多文件都报错,基本src文件夹内的还有Examples文件夹内的.cc文件大部分都要加上这个库函数引用。引用完基本就不报错了。运行结果为:

         至此,安装编译完成。后面我们需要下载数据集验证。

二、EuRoC数据集下载和使用

        这里主要参考了ORB-SLAM、ORB-SLAM2跑通,运行EuRoC数据集,用EVO评估_叫我环少的博客-CSDN博客

orb-slam2跑通EuRoC数据集,并用evo对其进行评估(详细)_渣渣的小王的博客-CSDN博客_orbslam2数据集

两篇文章。主要思路就是下载数据集、运行,运行的代码需要稍微改下地址,其他基本安装orbslam2官网一样。官网上的命令是:

./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml PATH_TO_SEQUENCE_FOLDER/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/SEQUENCE.txt 

        核心点就是倒数第二项的数据所在路径需要我们更改为自己的。

1.下载数据集

        数据集官网地址为:

kmavvisualinertialdatasets – ASL Datasets

        其下载界面为:

        选一个下载就行,我下载了Machine Hall 05和04,这些下载后解压文件都是一个mav0的文件夹。为了好辨认,可以创建一个EuRoC文件夹放进去。这样数据路径为:/home/用户名/slam/EuRoC

        注意:下载的是ASL Dataset Format形式的(后面用ros可能需要ros bag形式)

        对应的,我的路径为:

/home/qianmengyu11/slam/EuRoC/mav0

2.运行数据集

        前面说过,官网命令为:

./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml PATH_TO_SEQUENCE_FOLDER/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/SEQUENCE.txt 

        需要更改的是后面两项,倒数第二项需要填入我们的数据地址,即为:

/home/qianmengyu11/slam/EuRoC/mav0/cam0/data

        倒数第一项我们根据下载的是哪个数据包,改为:

Examples/Monocular/EuRoC_TimeStamps/MH05.txt

        如果是Machine Hall 05就写MH05.txt,如果是Machine Hall 04就写MH04.txt。

        综合,在终端运行的命令为(仍位于 /home/用户名/slam):

 ./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml /home/qianmengyu11/slam/EuRoC/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/MH05.txt 

3.运行结果

        运行结果为:

 

猜你喜欢

转载自blog.csdn.net/weixin_43907136/article/details/129070057