基于ZYNQ的ORB-SLAM(-)
起始
ZYNQ是一个我非常喜欢的平台,原因在于它基于我非常大的自由,以及给与我很多的想象空间。第一次遇到ZYNQ是在2017年的时候,继而在2018年的4月份买了一张7035的开发板。两年时间过去了,遗憾的是并没有完整的掌握它,当然,好的一面是,一直在进步。我对ORB-SLAM的知晓是在2018年吧,但是对于这个问题的思考确实在大学的时候便已经开始了。当时每年的电赛都会参加,而且我都会选择控制类的题目来做。其中四轴的题目,在空间上需要完成闭环控制,这其实最好的方式便是借助于SLAM。但是限于个人的知识储备,以及环境,没有办法对它进行研究,但是冥冥之中自己的喜好还是引导自己去尝试研究它。最终它要成为我职业生涯的一部分。
器件平台对于想做什么是非常重要的,决定了能做什么,以及做到什么程度。我向往ZYNQ提供的高性能,以及linux开发的完备,成体系的系统。我希望使用它来完成SLAM的功能。
在综合对比了各种SLAM,认为ORB-SLAM非常时候入门。它代码清晰,且效果不俗,同时ORB特征快速且有效,这样便有机会实现一个实时的SLAM。我也是因为想做这个,突然想要开通博客,来记录自己的学习过程,同时同他人一起交流。
计划
将最终的目标拆成若干个部分,然后分步骤去实现它。最终的目标是,在zynq上运行一个SLAM,同时利用这个SLAM在一个环境当做进行导航,控制一辆模型车按照预定的轨迹去运动。希望我度过一个美好的旅程。
图1(待更新)
A.基础环境搭建
1.将两个摄像头的数据导入到内存中,编写驱动,提供软件访问的接口
2.提供HDMI接口和网络通信,将图像可视化到本地和远程,进行Debug
3.提供硬件的框架提取ORB特征,图像预处理
B.研究ORB-SLAM2算法,目标包含两个方面
1.软件工程环境。需要对软件的工程环境进行清晰的掌握,包括CMAKE,make。
2.尽可能多的掌握算法的原理
C.将ORB-SLAM2作为一个定位基础,控制一辆小车,使小车可以在指定环境中按固定路径进行行驶。
2020/5/17
wildsEyes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步