都说,看别人写的代码就是根据别人的排泄物,来分析他的早餐是什么,这个工作既困难由恶心。
这里不贴详细的代码注释,只是根据个人的理解,揣测了一番大佬们的心思,尽量做到详细,难免有错误,欢迎交流。
PAGE1:mono_?_ccp
这个page中主要完成的是LoadImages,创建System(SLAM),配合时间戳循环地把图像传给mpTracker,最后统计跟踪所花费的时间的中间值和平均值。
LoadImages的目的主要是把数据库进行解析,变成了图像向量,和时间戳向量。
SLAM.TrackMonocular(im,tframe)在传送图像时,在这个函数中,完成跟踪,得出位姿,我们注意到用chrono来计时跟踪的时间,并计算出两个处理的时间差,如果传送时间小的话则usleep等待下个图像捕获,当然了,如果跟踪的时间长的话,那么就不等待了,直接获取下一帧。这部分要注意的是数据集的时间戳是以秒为单位的,而usleep的单位是微秒,所以要乘以10^6。
当把所有的图像都传送进去后,就终止所有的线程。并把相机的轨迹保存成文件格式。