ORB-SLAM中除了第三方库,基本没有看到使用c++11的新特性(例如别的SLAM框架中常用的智能指针,拷贝控制,泛型算法等,基本没有使用动态内存,栈内存读取速度较快),因此非常适合初学,代码很清晰。静下心来一个月之内是肯定可以看完的,目前的想法是在看完ORB之后,对其中的典型算法再做一个总结 ...
Frame类的成员变量主要包含从摄像头获取的图像的 . 特征点信息 关键点 描述字 . 尺寸不变特征所用金字塔信息,这些都定义在ORBextractor对象中 . 词袋模型参数,用于跟踪失败情况下重定位 . 相机参数,深度阈值 . 当前帧的id,时间戳,相对世界坐标系位姿,参考关键帧,特征点对应地图点及其是否是外点 . 特征点网格分配情况,以及当前帧相对世界坐标的位姿 包括位姿矩阵的更新,以及相机 ...
2017-02-15 16:43 1 3230 推荐指数:
ORB-SLAM中除了第三方库,基本没有看到使用c++11的新特性(例如别的SLAM框架中常用的智能指针,拷贝控制,泛型算法等,基本没有使用动态内存,栈内存读取速度较快),因此非常适合初学,代码很清晰。静下心来一个月之内是肯定可以看完的,目前的想法是在看完ORB之后,对其中的典型算法再做一个总结 ...
ORB视觉里程计主体在tracking线程中 ...
KeyFrame类利用Frame类来构造。对于什么样的Frame可以认为是关键帧以及何时需要加入关键帧,是实现在tracking模块中的。 由于KeyFrame中一部分数据会被多个线程访问修改,因此需要在这些成员中加线程锁,保证同一时间只有一个线程有访问权。涉及线程安全的有: 关键帧位姿的设置 ...
关键帧数据库通过预先训练好的词典,维护一个向量std::vector<list<KeyFrame*> > mvInvertedFile; 该向量中mvInvertedFile[ ...
首先要清楚ORB-SLAM视觉跟踪的原理,然后对tracking.cc中的函数逐个讲解 代码的前面部分是从配置文件中读取校准好的相机参数(内参和畸变参数,以及双目的深度测量设定),并且加载ORB特征点提取的参数(特征点数,金字塔层数,变化尺度,以及提取Fast关键点的阈值);以及四个线程 ...
1.下载代码 https://github.com/raulmur/ORB_SLAM/ (同时也可以看看作者的牛叉论文,我是打算先用代码,再回头看论文) 2.打开后如下 就好像是用一件新产品一样,我们首先要看一下说明书“README.md ...
PATH_TO_VOCABULARY:是一种树型数据结构模型,ORB-SLAM里面主要用来做回访(loop-closure)检 测, ...
ORB-SLAM程序提供了运行Monocular、Stereo和RGBD数据的程序。编译成功后,可以通过运行TUM的标准数据来验证程序是否成功。如果想自己测试一些数据,可以通过OpenCV提供的接口调起电脑的摄像头。 个人认为,ORB-SLAM是一个完整的单目SLAM实现,集合了当前流行 ...