DVO-SLAM详解之代码逻辑

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得到当前相机的位姿








  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值