ORBslam总结】的更多相关文章

ORB-SLAM作为单目SLAM,其精度很大程度上决定于帧与帧之间的位姿优化的是否准确.因此优化(optimization)在ORB-SLAM里面扮演了很重要的角色.这一小节探讨一下ORB-SLAM里用到的优化. ORB-SLAM选用g2o作为图优化的方法,关于g2o可以参考http://www.cnblogs.com/gaoxiang12/p/5304272.html. 一.为什么要优化 因为摄像机标定(camera calibration)和追踪(tracking)的精度不够.摄像机标定的误…
ORB-SLAM是一种基于ORB特征的三维定位与地图构建算法(SLAM)[1].该算法由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics.ORB-SLAM基于PTAM架构,增加了地图初始化和闭环检测的功能,优化了关键帧选取和地图构建的方法,在处理速度.追踪效果和地图精度上都取得了不错的效果.要注意ORB-SLAM构建的地图是稀疏的. ORB-SLAM一开始基于monocular…
ORB-SLAM程序提供了运行Monocular.Stereo和RGBD数据的程序.编译成功后,可以通过运行TUM的标准数据来验证程序是否成功.如果想自己测试一些数据,可以通过OpenCV提供的接口调起电脑的摄像头. 个人认为,ORB-SLAM是一个完整的单目SLAM实现,集合了当前流行的SLAM特性.作者的程序非常工程化,其中有诸多精度与运算量的权衡.具体总结如下. ORB-SLAM的优点: Tracking的平均时间约为20ms每帧,基本可以达到实时追踪(i5-5200,2.2GHz). 丢…
单目SLAM地图初始化的目标是构建初始的三维点云.由于不能仅仅从单帧得到深度信息,因此需要从图像序列中选取两帧以上的图像,估计摄像机姿态并重建出初始的三维点云. ORB-SLAM中提到,地图初始化常见的方法有三种. 方法一 追踪一个已知物体.单帧图像的每一个点都对应于空间的一条射线.通过不同角度不同位置扫描同一个物体,期望能够将三维点的不确定性缩小到可接受的范围. 方法二 基于假设空间存在一个平面物体,选取两帧不同位置的图像,通过计算Homography来估计位姿.这类方法在视差较小或者平面上的…
最近在读ORB-SLAM的代码,虽然代码注释算比较多了,但各种类和变量互相引用,看起来有点痛苦.索性总结了一下Tracking部分的代码结构,希望能抓住主要思路,不掉坑里. 追踪 追踪部分的主要思路是在当前帧和(局部)地图之间寻找尽可能多的对应关系,来优化当前帧的位姿. 作者在追踪这部分主要用了几种模型:运动模型(Tracking with motion model).关键帧(Tracking with reference key frame)和重定位(Relocalization). 下面一一…
主要参考http://blog.csdn.net/dourenyin/article/details/48055441 1.编译g2o的过程中, 先是出现Eigen3依赖项的问题,要求Eigen3最低版本是3.1.0,而我的ROS上的版本是3.0.5. 于是下载了一个3.2.7的包进行编译并安装. 执行make命令,又出现如下两个错误. 解决方法:通过命令查看 $ gcc -march=native -Q --help=target | grep march 接下来修改CMakelists.tx…
1. 编译完成之后就可以使用了,按照说明我们可以知道,首先开启roscore…
1.下载代码   https://github.com/raulmur/ORB_SLAM/    (同时也可以看看作者的牛叉论文,我是打算先用代码,再回头看论文) 2.打开后如下 就好像是用一件新产品一样,我们首先要看一下说明书“README.md”, README.md介绍了很多关于这个工程的东西,比如作者,发表的论文,研究的人员,代码的下载以及更新 那么我们首先从有用的信息开始操作:(备注:以下内容都是我的个人理解,都是别人的东西,我拿来学习而已) 3.解决依赖项 3.1 Boost   :…
ORBSLAM2的关键帧简介 图像插入频率过高会导致信息冗余度快速增加,而这些冗余的信息对系统的精度却十分有限,甚至没有提高,反而消耗了更多的计算资源.这等于吃力不讨好. 关键帧的目的在于,适当地降低信息冗余度,减少计算机资源的损耗,保证系统的平稳运行. ORBSLAM2也是沿袭PTAM的方案,将定位和建图分成两个线程,不过ORBSLAM2还增加了回环这个线程,在关键帧的问题上做了更灵活的处理,使得系统的跟踪更流畅和稳定. 接下来我们将按照ORBSLAM2源码中的方案将内容分成两个部分进行介绍:…
之前研究过一些回环检测的内容,首先要看的自然是用词袋回环的鼻祖和正当继承人(没有冒犯VINS和LDSO的意思)ORB-SLAM.下面是我的代码注释.因为代码都是自己手打的,不是在源码上注释的,所以一些我觉得不是太重要的被略过了,可能也会有一些typo. ORB的回环策略比较偏向seq-SLAM的思路,通过共视帧打包的关系,比较每个包的相似值,而非只是关注单帧和单帧的匹配,这个思路是比较合适的,但是VINS和LDSO两位后来者用实际行动证明了我不太看中你这种思路,两个都没有用.后续我会介绍一些VI…