最近空闲时间在研究Semi-Direct Monocular Visual Odometry(SVO)[1,2],觉得它值得写一写。另外,SVO的运算量相对较小,我想在手机上尝试实现它。 关于SVO的介绍,有两篇博客介绍得非常好,因此我这里只简单提一下大概的思路,重点讲解了一下深度滤波器的原理。 svo: semi-direct visual odometry 论文解析 SVO 代码笔记 一步步
光度标定(Photometric Camera Calibration)是DSO(Direct Sparse Odometry)论文中比较特别的一部分。常规的vSLAM不太考虑光度标定的问题。比如基于特征点的vSLAM,由于特征描述一般会有光照不变性,对图像的亮度值并不敏感。而在直接法(direct method)中,由于姿态估计以图像的亮度值为出发点,亮度值的准确度会影响算法的精度和稳定性。因此
DBoW2库是University of Zaragoza里的Lopez等人开发的开源软件库。由于在SLAM回环检测上的优异表现(特别是ORB-SLAM2),DBoW2库受到了广大SLAM爱好者的关注。本文希望通过深入解析DBoW2库及相关的DLoopDetector库,为读者后续使用这两个库提供参考。 git地址:DBoW2DLoopDetector 论文:Bags of Binary Word
上一篇提到,无论在单目、双目还是RGBD中,追踪得到的位姿都是有误差的。随着路径的不断延伸,前面帧的误差会一直传递到后面去,导致最后一帧的位姿在世界坐标系里的误差有可能非常大。除了利用优化方法在局部和全局调整位姿,也可以利用回环检测(loop closure)来优化位姿。 这件事情就好比一个人走在陌生的城市里,一开始还能分清东南西北,但随着在小街小巷转来转去,已经不知道自己在什么地方了。通过认真辨
ORB-SLAM作为单目SLAM,其精度很大程度上决定于帧与帧之间的位姿优化的是否准确。因此优化(optimization)在ORB-SLAM里面扮演了很重要的角色。这一小节探讨一下ORB-SLAM里用到的优化。 ORB-SLAM选用g2o作为图优化的方法,关于g2o可以参考http://www.cnblogs.com/gaoxiang12/p/5304272.html。 一、为什么要优化 因为摄
最近在读ORB-SLAM的代码,虽然代码注释算比较多了,但各种类和变量互相引用,看起来有点痛苦。索性总结了一下Tracking部分的代码结构,希望能抓住主要思路,不掉坑里。 作者的程序分为两种模式:SLAM模式和Localization模式。SLAM模式中,三个线程全部都在工作,即在定位也在建图。而Localization模式中,只有Tracking线程在工作,即只定位,输出追踪结果(姿态),不会
单目SLAM地图初始化的目标是构建初始的三维点云。由于不能仅仅从单帧得到深度信息,因此需要从图像序列中选取两帧以上的图像,估计摄像机姿态并重建出初始的三维点云。 ORB-SLAM中提到,地图初始化常见的方法有三种。 方法一 追踪一个已知物体。单帧图像的每一个点都对应于空间的一条射线。通过不同角度不同位置扫描同一个物体,期望能够将三维点的不确定性缩小到可接受的范围。 方法二 基于假设空间存在一个平面
ORB-SLAM程序提供了运行Monocular、Stereo和RGBD数据的程序。编译成功后,可以通过运行TUM的标准数据来验证程序是否成功。如果想自己测试一些数据,可以通过OpenCV提供的接口调起电脑的摄像头。 个人认为,ORB-SLAM是一个完整的单目SLAM实现,集合了当前流行的SLAM特性。作者的程序非常工程化,其中有诸多精度与运算量的权衡。具体总结如下。 ORB-SLAM的优点:
ORB-SLAM是一种基于ORB特征的三维定位与地图构建算法(SLAM)[1]。该算法由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics。ORB-SLAM基于PTAM架构,增加了地图初始化和闭环检测的功能,优化了关键帧选取和地图构建的方法,在处理速度、追踪效果和地图精度上都取得了
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信