Step 2: 遍历相邻关键帧, 搜索匹配并用极限约束剔除误匹配, 最终三角化. for(size_t i=0; i<vpNeighKFs.size(); i++) { 若已经处理完新增关键帧列表, 则不再三角化来新增地图点了 if(i>0 && !CheckNewKeyFrames()) return; 定义pKF2: 为该次遍历的相邻关键帧 ...
Step 1: 将LocalMapping线程置为繁忙状态, 拒绝Tracking线程发送新的关键帧 Step 2: 处理列表中的关键帧, 包括计算BoW, 更新观测, 描述子,共视图, 插入到地图等 Step 3: 根据地图点的观测情况剔除质量不好的地图点 Step 4: 当前关键帧与相邻关键帧通过三角化产生新的地图点,使得跟踪更稳 Step 5: 检查并融合...
ORB-SLAM2源码系列--局部建图线程详解MapPointCulling模块负责筛选新加入的地图点,确保地图质量。在ProcessNewKeyFrame函数中,新点被暂存于mlpRecentAddedMapPoints。筛选过程包括:根据相机类型设定不同的观测阈值遍历新点,若点已标记为坏点则直接从队列中移除若点的观察帧数少于预期值的25%,或者观察相机数...
Step 2.3: 从该点建立开始, 到现在已经过了不小于2个关键帧 但是观测到该点的相机数却不超过阈值cnThObs, 则从地图中删除 elseif(((int)nCurrentKFid-(int)pMP->mnFirstKFid)>=2&&pMP->Observations()<=cnThObs){pMP->SetBadFlag();lit=mlpRecentAddedMapPoints.erase(lit);} Step 2.4: 从该点建立...
局部建图线程中局部BA优化地图点和位姿 优化函数用于LocalMapping线程的局部BA优化 voidOptimizer::LocalBundleAdjustment(KeyFrame*pKF,bool*pbStopFlag,Map*pMap) 概述 Local Bundle Adjustment 1.Vertex: - g2o::VertexSE3Expmap(), LocalKeyFrames, 即当前关键帧的位姿, 与当前关键帧相连的关键帧的位姿 ...