基于视觉特征的同时定位与地图生成开题报告
孟卓晗
课题背景:
随着科技生活日新月异的发展,机器人开始出现在了我们的身边。这些年来,由于扫地机的出现使得SLAM技术名声大噪,在机器人、无人机、AVG等领域也相继出现它的身影。
SLAM (simultaneous localization and mapping) 即时性定位与地图构建,或并发建图与定位。SLAM问题可以大概地描述为: 在未知环境中机器人从一个未知的位置进行移动,在移动的过程中根据地图和它的位置进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的导航和自主定位。SLAM最早是由Smith、Self和Cheeseman于1988年提出。由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。一般的slam包括以下几个部分:特征提取、数据关联、状态估计、状态更新,对于这几个部分,都有各自不同的算法去解决相应的问题。Slam既可以在2D环境中实现,同时在3D中也可以实现。如今来说RGB-D SLAM[5], SVO[6], Kinect Fusion[7]等等的一些slam算法,都已经在理论上做出了很好的效果,但因为实际环境往往非常复杂。灯光会变,不断的有人从门出入,并不是一间安静的密闭环境,一个机器人以2cm/s慢慢在空间里面逛。看起来在论文中没有理论漏洞的的算法,在现实中往往捉襟见肘,处处碰壁。向实际环境挑战,是SLAM技术的主要发展方向,也就是我们所说的高级话题。
课题内容:
ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能,为机器人的开发提供了很多的便捷。我们的毕业设计也基于此操作系统。
目前落地的主流视觉技术很少用神经网络进行特征提取,因此如今最主流的slam算法还是orb slam算法。而如今随着人工智能的发展和普及,出现了superpoint slam等一系列有关机器学习的slam算法。但由于slam工程很大程度上对算力有较高的要求,所以如今的主流算法仍是传统的特征点提取算法,即orb slam。传统的orb特征点提取算法提取特征速度快,并且可以在cpu中直接运行;而深度学习特征带来的额外CPU和内存成本,并且在大部分场景下传统方法已经可以满足。但orb slam已经经过了三个版本的提升已经成俗,superpoint算法也只是出于起步阶段,未来发展可期。
先从orb slam说起,分辨出两个有差别的物体需要通过特征点的识取来进行辨别。先通过fast算法查找出关键点,然后通过Brief算法将这些点转换为特征向量。特征点选取完成后,进行机器人的速度估计,然后利用邻近的地图点寻找更多的特征匹配,优化姿态,然后选取关键帧,这是特征提取与追踪的步骤。第二步进行地图构建。加入关键帧,验证最近加入的地图点,生成新的地图点,验证关键帧。第三步进行闭环检测,先选取相似帧,然后检测闭环,是指机器人识别曾到达场景的能力。如果检测成功,可以显著地减小累积误差融合三维点,最后进行图的优化构成新的地图。
