前情提要:
是第一次做项目的小白,文章内的资料介绍如有错误,请多包含!
最初的项目思路(SLAM):
由于我们在日常生活中,大多会在手机端上使用到地图导航这一功能,所以在大创项目的开始,我将手机确定为应用设备,传感器确定为相机
。
但是因为知识储备较为稀少,对SLAM不够了解,在头一次接触SLAM时,我认为这会是解决这个项目的最佳方案。
(其实SLAM中最吸引我的是其构建点云地图和视觉重定位的能力,我所需要的并非是整个SLAM,但是这时我还没有意识到)
于是乎项目陷在了SLAM的学习和研究中,先是从普通的SLAM中进一步选择,在视觉SLAM(VSLAM)和激光SLAM中选择了视觉SLAM
。
视觉SLAM以相机为传感器,但SLAM还有更多种传感器配合的方案。
考虑到手机上配备的传感器(手机上不止相机一种传感器),于是选择了视觉-惯性 SLAM (VISLAM)
,即视觉和惯性测量单元 (IMU)结合的SLAM方案,其中较为优秀的算法就是ORB-SLAM3
。
注意:如果你在网上搜索的搜索过程中同时带着SLAM和导航这俩关键词
,那么你大概会看见一系列的关于机器人导航的内容
,机器人导航需要使用稠密的点云地图,但是就人的AR导航
而言,稀疏点云地图
就可以做到。
ORB-SLAM3构建的地图还正好是稀疏点云地图,于是将项目最初的方案思路定为:
将ORB-SLAM3做安卓端的移植,既在手机端直接建图,也在手机端做导航功能
但是遇到了一个问题:相关资源极其稀少
网络上关于ORB-SLAM3的安卓端移植的资源和博客寥寥无几,能找到的就三四篇,去掉没有介绍和配不成功的,我只找到了一篇。
资源链接:
https://nijiproject.coding.net/public/hitomi/hitomi-android/git/files
作者效果视频链接:
https://www.bilibili.com/video/BV1ph411x7d7/?spm_id_from=333.337.search-card.all.click
如果在安卓设备上在线建图,会出现如下问题
:
1、帧率不高,最高不超过20fps,卡顿略微明显;
2、在线建图极大程度占用了手机上的计算资源,容易引起设备发热,加快手机电量的消耗;
3、相机视角移动快速或是存在快速移动的景物,相机位姿容易丢失,建图过程不是很流畅。上文开源项目的作者本人建图的演示视频中,建图视频是1.5倍速的,尚且有点慢,一倍速的行走速度可想而知
如果不使用该开源项目,仅考虑自身的编程能力,我暂时还不具备自己将ORB-SLAM3完全地移植到安卓端上且不产生任何错误的能力,况且在设备上切实存在的物理问题目前是无法解决的。
既然我无法在手机上完成使用ORB-SLAM3进行在线建图的功能,只好寻求其他解决的方案。
于是只能换种角度想,它是放错位置的功能,建图这个部分的任务,手机不是很好的载体
。
在后续的思考过程中,我回想起了在使用虚拟机上的 Ubuntu18.04上配置完ORB-SLAM3后使用数据集进行离线建图的过程。
在电脑上建图或许是个不错的选择。
其实我真正需要的是ORB-SLAM3其中点云地图的构建功能,还有视觉重定位提供的位姿信息,我大可以分开做两部分的功能。
所以在这一时间段,我开始逐步转变我的想法:
将建图和导航分为了两个部分处理,在电脑上实现建图这个部分,在手机上使用软件完成导航。
在思考进行到这一步的时候,虽然已经浪费了一个月的时间将工作集中于SLAM的学习和项目的思路探索中,但是好歹有所进展。
后文:
基于视觉重定位的室内AR导航项目思路(2):改进的建图和定位分离的项目思路文章来源:https://www.toymoban.com/news/detail-708396.html
如果你觉得这篇文章写的不错,多多点赞~收藏吧!
文章来源地址https://www.toymoban.com/news/detail-708396.html
到了这里,关于基于视觉重定位的室内AR导航APP的大创项目思路(1):最初的项目思路(SLAM)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!