论文部分内容阅读
高精度车辆定位是无人驾驶核心技术之一,高精度车辆定位为无人车提供高精度的位置和姿态信息,而高精度的位姿信息是作为无人驾驶决策控制必不可少的参考信息。实时、连续、高精度、鲁棒性好,适应复杂多变场景的高精度定位是保证无人车辆安全行驶的前提。无人驾驶中定位技术发展至今,由单一传感器的定位发展成为多个传感器组合定位。采用多传感器组合定位,利用不同传感器的优势互补来满足无人车在多变环境下实现实时、连续、高精度、鲁棒性好的定位需求。基于激光雷达(LiDAR,Light Laser Detection and Ranging)的多传感器组合定位方案是目前的主流定位方案之一,但在 CPU(Central Processing Unit)或 GPU(Graphics Processing Unit)计算平台上运行计算,功耗高、能效比低,不利于车规级应用。针对上述问题展开研究,本文分析出激光点云匹配算法的精度和效率是影响基于LiDAR多传感器组合定位的关键因素。在粗-细结合两步法匹配中,迭代最近点(ICP.Iterative Closest Point)算法是整个点云匹配算法的瓶颈,其算法耗时长,是制约整个点云匹配算法效率和功耗的关键因素。本文提出采用现场可编程门阵列(FPGA,Field Programmable Gate Array)来实现ICP算法,在提高基于LiDAR组合定位方法能效比的同时对ICP算法进行加速。对于本文所提出的FPGA实现ICP算法加速方法,具体的研究工作如下:1.在MATLAB平台下实现了对ICP算法模型设计与仿真,完成了 ICP算法中遍历式找寻最近点函数,利用基于Givens变换的矩阵QR分解方法实现了奇异值分解(SVD,Singular Value Decomposition)函数;利用随机生成的三维点云作为ICP测试激励以及使用预先设定好的旋转矩阵R以及平移向量t作为ICP位姿输出参考,完成了对ICP算法的仿真。2.完成了 ICP算法的定点化设计,使用MATLAB平台下的fixed-point designer定点工具完成了 ICP算法中所有变量的定点格式转换,并且达到了最佳定点数值表示范围以及定点表示精度。解决了所有定点运算中舍入与溢出问题。使用坐标旋转数字计算方法(CORDIC,Coordinate Rotation Digital Computer)解决了 定点开根号运算以及定点除法运算的问题,使用移位方法实现了针对常数的乘法,从而简化了定点运算流程。3.使用Verilog HDL硬件描述语言完成了 ICP算法中各个运算模块的时序逻辑电路的设计,使用有限状态机(FSM,Finite State Machine)实现了 ICP数据流的迭代运算控制;采用“面积换速度”的FPGA设计思想实现了找寻最近点电路模块的最近点对的快速搜索,采用并行方法使得产生变换矩阵C的计算与最近点对搜索计算同步进行,达到了在完成所有最近点的遍历搜索的同时并完成了产生变换矩阵C的步骤的同步效果。使用多个FSM相结合的方法完成了 SVD模块的电路设计,并采用流水线的方法完成了场景点云的坐标更新操作。4.采用modelsim平台完成了 FPGA实现的ICP算法各个电路模块的测试与验证,采用对照的方法针对同一组数据输入,对比相同运算功能模块的matlab定点输出的数据与FPGA仿真输出数据。基于modelsim平台下测试结果表明FPGA实现的ICP各运算模块的计算结果与相应的matlab实现的ICP运算模块的计算结果相符合。达到了使用FPGA实现ICP算法的研究目的,提升了基于LiDAR多传感器组合定位的能效比。