ORB-SLAM 代码笔记(二)
ORB-SLAM中除了第三方库,基本没有看到使用c++11的新特性(例如别的SLAM框架中常用的智能指针,拷贝控制,泛型算法等,基本没有使用动态内存,栈内存读取速度较快),因此非常适合初学,代码很清晰。静下心来一个月之内是肯定可以看完的,目前的想法是在看完ORB之后,对其中的典型算法再做一个总结~慢慢来
System.cc 系统入口文件
读取词典文件,摄像头信息,以及View线程是否现实
System(const string &strVocFile, const string &strSettingsFile, const eSensor sensor, const bool bUseViewer = true);
Tracking线程:
分为三种摄像头(双目,RGBD以及单目)
均需要设置是否只使用定位模式
双目入口:
双目获取的两帧图片必须时间对其并已经完成矫正;
无论是RGB (CV_8UC3) 还是灰度图(CV_8U)均会转换成灰度图,抛弃颜色信息。
该函数中主要完成特征点提取与匹配
cv::Mat TrackStereo(const cv::Mat &imLeft, const cv::Mat &imRight, const double ×tamp);
返回相机位姿,若返回的Mat结构为空,表示跟踪失败
return mpTracker->GrabImageStereo(imLeft,imRight,timestamp);