qt界面上地图点的显示:
pointcloud中的点:
keyframevisualizer中实现,先update, 再visualize
也就是说,keyframe中所有的点,都在这里显示了。
local point cloud中的点:
针对qt界面上,全部点云显示,还是local pt的显示,尽可能复用代码。
qt界面中说的local point cloud,就是说的是temporal 和 covis的。
keyframe的逻辑
首先是生成keyframe的逻辑: 完全由以下的参数决定:
this->createNewKeyframeID > activeKeyframes.back()->frameID()
删除keyframe的逻辑:
并没有明显的keyframe删除操作,allKeyframes_一直在往里面加,只有选择covis帧的时候,才会去遍历这个帧。
时间窗口 selectTemporalWindow
FullSystem::trackingReferenceUpdated
1. 构造中设置为false
2. FullSystem::trackNewFrame,如果trackingReferenceUpdated为true,更新reference,并把其设置为false
3. FullSystem::createKeyframeAndOptimize,将trackingReferenceUpdated设置为true
也就是说,每次更新了keyframe,就更新一下reference.
FullSystem::createNewKeyframeID
1. 初始化为-1
2. 在处理每一帧的时候,如果localCreateNewKeyframe=true,则createNewKeyframeID = trackingNewFrame->frameID(),赋值为新的frameid
3. 在do mapping的时候,判断这一帧是否比window中的id要大,如果大,则创建新的frameid