本发明涉及算法硬件化的,具体涉及用于多分辨率栅格地图定位的候选解处理系统。
背景技术:
1、目前机器人的全局重定位方法可以采用基于激光雷达的全局重定位技术。针对扫地机利用激光地图进行重定位,业界多是采用的软件算法实现,对于每个激光数据都进行大量的迭代计算,会重复使用匹配的方法去遍历生成的每一个激光雷达数据,从而求出待重定位目标在地图上的位置信息,这种方法会占用大量cpu资源,非常费时,在使用硬件加速器来对多层级的激光地图进行逐层地图遍历和逐个激光点地进行定位计算时,激光地图内涉及的位置漂移情况随着地图层级数量的增加而增多,所以多层级激光地图带来较大规模的定位计算量,挤占硬件加速器内部的大量的缓存空间或外部大量的ddr带宽,而且对cpu的主频要求很高,从而造成硬件计算的效率不如cpu指令直接参与计算的效率。
技术实现思路
1、本申请公开用于多分辨率栅格地图定位的候选解处理系统,具体技术方案包括:
2、用于多分辨率栅格地图定位的候选解处理系统,候选解处理系统包括定位逻辑电路和ddr存储器;定位逻辑电路包括状态机控制模块和可行解获取模块;可行解获取模块的内部设置多条数据通道以及累加器;可行解获取模块,用于从ddr存储器获取多分辨率栅格地图,多分辨率栅格地图是在多个分辨率下的栅格地图,其中,每个分辨率对应一层栅格地图;可行解获取模块,用于依据状态机控制模块产生的控制信号,从ddr存储器获取激光点数据并分配到其内部的各条数据通道中;每条数据通道内的激光点数据在当前层栅格地图中并行执行位置变换操作,获得目标点及其对应的占据概率值;在各条数据通道中,由同一轮位置变换操作在当前层栅格地图中得到的目标点所对应的占据概率值通过累加器依次相加,累加器每相加一次则计算出对应一个目标点的实时概率和值;可行解获取模块,还用于基于目标点的实时概率和值从当前层栅格地图的候选解集中筛选不可行解时,停止由同一轮位置变换操作在当前层栅格地图中得到的目标点所对应的占据概率值进行相加;可行解获取模块,还用于基于目标点的实时概率和值从当前层栅格地图的候选解集中筛选出可行解时,将该可行解设置为下一层栅格地图的候选解,使各条数据通道在下一层栅格地图中执行所述同一轮位置变换操作时从ddr存储器内读取所述下一层栅格地图的候选解,实现在分辨率由低到高的栅格地图中逐层搜索出最优可行解集,为多分辨率栅格地图提供重定位所需的位姿数据。
3、综上,相对于软件环境下运行相应的位置变换操作和可行解逐层搜索操作,本申请公开的候选解处理系统以硬件并行运算结构配合状态机,可以在计算完所有激光点数据对应占据概率值的和值之前就筛选出不可行解并及时中止实时概率和值的计算,进而减少不可行解赋予同一批激光点数据的位置变换操作,即减少激光点数据在对应分辨率的栅格地图中的无效计算,加快运算速度和搜索速度。另外,在多通道并行执行位置变换操作和基于筛选出的可行解来逐层搜索最优可行解集的过程中,可行解获取模块还会将当前层栅格地图中目标点的坐标信息及其对应的占据概率值写入ddr存储器以供软件调用来进行实时定位,或提供给下一层栅格地图进行概率值求和运算以减少重复执行位置变换操作,减少了多分辨率栅格地图的重定位时间。
1.用于多分辨率栅格地图定位的候选解处理系统,其特征在于,候选解处理系统包括定位逻辑电路和ddr存储器;定位逻辑电路包括状态机控制模块和可行解获取模块;可行解获取模块的内部设置多条数据通道以及累加器;
2.根据权利要求1所述候选解处理系统,其特征在于,可行解获取模块,用于依据状态机控制模块产生的控制信号,控制一个激光点数据在一层栅格地图内执行一轮位置变换操作获得一个目标点,同时从ddr存储器获取新的激光点数据和一层栅格地图的地图数据,并将所述可行解获取模块内部的各条数据通道中由一轮位置变换操作得到的目标点对应的占据概率值存入ddr存储器;每个分辨率的栅格地图内,每个栅格对应的位姿数据配置一个占据概率值,以使每个目标点或每个激光点数据都有相匹配的占据概率值;
3.根据权利要求2所述候选解处理系统,其特征在于,用于定位当前检测区域内的一个待重定位位置所需的每个激光点数据,通过执行最优可行解集中所有可行解对应的位置变换操作,获得对应的目标点,组成待重定位位置的重定位结果。
4.根据权利要求2所述候选解处理系统,其特征在于,可行解获取模块用于自动执行以下步骤:
5.根据权利要求4所述候选解处理系统,其特征在于,可行解获取模块在遍历当前层栅格地图的过程中,通过重复执行步骤1来遍历当前确定的候选解集内的各个候选解;
6.根据权利要求5所述候选解处理系统,其特征在于,可行解获取模块在执行步骤2的过程中,所述基于当前目标点的实时概率和值从当前层栅格地图的候选解中筛选出不可行解或可行解的方法存在以下步骤:
7.根据权利要求6所述候选解处理系统,其特征在于,可行解获取模块用于每当在当前层栅格地图中控制第i个目标点对应的占据概率值相加得到sum(i)时,在第i个目标点所在的数据通道内控制其它激光点数据进行同一轮位置变换操作,以获得第i+1个目标点;
8.根据权利要求6所述候选解处理系统,其特征在于,可行解获取模块用于通过执行步骤24来判断到步骤21进行的一轮位置变换操作对应的候选解是不可行解或可行解后,控制新的一轮位置变换操作更新为步骤21进行的一轮位置变换操作,然后重复执行步骤21至步骤24以控制n个激光点数据在各自所处的数据通道并行进行新的一轮位置变换操作,直至遍历完当前层栅格地图中所有的候选解,且所述n个激光点数据执行完当前层栅格地图中所有候选解对应的位置变换操作,开始遍历下一层栅格地图中的候选解。
9.根据权利要求5所述候选解处理系统,其特征在于,在第一层栅格地图中执行所述步骤1时,可行解获取模块将第一层栅格地图中所有候选解的集合设置为初始的候选解集,并控制激光点数据执行初始的候选解集内的各个候选解对应的一轮位置变换操作,获取对应的目标点,包括目标点的坐标;
10.根据权利要求9所述候选解处理系统,其特征在于,在步骤2中,将已筛选出的可行解设置为下一层栅格地图中的候选解的方式包括:
11.根据权利要求10所述候选解处理系统,其特征在于,每当可行解获取模块将筛选出的一个可行解设置为下一层栅格地图的至少一个候选解,则将激光点数据在下一层栅格地图的候选解对应的位置变换操作中获得的目标点更新为步骤1所述的所有激光点数据在当前遍历的候选解对应的一轮位置变换操作获取的各个目标点,并将激光点数据在下一层栅格地图的候选解对应的位置变换操作中获得的目标点对应的占据概率值更新为步骤1所述的所有激光点数据在当前遍历的候选解对应的一轮位置变换操作获取的各个目标点对应的占据概率值,再将更新出来的各个目标点及其对应的占据概率值写入所述ddr存储器。
12.根据权利要求10所述候选解处理系统,其特征在于,所述状态机控制模块包括突发读控制模块、单次读控制模块和ram读控制模块;可行解获取模块包括位置变换处理模块和坐标遍历模块;定位逻辑电路还包括数据缓存模块;
13.根据权利要求12所述候选解处理系统,其特征在于,每条数据通道中内设一个选择器,位置变换处理模块的内部设置有预设并行数量块存储阵列;
14.根据权利要求13所述候选解处理系统,其特征在于,在ram读控制模块产生的读命令的触发下,所有存储阵列中并行输出由当前遍历到的候选解对应的一轮位置变换操作所得到的目标偏移坐标及其对应的占据概率值,并依次存入所述坐标遍历模块中对应的一份缓冲队列空间内,并配置各份缓冲队列空间并行输入的占据概率值都是对应同一轮位置变换操作得到的目标偏移坐标;其中,所述坐标遍历模块的内部设置多份缓冲队列空间,缓冲队列空间的数量等于数据通道的数量;
15.根据权利要求14所述候选解处理系统,其特征在于,每当对同一个激光点数据进行角度偏转操作,获得新的参考坐标,再对该新的参考坐标进行坐标偏移操作,获得新的目标偏移坐标并索引到对应的占据概率值;一个候选解对应的一轮位置变换操作包括角度偏转操作和坐标偏移操作,坐标偏移操作包括横坐标偏移操作和纵坐标偏移操作;其中,同一轮位置变换操作表示相同类型的角度偏转操作和相同类型的坐标偏移操作;
16.根据权利要求15所述候选解处理系统,其特征在于,所述相同类型的角度偏转操作所需的偏转次数是相同,所述相同类型的坐标偏移操作包括相同类型的横坐标偏移操作和相同类型的纵坐标偏移操作,以使在同一层栅格地图中,经过相同类型的角度偏转操作和相同类型的坐标偏移操作后得到的目标点在同一层栅格地图内相对于执行当前一轮位置变换操作之前的同一个激光点数据都存在相同的位姿关系,其中,相同类型的角度偏转操作涉及到的角度偏转量和相同类型的坐标偏移操作涉及的坐标偏移量对应组成候选解;
17.根据权利要求16所述候选解处理系统,其特征在于,一类型的横坐标偏移操作在分辨率相对高的一层栅格地图中发生的横坐标偏移次数是大于同一类型的横坐标偏移操作在分辨率相对低的一层栅格地图中发生的横坐标偏移次数;激光点数据在分辨率相对低的一层栅格地图执行相同类型的横坐标偏移操作所需的坐标偏移步长是大于激光点数据在分辨率相对高的一层栅格地图执行相同类型的横坐标偏移操作所需的坐标偏移步长;其中,一类型的横坐标偏移操作在分辨率相对高的一层栅格地图的横坐标轴方向上发生的偏移量是等于同一类型的横坐标偏移操作在分辨率相对低的一层栅格地图的横坐标轴方向上发生的偏移量;
18.根据权利要求17所述候选解处理系统,其特征在于,激光点数据在分辨率相对低的一层栅格地图执行相同类型的横坐标偏移操作所需的坐标偏移步长是第一横向步长,激光点数据在分辨率相对高的一层栅格地图执行相同类型的横坐标偏移操作所需的坐标偏移步长是第二横向步长;
19.根据权利要求18所述候选解处理系统,其特征在于,一轮位置变换操作包括:每当所述位置变换处理模块执行过角度偏转操作时,所述位置变换处理模块控制相应的参考坐标先沿着一种坐标轴方向执行一次坐标偏移操作,再沿着另一种坐标轴方向执行一次坐标偏移操作;其中,一种坐标轴方向表示横坐标轴方向时,另一种坐标轴方向表示纵坐标轴方向;一种坐标轴方向表示纵坐标轴方向时,另一种坐标轴方向表示横坐标轴方向。
20.根据权利要求18所述候选解处理系统,其特征在于,所述位置变换处理模块包括预设并行数量个位姿变换单元、预设并行数量个选择器、以及预设并行数量个ram存储单元;所述坐标遍历模块包括预设并行数量个fifo;其中,一个ram存储单元是所述位置变换处理模块的内部设置的一块存储阵列,一个fifo是所述坐标遍历模块的内部设置的一份缓冲队列空间;
21.根据权利要求20所述候选解处理系统,其特征在于,预设并行数量个位姿变换单元,用于在第一层栅格地图中获取到激光点数据时,并行地控制激光点数据以预设角度偏转步长旋转,并从ram存储单元中读取出与当前执行的角度偏转操作所产生的角度偏转量相对应的三角函数值,获取多个参考坐标;
22.根据权利要求21所述候选解处理系统,其特征在于,ram读控制模块还用于通过计数的方式从每个ram存储单元中并行索引出一批由同一轮位置变换操作得到的目标偏移坐标所对应的占据概率值,并触发每个ram存储单元有序地向所述坐标遍历模块内相连接的fifo输出该批由同一轮位置变换操作得到的目标偏移坐标所对应的占据概率值;每一批由同一轮位置变换操作得到的目标偏移坐标所对应的占据概率值的数量是预设定位数量与预设并行数量的比值;
23.根据权利要求22所述候选解处理系统,其特征在于,每个位姿变换单元的内部都设置有一个中间缓存空间;ram读控制模块,用于计数输入当前一个中间缓存空间的激光点数据的数量,并在当前一个中间缓存空间被激光点数据填满时,控制位置变换处理模块将所述数据缓存模块下一次传输过来的激光点数据输入其它序号的位姿变换单元内设的中间缓存空间,直至填满所有位姿变换单元的中间缓存空间,实现各条数据通道都分配到相同数量的激光点数据;
24.根据权利要求23所述候选解处理系统,其特征在于,所述定位逻辑电路还包括写缓存模块;
25.根据权利要求24所述候选解处理系统,其特征在于,所述坐标遍历模块,用于往所述写缓存模块写完当前层栅格地图中所有候选解对应的地图概率和值后、或遍历完当前层栅格地图中所有候选解后,确定完成对当前层栅格地图的遍历,并确定从步骤1确定的候选解集内筛选出可行解集以设置为下一层栅格地图的候选解集,同时将所述预设定位数量个激光点数据在下一层栅格地图中各个候选解对应的地图概率和值单次写入所述写缓存模块.还停止由当前遍历的候选解对应的一轮位置变换操作获取的目标点所对应的占据概率值继续相加。
26.根据权利要求25所述候选解处理系统,其特征在于,所述状态机控制模块产生的控制信号包括所述突发读控制模块产生的突发读命令、所述ram读控制模块产生的读命令、所述单次读控制模块产生的单次读命令、所述单次读控制模块产生的单次写命令以及所述突发写控制模块产生的突发写命令,都支持使用使能信号、计数信号或置位信号表示,且由对应的寄存器配置出;