DVO-SLAM详解之代码逻辑
2017-09-11 15:53
627 查看
DVO-SLAM详解之代码逻辑
一、整体框架
本系列的文章主要解释DVO-SLAM的Tracking和闭环检测部分,首先从benchmark_slam.cpp这个文件入手,整个算法框架如下:
配置好相关参数后,程序循环读取数据集中的图片,开始运行算法,如下图所示:
整个算法流程如下:
(1) 配置相关参数,读取所有的rgb图及其对应深度图的保存路径
(2) 创建KeyframeTracker对象
(3) 循环读取数据
(3.1) 加载图片
(3.2) 将图片及其时间戳传给KeyframeTracker对象,返回该图片对应的相机位姿
(3.3) 保存相机位姿
(4) 全局进行一次闭环检测,进一步完善位姿图,再对位姿图进行优化。
二、KeyframeTracker对象的创建
主函数中创建了KeyframeTracker对象,程序进入keyframe_tracker.cpp文件,这个文件中包含了KeyframeTracker对象的所有接口,KeyframeTracker对象主要包括两部分:KeyframeGraph对象和LocalTracker对象,KeyframeGraph对象主要负责后端位姿图的搭建、闭环检测、位姿图优化,LocalTracker对象主要负责前端位姿估计。
三、KeyframeTracker的运行
KeyframeTracker对象每读取一张图片,就对图片进行如下操作:
(1) 将当前图片与前一帧以及关键帧之间进行帧间匹配,得到帧间运动变换量r_odometry、r_keyframe
(2) 根据r_odometry、r_keyframe判断当前帧是否为关键帧,若是则更新关键帧,进行局部闭环检测,搭建位姿图,否则直接将结果添加到位姿图中。
(3) 根据r_keyframe得到当前相机的位姿
相关文章推荐
- ORB-SLAM2详解(二)代码逻辑
- ORB-SLAM2详解(二)代码逻辑
- 详解Python中代码缩进(Indent):影响代码的内在逻辑关系和执行结果
- jQuery选择器代码详解(六)——Sizzle选择器匹配逻辑分析
- ORB-SLAM代码详解之SLAM系统初始化
- ORB-SLAM代码详解之代码框架
- ORB-SLAM2代码逻辑流程图——Tracking线程
- DVO-SLAM详解之闭环检测
- PHP文件上传代码和逻辑详解
- 基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
- ORB-SLAM代码详解之SLAM.TrackMonocular
- ORB-Slam详解2 代码流程
- 详解Python中代码缩进(Indent):影响代码的内在逻辑关系和执行结果
- C++ - 成员函数(member function)模板(template) 详解 及 代码
- AngularJS 自定义过滤器详解及实例代码
- IIS错误代码详解
- Linux下的虚拟地址映射详解(一)逻辑地址到线性地址的映射
- MapReduce进阶,函数运行机制以及逻辑详解
- [置顶] Android java程序员必备技能,集合与数组中遍历元素,增强for循环的使用详解及代码
- STM32起始代码分析详解