orb-slam
文章平均质量分 79
羽逸非凡
进击的巨人
展开
-
ORB-SLAM学习(4)—— 概念补充
三角化/三角定位三角测量的用途是用来确定深度信息的,从而确定地图点的三维点坐标。BoW(视觉词袋模型)Bag of Word词典中, 词典是一个事先训练好的分类树,把具有某一类特征的特征点放到一起就构成了一个单词(word),由所有这些单词就可以构成字典(vocabulary)了,有了字典之后,给定任意特征fi,只要在字典中逐层查找(使用的是汉明距离),最后就能找到与之对应的单词wj了.共...原创 2020-01-18 14:19:35 · 734 阅读 · 0 评论 -
ORB-SLAM学习(3)—— LoopClosing线程
毋庸置疑的是,随着相机的运动,我们计算的相机位姿,三角化得到的点云位置,都是有误差的,即使我们使用局部的或全局的BA去优化,仍然会存在累积误差。而消除误差最有效的办法是发现闭环,并根据闭环对所有结果进行优化。闭环是一个比BA更加强烈、更加准确的约束,所有如果能够检测到闭环,并对其优化,就可以让结果更加准确。代码框架整个LoopClosing模块是在线程中完成,并在创建线程时调用LoopClos...原创 2020-01-17 22:28:39 · 567 阅读 · 0 评论 -
ORB-SLAM学习(2)—— Localmapping线程
ORB-SLAM的局部建图线程实际做的工作是来维护全局map以及管理关键帧的,对tracking得到的关键帧进行筛选融合,以及对关键帧中的地图点进行融合,剔除冗余的关键帧和地图点,维护一个稳定的全局map,并将筛选后的关键帧提供给回环检测使用。代码架构这一部分通过之前实例化SLAM系统对象时,实例化了一个LocalMapping的对象,并且开启一个线程,运行LocalMapping::Run(...原创 2020-01-16 22:13:41 · 229 阅读 · 0 评论 -
ORB-SLAM学习(1)—— Tracking线程
ORBSlam2的线程启动写在System类的构造函数,Tracking,LocalMapping和LoopClosing三个线程在System函数中启动,其中Tracking运行在主线程中。线程启动后,ORBSlam2再通过调用TrackMonocular(im,tframe)将图像传给Tracking线程,而TrackMonocular函数中调用了Tracking类的GrabImageMono...原创 2020-01-15 22:27:49 · 378 阅读 · 0 评论