关键词:
SLAM
AMCL
FPGA
A*
硬件加速
摘要:
近些年来,同步定位与建图(Simultaneous Localization and Mapping,SLAM)技术在算法、硬件等方面都有着显著的发展,产生了广泛的应用,包括送餐机器人、扫地机器人、自动驾驶等,然而,SLAM技术的高计算复杂度限制了它在硬件上的实现。现有的用于SLAM技术实现的主流硬件平台(包括CPU、嵌入式ARM系统等)算力有限,对于高复杂度的SLAM算法,无法达到较好的实时性和较低的计算功耗。因此,本文针对SLAM中的定位导航关键技术,设计了面向SLAM的高能效定位导航硬件加速器,通过算法与硬件的协同设计,在满足定位精度需求的同时,达到了较高的能效。本文的主要内容如下:首先,分析了SLAM技术的国内外研究现状以及整体的发展趋势,并介绍了SLAM中定位导航算法的基本原理。其次,针对现有主流SLAM定位导航算法(AMCL定位算法和A*导航算法)存在的问题进行了分析和优化设计,提高了定位精度,降低了计算复杂度,并分析了算法各个部分的计算复杂度及其占比情况,为后续的软硬件协同设计提供基础。随后,针对优化后的定位导航算法,设计了基于FPGA的高能效定位导航硬件,将计算复杂度较大的算法部分映射在FPGA的PL(可编程逻辑)部分实现对其的加速,将计算复杂度较小以及灵活度较高的部分实现在FPGA平台的PS(处理器系统)部分,并提出了基于乒乓存储的粒子读取技术,双并行流水激光数据计算技术,基于数据缓存的似然域模型计算技术等,提高了硬件计算速度,降低了计算能耗。最后,对设计的高能效定位导航硬件加速器进行了测试与分析,并与CPU和嵌入式ARM系统实现的定位导航硬件进行了对比。相比于后两者,本文设计的定位导航硬件加速器在保持同样的定位导航精度的情况下,大幅提升了计算速度,并降低了计算功耗,具有低延时,高能效的优势。可以应用于基于SLAM技术的移动机器人、自动驾驶等应用。