一、ORB-SLAM简介

  最近开始入坑SLAM,经过简单调研,各位大咖认为,目前最优秀的视觉SLAM系统是ORB-SLAM2,因此对ORB-SLAM2进行了学习。

  ORB-SLAM2是2015年提出的支持单目、双目、RGB-D相机三种工作模式的SLAM系统。整个系统基于ORB特征实现,包含了跟踪定位、局部地图构建、回环检测三个主线程。通常认为ORB-SLAM是基于PTAM的而进一步发展的,包含了目前流行SLAM系统的主要模块。整个系统在PC端运行帧率可达30帧,由于使用了自动初始化、重定位、回环检测等,具备较好的鲁棒性和准确性。官网网址为:http://webdiis.unizar.es/~raulmur/orbslam/。

二、ORB-SLAM三线程分析

如上图所示,三线程为Tracking、LocalMapping、LoopClosing。

(1)跟踪模块:主要是通过提取每一帧的ORB特征,通过恒速模型、关键帧模型、重定位估计相机初始位姿,然后通过共视关系跟踪局部局部地图来优化相机位姿进行优化,最后确定当前帧是否作为关键帧插入地图中。

(2)局部建图:主要是针对跟踪过程中产生的关键帧进行操作,包括把该关键帧插入到地图中,添加新的地图点,剔除冗余的关键帧、地图点,通过Local BA优化相机位姿和地图点。

(3)回环检测:同样针对关键帧进行操作,主要是通过BoW模型判断当前关键帧是否产生回环,如果产生可能的回环则进行回环一致性检测,通过一致性检测之后认为运动已经产生回环,则计算Sim3变换进行回环矫正,并另起线程进行全局优化。

  其中跟踪模块需要处理摄像头获取的每一帧图像,从而实时估计相机位姿,而局部建图和回环检测通常只针对关键帧进行操作,因此不需要实时运行。下面贴了作者测试的时间分布情况:

  学习ORB-SLAM2过程中参考了很多大咖的博客(都是可以百度出来的):

http://blog.csdn.net/u010128736/article/details/53157605

http://www.cnblogs.com/gaoxiang12/p/5161223.html

。。。。

  安装配置的过程网上的教程已经很多了,这里就不在赘述了。上面这些都是网上现成的,后面将给出自己学习过程中理解的具体细节。

ORB-SLAM2初步的更多相关文章

  1. orb slam2 双目摄像头

    主要参考了http://blog.csdn.net/awww797877/article/details/51171099这篇文章,其中需要添加的是:export ROS_PACKAGE_PATH=$ ...

  2. ORB SLAM2在Ubuntu 16.04上的运行配置

    http://www.mamicode.com/info-detail-1773781.html 安装依赖 安装OpenGL 1. 安装opengl Library$sudo apt-get inst ...

  3. 关于ORB SLAM2资源整理(持续更新)

    ORB SLAM2源码讲解(吴博) https://www.youtube.com/watch?v=2GVE7FTW7AU 泡泡机器人视频整理: http://space.bilibili.com/3 ...

  4. ORB SLAM2 学习笔记

    cd ~/Documents/demos/ORB_SLAM2 ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.y ...

  5. Ubuntu14.04 使用本地摄像头跑ORB SLAM2(暂未完成)

    嗯 这个方法我暂时弄不出来,用了另外一个方法:SLAM14讲 第一次课 使用摄像头或视频运行 ORB-SLAM2 前面的准备: Ubuntu14.04安装 ROS 安装步骤和问题总结 Ubuntu14 ...

  6. orb slam2

  7. 使用 evo 工具评测 VI ORB SLAM2 在 EuRoC 上的结果

    http://www.liuxiao.org/2017/11/%E4%BD%BF%E7%94%A8-evo-%E5%B7%A5%E5%85%B7%E8%AF%84%E6%B5%8B-vi-orb-sl ...

  8. Ubuntu16.04+Ros+Usb_Cam ORB SLAM2

    转载自:https://www.jianshu.com/p/dbf39b9e4617亲测可用 1.其中编译ORB_SLAM2的   ./build.sh 和 ./build_ros.sh之前需要修改文 ...

  9. 最近一年语义SLAM有哪些代表性工作?

    点击"计算机视觉life"关注,置顶更快接收消息! 本文由作者刘骁授权发布,转载请联系原作者,个人主页http://www.liuxiao.org 目前 Semantic SLAM ...

  10. SLAM学习笔记 - ORB_SLAM2源码运行及分析

    参考资料: DBow2的理解 单目跑TUM数据集的运行和函数调用过程 跑数据集不需要ros和相机标定,进入ORB_SLAM目录,执行以下命令: ./Examples/Monocluar/mono_tu ...

随机推荐

  1. 生活点滴:java基础知识细化

    生活点滴:java基础知识细化 一.前言 越是对一门语言深入了解,就会发现自己不知道的东西越多,这才是走向了正道,同样的,对于java语言特性的学习,笔者也只是初窥门径. 二.java基础知识思考 i ...

  2. 探索ASP.Net Core 3.0系列四:在ASP.NET Core 3.0的应用中启动时运行异步任务

    前言:在本文中,我将介绍ASP.NET Core 3.0 WebHost的微小更改如何使使用IHostedService在应用程序启动时更轻松地运行异步任务. 翻译 :Andrew Lock   ht ...

  3. 从零实现一个React:Luster(一):JSX解析器

    前言 这是之前在掘金发的两条沸点,懒得写了,直接复制过来作为前言了.然后这个项目可能之后还会继续写,增加一些路由或者模板引擎的指令什么的,但是再过没多久寒假就有大块时间了就可能不摸这个鱼去开其它坑了, ...

  4. D3力布图绘制--在曲线路径上添加文本标记

    今天遇到一个在曲线路径上标识文本标记的问题,找到一个比较好的解决思路,在这里分享下: 使用d3建立的Force Layout,加上自定义的箭头形状,将多条连接线线改成弧线(https://www.cn ...

  5. HTML+css基础 css的几种形式 css选择器的两大特性

    3.外联样式 css选择器的两大特性 1.继承性:所有跟文本字体有关的属性都会被子元素继承.且权重是0000. 2.层叠性:就是解决选择器权重大小的一种能力,就是看那个选择器的权重大.谁的权重大听谁的 ...

  6. 【Zabbix】zabora监控Oracle数据库

    zabora监控Oracle数据库 它作为一个开源项目,通过shell脚本有效的监控Oracle基础指标.本文档旨在通过实战,在Zabbix 3.0版本之下,监控生产环境下的多台Oracle数据库. ...

  7. java架构之路-(tomcat网络模型)简单聊聊tomcat(一)

    tomcat使我们熟知的也是我们使用最多的web服务器了,至少我是使用最多的.常见的web服务器还有Apache,web logic,JBOSS等,对于tomcat的安装我就不再赘述了,简单的不能再简 ...

  8. Zabbix设置自定义监控项之——监控tcp连接状态

    目录 一.用户自定义参数 二.配置 监控 TCP 连接状态 在实际监控中,除了官方自带的一些监控项,我们很多时候有一些定制化监控,比如特定的服务.TCP 连接状态等等,这时候就需要自定义监控项.自定义 ...

  9. mongodb 更新数据时int32变为double的解决办法 & 教程

    https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html mongodb 更新数据时int32变为double的解决办法   ...

  10. phpmyadmin 在服务起上检测到错误,请查看窗口底部

    使用phpmyadmin一直提示这个警告,看着难受: 解决: 修改文件:/etc/phpmyadmin/config.inc.php 在最后添加这一句, $cfg['SendErrorReports' ...