Advertisement

ORB-SLAM2源码分析和学习笔记01:ORB-SLAM2下载,编译,运行

阅读量:

ORB-SLAM2 简介

OR-B bags于2015年由Raúl等研究者开发的单目SLAM技术,在单目SLAM领域的应用非常广泛。详情可见论文:[Monocular] Raúl Mur-Artal, J. M. M. Montiel and Juan D. Tardós ORB-SLAM: A Versatile and Accurate Monocular SLAM System 第31卷第5期 第十一百四十七至十一百六十三页 (20十五 IEEETransactions on Robotics最佳论文奖) PDF.

基于单目ORB-SLAM的方法上,在过去一年中由Raul等一众学者开发出了ORB-SLAM2系统,并进一步支持了双目摄像头与RGB摄像头的应用。这一创新成果可在Raúl Mur-Artal与Juan D. Tardós合著的论文《ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras》中找到详细说明(见IEEE Transactions on Robotics期刊第33卷第5期第1255至第1262页)。这篇论文的全文可通过链接Pero PDF获取

在ORB-SLAM2论文中,针对单目视觉部分,作者仅进行了有限程度的优化,并未对单目实现的具体细节进行详细阐述。然而该方法引入了双目相机和支持RGB-D技术,但其实质仍建立在原有的单眼系统基础之上,并未从根本上改变原有的设计理念

下载

官方仓库下载地址:

raulmur/ORB_SLAM2: 具有循环检测与重定位能力的实时SLAM技术在单眼、双目及RGB-D相机上的应用 (github.com)

下载方式:

1.直接在github下载源码

  1. 克隆代码库:使用git fetch clone命令克隆GitHub上的https://github.com/raulmur/ORB_SLAM2仓库(在克隆之前,请确保已安装git工具)

安装依赖

根据官方的文件readme.md,编译之前要安装好相关依赖

1.C++11 or C++0x Compiler

编译整个工程要用到c++11以上的编译器,要按照安装cmake,gcc,g++,终端输入:

复制代码
    sudo apt-get install  cmake gcc g++ 

2.Pangolin

Pangolin是一个可视化绘图库,先安装需要的依赖

复制代码
 // 安装Pangolin所需依赖项

    
 sudo apt-get install libglew-dev
    
 sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev

这里建议安装Pangolin0.6

复制代码
 //下载

    
 git clone https://github.com/stevenlovegrove/Pangolin/releases/tag/v0.6
    
 //编译
    
 cd Pangolin
    
 mkdir build && cd build
    
 cmake ..
    
 make
    
 make install
    
 //测试,若出现一个彩色方块,则安装成功
    
 ./HelloPangolin

3.opencv

opencv是一个计算机视觉库,这里建议安装opencv3.4,参考:

在Ubuntu系统中安装OpenCV 3.4.5(采用两种方法及图解说明)

4.Eigen3

Eigen3是一个矩阵库,要求版本至少大于3.1.0,参考:

ubuntu

ubuntu

ubuntu

5. DBoW2 and g2o

已经包括在Thirdparty 文件夹下了,编译的时候会一起编译的

编译

这里不编译build_ros.sh

在orb-slam2文件夹下打开终端

复制代码
 sudo chmod +x build.sh//赋予执行权限

    
 ./build.sh//作者写好的编译的脚本

ps.编译会需要几分钟,更改build.sh 文件中makemake -j12 (使用cup12核编译)

编译可能会遇到一些问题时,可以通过查看错误信息来确定问题所在位置,然后按照以下步骤进行排查:第一步,检查自己的依赖安装状态;第二步,确认软件版本配置是否正确;如果以上方法行不通,则可以通过网络资源查找解决方案.

运行官方demo

以单目kitti数据集为例,运行Demo的命令:

复制代码
    ./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER

其中

./Examples/Monocular/mono_kitti是被编译产生的二进制文件路径,在这里指的是单目-KITTI数据集中运行使用的程序路径

Vocabulary/ORBvoc.txt是视觉词典的路径

Examples/Monocular/KITTIX.yaml 是 kitti 数据集所对应的配置文件,在其中包含了相机内参、校正参数以及特征点提取等可调节的参数。

该路径位于$PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER中,请注意SEQUENCE_NUMBER与配置文件中的序列号一致。

全部评论 (0)

还没有任何评论哟~