ORB-SLAM2配置与安装

ORB-SLAM2安装

有这些依赖项:请添加图片描述

https://github.com/raulmur/ORB_SLAM2

主要参考下面的博文

ORB-SLAM2 初体验 —— 配置安装 - MingruiYu - 博客园 (cnblogs.com)

注意在安装依赖项Pangolin时,如果是从GitHub直接git的最新版本的Pangolin,那么编译安装的时候就会出现问题

1、sudo apt install libeigen3的版本可能不够,可以自己下载编译安装eigen库

2、eigen库的位置需要注意,一般是“/usr/include/eigen3”,而这个新版本的Pangolin好像是在“/usr/local/include”中找,所以最好是两个位置都存一份

3、新版的Pangolin包中“varstate.h”头文件包含了

#include <any>

而这个需要C++17,ThinkPad双系统装的是Ubuntu16.04,而**Ubuntu16.04 支持的是C++14版本(gcc 5.4.0),并不支C++17,**这就需要升级gcc,可以参考下面的博客

https://blog.csdn.net/davidhopper/article/details/79681695#:~:text=幸运地是,Linux系统标准编译器GCC能完美地支持C%2B%2B 17标准,但需升级到7.0以上版本;不幸地是,Ubuntu 16.04版本自带的GCC版本为5.4.0,可支持C%2B%2B 14标准,但基本不支持C%2B%2B 17标准。 怎么办? 那就从零开始,从GCC官方网站下载、安装最新标准的编译器吧。,一、下载GCC 7.3.0版本源代码 进入GCC官方网站: https%3A%2F%2Fgcc.gnu.org%2F ,发现目前最新版本是7.3.0(2018年3月24日 )。 本来想省点事,直接下载二进制版本进行安装,但打开相关页面后,发现居然没有Ubuntu系统的二进制版本,这不是赤裸裸地歧视吗?

但是看着过程还是很繁琐,师兄路过提醒,装低版本的Pangolin不可以嘛,我想也是,ORB-SLAM2是17年开源的,用的应该就是旧版的Pangolin

于是编译安装高翔博士视觉SLAM十四讲3rd_party中的Pangolin,非常顺畅

安装好依赖后再编译安装ORB-SLAM2就非常顺畅了

安装完成后测试,打开终端,输入:

cd ORB_SLAM2
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml ../rgbd_dataset_freiburg1_desk

运行过程截图如下:请添加图片描述
运行输出如下:

ORB-SLAM2 Copyright (C) 2014-2016 Raul Mur-Artal, University of Zaragoza.
This program comes with ABSOLUTELY NO WARRANTY;
This is free software, and you are welcome to redistribute it
under certain conditions. See LICENSE.txt.

Input sensor was set to: Monocular

Loading ORB Vocabulary. This could take a while...
Vocabulary loaded!

Camera Parameters: 
- fx: 517.306
- fy: 516.469
- cx: 318.643
- cy: 255.314
- k1: 0.262383
- k2: -0.953104
- k3: 1.16331
- p1: -0.005358
- p2: 0.002628
- fps: 30
- color order: RGB (ignored if grayscale)

ORB Extractor Parameters: 
- Number of Features: 1000
- Scale Levels: 8
- Scale Factor: 1.2
- Initial Fast Threshold: 20
- Minimum Fast Threshold: 7

-------
Start processing sequence ...
Images in the sequence: 613

New Map created with 110 points
-------

median tracking time: 0.0502065
mean tracking time: 0.0544293

Saving keyframe trajectory to KeyFrameTrajectory.txt ...

trajectory saved!

最终相机的运动轨迹以txt格式存储起来
请添加图片描述

但出现了这个问题:

QObject::~QObject: Timers cannot be stopped from another thread

GitHub上有人提出了issues

https://github.com/raulmur/ORB_SLAM2/issues/135

看大家暂时没有很好的解决办法,但不影响轨迹的绘制与存储,所以暂时先不仔细考虑了

猜你喜欢

转载自blog.csdn.net/qq_34935373/article/details/123945147