首页 > 编程知识 正文

orbslam2初始化,orbslam2是什么

时间:2023-05-04 13:45:38 阅读:135812 作者:988

介绍ORB-SLAM是由西班牙Zaragoza大学的Ral Mur-Arta制作的视觉SLAM系统。 它是一个完整的SLAM系统,是一个包括视觉测距仪、跟踪、环回检测,基于完全稀疏特征点的单目SLAM系统,同时还有单目、双目、RGBD摄像机的接口。其核心是使用 ORB (Orinted FAST and BRIEF) 作为整个视觉 SLAM 中的核心特征

ORB-SLAM主要用于单眼SLAM;

ORB-SLAM2版本支持单眼、双眼、RGBD三种接口;

ORB-SLAM3版本增加了IMU耦合器,支持鱼眼摄像机。

ORB-SLAM相关资料链接官方网站: http://web di is.unizar.es/~ Raul mur/orb slam /

论文2015年: or B- slam : aversatileandaccuratemonocularslamsystem

论文2017年: or B- slam 2: an open-sourceslamsystemformonocular,Stereo and RGB-D Cameras

论文2020年: or B- slam : anaccurateopen-sourcelibraryforvisual,visual-inertialandmulti-map slam

或ORB-SLAM的github代码

ORB-SLAM2的github代码

ORB-SLAM3的github代码

特点ORB-SLAM基本继承了PTAM的算法框架,但对框架中的大部分组件进行了改进,归纳起来主要有4点:

ORB-SLAM选择ORB 特征,基于ORB描述量的特征匹配和重排均具有比PTAM更好的视角不变性。 另外,由于新增加了三维点,特征匹配效率更高,因此可以更及时地扩展场景。 是否扩展场景决定了后续帧能否稳定跟踪。 orb slam http://www.Sina.com /系统使用与重定位相同的方法检测循环,匹配循环两侧关键帧上的共同点,并通过姿势图优化来闭合循环。 PTAM要求用户指定两个帧以初始化系统。 两个框架之间必须有足够的共同点和足够的平移量。 平移运动为这些共同点提供了视差(Parallax ),只有足够的视差才能三角化精确的三维位置。循环回路的检测和闭合机制,以消除误差累积PTAM在扩展场景时也要求为新添加的关键帧提供足够的视差,从而使得场景的扩展常常变得困难。ORB-SLAM 通过检测视差来自动选择初始化的 2 帧——为了保证后续帧的稳健跟踪,在宽松的判断条件下尽可能及时地添加新的关键帧和三维点; 更严格的判断条件下删除冗余关键帧和不稳定的三维点,保证BA的效率和精度。ORB-SLAM 采用一种更鲁棒的关键帧和三维点的选择机制是一部很大的ORB词典。 支持单眼、双眼、RGBD多种传感器输入,编译时ROS可选,应用非常轻便。 其代价是代码逻辑要稍微复杂一些以支持各种接口。

主要由跟踪、Local Mapping、Loop Closing三个线程组成。 下图为ORB-SLAM2的流程。

2 .安装2.1安装opencvrequiredatleat2.4.3. testedwithopencv2.4. 11 and opencv 3.2。

下载地址: https://opencv.org/releases/

命令如下所示。

CD your _ opencvmkdirbuildcdbuildsudocmake-DC make _ build _ type=release-DC make _ install _ prefix=/usr/local .

sudo gedit /etc/ld.so.conf运行:

将sudo ldconfig修复bash.bashrc文件sudo gedit /etc/bash.bashrc添加到文末:

pkg _ config _ path=$ pkg _ config _ path :/usr/local/lib/pkgconfigexportpkg _ config _ path运行

source /etc/bash.bashrc检查:

pkg-config opencv---mod version 2.2 mgdsbmgdsb的安装是一个封装了OpenGL的轻量级OpenGL输入输出和视频显示库。 可用于3D视觉和3D导航的视觉图,可以输入各种类型的视频,并保留用于调试的视频和输入数据。

安装依赖关系获取安装

l libglew-dev libpython2.7-dev 从Github将项目下载到本地 git clone https://github.com/stevenlovegrove/mgdsb.git 编译安装 cd mgdsbmkdir buildcd buildcmake ..make –jsudo make install 1.3 安装Eigen3 sudo apt-get install libeigen3-dev

安装完成之后,默认安装路径:/usr/include/eigen3/Eigen

也可以在官网下载,并使用下列命令进行编译:

mkdir buildcd buildcmake …makesudo make install 2.4 安装DBoW2和g2o

DBoW2是DBow库的改进版本,DBow库是一个开源的C++库,用于索引图像并将其转换为单词表示形式。

g2o是一个开源的C ++框架,用于优化基于图的非线性误差函数。

这两个库在ORB-SLAM2项目的第三方文件夹中,在此不单独编译,后续统一编译。

2.5 安装ORB-SLAM2 克隆仓库 git clone https://github.com/raulmur/ORB_SLAM2.git 编译ORB-SLAM2,第三方库中的DBoW2和g2o,并解压ORB词典 cd ORB_SLAM2chmod +x build.sh./build.sh

运行./build.sh的时候可能会报类似于usleep的错误,只需要在相应的地方添加#include<unistd.h>即可。

3. 单目运行例子

有TUM、KITTI、EuRoC三种数据集,本实验使用TUM数据集,从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载序列并解压缩。

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER

其中PATH_TO_SEQUENCE_FOLDER为数据集的存储路径,并将TUMX.yaml与下载的数据集对应,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml 分别对应 freiburg1, freiburg2 和 freiburg3。

readme中还有其他数据集的运行方式,就不一一介绍了。

链接:

ORB-SLAM论文笔记:https://blog.csdn.net/qq_41839222/article/details/87919672

ORB-SLAM2论文笔记:https://blog.csdn.net/qq_41839222/article/details/87945367?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

ORB-SLAM3论文阅读:https://vincentqin.tech/posts/orb-slam3/

ORB-SLAM2 PPT:http://cseweb.ucsd.edu/classes/sp17/cse252C-a/CSE252C_20170503.pdf

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。