作为ORB-SLAM2里三大线程中的第一个,Tracking线程接收传感器(摄像头)传来的每一帧,并将处理的关键帧传递给LocalMapping线程。Tracking线程其实是系统里的主线程,通过反复调用Track函数进行。
Tracking模块主要完成了以下几件事情:
- 单目地图的初始化
- 当前帧的位姿估计
- 当前帧的局部地图跟踪
- 生成候选关键帧
一、Tracking构造函数
之前有讲过Tracking对象在System对象构造函数里初始化,而在Tracking构造函数里初始化了:相机内参、ORB特征点提取参数(相应的ORB特征提取器)。
二、GrabImageMonocular函数
将图像转为灰度图像并初始化当前帧(提取特征点,若地图未初始化则提取特征点数增加一倍),之后进行tracking过程,最后输出世界坐标系(Tcw)到该帧相机坐标系的变换矩阵(注意此时返回的变换矩阵是tracking的位姿估计)。
三、Track函数
1、单目