zoukankan      html  css  js  c++  java
  • LSD-SLAM深入学习(3)-代码解析


    前言

         在LSD-SLAM深入学习(2)中我们已经对算法进行分析,此处假设读者对于ros的基本操作都已经很熟悉,而且已经编写了一定量的的代码,我们直接上干货。此处分析的程序如下

    main_live_odometry.cpp,这个可以实时读取视频的主函数

    image

         个人理解错误的地方还请不吝赐教,转载请标明出处,内容如有改动更新,请看原博:http://www.cnblogs.com/hitcm/

         如有任何问题,feel free to contact me at robotsming@gmail.com


    主函数

    XInitThreads();用于多线程显示imshow();

    实时数据流参考下面的,利用每一张图片的可以参考main_on_images.cpp

    image

    然后划定输入输出,把输入输出传递到一个slam对象中去。

    image

    monoodometry初始化中开启了下面的线程,mapping、constraint以及optimization

    image

    image


    tracking线程

    要开启其他线程,完成tracking的任务。Tracking的主要目的是配准两幅图,得到位姿变化。

    相对位姿可以通过最小化方差归一化的光学误差来计算。地图刚开始会随机进行深度信息的初始化,然后才能进行跟踪帧。

    image

    跟踪帧的任务如下

    image

    这个是se3的tracker,执行trackframe的任务……函数比较大,也很重要,主要求解李群下面的问题。

    image


    map线程

    image

    具体的doMappingIteration()内容如下

    image

    Mapping的很多工作都是在下面的updatekeyframe函数中实现的……

    image

    一个很重要的函数是dolinestereo,就是在极线上进行立体匹配。


    constrait线程

    image


    optimization线程

    改变bool变量doFinalOptimization的值是在最后完成的,和其他线程没关系的……也就是采集不到新的图时……

    image

  • 相关阅读:
    redis使用watch完成秒杀抢购功能:
    OAUTH协议
    常用mysql命令大全
    版本控制器 (Svn,Git)
    vue axios上传文件实例
    vue-resource 和 axios的区别
    js递归算法1+ 2+3.....100的和
    vue-cli title 里面怎动态显示文字
    Entity Framework With Mysql 之Code First
    关于a标签下的img元素在IE7下不能点击的问题
  • 原文地址:https://www.cnblogs.com/hitcm/p/4887345.html
Copyright © 2011-2022 走看看