二维栅格地图实时更新显示方法、电子设备、存储介质技术

技术编号:32832753 阅读:15 留言:0更新日期:2022-03-26 20:48
本发明专利技术公开了一种二维栅格地图实时更新显示方法、电子设备、存储介质,方法包括:S1、定义变量,变量包括动态矩阵变量、查找二叉树类型变量、数组类型变量和整型类型变量;定义一个查找二叉树类型变量,用于表示建图过程中的栅格占据概率子图;定义两个数组类型变量以保存所有帧的激光点云及对应的激光位姿;定义一个整型类型变量表示子图序列号,并初始化为0;S2、判断是否发生了激光闭环修正位姿;S3、如果未发生闭环修正,则正常生产栅格图;S4、如果发生了闭环修正,则利用保存的栅格子图快速更新整个栅格。本发明专利技术能够在不提高系统硬件成本下更加流畅地实时刷新超大栅格地图。更加流畅地实时刷新超大栅格地图。更加流畅地实时刷新超大栅格地图。

【技术实现步骤摘要】
二维栅格地图实时更新显示方法、电子设备、存储介质


[0001]本专利技术属于地图
,具体涉及一种二维栅格地图实时更新显示方法及装置。

技术介绍

[0002]二维栅格地图作为移动机器人学中导航地图的主要表示方法之一,通过将环境大小划分成一系列的平面栅格,其中每一栅格给定一个可能值,表示该栅格被障碍物占据的概率,从而构建当前环境的栅格地图,用于指导机器人行走。一般根据机器人获取关键帧的实时点云图对栅格地图进行实时更新,所以要得到全面而准确的二维栅格地图,前提是首先获取准确的每帧点云帧的位姿,整套技术过程也称SLAM(同步定位与建图)。
[0003]针对超大场景生成超大栅格地图,存在两个明显的工程问题:
[0004](1)实时更新问题,由于SLAM在未发生闭环修正(检测是否来过该位置)前总是存在累积误差,会导致之前生成的二维栅格地图存在误差。当发生闭环修正整个位姿后,栅格地图需要重新生成,当地图变得很多大,比如公园场景(2公里X2公里),需要实时更新二维栅格地图就变得困难;
[0005](2)保存大栅格占据概率地图占用的内存过大问题,按每个栅格代表0.05m,则表示2公里*2公里的场景,地图尺寸最少需要40000*40000个float类型栅格,需要消耗5.96G内存。
[0006]现有的室外巡逻机器人通常工作在园区、街区、广场、公园等大场景。建图过程中实时生成显示栅格地图,有利于扫图人员生成一张准确的栅格图。目前方法在面对超大栅格地图占内存大,在闭环修正位姿后实时刷新栅格地图问题分别采用:加大工控机的内存大小;加大工控机运算能力或直接离线生成栅格图。上述方法提高了机器人生产成本并降低了用户体验,并非一种优的选择。

技术实现思路

[0007]本申请的一个目的是提供一种二维栅格地图实时更新显示方法的新技术方案,能够有利于二维栅格地图的实时更新显示。
[0008]本专利技术的第一方面,提供了一种二维栅格地图实时更新显示方法,包括以下步骤:S1、定义变量,所述变量包括动态矩阵变量、查找二叉树类型变量、数组类型变量和类型变量,其中,定义所述动态矩阵变量表示二维栅格地图,并将所述矩阵变量的矩阵元素初始化,代表没有被遍历;定义所述查找二叉树类型变量,以用于存储建图过程中的栅格概率子图;定义所述数组类型变量以保存所有帧的激光点云和对应的激光位姿;定义所述类型变量表示子图序列号,并初始化;S2、判断是否发生了闭环修正;S3、如果未发生闭环修正,则生产栅格图;S4、如果发生了闭环修正,则进行闭环修正处理。
[0009]根据本专利技术的一个实施例,步骤S1中,所述动态矩阵变量为Eigen::Matrix<uint8>动态矩阵变量,所述二叉树类型变量为std::map查找二叉树类型变量,所述数组类型变量
为std::vector数组类型变量,所述类型变量为uint8类型变量。
[0010]根据本专利技术的一个实施例,步骤S1中,将所述矩阵变量的矩阵元素全部初始化为127,定义所述类型变量表示子图序列号,并初始化为0。
[0011]根据本专利技术的一个实施例,所述std::vector数组类型变量的数量为两个,两个所述std::vector数组类型变量中的一个用于保存所有帧的激光点云,两个所述std::vector数组类型变量中的另一个用于保存所述激光点云对应的所述激光位姿。
[0012]根据本专利技术的一个实施例,步骤S2中,查询全局回环修正标志位是否置位。
[0013]根据本专利技术的一个实施例,步骤S3包括:S31、通过回调函数接收连续预设帧所述激光点云的数据和对应的所述激光位姿,通过所述点云数据和所述激光位姿计算生成一个栅格概率子图,并且填充对应的所述栅格地图上的占据概率:S32、在计算完成后,将所述栅格概率子图和所述子图序列号同时保存在所述查找二叉树类型变量中;S33、将所述激光点云的数据和对应的所述激光位姿分别保存在所述数组类型变量中;S34、将所述子图序列号加1。
[0014]根据本专利技术的一个实施例,步骤S31中的所述预设帧为10帧。
[0015]根据本专利技术的一个实施例,步骤S4包括:S41、遍历对比闭环修正前的所述激光位姿与闭环修正后的所述激光位姿,找到已经被改变了的激光点云位姿帧,并找到所述激光点云位姿帧对应的栅格概率子图n;S42、将栅格概率子图n经对应的激光点云帧和对应闭环修正后位姿重新生成栅格概率子图n

;S43、将所述栅格地图先减去栅格概率子图n的栅格概率数据,再加上栅格概率子图n

的栅格概率数据,完成所述栅格地图的更新;S44、通过闭环修正后的所述激光位姿替换闭环修正前的所述激光位姿,激光位姿保存在对应的所述数组类型变量中;通过闭环修正后的栅格概率子图替换闭环修正前的栅格概率子图,栅格概率子图保存在对应的所述数组类型变量中。
[0016]本专利技术的第二方面,还提供了一种电子设备,包括:处理器和存储器,在所述存储器中存储有计算机程序指令,其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行上述任一项实施例所述的方法。
[0017]本专利技术的第三方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器运行时,使得所述处理器执行上述任一项实施例所述的方法。
[0018]根据本专利技术实施例的方法,能够在不提高系统硬件成本下能做到更加流畅地实时刷新超大栅格地图的目的。
[0019]通过以下参照附图对本申请的示例性实施例的详细描述,本申请的其它特征及其优点将会变得清楚。
附图说明
[0020]被结合在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且连同其说明一起用于解释本申请的原理。
[0021]图1是本专利技术的一实施例的二维栅格地图实时更新显示方法的流程图;
[0022]图2是本专利技术的又一实施例的二维栅格地图实时更新显示方法的流程图;
[0023]图3是本专利技术实施例的电子设备的工作原理图。
[0024]附图标记:
[0025]电子设备100;
[0026]存储器110;操作系统111;应用程序112;
[0027]处理器120;网络接口130;输入设备140;硬盘150;显示设备160。
具体实施方式
[0028]现在将参照附图来详细描述本申请的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。
[0029]以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何限制。
[0030]对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0031]在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种二维栅格地图实时更新显示方法,其特征在于,包括以下步骤:S1、定义变量,所述变量包括动态矩阵变量、查找二叉树类型变量、数组类型变量和整型类型变量,其中,定义所述动态矩阵变量表示二维栅格地图,并将所述矩阵变量的元素初始化,代表没有被遍历,栅格占据情况未知;定义一个查找二叉树类型变量,用于表示建图过程中的栅格占据概率子图;定义两个数组类型变量以保存所有帧的激光点云和对应的激光位姿;定义所述整型类型变量表示子图序列号,并初始化;S2、判断是否发生了闭环修正;S3、如果未发生闭环修正,则正常生产栅格图;S4、如果发生了闭环修正,则利用保存的栅格子图快速更新整个栅格。2.根据权利要求1所述的方法,其特征在于,步骤S1中,所述动态矩阵变量为Eigen::Matrix<uint8>类型动态矩阵变量,所述栅格占据概率子图变量为std::map查找二叉树类型变量,所述两个数组类型变量为std::vector数组类型变量,所述整型变量为uint8类型变量。3.根据权利要求2所述的方法,其特征在于,步骤S1中,将所述矩阵变量的矩阵元素全部初始化为127,定义所述整型变量表示子图序列号,并初始化为0。4.根据权利要求2所述的方法,其特征在于,所述std::vector数组类型变量的数量为两个,两个所述std::vector数组类型变量中的一个用于保存所有帧的激光点云,两个所述std::vector数组类型变量中的另一个用于保存所述激光点云对应的所述激光位姿。5.根据权利要求1所述的方法,其特征在于,步骤S2中,查询全局回环修正标志位是否置位。6.根据权利要求1所述的方法,其特征在于,步骤S3包括:S31、通过回调函数接收连续预设帧所述激光点云的数据和对应的所...

【专利技术属性】
技术研发人员:袁国斌刘彪柏林舒海燕宿凯沈创芸祝涛剑雷宜辉王恒华
申请(专利权)人:广州高新兴机器人有限公司
类型:发明
国别省市:

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

1