视觉SLAM——orbslam中的流程图

视觉SLAM——orbslam中的流程图_第1张图片

视觉SLAM——orbslam中的流程图_第2张图片

视觉SLAM——orbslam中的流程图_第3张图片

视觉SLAM——orbslam中的流程图_第4张图片

位姿 Tcw初始化方法:
运动模式跟踪: Tcw = mVelocity*LastFrame.mTcw,地图点通过重投影更新
关键帧模式跟踪:Tcw =LastFrame.mTcw, 地图点通过视觉词典ComputeBoW更新
重定位模式跟踪:Tcw = PnP(候选关键帧)构建PnP求解器进行若干次P4P Ransac迭代,地图点通过候选参考帧更新

优化函数及其使用
1.PoseOptimization: 优化单帧位姿,当前keyframe设为地图中的点、边为位姿,进行四次SE3位姿优化;返回内点(即匹配点)个数。优化使用在Tracking线程中的恒速模型和参考帧模型初始化位姿后、局部地图跟踪以及重定位时。
2.OptimizeSim3:优化两帧之间的位姿变换,把两帧间位姿、Point1\Point2(由变换矩阵*世界坐标点求出的相机坐标点)之间都建立边连接,优化更新两帧间转换Sim3,通过Sim3匹配更多的地图点后,对当前关键帧、闭环关键帧以及匹配的地图点进行优化得更准确的Sim3位姿;返回内点个数。此优化使用在回环检测LoopClosing中计算sim3变换。
3.LocalBundleAdjustment:在一个CovisbilityMap内进行优化,连接CovisbilityMap内每一个map点与可见它的所有keyframe放在一起进行优化。此优化用于局部建图LocalMapping线程。
4.OptimizeEssentialGraph:加入Loop Closure考虑,Covisbility图中的keyframe相互连起来,不同的Covisbility图也可以联系起来,优化Sim3位姿。此优化用在回环检测LoopClosing闭环调整中。
5.GlobalBundleAdjustment:优化所有SE3位姿与地图点的位姿,取出所有的keyframes和所有的地图点,进行构图和优化,最大优化非常耗时。此优化用在回环检测LoopClosing闭环调整中。

你可能感兴趣的:(学习笔记)