在GrabImageMonocular()中构造Frame
imu0
当前系统状态为
传入Frame0后,系统状态变为no_initialization
preintegrateIMU()中计算预积分
单目初始化MonocularInertialization()首次进行,
只构造初始化估计器
mInitializeFrame = Frame0
第一个图像帧处理结束
此时系统状态是未初始化
image1
在GrabImageMonocular()中构造Frame
Frame1
preintegrateIMU()中计算预积分
当前系统状态为
not_initilization
单目初始化MonocularInertialization()非首次进行,
利用2D-2D匹配进行当前图像帧与初始图像帧之间的
匹配
三角化成功,有初始位姿
系统状态
转为OK
构建初始关键帧和当前
关键帧
局部线程中加入初始关
键帧和当前关键帧
构造当前帧和初始
帧形成的地图点
三角化未成功,系统状态
保持not_initilization不变,
继续进行初始图像帧与新
的图像帧之间的2D-2D匹
配,直到初始化成功
关键帧列表:
0号关键帧:初始关键帧
1号关键帧:当前关键帧
利用三角化恢复更多的关键帧之间的地图点
回环检测中加入关键帧
提取0号关键帧作为LocalMapping中的当前关键帧
提取1号关键帧作为LocalMapping中的当前关键帧
利用三角化恢复更多的关键帧之间的地图点
关键帧列表为空
关键帧列表不为空
融合重复地图点
若IMU未初始化
IMU初始化
删除冗余关键帧
若当前地图中关键帧数量>2
若已进行IMU初始化 惯性BA优化
若还未进行IMU初始化 局部BA视觉优化
回环检测中加入关键帧
image i
在GrabImageMonocular()中构造Frame
Frame i
preintegrateIMU()中计算预积分
系统当前状态为OK 运动模型为空且IMU还未进行初始化
进行跟踪参考关键帧
3D-2D匹配 参考关键帧-当前图像帧
TrackReferenceKeyFrame()
局部地图跟踪
TrackLocalMap()
保存轨迹
保存轨迹
判断是否需要添加新的关键帧
画轨迹
Viewer.cc
传入的关键帧与关键帧数据库中进行对
比,判断回环或融合
2022年4月9日
评论0