本人邮箱 [email protected],欢迎交流。
一、总述
ORB-SLAM是由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos在2015年提出。它是一个基于特征识别的单目slam系统,可以实时运行,适用于各种场合,室内的或者室外的,大场景或小场景。系统具有很强的鲁棒性,可以很好地处理剧烈运动图像、可以有比较大的余地自由处理闭环控制、重定位、甚至全自动位置初始化。该系统具有三个线程:分别是跟踪(Tracking)、建图(LocalMapping)和闭环检测(LoopClosing)。以后我会结合ORB-SLAM2代码,写相关的多视图集合,数学优化,Bundle Adjustment等博客。
本讲主要介绍ORB-SLAM2框架,以及代码结构。
1.ORB-SLAM框架
先上一个ORB-SLAM三线程图片。在下图中我们很清楚的看到传入Frame是怎么变成Map的(如果不清楚也不要紧,下面的博客会讲每一个线程是怎么运作的)
追踪(Tracking):ORB特征提取;初始姿态估计(速度估计);姿态优化(Track local map,利用邻近的地图点寻找更多的特征匹配,优化姿态);选取关键帧。
局部建图(Local Mapping):加入关键帧(更新各种图);验证最近加入的地图点(去除Outlier);生成新的地图点(三角法);局部Bundle adjustment(该关键帧和邻近关键帧,去除Outlie