本文共 900 字,大约阅读时间需要 3 分钟。
项目任务
- 通常研究orbslam_2的见图效果是通过截图来观察最终的结果,去分析。但是就会有所限制,截图得到的只是一个平面,并不是随意移动的点云地图。
- 保存点云并重新加载成地图方便二次开发,适用于本项目中的将稀疏点云地图转换成最终的可用于导航的语义地图的算法测试,省去了每次都重新构图的麻烦。
实现方案
方案1: ORBSLAM2_with_pointcloud_map
简介: ORBSLAM2_with_pointcloud_map这个算法是高翔博士在orbslam_2算法的基础上修改增加了点云模块,可以保存并且加载点云地图.
测试效果:
从该图中可以看出在orbslam建图的过程中可以保存点云为pcd格式,如左上角所示。将此pcd文件用pcl_viewer打开,效果如下。
最后发现,这种方法只能用于深度摄像机拍摄的画面,构建的点云地图是根据深度图像和rgb图像的,而且生成的点云是属于稠密地图的,无法用于本项目中所使用的单目相机或者双目相机。
方案二:修改ORBSLAM2源代码
简介:地图保存,就是保存地图“Map”中的各个元素,以及它们之间的关系,主要包含关键帧、3D地图点(Mappoint)、BoW向量等,局部地图跟踪需要用到3D地图点、共视关系等元素,参考帧模型需要用到关键帧的BoW向量,重定位需要用到BoW向量、3D点等。所以基本上述元素都需要保存。
通过搜索资料,在github上面找到了目前做得比较好的大牛的源码,链接为:https://github.com/BoomFan/ORB_SLAM2
经过测试,结果如下:
保存地图过程:在建图的过程中将Mappoint点和关键帧保存到二进制文件中。
加载地图过程,讲保存好的二进制文件加载成d稀疏点云地图,可自由移动。
地图的保存于加载可成功实现。
结论
对比方案一和方案二,发现使用在源码进行修改的方案可以完成对orbslam_2生成的稀疏地图进行保存和加载的功能,与预定的目标符合。
同时对此实验产生的思考就是:可以在协同的过程中将各个子处理器的结果以mappoint和关键帧的形式通过通信协议传输到地面站进行综合处理。
转载地址:https://blog.csdn.net/weixin_32049741/article/details/112108375 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!