LSD-SLAM深刻学习(3)-代码解析


前言

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

main_live_odometry.cpp,这个能够实时读取视频的主函数算法

image

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

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


主函数

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

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

image

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

image

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

image

image


tracking线程

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

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

image

跟踪帧的任务以下

image

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

image


map线程

image

具体的doMappingIteration()内容以下

image

Mapping的不少工做都是在下面的updatekeyframe函数中实现的……

image

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


constrait线程

image


optimization线程

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

image

相关文章
相关标签/搜索