ORB_SLAM2局部建图工作原理

算法原理

一、LocalMapping线程简述

在ORB-SLAM2当中,LocalMapping作为一个线程在系统启动后就一直在运行,只是在Tracking线程“生产出”新的关键帧并插入到LocalMapping线程中的mlNewKeyFrames列表后,LocalMapping线程检测到该列表中有关键帧后开始处理这些新插入的关键帧(CheckNewKeyFrames函数用来检测mlNewKeyFrames中是否有关键帧),没有关键帧插入的时候LocalMapping线程处于“空闲的睡眠状态”。

LocalMapping的字面意思是“局部建图”,这里指的是新的关键帧周围的地图(主要是共视关键帧和地图点),相对与全局地图来说新的关键帧周围的地图就是局部地图。那么,LocalMapping线程要做什么就大概比较清楚了,就是为新创建的关键帧进行局部建图,也就是创建或者更新该关键帧的共视关键帧和地图点信息,这些信息明确后局部地图就创建好了。
二、LocalMapping线程中的处理流程
1.处理新插入的关键帧(ProcessNewKeyFrame)

计算新关键帧的BoW(bag of word);
遍历新关键帧的地图点,判断每个地图点的关键帧观测列表(能观测到当前地图点的所有关键帧组成的map)中有没有新的关键帧。
    如果没有的话对地图点做下面三项处理:
        1)新的关键帧加入到地图点的关键帧观测序列当中;
        2)更新地图点的平均深度;
        3)计算地图点的描述子,这里地图点选择的描述子是所有描述子中距离其他描述子平均距离最小的那个描述子;
    如果有的话(这种情况仅出现在通过Tracking线程插入的双目地图点,也就是说对于
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付 99.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值