主要是参考泡泡机器人slam中冯兵老师的课程
算法输入
- 图像(单目相机采集)+时间码(用于跟其他传感器数据融合)
- 相机内参(在采集图像时,相机的焦距光心都不能改变)
- 用于特征检测的特征描述子字典
算法输出
相机的运动轨迹+地图(关键帧和Map Point)
三条独立的线程
- Tracking:初始化Map Point,计算每一帧的位置,根据计算的每一帧位置对Map Point进行优化,并筛选出Key Frame传给Local Mapping
- Local Mapping:将Tracking得到的Key Frame插入到局部地图中,添加新的帧和Map Point,对MAP进行更新,利用局部BA,将无效观测数据丢弃,并删除冗余的关键帧
- Loop Closing:检测当前帧和之前帧是否为相同场景,若是,则将之前帧的Map Point坐标给当前帧,并将两帧之间的位姿误差分散到每一关键帧中(第一帧除外)
Map包含四个部分
- Map Point
路标点的3D坐标位置
观测的方向向量
ORB描述子
该点可被观测到的最大最小距离