目录
一.前言
这段代码是一个名为Tracking::UpdateLastFrame
的函数,它似乎是在某种视觉跟踪或视觉里程计系统中更新最后一帧数据的方法。具体来说,它在计算机视觉或机器人导航中可能是用于处理来自相机或其他传感器的数据,以估计相机的姿态和位置。以下是该函数主要操作的详细解释:
-
更新姿态:
- 使用
mLastFrame.mpReferenceKF
(可能是指向参考关键帧的指针)来获取参考关键帧的姿态。 - 使用
mlRelativeFramePoses.back()
来获取相对于最后一个帧的姿态变换(可能是从某种形式的位姿图中)。 - 通过将相对变换应用于参考关键帧的姿态来更新最后一帧的姿态。
- 使用
-
条件检查:
- 如果最后一个关键帧的ID与当前帧的ID相同,或者系统是单目相机、IMU单目相机,或者当前不是仅跟踪模式,则函数直接返回,不执行后续操作。
-
创建"视觉里程计" MapPoints:
- 初始化一个用于存储深度索引的向量
vDepthIdx
。 - 遍历最后一帧中的所有特征点,并将具有有效深度(z>
- 初始化一个用于存储深度索引的向量