SLAM运算装置和方法制造方法及图纸

技术编号:17939495 阅读:13 留言:0更新日期:2018-05-15 19:57
一种SLAM硬件加速器的装置,包括存储部分,用于存储输入数据、临时运算结果数据、最终运算结果数据、运算过程所需的指令集和/或算法参数数据;运算部分,与所述存储部分连接,用于完成对SLAM相关算法和应用的计算;控制部分,连接所述存储部分和运算部分,用于控制和协调存储部分和运算部分。本发明专利技术还提供了一种完成SLAM运算的方法,该方法通过指令来控制数据的运输、数据的运算、程序的运行等。本发明专利技术的装置和方法能够有效根据不同的需求对SLAM算法进行加速,满足不同需求的运算,具有灵活性强、可配置程度高、运算速度快、功耗低等优点。

SLAM operation device and method

A device for SLAM hardware accelerator, including the storage section for storing input data, temporary operation result data, final operation result data, operation process, and / or algorithmic parameter data; operation part, connected with the storage section, for calculating the SLAM related algorithms and applications; The system part connects the storage part and the operation part to control and coordinate the storage part and the operation part. The invention also provides a method for completing SLAM operation, which controls data transportation, data operation and program operation through instructions. The device and method of the invention can effectively speed up the SLAM algorithm according to different requirements, meet the operation of different needs, and have the advantages of strong flexibility, high configurability, fast operation speed and low power consumption.

【技术实现步骤摘要】
SLAM运算装置和方法
本专利技术涉及一种SLAM(simultaneousLocalizationandMapping,即时定位与建图)运算装置和方法,用于根据不同需求对SLAM算法的运算进行加速。
技术介绍
在未知的环境中自主导航是移动机器人(例如无人地面和空中载具等)的一个基本能力。SLAM任务中即时定位与建图的定位主要完成机器人的位置在地图中的确定工作,建图的主要任务是是机器人根据环境建立对应环境的地图。在缺乏位置环境初始地图的情况下这就需要机器人能够实时地构建地图并且利用地图完成自身的定位,完成这项任务所需要的SLAM算法随之产生。然而在移动机器人有限的计算能力和严格的功耗要求下精确地实现SLAM算法是现实中所面临的最大问题之一。首先,SLAM算法因为有实时性的要求因而需要极高的运算速度来完成类似帧与帧间短时间的大量运算,其次SLAM算法由于受到移动机器人的限制对功耗有着苛刻的要求,最后SLAM算法种类众多运算类型较广,因此设计的加速器需要支持各种类型的SLAM算法。在现有技术中,一种实现SLAM算法的方式是直接在通用处理器(CPU)上进行运算,该方法的缺点之一是单个通用处理器的运算性能较低,无法满足常见SLAM运算实时性需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另一种实现SLAM算法的方式是在图形处理器(GPU)上进行运算,这种方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。虽然该方法是专门用来执行图形图像运算的设备,但是由于SLAM算法运算的复杂性,该方法并不能够很好的支持其后续运算,也就是无法对SLAM算法的整体运算进行有效加速。同时,GPU片上缓存太小,更无法满足大量的SLAM算法的运算需求。此外,由于在实际应用领域中,将CPU或GPU等类似的结构移植到机器人上是一件比较困难的事情,所以,尚且没有一款实用性强、灵活性高的专用SLAM硬件加速器结构。我们设计的装置是一款符合要求的专用SLAM硬件加速器,对应的我们设计了这套装置的方法,它可以被设计成专用芯片、嵌入式芯片等硬件,从而可以应用到机器人、计算机、手机等应用中。
技术实现思路
(一)要解决的技术问题本专利技术的目的在于,提供一种SLAM硬件加速器的装置和方法。(二)技术方案根据本专利技术的一方面,提供一种SLAM硬件加速器的装置,包括:存储部分,用于存储输入数据、临时运算结果数据、最终运算结果数据、运算过程所需的指令集和/或算法参数数据;运算部分,与所述存储部分连接,用于完成对SLAM相关算法和应用的计算;控制部分,连接所述存储部分和运算部分,用于控制和协调存储部分和运算部分。优选的,所述存储部分包括:输入存储模块:用于存储输入输出数据;中间结果存储模块:用于存储中间运算结果;最终结果存储模块:用于存储最终运算结果;指令存储模块:用于存储运算过程所需的指令集;和/或缓冲存储模块:用于数据的缓冲存储。优选的,所述运算部分包括:针对SLAM相关算法和应用而设计的加速和处理SLAM运算的加速运算装置;SLAM相关算法和应用中包含但不能由所述加速运算装置完成的其他运算的其他运算装置。优选的,所述加速运算装置包含向量运算单元和矩阵运算单元。优选的,所述其他运算装置用于完成在算法和应用中使用但又不由加速运算装置完成的运算。优选的,所述运算部分通过硬件电路实现。优选的,所述控制部分连接存储部分的每个模块和运算部分,控制部分由一个先进先出队列和一个控制处理器组成,先进先出队列用于存储控制信号,控制处理器用于取出待执行的控制信号,对控制逻辑进行分析后,对存储部分和运算部分进行控制和协调。优选的,所述指令集包括:控制操作指令类,用于选取待执行的运行指令的控制;数据操作指令类,用于控制数据的传输;宏运算指令类,用于完整的运算操作;多维数据运算指令类,用于控制多维数据的运算操作;和/或一维数据运算指令类,用于控制一维数据的运算操作。优选的,所述控制操作指令类包括指跳转指令和分支指令,跳转指令包括直接跳转指令和间接跳转指令,分支指令包括条件分支指令。优选的,所述宏运算指令类包括卷积运算指令或池化运算指令。优选的,所述多维数据运算指令类用于要求运算单元执行多维数据的运算,多维数据的运算包括多维数据与多维数据间的运算,多维数据与一维向量数据间的运算以及多维数据与一维标量数据之间的运算。优选的,所述一维数据运算指令类,用于要求运算单元执行一维数据的运算,所述一维数据包括一维向量和一维标量。优选的,所述一维向量数据的运算包括一维向量与一维向量之间的运算,以及一维向量与标量之间的运算。优选的,所述一维标量数据的运算包括标量与标量之间的运算。优选的,还包括汇编器,用于在运行过程中,选择使用指令集中的指令类型。根据本专利技术的另一方面,还提供根据以上任一所述装置进行SLAM运算的方法,在于通过存储部分的指令集由控制部分来控制数据的运输、运算和程序的运行,其中包括:步骤一:将存储部分的输入数据运输至运算部分;步骤二:在运算部分根据运算过程的所需的指令集执行运算;步骤三:传输并保存运算结果数据;步骤四:重复上述过程直至运算完毕。(三)有益效果本专利技术提供的SLAM硬件加速器的装置和方法,能够有效根据不同的需求对SLAM算法进行加速,能够适用于各种SLAM算法和多种不同的输入数据类型,满足不同需求的运算,具有灵活性强、可配置程度高、运算速度快、功耗低等优点。本专利技术的装置和方法与现有的技术相比具有如下效果:1)运算部分能够根据不同需求对不同输入类型的数据进行运算;2)运算部分也可以通过缓冲存储模块实现数据的一定程度的共享,降低了数据的重用距离;3)指令的设计支持各种基本的操作类型,使得装置的可配置性很高;4)矩阵和向量运算单元的设计再配合标量运算单元的设计可以支持各种类型的运算,并且显著地加快运算速度;5)运算部分和存储部分的设计以及指令的安排极大地降低了执行时的功耗。附图说明图1是本专利技术一实施例提供的SLAM硬件加速器的装置的结构示意图。图2是本专利技术又一实施例提供的SLAM硬件加速器的的结构示意图。图3是本专利技术一实施例提供的SLAM硬件加速器的标量运算单元的一个实施例的结构示意图。图4是本专利技术一实施例提供的SLAM硬件加速器的向量运算单元的一个实施例的结构示意图。图5是本专利技术一实施例提供的SLAM硬件加速器的矩阵运算单元的一个实施例的结构示意图。图6是本专利技术一实施例提供的SLAM硬件加速器完成三维坐标L2范数运算的一个实施例的示意图。图7是本专利技术一实施例提供的SLAM硬件加速器完成16维方阵矩阵乘法运算的一个实施例的示意图。图8是本专利技术一实施例提供的基于扩展卡尔曼滤波方法(EKF)的SLAM的算法在本装置上配置实现的示意图。图9是本专利技术一实施例提供的指令类型示意图。图10是本专利技术一实施例提供的一种宏运算指令的应用示意图。图11是本专利技术一实施例提供的一种一维数据运算指令的一个实施例。图12是本专利技术一实施例提供的一种SIFT特征提取算法在本装置上配置实现的示意图。图13是本专利技术一实施例提供的一种基于G2O框架的图优化算法在本装置上配置实现的示意图。图14是本专利技术一实施例提供的一种卷积运算指令的执行流程图。图15是本专利技术一实施例本文档来自技高网
...
SLAM运算装置和方法

【技术保护点】
一种SLAM硬件加速器的装置,其特征在于包括:存储部分,用于存储输入数据、临时运算结果数据、最终运算结果数据、运算过程所需的指令集和/或算法参数数据;运算部分,与所述存储部分连接,用于完成对SLAM相关算法和应用的计算;控制部分,连接所述存储部分和运算部分,用于控制和协调存储部分和运算部分。

【技术特征摘要】
1.一种SLAM硬件加速器的装置,其特征在于包括:存储部分,用于存储输入数据、临时运算结果数据、最终运算结果数据、运算过程所需的指令集和/或算法参数数据;运算部分,与所述存储部分连接,用于完成对SLAM相关算法和应用的计算;控制部分,连接所述存储部分和运算部分,用于控制和协调存储部分和运算部分。2.根据权利要求1所述的SLAM硬件加速器的装置,其特征在于,所述存储部分包括:输入存储模块:用于存储输入输出数据;中间结果存储模块:用于存储中间运算结果;最终结果存储模块:用于存储最终运算结果;指令存储模块:用于存储运算过程所需的指令集;和/或缓冲存储模块:用于数据的缓冲存储。3.根据权利要求1所述的SLAM硬件加速器的装置,其特征在于,所述运算部分包括:针对SLAM相关算法和应用而设计的加速和处理SLAM运算的加速运算装置;SLAM相关算法和应用中包含但不能由所述加速运算装置完成的其他运算的其他运算装置。4.根据权利要求3所述的SLAM硬件加速器的装置,其特征在于,所述加速运算装置包含向量运算单元和矩阵运算单元。5.根据权利要求3所述的SLAM硬件加速器的装置,其特征在于,所述其他运算装置用于完成在算法和应用中使用但又不由加速运算装置完成的运算。6.根据权利要求3所述的SLAM硬件加速器的装置,其特征在于,所述运算部分通过硬件电路实现。7.根据权利要求1所述的SLAM硬件加速器的装置,其特征在于,所述控制部分连接存储部分的每个模块和运算部分,控制部分由一个先进先出队列和一个控制处理器组成,先进先出队列用于存储控制信号,控制处理器用于取出待执行的控制信号,对控制逻辑进行分析后,对存储部分和运算部分进行控制和协调。8.根据权利要求2所述的SLAM硬件加速器的装置,其特征在于,所述指令集包括:控制操作指令类,用于选取待执行的运行指...

【专利技术属性】
技术研发人员:陈云霁杜子东张磊陈天石
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1