泡泡机器人上已经有公开课ORB-SLAM2的代码详解了,我也先看了一个多小时的视频,后来发现看完还是迷迷糊糊,自己没看源码,根本不明白讲的什么,因此,打开文件开始阅读源码。

为了阅读逻辑清楚,我从ORB-SLAM的Example文件中的mono_eourc.cpp开始看。

1.检查运行程序需要的可执行文件、字典路径、一些内参设置文件的路径(比如相机内参、畸变等、尺度因子)、放图片的文件夹目录、记录时间的文件路径。一共五个参数,如果在终端上没有输满这五个参数,会报错"Usage: ./mono_tum path_to_vocabulary path_to_settings path_to_image_folder path_to_times_file"。

2.加载输入的图片和时间序列,将它们放在定义好的向量变量中,准备slam输入数据。

3.开始创建SLAM系统了。这一步用到了system.cpp,下面开始讲system.cpp的主要内容和主要目的:

(1)主要目的:创建SLAM系统中的4个线程,完成参数的设置。

(2)内容:

a.传入回环检测所需要的字典文件路径,系统内参设置文件的路径,设置传感器类型、使用的模式(即前端只追踪还是既追踪也定位的模式)。

b.开始判断上面传入的参数是否有效,若无效将输出错误提醒信息

c.创建一系列变量:关键帧数据库、地图、画图。

d.通过创建track、localmapp、loopcloser、viewer四个指针变量,来初始化四个线程。

e.再通过各个指针变量的成员函数来指定四个线程相互的关系。

4.开始对图片序列进行遍历追踪,也就是说一个一个图片地传入track线程里,单目就是TrackMonocular(),传入的参数是一张图片和时间戳。

至此,也就真正的进入了SLAM系统内,进行追踪、优化、定位、回环等问题。

下一节,开始进入TrackMonocular()函数,更深入的讲解ORB-SLAM2代码!

ORB-SLAM2阅读笔记(一)从mono_eourc.cpp出发理解ORB-SLAM2的更多相关文章

  1. Mongodb源代码阅读笔记:Journal机制

    Mongodb源代码阅读笔记:Journal机制 Mongodb源代码阅读笔记:Journal机制 涉及的文件 一些说明 PREPLOGBUFFER WRITETOJOURNAL WRITETODAT ...

  2. 阅读笔记 1 火球 UML大战需求分析

    伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本   <火球 UML大战需求分析>,首先 ...

  3. [阅读笔记]Software optimization resources

    http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++   7. The efficiency of differe ...

  4. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  5. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

  6. uml大战需求分析阅读笔记01

    <<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...

  7. Hadoop阅读笔记(七)——代理模式

    关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...

  8. Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable

    酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...

  9. Hadoop阅读笔记(五)——重返Hadoop目录结构

    常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...

随机推荐

  1. React props

    class WebSite extends React.Component { constructor() { super(); this.state = { name: "菜鸟教程&quo ...

  2. endnote将参考文献导入word中

    在endnote中将目标文献选中 然后返回word 将光标放到目标位置 个人网盘,endnoteX7资源 链接:https://pan.baidu.com/s/1lEocicehiPm1Ypkw768 ...

  3. Java 非递归实现 二叉树的前中后遍历以及层级遍历

    class MyBinaryTree<T> { BinaryNode<T> root; public MyBinaryTree() { root = new BinaryNod ...

  4. Word2vec教程

    Word2vec Tutorial RADIM ŘEHŮŘEK 2014-02-02GENSIM, PROGRAMMING157 COMMENTS I never got round to writi ...

  5. MySql:SELECT 语句(五)正则表达式的使用

    关键字:REGEXP REGEXP 语句形式和 LIKE 语句相似,REGEXP 后面跟正则表达式.如果需要区分大小写,可以在 REGEXP 后加关键字 BINARY. 所有的正则表达式的规则都可以在 ...

  6. anu小程序快速入门

    众所周知,微信推出小程序以来,可谓火遍大江南北,就像当前互联网兴起时,大家忙着抢域名与开私人博客一样.小程序之所以这么火,是因为微信拥有庞大的用户量,并且腾讯帮你搞定后台问题及众多功能问题(如分享,支 ...

  7. Hibernate Search集与lucene分词查询

    lucene分词查询参考信息:https://blog.csdn.net/dm_vincent/article/details/40707857

  8. ssh服务简介及应用与服务的进程的类型

    SSH ,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利 ...

  9. [转载]EF或LINQ 查询时使用IN并且根据列表自定义排序方法

    原文地址:EF或LINQ 查询时使用IN并且根据列表自定义排序方法作者:李明川 EF和LINQ改变了原有的手写SQL时期的一些编码方法,并且增强了各数据库之间的移植性简化了开发时的代码量和难度,由于很 ...

  10. SpringCloud-day06-Ribbon负载均衡

    6.3.Ribbon负载均衡 为了实现真正的负载均衡,我们需要集群3个服务提供给者,而在这之前我们只有一个服务提供者1001,那么我们新建模块microservice-station-provider ...