长期的数据关联:利用场景重识别来匹配当前的观测和先前的观测,不用管累计误差而且即使跟踪失败也可以实现,长期的匹配可以利用位姿图优化重新设置漂移,为了更准确也可以利用BA。这是SLAM在大场景中精度保证的关键。 这是第一个可能对短期、中期、长期数据进行数据关联的视和视觉惯导的系统。在已知地图的环境中可以没有漂...
}// 局部BA优化if(!CheckNewKeyFrames()) {OptimizeLocalMap(); }// 其他逻辑... } }voidLocalMapping::ProcessNewKeyFrame(){// 添加新关键帧到地图mpMap->AddKeyFrame(mpCurrentKeyFrame);// 创建新的地图点CreateNewMapPoints();// 局部BA优化OptimizeLocalMap(); } (3)闭环检测(Loop Closing) 闭环...
将关键帧和地图点添加到活动地图, 删除redundant(多余关键帧),并使用视觉或视觉惯性BA优化地图. 另外此线程也包括惯性情况下, 利用MAP估计初始化和优化IMU参数. 4Loop and map merging thread(回环和地图融合线程) 基于关键帧的速度,对地图集中的active map (活动地图)和 non-active-map(非活动地图)进行相似性度量...
但是在地图的细粒度的访问中都加了细粒度的互斥量的定义,同时ORB-SLAM3不追求严格的实时一致性,而是通过以下设计实现最终一致性:(1)闭环校正的全局同步:当检测到闭环时,系统通过全局BA或位姿图优化对所有关键帧和地图点进行全局调整,此时所有线程暂停,确保全局状态的一致性。
临近的两帧的匹配特征点集合基于对极几何和三角化测量方法(ReconstructWithTwoViews)去初始化相机位姿和地图点坐标,如果成功初始化相机位姿,则调用函数CreateInitialMapMonocular创建初始地图,将初始帧和当前帧作为关键帧加入到当前地图里,同时更新对应的地图点和关键帧之间的关联关系,并进行全局的BA优化以进一步优化相机初始...
// 局部BA优化 } } 该函数在一个独立线程中运行,持续处理新的关键帧,插入新的地图点,并进行局部束调整(BA)优化,以确保局部地图的精度和一致性。 七、回环检测与闭环优化 回环检测是ORB-SLAM3的关键模块之一,由LoopClosing模块负责,通过检测闭环,进行全局地图优化。主要函数为Run(): ...
仅运动的BA优化:使用仅运动的BA优化方法来确定相机的位姿,即调整相机的位置和方向,使得投影误差最小化。全局重定位:在跟踪丢失的情况下,使用位置识别模块进行全局重定位,以恢复相机的位置和方向。局部地图匹配与优化:一旦获得最初的相机位姿估计和特征匹配,使用系统维护的关键帧的共视图提取局部可视化...
长期的数据关联:利用场景重识别来匹配当前的观测和先前的观测,不用管累计误差而且即使跟踪失败也可以实现,长期的匹配可以利用位姿图优化重新设置漂移,为了更准确也可以利用BA。这是SLAM在大场景中精度保证的关键。 这是第一个可能对短期、中期、长期数据进行数据关联的视和视觉惯导的系统。在已知地图的环境中可以没有漂...
相比于只使用最后几秒钟信息的视觉里程计系统,ORB-SLAM3系统是第一个能够在所有算法阶段重用所有先验信息的系统。这允许包括在BA优化共同可见关键帧,提供高视差观测并且提高精度。 通过实验表明,在所有传感器配置中,ORB-SLAM3与文献中可用的最佳系统鲁棒性一致,而且更加精确。值得注意的是,本文的立体惯性SLAM在EuRoC无...
(而GlobalBundleAdjustment是全局BA,优化所有关键帧和地图点的位置,使用se(3)因为BA通常处理的是刚体变换,不考虑尺度,将回环约束均匀传播到整个关键帧图)。关于优化部分的内容,将会在专门的文章中加以介绍。关于回环矫正的更详细的思路,可以参考本文后面地图合并的部分内容。