ORB SLAM2 地图的保存与加载

原创 2018年04月17日 05:02:20

ORB SLAM2 真是个神奇的算法。他开源了,但是各种不实用。这大概就是学术和工作的区别吧。人家毕竟花了一整个博士阶段去开发这个算法,我们还是应该心存感激。

我做了自己的双目相机数据包和接口,发现实时SLAM速度在i7处理器的条件下也就只能跑8Hz左右,这还不考虑做闭环的时间。显然,对于一个正在快速运动的机器人来说,实时的SLAM并不实用。为了能够真正地实时定位,我能想到合理的解决方案是,事先建好地图,然后保存地图(关键点、关键帧及各种所需连接)。等我们需要定位时,直接载入做纯定位即可。

当然,做起来永远没有那么简单。读算法就需要很久,找到问题又要花很久。网上有很多教程,但可惜的是大家都没能把自己的算法彻底开源。所以我尝试提供一个可以直接从github抓下来用的带有保存和加载地图功能的版本,供学习使用。(主要是没人交流,痛苦啊,干脆开一个仓库,求大神帮忙给个pull request啊!)


感谢前辈大神们的博文:

https://blog.csdn.net/felaim/article/details/79667635

https://blog.csdn.net/felaim/article/details/79671160

https://blog.csdn.net/u012177641/article/details/78802315

http://www.cnblogs.com/mafuqiang/p/6972841.html


我的代码附在这里:https://github.com/BoomFan/ORB_SLAM2

这是直接从ORB SLAM2原版当中fork出来的。既然开源了,改动的地方大家也能看见,我就不多说了。代码还在调试,现在暂时能够载入地图了,但是定位还是有问题。感觉是新读进来的一帧并没有和之前的最后一帧产生任何关系。我调试好了再回来写具体是怎么回事吧。

现阶段大致的猜测是,这样的: ORB SLAM当中的关键帧和mappoint都不是完全不变化的。这意味着,有的时候某些特定index的mappoint或者KeyFrame会被删掉。而我们在保存的时候,是按照剩下的C++的指针来保存的,重新载入地图之后,可能所有的指针都出现了问题。唉。。。感觉并不像一个很容易解决的问题啊。。。加油加油。。。

具体的运行命令大概是:

cd /XXXXXX/ORB_SLAM2

./Examples/Stereo/stereo_zed Vocabulary/ORBvoc.txt Examples/Stereo/zed0000012643.yaml /XXXXX/ROSbag/XXXXX


反正是这么个格式,具体的大家可以自己改。

System.cc文件里,做Loading到时候也有两个地方跟路径相关的,大家记得也改掉。我后面把bug调试完了再想办法写个好用的接口出来。


HTML 5项目实战:我要地图项目

-
  • 1970年01月01日 08:00

ORB_SLAM2的地图保存

一、简介   在ORB-SLAM2的System.h文件中,有这样一句话:// TODO: Save/Load functions,让读者自己实现地图的保存与加载功能。其实在应用过程中很多场合同...
  • yaoyao123321000
  • yaoyao123321000
  • 2018-01-09 16:09:04
  • 229

TODO:完成ORBSLAM2的坑--添加地图保存和加载模块SaveMap/LoadMap或者是实时点云图到八叉树地图转换

//TODO//先开个博客,提醒自己。有时间来弄的时候整理,来写代码贴几篇有用的参考博客:[1]泡泡机器人注释过的代码https://gitee.com/paopaoslam/ORB-SLAM2/bl...
  • LOVE1055259415
  • LOVE1055259415
  • 2018-04-12 11:53:10
  • 102

ORB-SLAM单目地图保存、加载和定位

老大说:我要可以定位的地图,你把ORB-SLAM的地图保存下来吧! 我:老大,ORB-SLAM单目情况下是产生不了稠密的的地图的,保存下来也没啥用。 老大:我看这地图还挺稠密的,你先把保存...
  • u012177641
  • u012177641
  • 2017-12-14 14:29:28
  • 203

ORB-SLAM2详解(三)自动地图初始化

ORB-SLAM2详解(三)自动地图初始化
  • u010128736
  • u010128736
  • 2016-11-18 16:14:31
  • 10993

orbslam2-导航(1)-原理

从今天开始博主我就把我用orbslam2导航的原理和code讲给大家。 首先,orbslam2构建的map是稀疏地图,有人说稀疏地图怎么导航,不是只有稠密map,至少是半稠密map才能navigati...
  • qq_18661939
  • qq_18661939
  • 2016-07-01 15:33:07
  • 3572

在使用poine版本的ORB_SLAM2时遇到的一些问题

首先声明:  我是想通过这个来实现save and load 功能。  感谢原作者与poine所做的贡献。poine版本的请参考该链接下载:http://recherche.enac.fr/~drou...
  • LiCM_CU
  • LiCM_CU
  • 2018-01-29 17:37:26
  • 114

ORB-SLAM2详解(五)局部建图

ORB-SLAM2详解(五)局部建图
  • u010128736
  • u010128736
  • 2016-11-29 17:23:43
  • 8507

ORB-SLAM2源码

  • 2018年01月04日 14:03
  • 41.35MB
  • 下载

ORB-SLAM2详解(二)代码逻辑

ORB-SLAM2详解(二)代码逻辑
  • u010128736
  • u010128736
  • 2016-11-15 11:51:20
  • 13168
收藏助手
不良信息举报
您举报文章:ORB SLAM2 地图的保存与加载
举报原因:
原因补充:

(最多只允许输入30个字)