ORB-SLAM2 (单目)源码解读(1)

流程图

流程图

初始流程

首先调用mono_tum.cc 运行程序
有以下几块内容

  1. LoadImages (const string &strFile, vector &vstrImageFilenames,vector &vTimestamps);读取影像数据
  2. ORB_SLAM2::System SLAM (argv[1],argv[2],ORB_SLAM2::System::MONOCULAR,true); 系统的初始化、建立线程
  3. SLAM.TrackMonocular(im,tframe); 将每张影像传入单目处理函数
  4. vTimesTrack[ni]=ttrack; 计算处理所用的时间
  5. 等待加载下一帧
  6. 结束
  7. 将相机轨迹写入KeyFrameTrajectory.txt

输入参数有4个
Usage: ./mono_tum path_to_vocabulary path_to_settings path_to_sequence
分别对应:调用的程序、词袋、相机内参和特征提取器的参数 影像数据

调用的函数有3个

1、LoadImages (const string &strFile, vector &vstrImageFilenames,vector &vTimestamps);参数为:影像数据的文件名,输出为 时间戳和对应的影像名。
2、 ORB_SLAM2::System SLAM(argv[1],argv[2],ORB_SLAM2::System::MONOCULAR,true); 参数为:词袋、相机内参和特征提取器的参数、单目/双目/RGB-D,是否启动显示界面。
3、SLAM.TrackMonocular(im,tframe); 参数为 影像和对应的时间戳。

系统流程

接下来进入到system.cc,才算是真的进入到系统中。

首先,这个文件中有4个函数

  1. System
  2. TrackStereo
  3. TrackRGBD
  4. TrackMonocula

System是SLAM系统的构造函数,包括所有功能模块和所有线程的初始化,而TrackStereo、TrackRGBD和TrackMonocular分别是双目、RGBD和单目的数据入口。这里对应着mono_tum.cc的流程,先调用System初始化功能和线程,接着调用对应的单目入口函数TrackMonocula,就可以执行ORB-SLAM的流程了。

1、System构造函数介绍

1)初始化词袋

mpVocabulary = new ORBVocabulary();
bool bVocLoad = mpVocabulary->loadFromTextFile(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值