一种基于硬件加速的激光点云处理系统及芯片的制作方法

文档序号:26142689发布日期:2021-08-03 14:27阅读:180来源:国知局
一种基于硬件加速的激光点云处理系统及芯片的制作方法

本发明涉及硬件电路加速的技术领域,具体涉及一种基于硬件加速的激光点云处理系统及芯片。



背景技术:

目前,针对扫地机利用激光地图进行定位,业界多是采用的软件算法实现,进行大量迭代计算处理激光点云,从而求出在地图上的目标位置信息。这种方法会占用大量的硬件资源,而且对cpu的主频要求很高,并且会占用大量的访存带宽,挤占系统中其他应用程序对于同一访存带宽的需求,从而容易造成总线数据堵塞,降低系统运行速度。

特别是在软件系统对相同的激光点云数据反复读写、迭代运算的操作通过cpu干预完成数据处理和传输是非常消耗软件资源的,并抢占了其他模块的cpu工作时间,影响其他模块的工作速度,现有技术一般是使用硬件串行处理这些软件算法,尤其在大量的数据传输通信的时候会大大增加cpu的工作负担,容易造成总线数据堵塞,严重影响整体芯片的性能,进而影响算法执行效率。



技术实现要素:

为了解决上述技术问题,本发明利用并行硬件运算电路的方式对激光点云数据进行坐标偏移的并行计算,加速遍历求概率和的进程,缩短基于当前场景所使用的定位算法获取地图中的目标位置信息的时间。具体技术方案包括:

一种基于硬件加速的激光点云处理系统,激光点云处理系统的外围接口被构造为将该激光点云处理系统连接至少一个激光探头;激光点云处理系统的外部连接有至少一个激光点云信息存储介质和至少一个定位信息存储介质;激光点云信息存储介质用于存储所述激光探头实时扫描出的激光点云数据;所述激光点云处理系统还包括读写状态控制器、两个角度偏转模块和至少两个定位概率运算模块;所述读写状态控制器与所述激光点云信息存储介质存在电性连接关系,两个角度偏转模块都与所述读写状态控制器存在电性连接关系;在所述激光点云处理系统内部,固定设置的定位概率运算模块的数量是第一预设通道数量;

所述读写状态控制器,用于在所述ahb总线解析模块的传输控制作用下,先突发读取所述激光点云信息存储介质内的激光点云数据,再将激光点云数据同时传输给两个角度偏转模块,然后控制两个角度偏转模块交替地对激光点云数据执行角度偏转运算,获得经过对应一次角度偏转运算后的激光点云数据在一个分块地图上的参考坐标,再将参考坐标同时传输给第二预设通道数量的定位概率运算模块,然后触发第二预设通道数量的定位概率运算模块并行地对参考坐标执行坐标偏移,再并行累加处理经过一轮坐标偏移的参考坐标对应的定位概率值,让第二预设通道数量的定位概率运算模块同步获得定位概率和值,并将获得的定位概率和值突发写入定位信息存储介质;其中,所述ahb总线解析模块的传输控制作用包括突发读取操作的控制作用、单次读取操作的控制作用和突发写操作的控制作用,均属于ahb总线协议规范;其中,第二预设通道数量的定位概率运算模块是被同时选通的;其中,第二预设通道数量小于或等于第一预设通道数量,第二预设通道数量大于或等于2;其中,分块地图是根据当前场景所使用的定位算法配置的预设尺寸的局部地图,且是处于所述激光探头的有效探测范围之内的栅格地图的。

与现有技术相比,本技术方案采用ahb总线的状态机控制电路(状态机控制器),并遵循ahb总线读写时序变化,对即时扫描获得的激光点云数据进行坐标位置的并行偏移计算,从而加快处理激光探头旋转或所述激光点云处理系统移动过程中产生的点云数据噪声和定位误差,同时实现多通道、分批量地同步累加运算输出定位概率和值,整个激光点云处理系统在各种定位环境下都保持较高的系统性能,提高模组开发效率。且整个激光点云处理系统在运动状态下能够保持较高的系统性能。

进一步地,所述分块地图的x轴方向所允许容纳的最大栅格数量大于或等于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于第一预设通道数量;或者,所述分块地图的x轴方向所允许容纳的最大栅格数量小于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于:所述分块地图的x轴方向所允许容纳的最大栅格数量;或者,所述分块地图的y轴方向所允许容纳的最大栅格数量大于或等于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于第一预设通道数量;或者,所述分块地图的y轴方向所允许容纳的最大栅格数量小于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于:所述分块地图的y轴方向所允许容纳的最大栅格数量。

与现有技术相比,本技术方案根据所述分块地图的栅格尺寸大小,对硬件上固定设置的第一预设通道数量的定位概率运算模块进行选择,使得选通执行并行运算的第二预设通道数量的定位概率运算模块适应当前定位所使用的分块地图的尺寸大小需求,在最大程度节省硬件计算资源的基础上,加快坐标数据在所述分块地图匹配的偏移区域范围内的并行计算速度。

作为技术方案一,第二预设通道数量的定位概率运算模块,用于每当获取到参考坐标时,并行地控制所述参考坐标沿着同一种坐标轴方向执行坐标偏移;第二预设通道数量的定位概率运算模块,还用于在并行获取的参考坐标经过一次一种坐标轴方向的坐标偏移和一次另一种坐标轴方向的坐标偏移后,控制经过同一轮坐标偏移后的参考坐标在所述分块地图上的定位概率值并行累加,直到参与同一轮坐标偏移的不同参考坐标的数目达到预设单位数量时,同步获得定位概率和值;其中,一轮坐标偏移表示:每当执行过一次角度偏转运算时,先沿着一种坐标轴方向执行一次坐标偏移,再沿着另一种坐标轴方向执行一次坐标偏移;在同一轮坐标偏移内,先执行的一次坐标偏移所沿的坐标轴方向以及相对于所述分块地图的坐标原点的偏移量在不同定位概率运算模块内是对应相同的,且后执行的一次坐标偏移所沿的坐标轴方向以及相对于所述分块地图的坐标原点的偏移量在不同定位概率运算模块内是对应相同的;其中,预设单位数量是预先配置的,用于定位所述分块地图的一目标点所需的激光点云数据的数量;其中,所述定位概率值是预先配置的,用于表示所述激光探头所属的基于硬件加速的激光点云处理系统落入所述分块地图的匹配栅格位置的概率。

该技术方案组建所述第二预设通道数量的并行计算通道,控制每一条并行计算通道都同时执行x轴方向的坐标偏移或y轴方向的坐标偏移,等效于并行执行所述第二预设通道数量的x轴方向的坐标偏移或所述第二预设通道数量的y轴方向的坐标偏移,从而缩短参考坐标在分块地图内执行相应坐标轴方向上的坐标偏移的处理时间,从而以同步处理的方式获取多个定位概率和值,加快定位软件算法的定位效率。

进一步地,在第二预设通道数量的定位概率运算模块中,每个定位概率运算模块,用于在并行获取到参考坐标后,每当一个参考坐标已经沿着所述分块地图的一种坐标轴方向执行一次坐标偏移时,则控制前述一次坐标偏移后的参考坐标沿着所述分块地图的另一种坐标轴方向并行执行第二预设遍历次数的坐标偏移,并行控制经过同一轮坐标偏移后的参考坐标在所述分块地图上对应的定位概率值参与累加运算,直到经过同一轮坐标偏移的参考坐标的数目达到预设单位数量时,将经过同一轮坐标偏移的参考坐标对应的定位概率值的累加结果确定为一个定位概率和值,并由对应一个的定位概率运算模块同时输出第二预设遍历次数的定位概率和值;其中,前述一种坐标轴和另一种坐标轴分别为x轴和y轴;其中,在所述分块地图的另一种坐标轴方向并行执行的第二预设遍历次数的坐标偏移中,每一次坐标偏移相对于所述分块地图的坐标原点的偏移量是不同的,但是沿着同一种坐标轴方向发生的坐标偏移步长是相同的。

与现有技术相比,第二预设通道数量的定位概率运算模块在并行计算定位概率的和值过程中,同步控制一参考坐标先后沿着分块地图的x轴方向发生偏移、沿着分块地图的y轴方向发生偏移,为定位算法的在软件执行层面的定位提供足够多的坐标偏移状态,保证定位或重定位的准确性;再将预设单位数量的参考坐标完成一轮坐标偏移后的坐标位置对应的定位概率进行累加以获得具备定位价值的一个定位概率和值,从而克服装配激光点云处理系统的机器人因导航移动而产生的定位漂移问题,以适应当前激光扫描构建的地图环境。

进一步地,当参考坐标沿着所述分块地图的x轴方向的最大偏移次数是所述第二预设遍历次数时,x轴方向对应的一种坐标偏移步长是1个栅格长度;和/或,当参考坐标沿着所述分块地图的y轴方向的最大偏移次数是所述第二预设遍历次数时,y轴方向对应的一种坐标偏移步长是1个栅格长度;其中,所述分块地图设定的两种坐标轴方向分别为x轴方向和y轴方向;激光点云数据和参考坐标都包括x轴坐标和y轴坐标;其中,每一个定位概率运算模块预先配置有:参考坐标沿着所述分块地图的x轴方向的最大偏移次数及x轴方向对应的一种坐标偏移步长、参考坐标沿着所述分块地图的y轴方向的最大偏移次数及y轴方向对应的一种坐标偏移步长;其中,参考坐标沿着所述分块地图的x轴方向的最大偏移次数与x轴方向对应的一种坐标偏移步长的乘积等于所述分块地图的x轴方向所允许容纳的最大栅格数量;其中,参考坐标沿着所述分块地图的y轴方向的最大偏移次数与y轴方向对应的一种坐标偏移步长的乘积等于所述分块地图的y轴方向所允许容纳的最大栅格数量。从而保证第二预设通道数量的定位概率运算模块通过并行控制参考坐标偏移的方式,以更短的时间完成一个完整的分块地图内所有的坐标漂移情况的遍历。实现同步输出成批量的定位概率和值。

进一步地,所述第二预设通道数量的定位概率运算模块中,对于同一轮坐标偏移,先执行的坐标偏移所沿的坐标轴方向对应的偏移起点坐标是不同的;每一个被选通的定位概率运算模块与被选通的每相邻的两个定位概率运算模块在同一轮坐标偏移中,先执行的坐标偏移所沿的坐标轴方向对应的偏移起点坐标的坐标差值是相同的,使得每个定位概率运算模块读取到的同一参考坐标经过同一轮坐标偏移后的结果是不同的;对于同一轮坐标偏移,后执行坐标偏移所沿的坐标轴方向对应的偏移起点坐标是相同的;其中,所述参考坐标沿着所述分块地图的x轴方向的最大偏移次数及x轴方向对应的一种坐标偏移步长在每一个定位概率运算模块内都对应相同,所述参考坐标沿着所述分块地图的y轴方向的最大偏移次数及y轴方向对应的一种坐标偏移步长在每一个定位概率运算模块内都对应相同。实现完整地覆盖所述分块地图出现的定位漂移误差。

作为技术方案二,所述读写状态控制器包括突发读取模块,突发读取模块的内部设置有第一ram,所述突发读取模块用于在所述ahb总线解析模块的每一次突发读取操作的控制作用下,将一个突发传输长度的地址单元上的激光点云数据突发读取入第一ram,再将第一ram内缓存的激光点云数据同时传输给两个角度偏转模块;其中,突发传输长度表示一次突发读取操作或一次突发写操作下经由所述读写状态控制器访问的连续的地址单元的个数;每个激光点云数据都包括存储在相邻地址单元上的x轴坐标和y轴坐标;其中,第一ram所存储的激光点云数据的数量是大于或等于预设单位数量;预设单位数量是用于定位所述分块地图的一目标点所需的激光点云数据的数量。

与现有技术相比,本技术方案通过增加基于ahb总线协议的突发读取模块替代cpu完成激光点云数据的读取操作,能够一次性获取多个激光点云数据,并多次突发读取的激光点云数据保存在同一ram内,相对于fifo的先入先出的存储方式,ram易于保存一个完整的分块地图所需的激光点云数据,ram也便于外部寻址访问,减少cpu占用ahb总线的次数,进而加速所述激光点云数据通过第一ram突发传输进入所述角度偏转模块,加快坐标的计算速度。

进一步地,所述读写状态控制器包括第一单次读取模块和第二单次读取模块,第一单次读取模块内部设置有第二fifo,第二单次读取模块内部设置有第三fifo;在所述两个角度偏转模块中,一个角度偏转模块的内部设置有第二ram,用于缓存该角度偏转模块内执行角度偏转运算获得的参考坐标;另一个角度偏转模块的内部设置有第三ram,用于缓存该角度偏转模块内执行角度偏转运算获得的参考坐标;第二ram与第二fifo存在电性连接关系,第三ram与第三fifo存在电性连接关系,其中,两个角度偏转模块交替地对激光点云数据执行角度偏转运算的方式如下:所述第一单次读取模块,用于在所述ahb总线解析模块的单次读操作的控制作用下,将第二ram内部存储的相邻两个地址上的参考坐标单次读取入第二fifo,等到第二fifo填满参考坐标时,控制第二fifo以先入先出的方式将填满的参考坐标同时传输给所述第二预设通道数量的定位概率运算模块,同时触发所述第二单次读取模块开始将第三ram内部存储的相邻两个地址上的参考坐标单次读取入第三fifo,且开始触发第一角度偏转模块执行角度偏转运算并将其获得的参考坐标缓存到第二ram内;所述第二单次读取模块,还用于在所述ahb总线解析模块的单次读操作的控制作用下,将第三ram内部存储的相邻两个地址上的参考坐标单次读取入第三fifo,等到第三fifo填满参考坐标时,控制第三fifo以先入先出的方式将填满的参考坐标同时传输给所述第二预设通道数量的定位概率运算模块,同时触发所述第一单次读取模块开始将第二ram内部存储的相邻两个地址上的参考坐标单次读取入第二fifo,且开始触发第三ram所处的角度偏转模块执行角度偏转运算并将其获得的参考坐标缓存到第三ram内。

与现有技术相比,该技术方案利用第一单次读取模块内部设置的第二fifo设计一路数据传输通道以访问一个角度偏转模块的内部设置的第二ram,同时利用第二单次读取模块内部设置的第三fifo设计另一路数据传输通道以访问另一个角度偏转模块的内部设置的第三ram,构成所述两个角度偏转模块与所述读写状态控制器之间的交替传输的数据传输关系,即形成交替执行角度偏转计算的两路并行流水线通路;相对于仅使用一个角度偏转模块设计一路数据传输通道,将所述读写状态控制器查找获取所述参考坐标的速度提升一倍,节省所述读写状态控制器需要等待所述角度偏转模块执行角度偏转运算的时间。

进一步地,角度偏转模块,用于从所述第一ram中读取激光点云数据,再利用预先配置的角度偏转信息对读取的每一个激光点云数据携带的采样信息执行角度偏转运算,获得经过一次角度偏转运算后的激光点云数据在一个分块地图上的参考坐标;其中,同一个激光点云数据在同一个角度偏转模块内执行的每一次角度偏转运算,对应获取的参考坐标是不同。基于该技术方案,若装配所述激光点云处理系统的机器人出现定位丢失时,所述激光点云处理系统通过控制所述角度偏转模块按照设定的角度偏转量对激光点云数据进行偏移操作,获得相应激光点云数据在角度偏转后变换成的参考坐标,以纠正机器人位姿的角度偏转误差。

进一步地,所述利用预先配置的角度偏转信息对读取的每个激光点云数据携带的采样信息执行角度偏转运算的过程包括:利用偏转角度步长和当前偏转次数的乘积与所述激光点云数据对应坐标位置相对于坐标轴的初始偏转角度的和值、激光探头的扫描半径建立三角函数关系式,运算获得所述角度偏转模块读取的每个激光点云数据发生当前一次角度偏转产生的所述参考坐标;其中,所述激光点云数据携带的采样信息包括:激光探头的扫描半径、所述激光点云数据对应坐标位置相对于坐标轴的初始偏转角度、以及激光点云数据的角度偏转信息,扫描半径是所述激光探头与当前参与角度偏转运算的激光点云数据对应坐标位置之间的栅格距离;角度偏转信息表示:所述激光点云数据对应的坐标位置绕着所述分块地图的坐标系原点旋转所需配置的偏转角度步长、当前偏转次数和最大偏转次数。

该技术方案能够使用激光探头的扫描半径与所述激光点云数据携带的角度偏转信息作三角函数运算以获得相应的激光点云数据在分块地图上发生角度偏转计算后变成的参考坐标,方便现有技术的定位算法获取相应坐标位置处的概率值和在小范围内进行坐标轴方向的偏移计算。以适应于在移动机器人重定位过程中出现左右偏转的现象。

进一步地,在不同的角度偏转模块中,读取到的同一个激光点云数据对应坐标位置相对于坐标轴的初始偏转角度是不同的,相应的角度偏转信息是相同的;在所述两个角度偏转模块中,同一激光点云数据对应坐标位置相对于同一种坐标轴的初始偏转角度的角度差值配置为:保持两个角度偏转模块内读取的同一个激光点云数据执行的任意一次角度偏转运算产生的参考坐标是不同的;每一个激光点云数据在对应的角度偏转模块内执行角度偏转运算的最大次数被配置为最大偏转次数的一半。保证每一个激光点云数据执行的角度偏转运算的次数都是所述最大偏转次数、且不重复对同一个激光点云数据执行同一偏转角度或等效偏转角度的角度偏转运算

进一步地,当所述两个角度偏转模块执行角度偏转运算的次数之和累计达到所述最大偏转次数后,在所述ahb总线解析模块的传输控制作用下,所述读写状态控制器触发第二预设通道数量的定位概率运算模块并行获取的定位概率和值的数目总和为:所述最大偏转次数、所述分块地图的y轴方向所允许容纳的最大栅格数量、所述分块地图的x轴方向所允许容纳的最大栅格数量的乘积,才允许当前场景所使用的定位算法从这些定位概率和值中筛选出数值最大的一个定位概率和值。

在技术方案二的基础上,所述读写状态控制器还包括突发写模块,突发写模块的内部设置有第一fifo,第一fifo用于按照预设的坐标遍历顺序,以先入先出的存储方式接收所述第二预设通道数量的定位概率运算模块获得的定位概率和值;突发写模块,用于每当第一fifo填充的定位概率和值的个数达到一个突发传输长度时,在所述ahb总线解析模块的传输控制作用下,将这个突发传输长度的定位概率和值突发写入所述定位信息存储介质。本技术方案通过在cpu与存储模块之间增加基于ahb总线协议的突发写模块替代cpu完成数据的写出,整个写转换过程不需cpu重复查询等待每一次状态转换的结果,进而加速所述定位概率和值的软件判断速度,加快整个系统的重定位处理速度。

进一步地,所述定位信息存储介质被配置为被当前场景所使用的定位算法调用,所述定位信息存储介质存储有用于定位一个目标点所需的所有定位概率和值时,允许当前场景所使用的定位算法从这些定位概率和值中筛选出数值最大的一个定位概率和值,并将其对应的坐标偏移位置作为这个目标点在所述分块地图上重定位的位置;其中,所述定位信息存储介质是ddr。该技术方案在减少cpu参与的前提下,基于ahb总线的状态机调度机制,与现有技术软件cpu处理同样大小的点云数据相比,对于频率要求大大降低,对ddr带宽的要求也降低。本实施例采用硬件电路读写的方式来代替cpu软件反复迭代处理数据,对cpu的主频要求不高,在使用这个激光点云处理系统去读写外部的ddr存储器(概率和值存储介质是ddr)时,不会占用大量ddr带宽。

一种芯片,该芯片包括所述一种基于硬件加速的激光点云处理系统。该芯片满足在不同的处理场景中同步处理大批量激光点云数据,对于cpu主频没有要求,只是对于算法硬件化电路频率有要求,但相对于cpu频率来说还是要低得多的,通过多通道同时遍历计算的方式来缩减软件算法重定位的用时。

附图说明

图1为本发明公开的一种基于硬件加速的激光点云处理系统的示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明。以下实施方式中所涉及到的各模块均为逻辑电路单元,一个逻辑电路单元可以是一个物理单元、也可以是由多个逻辑器件按照一定的读写时序和信号逻辑变化组合而成的状态机,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本发明实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本发明实施方式中不存在其它的单元。

机器人采用360度的激光雷达扫描方式定位建图,其优点是建图成功率较高,能根据采集的激光点云数据求出目标点在地图中的位置,使得机器人能够利用激光地图进行重定位。具体地,激光雷达内置激光探头和动作旋转机构,动作旋转机构能支持激光探头360度旋转,同时控制机器人保持运动,所以在动作旋转机构的驱动作用下,激光探头绕着激光雷达的旋转中心,每旋转一圈就得到一批激光点云数据。

本发明实施例设计逻辑电路模块并行加速处理数据,具体利用专用存储模块保存激光扫描出的分块地图,然后使用硬件电路执行定位算法或重定位算法,即利用硬件计算电路的方式完成对激光点云数据的并行遍历求概率和,再将概率和写入专门的存储器件中,加速遍历求概率和的进程,缩短基于当前场景所使用的定位算法获取地图中的目标点的位置信息的时间。进而实现由软件仅仅通过概率和比较就得出目标点在地图上的位置信息。更加适应当前的环境特征,充分考虑到不同工作环境所带来的重定位误差因素。这里的目标点可以包括激光探头的有效探测范围内的静态的物体和动态的物体。

如图1所示,本发明实施例公开一种基于硬件加速的激光点云处理系统,激光点云处理系统的外围接口被构造为将该激光点云处理系统连接至少一个激光探头;激光点云处理系统的外部连接有至少一个激光点云信息存储介质和至少一个定位信息存储介质,激光点云信息存储介质用于存储所述激光探头旋转过程中实时扫描出的激光点云数据;在具体的定位或重定位场景下,该激光点云处理系统连同外围接口的激光探头、至少一个激光点云信息存储介质和至少一个定位信息存储介质都装配在移动机器人上;该激光点云处理系统包括一个读写状态控制器、一个ahb总线解析模块、两个角度偏转模块和至少两个定位概率运算模块。两个角度偏转模块分别是图1所示的第一角度偏转模块和第二角度偏转模块。

所述ahb总线解析模块,用于解析总线协议指令,将总线传送的数据信号和地址信号进行转化,在cpu发出取址指令后按照总线地址访问所述定位信息存储介质;本发明实施中使用的总线协议是ahb总线协议。所述读写状态控制器与所述激光点云信息存储介质存在电性连接关系;两个角度偏转模块都与所述读写状态控制器存在电性连接关系,两个角度偏转模块与所述读写状态控制器都存在电性连接关系;所有的定位概率运算模块都与所述读写状态控制器存在电性连接关系,但是被使能选通的定位概率运算模块才用于并行处理所述读写状态控制器传输的数据;需要说明的是,其中,所述ahb总线解析模块的传输控制作用包括突发读取操作的控制作用、单次读取操作的控制作用和突发写操作的控制作用,且均由ahb总线协议规范(这一作为soc的片上系统总线协议)规定的。在所述激光点云处理系统内部,固定设置的定位概率运算模块的数量是第一预设通道数量,是硬件上固定设置的,不因命令指令的变化而变化。

在所述读写状态控制器通过所述ahb总线解析模块分别与所述定位信息存储介质和所述激光点云信息存储介质进行数据的突发传输的过程中,发出的地址都是对齐的,所述对齐地址是对存储空间(逻辑bank)的一种划分,在外部访问突发读取或者突发写入数据时,要以这种划分为前提进行,对齐地址是由每拍传输的数据的宽度来决定的。

所述ahb总线解析模块的传输控制作用下,所述读写状态控制器先调用写ahb总线去突发读取所述激光点云信息存储介质内的激光点云数据,所述读写状态控制器再将读取到的每个激光点云数据同时传输给两个角度偏转模块;然后所述读写状态控制器控制两个角度偏转模块开始同步地或交替地对激光点云数据执行角度偏转运算,并且所述读写状态控制器通过单次读取操作的方式交替地获得相应一个角度偏转模块内参与运算的激光点云数据在一个分块地图上的参考坐标;然后所述读写状态控制器将每个参考坐标同时传输给第二预设通道数量的定位概率运算模块;然后所述读写状态控制器或所述ahb总线解析模块发出使能信号,选通第二预设通道数量的定位概率运算模块形成具备执行运算功能的数据传输通道,则所述读写状态控制器触发第二预设通道数量的定位概率运算模块并行地沿着相应的坐标轴方向偏移所述参考坐标,在此基础上由第二预设通道数量的定位概率运算模块并行处理经过同一轮坐标偏移(同一类型的坐标偏移或同一步骤流程的坐标偏移)的所述参考坐标在同一分块地图内对应的定位概率值,让第二预设通道数量的定位概率运算模块同步获得定位概率和值,具体可以在定位概率值的数量达到满足分块地图的定位效果时将定位概率值的累加结果确定为定位概率和值,然后所述读写状态控制器将获得的定位概率和值突发写入所述定位信息存储介质。其中,一轮坐标偏移表示每当执行过一次角度偏转运算,先沿着一种坐标轴方向执行的一次坐标偏移,再沿着另一种坐标轴方向执行的一次坐标偏移。其中,激光探头旋转过程中实时采样到的激光点云数据全部被处理为对应偏移位置(不仅是一个偏移位置)处的定位概率和值,再串行地写入所述定位信息存储介质后,外部cpu通过软件算法最终选择所述定位概率和值最大的一个对应的栅格位置作为所述激光点云处理系统在分块地图上定位恢复的位置。需要说明的是,分块地图是根据当前场景所使用的定位算法配置的预设尺寸的局部地图,且是处于所述激光探头的有效探测范围之内的栅格地图的。当所述激光探头被移动至新的位置时,所述激光探头的有效探测范围得到更新,使得定位算法配置的分块地图的信息也发生改变。

为了加速遍历求概率和的进程,缩短基于当前场景所使用的定位算法获取地图中的目标位置信息的时间,所述参考坐标在两个所述角度偏转模块的角度偏转信息的触发作用下,在用于并行执行运算的第二预设通道数量的定位概率运算模块中,每进行一轮坐标轴方向的偏移处理(x轴方向上的偏移和y轴方向上的偏移)则执行累加以得到一个定位概率和值,具体可以是:传输到每个定位概率运算模块中的参考坐标先执行一次x轴方向上的坐标偏移,再执行一次或多次y轴方向上的坐标偏移,再对一轮坐标轴方向的偏移处理后的成批量的参考坐标对应的定位概率值执行一次累加,以得到新的定位概率和值;当同步完成x轴方向和y轴方向上的用于克服定位漂移误差的坐标偏移操作后,所述定位概率运算模块重新触发所述角度偏转模块对同一批激光点云数据在同一偏转方向下进行角度偏转,发生前述角度偏转后获得新的参考坐标,再交由定位概率运算模块重复执行x轴方向上的偏移和y轴方向上的偏移。其中,定位概率值用于表示所述激光点云处理系统所属的装置设备落入所述分块地图的一个相匹配的栅格位置的概率。其中,参考坐标包括x轴坐标和y轴坐标。

在本实施例中,一次突发读取的数据数量与一次单次读取的数据数量的比值是预设整数值,使得所述读写状态控制器经过预设整数值的单次读取操作,才能将所述读写状态控制器一次突发读取到的激光点云数据对应角度偏转后的参考坐标同时传输给第二预设通道数量的定位概率运算模块,避免多通道突发传输数据的速度快于每个定位概率运算模块的计算速度,造成ahb总线的数据堵塞。

在所述激光点云处理系统内部,固定设置的定位概率运算模块的数量是第一预设通道数量;所述ahb总线解析模块,用于通过触发使能信号的方式,从对应选通的定位概率运算模块的数量是第二预设通道数量,即在使能信号的控制下,从第一预设通道数量的定位概率运算模块中选择第二预设通道数量的定位概率运算模块,触发第二预设通道数量的定位概率运算模块沿着同一种坐标轴方向并行地偏移参考坐标,再并行处理经过同一轮坐标偏移的参考坐标对应的定位概率值,让第二预设通道数量的定位概率运算模块同步获得定位概率和值,并将获得的定位概率和值突发写入定位信息存储介质。其中,使能信号是由相关联的寄存器发出的。

优选地,所述分块地图的x轴方向所允许容纳的最大栅格数量大于或等于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于第一预设通道数量;或者,所述分块地图的y轴方向所允许容纳的最大栅格数量大于或等于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于第一预设通道数量;从而满足的效果为:所述分块地图的x轴方向所允许容纳的最大栅格数量和所述分块地图的y轴方向所允许容纳的最大栅格数量中相对大的栅格数量大于或等于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于第一预设通道数量;或者,所述分块地图的x轴方向所允许容纳的最大栅格数量和所述分块地图的y轴方向所允许容纳的最大栅格数量中相对小的栅格数量大于或等于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于第一预设通道数量。这样本实施例将所述激光点云处理系统内所有的定位概率运算模块都同时选通,形成第一预设通道数量的具备执行运算功能的数据传输通道。

优选地,所述分块地图的x轴方向所允许容纳的最大栅格数量小于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于:所述分块地图的x轴方向所允许容纳的最大栅格数量;或者,所述分块地图的y轴方向所允许容纳的最大栅格数量小于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于:所述分块地图的y轴方向所允许容纳的最大栅格数量。从而满足的效果为:所述分块地图的x轴方向所允许容纳的最大栅格数量和所述分块地图的y轴方向所允许容纳的最大栅格数量中相对大的栅格数量小于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于:所述分块地图的x轴方向所允许容纳的最大栅格数量和所述分块地图的y轴方向所允许容纳的最大栅格数量中相对大的栅格数量;或者,所述分块地图的x轴方向所允许容纳的最大栅格数量和所述分块地图的y轴方向所允许容纳的最大栅格数量中相对小的栅格数量小于第一预设通道数量时,第二预设通道数量被所述ahb总线解析模块使能配置为等于:所述分块地图的x轴方向所允许容纳的最大栅格数量和所述分块地图的y轴方向所允许容纳的最大栅格数量中相对小的栅格数量。这样,第一预设通道数量的定位概率运算模块中存在部分定位概率运算模块闲置不被选通,但已经满足所述分块地图的相应坐标轴方向上的栅格区域遍历要求,覆盖到所述分块地图的相应坐标轴方向上的漂移位置范围。

在上述两优选例中,第二预设通道数量的定位概率运算模块是使能选通的,具体是在所述ahb总线解析模块的控制命令作用下,所述读写状态控制器从第一预设通道数量的定位概率运算模块中使能选择出第二预设通道数量的定位概率运算模块,在所述激光点云处理系统内部连接出第二预设通道数量的并行数据传输通道,且最大限度地满足并行处理所述分块地图内所需的坐标偏移幅度。因此,与现有技术相比,本实施例根据所述分块地图的栅格尺寸大小,对硬件上固定设置的第一预设通道数量的定位概率运算模块进行选择,使得选通执行并行运算的第二预设通道数量的定位概率运算模块适应当前定位所使用的分块地图的尺寸大小需求,在最大程度节省硬件计算资源的基础上,加快坐标数据在所述分块地图匹配的坐标偏移区域范围内的并行计算速度。

需要强调的是,实施例以部分环境地图为例,即以装配所述激光点云处理系统的机器人的当前位姿为原点,在设定激光探头的有效搜索范围内生成分块地图。考虑到激光探头所发射的激光束具有一定的射程,即只能扫描到一定范围内的区域,优选地,在确定搜索范围时,可以以激光束的射程为依据,可以在机器人前后左右5米射程的范围内生成分块地图。

在本实施例中,机器人出现定位丢失时,当前位姿存在一定的偏差,为此,本实施例在当前位姿的基础上按照设定的角度偏转量进行偏移;机器人在导航移动时,当前位姿存在一定的漂移误差,为此,实施例在当前位姿的基础上按照环境地图上设定的x轴方向和y轴方向的偏移量进行栅格位置偏移,得到偏移后的机器人位姿信息。

本发明实施例中,配置的定位概率和值用于反映了机器人的准确定位在该分块地图一位置的可能性的大小,定位概率和值越大,表示机器人的准确定位在该分块地图一位置的可能性越大。可选的,在确定环境地图中区域的定位概率时,可以对环境地图进行处理,得到对应的栅格地图。栅格地图中每一个栅格长度存在对应的坐标范围,环境地图中包含障碍物和空白区域;栅格地图确定之后,可以进行保存,以便在下次进行定位恢复时可以直接使用。

在此基础上,根据机器人的当前位姿,可以确定机器人在栅格地图中的位置,然后根据激光探头所扫描到各个对应的栅格点的定位概率值的和值,得到定位概率和值。优选地,栅格地图中的障碍物所对应的定位概率可以服从正态分布。

本实施例是从所述定位信息存储介质存储的所有定位概率和值中挑出最大的作为重定位的结果,然后随着机器运动,这个最大的定位概率和值会随之更新,这里配置的定位概率值与现有技术中公开的定位算法相关,但与解决本发明所提出的硬件并行运算的技术构思、硬件加速的技术问题无关,故在此不进行详细说明。

与现有技术相比,采用ahb总线的状态机控制电路(状态机控制器),并遵循ahb总线读写时序变化,对即时扫描获得的批量的激光点云数据进行坐标位置的并行偏移计算和遍历,从而通过对激光点云数据执行并行的偏移计算,加快处理激光探头旋转或所述激光点云处理系统移动过程中产生的点云数据噪声和定位误差,同时实现多通道、分批量地同步累加运算输出定位概率和值,再按照ahb总线读写时序变化自动写入专门的存储介质中以供cpu软件选择处理完成定位,减少对外部存储介质的访问读写次数。整个激光点云处理系统在各种定位环境下都保持较高的系统性能,提高模组开发效率。且整个激光点云处理系统在运动状态下能够保持较高的系统性能,提高客户体验度。

如图1所示,所述读写状态控制器包括突发读取模块,突发读取模块内部设置第一ram,所述突发读取模块在所述ahb总线解析模块的每一次突发读取操作下,将一个突发传输长度的激光点云数据突发读取入第一ram,再将第一ram内缓存的每个激光点云数据同时传输给图示的第一角度偏转模块和第二角度偏转模块,以接受第一角度偏转模块和第二角度偏转模块交替访问。具体地,所述突发读取模块被激活进入突发读工作模式时,按照cpu指定的一个激光点云信息存储介质的基地址,将一个突发传输长度的激光点云数据连续读取入第一ram,本实施例可以通过反复地发起突发读取操作来将预设单位数量的激光点云数据存储入第一ram,相对于使用fifo以先入先出的存储方式及较小的存储深度去缓存激光点云数据,可以减少第一角度偏转模块或第二角度偏转模块在每执行一次角度偏转运算时从激光点云信息存储介质突发重复读取激光点云数据的次数,进而减少对ahb总线的频繁访问。其中,突发传输长度表示一次突发读取操作或一次突发写操作下经由所述读写状态控制器访问的连续的地址单元的个数;其中,第一ram所存储的激光点云数据的数量是大于或等于预设单位数量;预设单位数量是预先配置的,用于定位所述分块地图的一目标点所需的激光点云数据的数量。优选地,预设单位数量设置为200,预设单位数量的激光点云数据表示200个激光点云数据,存在200个x轴坐标和200个y轴坐标。突发传输长度设置为16,一个突发传输长度的地址单元上的激光点云数据表示16个连续的地址单元上的坐标值,其中,相邻地址单元上分别存储为x轴坐标和y轴坐标。本实施例通过增加基于ahb总线协议的突发读取模块替代cpu完成激光点云数据的读取操作,能够一次性获取多个激光点云数据,并多次突发读取的激光点云数据保存在同一ram内,相对于fifo的先入先出的存储方式,ram易于保存一个完整的分块地图所需的激光点云数据,ram也便于外部寻址访问,减少cpu占用ahb总线的次数,进而加速所述激光点云数据通过第一ram突发传输进入所述角度偏转模块,加快坐标的计算速度。

如图1所示,存在两个角度偏转模块,即如图1所示的第一角度偏转模块和第二角度偏转模块,以区别两个不同的角度偏转模块;每个角度偏转模块都用于从第一ram(图中没表示出)中读取激光点云数据,优选地,每一次从第一ram同时传输给第一角度偏转模块和第二角度偏转模块的数据访问量(地址单元的访问数量)都是大于一个所述突发传输长度,使得突发读取模块需要发起多次突发读取操作,实现将实时扫描获得的激光点云数据全部处理为参考坐标,实现将实时扫描获得的预设单位数量的激光点云数据全部处理为当前一个分块地图内的参考坐标;一个所述角度偏转模块再利用预先配置的角度偏转信息对读取的每一个激光点云数据携带的采样信息执行角度偏转运算,获得经过角度偏转运算后的相应激光点云数据在一个分块地图上的参考坐标;其中,同一个激光点云数据在角度偏转模块内执行的每一次角度偏转运算,对应获取的参考坐标是不同。基于该实施例,若装配所述激光点云处理系统的机器人出现定位丢失时,所述激光点云处理系统通过控制所述角度偏转模块按照设定的角度偏转量对激光点云数据进行偏移操作,获得相应激光点云数据在经过坐标系角度变换后的分块地图中的参考坐标,以纠正机器人位姿的角度偏转误差。

具体地,所述利用预先配置的角度偏转信息对读取的每一个激光点云数据携带的采样信息执行角度偏转运算的过程包括:利用偏转角度步长和当前偏转次数的乘积与所述激光点云数据对应坐标位置相对于坐标轴的初始偏转角度的和值、激光探头的扫描半径建立三角函数关系式,运算获得所述角度偏转模块读取的每一个激光点云数据发生一次角度偏转产生的所述参考坐标,其中,所述参考坐标的x轴坐标可以是扫描半径以前述和值为偏转角度的余弦值,所述参考坐标的y轴坐标可以是扫描半径以前述和值为偏转角度的正弦值。其中,所述激光点云数据携带的采样信息包括:激光探头的扫描半径、所述激光点云数据对应坐标位置相对于坐标轴的初始偏转角度、以及激光点云数据的角度偏转信息,扫描半径是所述激光探头与当前参与角度偏转运算的激光点云数据对应坐标位置之间的栅格距离,优选地,所述扫描半径按比例收缩为使用栅格数目表示。所述参考坐标可以转换为用栅格数目表示,方便后续获取相应坐标位置处的定位概率值。角度偏转信息表示:所述激光点云数据对应的坐标位置绕着所述分块地图的坐标系原点旋转所需配置的偏转角度步长、当前偏转次数和最大偏转次数,当前偏转次数小于或等于最大偏转次数。在每个角度偏转模块中,每当执行一次角度偏转运算,所述激光点云数据对应的坐标位置绕着所述分块地图的坐标系原点位置旋转一个偏转角度步长。

需要说明的是,在不同角度偏转模块中,读取到的同一个激光点云数据对应坐标位置相对于坐标轴的初始偏转角度是不同的,但是相应的角度偏转信息是相同的,包括偏转角度步长、当前偏转次数和最大偏转次数;在所述两个角度偏转模块中,同一激光点云数据对应坐标位置相对于同一坐标轴的初始偏转角度的角度差值配置为:保持两个角度偏转模块内读取的同一个激光点云数据执行的任意一次角度偏转运算产生的参考坐标是不同的,但是为了保证每一个激光点云数据执行的角度偏转运算的次数都是所述最大偏转次数、且不重复对同一个激光点云数据执行同一偏转角度或等效偏转角度的角度偏转运算,本实施例将每个角度偏转模块读取的每一个激光点云数据在其对应的角度偏转模块内执行角度偏转运算的最大次数被配置为所述最大偏转次数的一半。因此,基于三角函数运算,同一激光点云数据对应坐标位置相对于同一坐标轴的初始偏转角度在这两个角度偏转模块内的角度差值被配置为所述最大偏转次数的一半与所述偏转角度步长的乘积这一固定值。

如图1所示,所述读写状态控制器包括第一单次读取模块和第二单次读取模块,第一单次读取模块内部设置有第二fifo(图中没表示出),第二单次读取模块内部设置有第三fifo(图中没表示出);第一角度偏转模块的内部设置有第二ram(图中没表示出),用于缓存第一角度偏转模块内执行角度偏转运算获得的参考坐标;第二角度偏转模块的内部设置有第三ram(图中没表示出),用于缓存第二角度偏转模块内执行角度偏转运算获得的参考坐标;第二ram与第二fifo存在电性连接关系,第三ram与第三fifo存在电性连接关系,构成所述两个角度偏转模块与所述读写状态控制器之间的交替传输的数据传输关系,用于控制两个角度偏转模块交替地对激光点云数据执行角度偏转运算,具体如下:

在所述ahb总线解析模块的每一次单次读操作的控制作用下,所述第一单次读取模块将第二ram内部存储的相邻两个地址上的参考坐标单次读取入第二fifo,使得第二fifo得以遍历第二ram内的参考坐标,同时触发第二角度偏转模块执行当前一次角度偏转运算;等到第二fifo填满参考坐标时,所述第一单次读取模块控制第二fifo以先入先出的方式将填满的参考坐标同时传输给所述第二预设通道数量的定位概率运算模块,同时,所述第一单次读取模块触发所述第二单次读取模块停止执行当前一次角度偏转运算,开始将第三ram内部存储的相邻两个地址上的参考坐标单次读取入第三fifo,且开始触发第二ram所处的第一角度偏转模块执行新的一次角度偏转运算并将其获得的参考坐标缓存到第二ram内。在本实施例中。第二角度偏转模块的一激光点云数据执行的当前一次角度偏转运算获得参考坐标及涉及的偏转角度分别与第一角度偏转模块执行新的一次角度偏转运算获得参考坐标及涉及的偏转角度不同。

同理地,所述第二单次读取模块在所述ahb总线解析模块的每一次单次读操作的控制作用下,将第三ram内部存储的相邻两个地址上的参考坐标单次读取入第三fifo,使得第三fifo得以遍历第三ram内的参考坐标,也触发第一角度偏转模块执行角度偏转运算;等到第三fifo填满参考坐标时,控制第三fifo以先入先出的方式将填满的参考坐标同时传输给所述第二预设通道数量的定位概率运算模块,同时所述第一单次读取模块触发所述第二单次读取模块停止执行角度偏转运算,再触发所述第一单次读取模块开始将第二ram内部存储的相邻两个地址上的参考坐标单次读取入第二fifo,且开始触发第三ram所处的第二角度偏转模块执行角度偏转运算并将其获得的参考坐标缓存到第三ram内。

本实施例利用第一单次读取模块内部设置的第二fifo设计一路数据传输通道以访问一个角度偏转模块的内部设置的第二ram,同时利用第二单次读取模块内部设置的第三fifo设计另一路数据传输通道以访问另一个角度偏转模块的内部设置的第三ram,构成第二fifo和第三fifo分别对第二ram和第三ram之间的交替传输的数据传输关系,即形成交替执行角度偏转计算的两路并行流水线通路;相对于仅使用一个角度偏转模块设计一路数据传输通道,将所述读写状态控制器查找获取所述参考坐标的速度提升一倍,节省所述读写状态控制器等待所述角度偏转模块执行角度偏转运算的时间。

在前述实施例中,当第一角度偏转模块执行角度偏转运算的次数和第二角度偏转模块执行角度偏转运算的次数之和累计达到所述最大偏转次数后,在所述ahb总线解析模块的传输控制作用下,所述读写状态控制器触发第二预设通道数量的定位概率运算模块并行获取的定位概率和值的数目总和为:所述最大偏转次数、所述分块地图的y轴方向所允许容纳的最大栅格数量、所述分块地图的x轴方向所允许容纳的最大栅格数量的乘积,达到定位一个目标点所需的所有定位概率和值的数量,才允许当前场景所使用的定位算法从中筛选出数值最大的一个定位概率和值。

具体地,每当所述第一角度偏转模块和所述第二角度偏转模块已经完成第一ram内存储的预设单位数量的激光点云数据的两次角度偏移运算并将获得的参考坐标传输到第二预设通道数量的定位概率运算模块,且所述定位概率运算模块并行执行所述预设单位数量的定位概率值的累加运算后,所述第一单次读取模块和所述第二单次读取模块都停止单次读取,直到触发所述第一角度偏转模块和所述第二角度偏转模块继续交替地对原来突发读取进来的的预设单位数量的激光点云数据执行了两次角度偏转运算,同时所述第一单次读取模块和所述第二单次读模块先后执行单次读操作,相应地从第二ram内和第三ram内读取最新运算出的不同参考坐标。如此重复地获取新的参考坐标并传输到第二预设通道数量的定位概率运算模块以并行地执行累加运算,直到第一角度偏转模块执行角度偏转运算的次数和第二角度偏转模块执行角度偏转运算的次数之和累计达到所述最大偏转次数后,所述读写状态控制器触发第二预设通道数量的定位概率运算模块并行获取的定位概率和值的数目总和为:所述最大偏转次数、所述分块地图的y轴方向所允许容纳的最大栅格数量、所述分块地图的x轴方向所允许容纳的最大栅格数量的乘积。

作为一种实施例,如图1所示,激光点云处理系统设置有第二预设通道数量n个定位概率运算模块,分别使用图1所示的定位概率运算模块_1、定位概率运算模块_2、...、定位概率运算模块_n来区别表示。第二预设通道数量n个定位概率运算模块,每当通过所述第一单次读取模块或所述第二单次读模块获取到参考坐标时,并行地控制这些参考坐标沿着同一种坐标轴方向执行坐标偏移,即控制同一参考坐标分别在第二预设通道数量n个定位概率运算模块内沿着同一种坐标轴方向同步执行坐标偏移;在每一个定位概率运算模块同步获取的参考坐标先后经过一次一种坐标轴方向的坐标偏移和一次另一种坐标轴方向的坐标偏移后,每一个定位概率运算模块控制经过相应坐标轴方向的坐标偏移(经过同一轮坐标偏移)后的参考坐标在所述分块地图上的定位概率值并行累加,直到遍历到参与相应坐标轴方向的坐标偏移的参考坐标的数目达到所述预设单位数量时,由第二预设通道数量n个定位概率运算模块同步获得定位概率和值;其中,预设单位数量是用于定位所述分块地图的一目标点所需的激光点云数据的数量,激光点云数据和参考坐标都包括x轴坐标和y轴坐标,都是存储在相邻地址单元上的x轴坐标和y轴坐标。其中,所述定位概率值是预先配置的,用于表示所述激光探头所属的基于硬件加速的激光点云处理系统落入同一分块地图的匹配栅格位置的概率(由现有技术公开的定位算法确定的落入一分块地图的一栅格位置的可能性)。本实施例组建所述第二预设通道数量的并行计算通道,控制每一条并行计算通道都同时执行x轴方向的坐标偏移或y轴方向的坐标偏移,等效于并行执行所述第二预设通道数量的x轴方向的坐标偏移或所述第二预设通道数量的y轴方向的坐标偏移,从而缩短参考坐标在分块地图内执行相应坐标轴方向上的坐标偏移的处理时间,从而以同步处理的方式获取多个定位概率和值,加快定位软件算法的定位效率。

需要说明的是,一轮坐标偏移表示:每当执行过一次角度偏转运算时,先沿着一种坐标轴方向执行一次坐标偏移,再沿着另一种坐标轴方向执行一次坐标偏移,累计执行两次坐标偏移;在同一轮坐标偏移内,先执行的一次坐标偏移(第一次坐标偏移)所沿的坐标轴方向以及相对于所述分块地图的坐标原点的偏移量在不同定位概率运算模块内是对应相同的,且后执行的一次坐标偏移(第二次坐标偏移)所沿的坐标轴方向以及相对于所述分块地图的坐标原点的偏移量在不同定位概率运算模块内是对应相同的。在硬件实现过程中,坐标偏移是由加减法器执行的,坐标偏移方向,即用于坐标偏移所沿的坐标轴方向是:根据所述定位算法的需求自适应配置在相关联的寄存器内。

具体地,在第二预设通道数量的定位概率运算模块中,每个定位概率运算模块,用于在并行获取到参考坐标后,每当一个参考坐标已经沿着所述分块地图的一种坐标轴方向执行一次坐标偏移时,则控制前述一次坐标偏移后的参考坐标沿着所述分块地图的另一种坐标轴方向执行第二预设遍历次数的坐标偏移,等效于同一个参考坐标在一个定位概率运算模块内并行地完成的坐标偏移的轮数是第二预设遍历次数,即每完成一轮坐标偏移,则在所属的一个定位概率运算模块并行地完成第二预设遍历次数轮坐标偏移,虽然先后偏移的坐标轴方向都对应相同,但第二次执行的另一种坐标轴方向的坐标偏移时是同步执行不同的坐标偏移量(相对于所述分块地图的坐标原点的偏移量是不同的)的第二预设遍历次数的坐标偏移,故本实施例划分为第二预设遍历次数轮坐标偏移;再并行控制经过同一轮坐标偏移后的参考坐标在所述分块地图上对应的定位概率值参与累加运算,直到经过同一轮坐标偏移的参考坐标的数目达到预设单位数量时,将经过同一轮坐标偏移的参考坐标对应的定位概率值的累加结果确定为一个定位概率和值,并由对应一个的定位概率运算模块同时输出第二预设遍历次数的定位概率和值,进而由每个定位概率运算模块并行输出第二预设遍历次数的定位概率和值。综上,每当执行同一轮坐标偏移的参考坐标的数量达到所述预设单位数量时,这一批所述预设单位数量的参考坐标已经朝着相同性质的定位漂移方向完成坐标偏移操作,可以用于确定所需定位的目标点经过这一轮坐标偏移落入到所述分块地图上的相应栅格位置,也理解为目标点的坐标偏移位置。与现有技术相比,第二预设通道数量的定位概率运算模块在并行计算定位概率的和值过程中,充分考虑到整个系统因移动而产生的坐标定位误差问题,同步控制一参考坐标先后沿着分块地图的x轴方向发生偏移、沿着分块地图的y轴方向发生偏移,为定位算法的在软件执行层面的定位提供足够多的坐标偏移状态,保证定位或重定位的准确性;再将预设单位数量的参考坐标完成一轮坐标偏移后的坐标位置对应的定位概率进行累加以获得具备定位价值的一个定位概率和值,从而克服装配激光点云处理系统的机器人因导航移动而产生的定位漂移问题,以适应当前激光扫描构建的地图环境。需要强调的是,在所述分块地图的另一种坐标轴方向并行执行的第二预设遍历次数的坐标偏移中,每一次坐标偏移相对于所述分块地图的坐标原点的偏移量是不同的,但是沿着同一种坐标轴方向发生的坐标偏移步长是相同的。

具体地,当参考坐标沿着所述分块地图的x轴方向的最大偏移次数是所述第二预设遍历次数时,x轴方向对应的一种坐标偏移步长是1个栅格长度;和/或,当参考坐标沿着所述分块地图的y轴方向的最大偏移次数是所述第二预设遍历次数时,y轴方向对应的一种坐标偏移步长是1个栅格长度;其中,所述分块地图设定的两种坐标轴方向分别为x轴方向和y轴方向;其中,每一个定位概率运算模块预先配置有:参考坐标沿着所述分块地图的x轴方向的最大偏移次数及x轴方向对应的一种坐标偏移步长、参考坐标沿着所述分块地图的y轴方向的最大偏移次数及y轴方向对应的一种坐标偏移步长;其中,参考坐标沿着所述分块地图的x轴方向的最大偏移次数与x轴方向对应的一种坐标偏移步长的乘积等于所述分块地图的x轴方向所允许容纳的最大栅格数量,从而在x轴方向对应的一种坐标偏移步长是1个栅格长度时,形成对所述第二预设遍历次数的数值约束;其中,参考坐标沿着所述分块地图的y轴方向的最大偏移次数与y轴方向对应的一种坐标偏移步长的乘积等于所述分块地图的y轴方向所允许容纳的最大栅格数量,从而在y轴方向对应的一种坐标偏移步长是1个栅格长度时,形成对所述第二预设遍历次数的数值约束;通过对分块地图的坐标偏移规则的配置,保证第二预设通道数量的定位概率运算模块通过并行控制参考坐标偏移的方式,以更短的时间有序地完成一分块地图内所有的坐标漂移情况的遍历。实现同步输出成批量的定位概率和值。

优选地,第二预设通道数量的定位概率运算模块中,对于同一轮坐标偏移,先执行的坐标偏移所沿的坐标轴方向对应的偏移起点坐标是不同的;每一个被选通的定位概率运算模块与被选通的每相邻的两个定位概率运算模块(相邻的上一个定位概率运算模块或相邻的下一个定位概率运算模块)在同一轮坐标偏移中,先执行的坐标偏移所沿的坐标轴方向对应的偏移起点坐标的坐标差值是相同的;由于所述参考坐标沿着所述分块地图的x轴方向的最大偏移次数及x轴方向对应的一种坐标偏移步长在每一个定位概率运算模块内都对应相同,所述参考坐标沿着所述分块地图的y轴方向的最大偏移次数及y轴方向对应的一种坐标偏移步长在每一个定位概率运算模块内都对应相同,所以每个定位概率运算模块读取到的同一参考坐标经过同一轮坐标偏移后的结果是不同的,由此可推出被选通的相邻两个定位概率运算模块对应的偏移起点坐标的坐标差值不是0且相同的,从而多个被选通且用于并行处理参考坐标的定位概率运算模块,以较短的时间覆盖先执行的坐标偏移所沿的坐标轴方向上出现坐标漂移误差;对于同一轮坐标偏移,在上述坐标偏移的基础上,用于后执行坐标偏移所沿的坐标轴方向对应的偏移起点坐标是相同的,使得后执行坐标偏移所沿的坐标轴方向所能覆盖的坐标漂移误差更加全面,实现完整地覆盖所述分块地图出现的定位漂移误差。

优选地,对于(3个栅格)x(3个栅格)的分块地图进行定位,本实施例选通3个定位概率运算模块并行计算,形成3个通道。同一个参考坐标分别在3个通道内,先按照x轴方向对应的一种坐标偏移步长沿着x轴方向并行执行一次坐标偏移,使得3个定位概率运算模块控制各自获取的同一个参考坐标沿着所述分块地图的x轴方向同时完成3次坐标偏移,获得不同的偏移结果,也实现所述分块地图的x轴方向的坐标偏移次数达到x轴方向的最大偏移次数;并行完成一次x轴方向的坐标偏移后的参考坐标,继续在各自通道内按照y轴方向对应的坐标偏移步长沿着y轴方向并行执行三次坐标偏移,即达到y轴方向的最大偏移次数,以克服所述激光点云处理系统在移动过程中产生的定位误差;然后在各个通道内将同一轮坐标偏移后对应的定位概率值并行累加,直到经过同一轮坐标偏移的参考坐标的数目达到预设单位数量(比如200个)时,每个通道同时得到3个定位概率和值,使得3个定位概率运算模块并行获得9个定位概率和值。这里的9是x轴方向的最大偏移次数与y轴方向的最大偏移次数的乘积,也是第一角度偏转模块和第二角度偏转模块对预设单位数量的激光点云数据交替地执行一次角度偏转运算后,交由3个定位概率运算模块并行计算获得的9个定位概率和值;具体地,在并行执行的每一轮坐标偏移后(包括沿着各个坐标轴方向的坐标偏移及一次角度偏转)3个定位概率运算模块以200个参考坐标对应的定位概率为计算单位,进行累加求和,同步获得前述的9个定位概率和值。与此同时,第一角度偏转模块和第二角度偏转模块对预设单位数量的激光点云数据交替地执行另一次角度偏转运算获得参考坐标在排队等待ahb总线读取,再交由3个定位概率运算模块并行计算获得的另外9个定位概率和值。然后第一角度偏转模块和第二角度偏转模块交替地朝着同一偏转方向(与上一次旋转方向相同)完成一次所述偏转角度步长的旋转(分别在原来的偏转角度的基础上继续旋转一次所述偏转角度步长),且每一次角度偏转运算都是获得所述预设单位数量的参考坐标(上一批参考坐标,200个),然后将这些参考坐标逐个地交由3个定位概率运算模块执行并行计算,即对于每个定位概率运算模块,都是配置为先后沿着前述的x轴方向执行坐标偏移和沿着y轴方向执行坐标偏移,并求取新的9个定位概率和值。当所述两个角度偏转模块执行角度偏转运算的次数之和累计达到所述最大偏转次数后,在所述ahb总线解析模块的传输控制作用下,所述读写状态控制器触发第二预设通道数量的定位概率运算模块并行获取的定位概率和值的数目总和为:所述最大偏转次数、所述分块地图的y轴方向所允许容纳的最大栅格数量、所述分块地图的x轴方向所允许容纳的最大栅格数量的乘积,才达到定位一个目标点所需的所有定位概率和值的数量,才允许当前场景所使用的定位算法从该数量条件下的定位概率和值中筛选出数值最大的一个定位概率和值。然后再去接受所述突发读取模块从激光点云信息存储介质内突发读取的新的一批激光点云数据,并通过多次突发读取操作将的新的一批预设单位数量(200个)的激光点云数据存储到第一ram,此时所述分块地图也被更新。

如图1所示,所述读写状态控制器还包括突发写模块,突发写模块的内部设置有第一fifo(图中没表示出),第一fifo用于按照预设的坐标遍历顺序,以先入先出的存储方式接收所述第二预设通道数量的定位概率运算模块获得的定位概率和值;突发写模块,用于每当第一fifo填充的定位概率和值的个数达到一个突发传输长度时,在所述ahb总线解析模块的传输控制作用下,将这个突发传输长度的定位概率和值突发写入所述定位信息存储介质。当预设的坐标遍历顺序表现为:x0、y0、...、x0、yn、x1、y0、...、x1、yn,形成适应所述分块地图的x轴方向的换行遍历配置,从而,所述第一fifo以逐行遍历的方式地获取:经过同一轮坐标偏移后的预设单位数量的参考坐标在所述分块地图上对应的定位概率和值;然后按照上述x轴方向的换行遍历的顺序将第一fifo填充的定位概率和值存储到所述定位信息存储介质。当预设的坐标遍历顺序表现为:x0、y0、...、xn、y0、x0、y1、...、xn、y1,形成适应所述分块地图的y轴方向的换列遍历配置,从而,所述第一fifo以逐列遍历的方式地获取:经过同一轮坐标偏移后的预设单位数量的参考坐标在所述分块地图上对应的定位概率和值;然后按照上述y轴方向的换列遍历的顺序将第一fifo填充的定位概率和值存储到所述定位信息存储介质。

具体地,所述定位信息存储介质被配置为被当前场景所使用的定位算法调用,所述定位信息存储介质存储有用于定位一个目标点所需的所有定位概率和值时,允许当前场景所使用的定位算法从用于定位一个目标点所需的所有定位概率和值中筛选出数值最大的一个定位概率和值,并将其对应的坐标偏移位置作为这个目标点在所述分块地图上重定位的位置,即作为目标点在所述分块地图内定位恢复可能性最大的坐标偏移位置;其中,所述定位信息存储介质是ddr。该技术方案在减少cpu参与的前提下,基于ahb总线的状态机调度机制,与现有技术软件cpu处理同样大小的点云数据相比,对于频率要求大大降低,对ddr带宽的要求也降低。本实施例采用硬件电路读写的方式来代替cpu软件反复迭代处理数据,对cpu的主频要求不高,在使用这个激光点云处理系统去读写外部的ddr存储器(所述定位信息存储介质是ddr)时,不会占用大量ddr带宽。

优选地,所述第二预设通道数量的定位概率运算模块还用于将并行输出的定位概率和值的存放地址写入激光点云信息存储介质,使得所述激光点云处理系统的外围的激光探头扫描构建的栅格地图的定位信息得到保存,以便下次定位恢复时直接读取调用。本实施例将所述激光点云信息存储介质设置为sram,因此,本实施例对sram的容量要求较大,以便减少对于所述地图信息存储介质(ddr)的读取和回写的次数,进一步地减小对于ddr的带宽需求。

需要说明的是,所述定位信息存储介质、所述激光点云信息存储介质、所述第一ram、所述第二ram和所述第三ram的内部都是存储阵列,即将数据“填”进去,和表格的检索原理一样,先指定一个行,再指定一个列,就准确地找到所必需的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑bank(logicalbank,下面简称bank)。

在前述实施例的基础上,经过实际的数据测算,采用所述激光点云处理系统完成前述的参考坐标在所述分块地图上的定位概率值的坐标偏移累加处理,在ahb总线频率是300mhz的情况下,并行处理的激光分块地图大小配置为200x3x3时,则耗时2.35ms,而处理同样大小的地图,采用软件cpu的轮询读写的方式,在cpu主频1ghz的条件下,耗时接近12ms。因此,本实施例采用并行硬件遍历计算的方式,不但对于频率要求大大降低,同时耗时也要大大少于cpu查询的方式,效率提升了5倍,减少对外部ddr的带宽的要求,容易达到了预期的加速设计目标。也方便预先通过软件算法调整参数以适应当前地图环境,较为灵活。

需要说明的是,前述的突发读取模块、前述的第一单次读取模块、前述的第二单次读取模块、前述的突发写模块、前述第二预设通道数量的定位概率运算模块、前述的第一角度偏转模块和前述的第二角度偏转模块都是由硬件语言实现的状态机,该状态机是由相应功能的状态寄存器和组合逻辑电路连接而成,用于调度ahb总线解析模块、激光点云数据的角度偏转运算、参考坐标的xy轴方向的坐标偏移及其突发读写迭代控制状态的自动运转,使得本发明实施例中涉及的各个模块均由数字运算电路组成。

一种芯片,该芯片包括所述的基于硬件加速的激光点云处理系统。该芯片满足在不同的处理场景中同步处理大批量激光点云数据,对于cpu主频没有要求,只是对于算法硬件化电路频率有要求,但相对于cpu频率来说还是要低得多的,通过多通道同时遍历计算的方式来缩减软件算法定位的用时。

在本申请所提供的实施例中,应该理解到,所揭露的系统、芯片,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1