ORB-SLAM2源码学习(一)——系统结构及System.cc

开始阅读学习ORB-SLAM2的源码了,在这里做个学习记录,另外也是督促自己的学习的更加深入。

前言

首先ORB-SLAM2作为一个完整的slam系统,作者即提供了论文也有对应的源码,它的github主页:

https://github.com/raulmur/ORB_SLAM2

系统包括了单目、双目、rgbd的实现,这里我主要学习单目slam系统,就以单目slam的流程来学习。

另外感谢泡泡机器人提供的有很好的注释版本(吴博):

https://gitee.com/paopaoslam/ORB-SLAM2

一、系统结构

ORB-SLAM2系统的代码非常整齐,简洁,便于阅读,作者将项目做了良好的封装,文件分布如下:

其中src中为slam系统源码,Examples中为对应不同传感器的例程源码,Thirdparty存放的是用到的第三方库,Vocabulary存放的是回环检测中BoW用到的视觉词典;

首先,我们看看怎么来调用ORB-SLAM2,学习一下例程源码mono_tum.cc。

二、mono_tum.cc(单目tum数据集例程)

主体源码,做过修剪:

int main(int argc, char **argv)
{
    if(argc != 4)
    {
        cerr << endl << "Usage: ./mono_tum path_to_vocabulary path_to_settings path_to_sequence" << endl;
        return 1;
    }

    // Retrieve paths to images
    vector<string> vstrImageFilenames;
    vector<double> vTimestamps;
    string strFile = string(argv[3])+"/rgb.txt";
    LoadImages(strFile, vstrImageFilenames, vTimestamps);

    int nImages = vstrImageFilenames.size();

    // Create SLAM system. It initializes all system threads and gets ready to process frames.
    ORB_SLAM2::System SLAM(argv[1],argv[2],ORB_SLAM2::System::MONOCULAR,true);

    // Vector for tracking time statistics
    vector<float> vTimesTrack;
    vTimesTrack.resize(
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值