一起学ORBSLAM2
蚁族的坚持
我于2016年10月15日开启此微博,目的伴随自己即将开始的研究生学习之路,模式识别领域,一方面让自己方便转发或观看别人的思想,另一方面把自己的思想传播给后来者
展开
-
一起学ORBSLAM2(1)跑通ORBSLAM2 ubuntu 14.04的运行
搞完毕设之后与本科毕业还有两个月的时间,这段时间除了每天到处无聊闲逛之外,还是决定做点什么,于是就拿来网上一个现成的开源SLAM代码,看看别人是怎么将SLAM写成一个完备的工程库的所以就写了一起学ORBSLAM2这个系列,本系列结合现有的关于ORBSLAM的相关资料,包括国内的论文博客等,目的在于让自己加深学习的印象,并且刚接触SLAM这个领域,因此可能有许多不足之处还请各位见谅,并欢迎批评指正。原创 2017-05-01 20:58:46 · 9159 阅读 · 1 评论 -
一起学ORBSLAM2(11)ORBSLAM的localmapping
转载请注明原创地址:https://blog.csdn.net/qq_30356613/article/category/6897125ORBSLAM的局部建图线程实际做的工作是来维护全局map以及管理关键帧的,对tracking得到的关键帧进行筛选融合,以及对关键帧中的地图点进行融合,剔除冗余的关键帧和地图点,维护一个稳定的全局map,并将筛选后的关键帧提供给回环检测使用。局部建图线程主函数流程...原创 2018-06-05 22:35:05 · 3654 阅读 · 2 评论 -
一起学ORBSLAM2(10)ORBSLAM中的相似变换矩阵的计算
ORBSLAM在回环检测过程中通过计算回环两帧的相机相似变换矩阵来为图优化添加边。已知3D-3D的匹配地图点,通过匹配地图点计算两关键帧之间的相似变换矩阵,主要参考文章:Closed-form solution of absolute orientation using unit quaternions.主要内容如下:相似变换矩阵与欧式变换的区别: 如表所示相似变换与欧式变换相比较多了尺度因子。因...原创 2018-06-05 22:20:20 · 3298 阅读 · 3 评论 -
一起学ORBSLAM2(9)ORBSLAM的PNP解决方案
PNP问题:已知空间中存在地图点 世界坐标系下的坐标为Pw1,Pw2,Pw3...... Pwn 以及对应于在该帧中的匹配点像素坐标u1,u2,u3......un,求解此时相机的位姿Tcw。ORBSLAM中采用EPNP的方案对解决PNP问题,EPNP将匹配点的当前相机坐标系下的坐标得到,然后根据ICP算法进一步求解得到相机的位姿Tcw。整体框架使用RANSAC的方式不断进行迭代求解 因此ORBS...原创 2018-06-05 22:13:35 · 6445 阅读 · 6 评论 -
一起学ORBSLAM2(8)ORBSLAM的loopclosing
ORBSLAM中的回环检测和重定位具有类似的方式,所以我们这里将两个部分放到同一篇文章中讲解。首先看tracking线程中的重定位。一.Tracking重定位重定位模式是在系统处于LOST(追踪线程失败)的情况下进行的系统挽救工作,它的基本流程是:(1)计算当前帧的BoW映射(2)找到与当前帧相似的候选关键帧(3)匹配当前帧与找到的候选关键帧,计算相机位姿Tcw(RANSAC+EPNP算法)(4)...原创 2018-06-05 22:04:02 · 2494 阅读 · 0 评论 -
一起学ORBSLAM2(7)ORBSLAM中的优化问题
ORBSLAM是一种基于优化方法的SLAM方法,与之前的基于滤波器方法有很大的不同,工程中引入了第三方库g2o,g2o是基于图优化的优化算法库。首先了解什么是图优化,图优化是将普通的优化问题用图的方式(变量用节点表示,关系用边来表示)来表示(参考文章:g2o: A general Framework for Graph Optimization),如下最小二乘问题表达式可以表示为:,其中为误差函数...原创 2018-06-05 22:01:40 · 5281 阅读 · 0 评论 -
一起学ORBSLAM2(6)ORBSLAM中的特征匹配
ORBSLAM中对于特征点的匹配在不同情况下有不同的匹配方式。分为以下几种:1. 按照投影进行匹配2. 按照bow向量节点进行匹配3. 针对初始化地图点的匹配4. 针对单目三角化的匹配5. 基于相似矩阵的匹配6. 通过匹配来提出冗余地图点 一、首先看按照投影进行的匹配按照投影方式的不同将其分为上一帧投影到当前帧(tracking线程的按照运动模型进行位姿估计),关键帧投影到当前帧(tracking...原创 2018-06-05 21:53:00 · 6280 阅读 · 3 评论 -
一起学ORBSLAM2(5)ORBSLAM的单目视觉处理方式
单目相机由于深度是未知的,因此我们需要对其进行初始化,在ORB-SLAM中将其用单独的类来表示,并将它写成单独的文件initializer.cc,注意单目相机即使在进行初始化之后,仍然存在尺度问题,初始化将第一帧的位移作为单位长度,后面的深度和位移都是依据这一标准进行的,所以尺度问题是单目slam的理论缺点。单目slam初始化需要两帧进行,第一帧作为参考初始化帧,第二帧作为当前帧。在第一帧来临时建...原创 2018-06-05 21:49:25 · 6573 阅读 · 1 评论 -
一起学ORBSLAM2(4)tracking主线程
跌跌宕宕距离上次更博已经数月,其实对于ORB-SLAM的学习早就完成,只是由于时间原因没能够及时更新。关于orbslam的中文注释的源码,之后将上传到github,后面将更新网址,因此在博客中我们就尽量只讲述理论只是以及梳理工程思路,至于具体代码实现以及代码的注释可以下载注释版源码查看。接着上一篇对于ORB-SLAM的系统介绍继续ORB-SLAM的主线程tracking。ORB-SLAM的trac...原创 2018-06-05 20:57:04 · 5046 阅读 · 3 评论 -
一起学ORBSLAM(2)ORB特征点提取
ORBSLAM2的主要特点在于他的所有工程实现都用到了ORB这个特征点提取方法,包括他实现的在线单目,双目以RGBD的SLAM,下面我们就看看他是怎么一步一步一步一步一步一步一步一步一步一步实现ORB特征的提取的。 理论部分: 关于ORB特征点的实现方法以及其工作原理,网上资料很多,大家可以广泛阅读,当然也要筛选正确的信息,下面给出一个参考博客:http://www.cnblo原创 2017-11-30 22:01:43 · 15442 阅读 · 4 评论 -
一起学ORBSLAM2(3)system框架搭建
接着上一期的一起学ORBSLAM2继续,只不过上一期已经是几个月前了,由于这一段时间忙或者毕业答辩的事情,所以没有时间更新博客,望各位见谅,现在到暑假了,没什么事情,接着之前的工作继续,坚持过好每一天,共勉! ORB-SLAM2是萨拉格萨大学做到一个开源SLAM方案,源代码上传到github上边:https://github.com/raulmur/ORB_SLAM2相关效果视频网站为:h原创 2017-07-31 08:53:30 · 5644 阅读 · 1 评论 -
一起学ORBSLAM2(12)结语
该系列orbslam2的学习到本节也就结束了,实际对于orbslam这一系列的博客皆为本人的学习笔记,如有不足之处还望指出,希望通过这一系列的博客大家能够对orbslam有一个更好的理解,orbslam作为视觉slam开源方案中较成功的一个,有许多我们需要借鉴学习的地方。还需要继续探索这一系列的博客对应注释代码下载网址:https://download.csdn.net/download/qq_3...原创 2018-06-05 22:42:51 · 1138 阅读 · 4 评论