ORB-SLAM3 void Map::AddKeyFrame(KeyFrame *pKF)
2026/9/19 12:37:04 网站建设 项目流程

Map::AddKeyFrame() 逐行注释与详细原理说明

函数整体作用

Map::AddKeyFrame(KeyFrame *pKF)是 ORB-SLAM3 中Map类的成员函数,用于将一个新的关键帧插入到地图的关键帧集合中,并同时维护与关键帧 ID 相关的元数据(如初始关键帧、最大 ID、最小 ID)。该函数由Atlas::AddKeyFrame调用,或直接被其他模块调用(如局部建图线程)。

函数内部使用互斥锁mMutexMap保护关键帧集合,确保多线程环境下的数据一致性。主要操作包括:

  • 如果这是地图中的第一个关键帧,记录其 ID 作为地图的初始关键帧 ID,并保存初始关键帧指针。

  • 将关键帧插入mspKeyFrames集合。

  • 更新地图中的最大关键帧 IDmnMaxKFid)。

  • 更新地图中的最小关键帧 ID 对应的关键帧指针mpKFlowerID,表示具有最小 ID 的关键帧)。

这些元数据在地图管理、多地图合并、轨迹记录和优化中具有重要作用。

一、逐行

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询