一种基于分块化的大规模场景下实时地图构建方法和装置与流程



1.本发明涉及机器人自主定位导航领域,尤其涉及一种基于分块化的大规模场景下实时地图构建方法和装置。


背景技术:



2.智能移动机器人是一类能够通过传感器感知环境和自身状态,实现在有障碍物的环境中面向目标的自主运动,从而完成一定的作业功能的机器人系统。移动机器人导航技术的研究内容主要包括同步定位与地图创建、路径规划等若干方面的内容。其中,地图构建是智能移动机器人能够实现自主运动的重要依据。目前常用的地图包括但不限于拓补地图、栅格地图、路标地图、点云地图、认知地图。拓扑地图使用关键帧作为地图的节点,关键帧之间共同的数据关联作为地图的边,一般用于路径规划,但是由于缺少度量信息,不适用于导航;栅格地图将三维环境空间分割为相互独立、大小相同的立方块,每个立方块代表真实环境中的一个三维空间区域。立方块的值表示三维空间的被占有的概率(即存在障碍物的概率)。栅格地图适用于导航、路径规划、路径探索,且十分容易融合多传感器信息;路标地图使用一系列离散的三维路标描述环境,地图只包含有限数量的路标,因此只需要较少的计算量和存储空间,但是路标必须存在大量显著地特征。点云地图使用大量的三维空间点描述环境,将环境中的所有物体都离散化为稠密的点云,一般可用于定位、导航和避障,甚至能够用于三维重建;认知地图强调将语义概念与地图中的对象联系起来,为地图中的对象赋予更抽象的含义。认知地图是移动机器人更智能地行动、执行更复杂的任务的基础。综上所述,考虑到智能移动机器人有定位、导航、避障的需求,因此使用点云地图和栅格地图更加合适。
3.但是随着环境规模的扩大,构建和使用点云地图和栅格地图所需要的计算量和存储空间会呈现指数级的增加。在机器人平台在硬件设备条件受限条件下,面向大规模场景的点云地图和栅格地图是无法实时构建和应用的。


技术实现要素:



4.为了解决现有技术中存在的上述技术问题,本发明提出了一种基于分块化的大规模场景下实时地图构建方法和装置,其具体技术方案如下:一种基于分块化的大规模场景下实时地图构建方法,包括以下步骤:步骤一,利用机器人平台搭载的传感器构建局部地图;步骤二,遍历局部地图以更新当前地图块及其邻接地图块,将更新后的地图块以图片形式保存到本地磁盘,完成本次更新迭代;步骤三,依据所述传感器构建的最新局部地图,重复步骤二的操作以构建出实时地图。
5.进一步的,所述步骤二,具体包括以下子步骤:步骤2.1,判断局部地图中心是否在当前地图块范围内,如果是,则进入步骤2.2;
如果否,则将当前地图块保存到本地磁盘,并通过地图块初始化模块执行地图块初始化操作,然后进入步骤2.2;步骤2.2,判断局部地图栅格是否在当前地图块范围内,如果是,则用局部地图栅格数据更新当前地图块对应栅格,然后进入步骤2.3;如果否,则通过地图块初始化模块执行地图块初始化操作,将初始化的地图块作为邻接地图块,并更新邻接地图块对应栅格,然后进入步骤2.3;步骤2.3,判断是否遍历局部地图所有栅格。
6.进一步的,所述步骤2.3具体为:如果是遍历局部地图所有栅格,则将当前地图块和邻接地图块保存到本地磁盘,完成本次迭代计算,同时当需要调用地图时,地图调用模块自动加载本地磁盘的地图块数据集并输出地图数据;如果不是遍历局部地图所有栅格,则进入步骤2.1。
7.进一步的,所述的步骤2.1中,在将当前地图块保存到本地磁盘时,文件命名方式为:当前地图块中心x坐标_当前地图块中心y坐标.png,即所述的地图块均在本地磁盘上以图片的形式保存。
8.进一步的,所述的地图块初始化操作,具体为:首先根据局部地图中心位置初始化一个对应地图块替代当前地图块;然后在地图保存的路径上搜索是否包含对应地图块的数据,搜索方式是读取本地磁盘中的文件名后和当前地图块中心对比,如果存在,则将本地磁盘的文件数据加载到当前地图块中,如果不存在,则使用数据为空的当前地图块。
9.进一步的,所述的步骤2.2中,在遍历局部地图的所有栅格更新当前地图块时,如果局部地图栅格超出当前地图块范围,则进行地图边缘处理。
10.进一步的,所述地图边缘处理的具体操作为:调用地图块初始化模块,根据超出当前地图块范围的局部地图栅格,初始化一个与当前地图块相邻的对应地图块,即生成邻接地图块,然后将局部地图的栅格数据更新到对应的邻接地图块中。
11.进一步的,所述的地图调用模块根据所需地图的中心位置和尺寸加载本地磁盘中一个地图块或将多个地图块数据拼接为一个地图块,并输出地图结果。
12.一种基于分块化的大规模场景下实时地图构建装置,包括一个或多个处理器,用于实现所述的一种基于分块化的大规模场景下实时地图构建方法。
13.一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现所述的一种基于分块化的大规模场景下实时地图构建方法。
14.与现有技术相比,本发明具有以下优点:1、通过地图分块化处理的方式,将内存占用转嫁到本地磁盘,内存中仅加载当前处理的地图块,在地图构建阶段和地图调用阶段都能够极大的减少内存消耗,且机器人的任务场景越大,分块化地图构建算法的增益越明显;2、由于每次只处理分块后的地图,当涉及到地图更新和应用时,算法中的搜索范围也被约束在了当前地图块和邻接地图块中,有效减少了计算时间,保证了地图构建和地图调用的实时性;3、在任务场景范围未知的情况下,分块化地图可以随着场景变化而自适应的调整,可扩展性强;4、由于地图文件存储在本地磁盘中,当系统出现故障时(掉电、死机等),地图数据
不会丢失,安全性高。
附图说明
15.图1是本发明的一种基于分块化的大规模场景下实时地图构建方法流程示意图;图2是本发明的分块化地图构建算法流程示意图;图3是本发明的分块化地图本地存储结果示意图;图4是本发明的分块化地图构建方法样例示意图;图5是是本发明的一种基于分块化的大规模场景下实时地图构建装置的结构示意图。
具体实施方式
16.为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
17.如图1所示,本发明的一种基于分块化的大规模场景下实时地图构建方法,将大规模地图分块化处理,具体包括以下步骤:步骤一,利用机器人平台搭载的传感器构建局部地图。
18.步骤二,遍历局部地图以更新当前地图块及其邻接地图块,将更新后的地图块以图片形式保存到本地磁盘,完成本次更新迭代,如图2所示,具体包括以下子步骤:步骤2.1,判断局部地图中心是否在当前地图块范围内,如果是,则进入步骤2.2;如果否,则将当前地图块保存到本地磁盘,并通过地图块初始化模块执行地图块初始化操作,然后进入步骤2.2。
19.在步骤2.1中,当需要将当前地图块保存到本地磁盘时,文件命名方式为“当前地图块中心x坐标_当前地图块中心y坐标.png”,即所述的地图块均在本地磁盘上以图片的形式保存。如图3所示,是分块化地图在本地磁盘中的存储结果示意图,可以发现所有文件名称均表示该地图块文件对应的中心位置。
20.所述的地图块初始化操作,包括:首先根据局部地图中心位置初始化一个对应地图块替代当前地图块;然后在地图保存的路径上搜索是否包含对应地图块的数据,搜索方式是读取本地磁盘中的文件名后和当前地图块中心对比,如果存在,则将本地磁盘的文件数据加载到当前地图块中,如果不存在,则使用数据为空的当前地图块。
21.步骤2.2,判断局部地图栅格是否在当前地图块范围内,如果是,则用局部地图栅格数据更新当前地图块对应栅格,然后进入步骤2.3;如果否,则通过地图块初始化模块执行地图块初始化操作,将初始化的地图块作为邻接地图块,并更新邻接地图块对应栅格,然后进入步骤2.3。
22.在步骤2.2中,在遍历局部地图的所有栅格更新当前地图块时,如果局部地图栅格超出当前地图块范围,则进行地图边缘处理,所述地图边缘处理的具体操作为:调用地图块初始化模块,根据超出当前地图块范围的局部地图栅格,初始化一个与当前地图块相邻的对应地图块,即生成邻接地图块,然后将局部地图的栅格数据更新到对应的邻接地图块中。
23.步骤2.3,判断是否遍历局部地图所有栅格,如果是,则将当前地图块和邻接地图块保存到本地磁盘,完成本次迭代计算,同时当需要调用地图时,地图调用模块自动加载本
地磁盘的地图块数据集并输出符合要求的地图数据;如果否,则进入步骤2.1。
24.所述的地图调用模块具体步骤如下:调用地图数据的其他算法需要输入所需地图的中心位置和尺寸,地图调用模块根据中心位置和尺寸加载本地磁盘中一个地图块或将多个地图块数据拼接为一个地图块,并输出地图结果。
25.步骤三,依据所述传感器构建的最新局部地图,重复步骤二的操作以构建出实时地图。
26.如图4所示,是本发明中分块化地图构建方法样例示意图,该样例中展示了机器人在运动过程中实时的构建了多个地图块。其中黑曲线为机器人运动轨迹,小方框为当前局部地图,其中的空心圆点为局部地图中心(或机器人当前位置);小方框所属的大方框为当前地图块,当前地图块的左侧和上方大方框为邻接地图块,黑的点是对应地图块的中心。
27.与前述一种基于分块化的大规模场景下实时地图构建方法的实施例相对应,本发明还提供了一种基于分块化的大规模场景下实时地图构建装置的实施例。
28.参见图5,本发明实施例提供的一种基于分块化的大规模场景下实时地图构建装置,包括一个或多个处理器,用于实现上述实施例中的一种基于分块化的大规模场景下实时地图构建方法。
29.本发明的一种基于分块化的大规模场景下实时地图构建装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明的一种基于分块化的大规模场景下实时地图构建装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
30.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
31.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
32.本发明还提供一种终端,终端包括相互耦接的处理器和存储器,处理器用于执行存储器存储的程序指令以实现上述任一方法实施例中的步骤或者上述任一方法实施例中客户端对应执行的步骤。该终端除包括上述处理器和存储器之外,还可根据需求包括触摸屏、打印组件、通信电路等,在此不做限定。
33.具体而言,处理器用于控制其自身以及存储器以实现上述任一方法实施例中的步骤。处理器还可以称为cpu(central processing unit,中央处理单元)。处理器可能是一种
集成电路芯片,具有信号的处理能力。处理器还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器可以由多个集成电路芯片共同实现。
34.本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种基于分块化的大规模场景下实时地图构建方法。
35.所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
36.在本发明所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
37.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
38.以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。

技术特征:


1.一种基于分块化的大规模场景下实时地图构建方法,其特征在于,包括以下步骤:步骤一,利用机器人平台搭载的传感器构建局部地图;步骤二,遍历局部地图以更新当前地图块及其邻接地图块,将更新后的地图块以图片形式保存到本地磁盘,完成本次更新迭代;步骤三,依据所述传感器构建的最新局部地图,重复步骤二的操作以构建出实时地图。2.如权利要求1所述的一种基于分块化的大规模场景下实时地图构建方法,其特征在于,所述步骤二,具体包括以下子步骤:步骤2.1,判断局部地图中心是否在当前地图块范围内,如果是,则进入步骤2.2;如果否,则将当前地图块保存到本地磁盘,并通过地图块初始化模块执行地图块初始化操作,然后进入步骤2.2;步骤2.2,判断局部地图栅格是否在当前地图块范围内,如果是,则用局部地图栅格数据更新当前地图块对应栅格,然后进入步骤2.3;如果否,则通过地图块初始化模块执行地图块初始化操作,将初始化的地图块作为邻接地图块,并更新邻接地图块对应栅格,然后进入步骤2.3;步骤2.3,判断是否遍历局部地图所有栅格。3.如权利要求2所述的一种基于分块化的大规模场景下实时地图构建方法,其特征在于,所述步骤2.3具体为:如果是否遍历局部地图所有栅格,则将当前地图块和邻接地图块保存到本地磁盘,完成本次迭代计算,同时当需要调用地图时,地图调用模块自动加载本地磁盘的地图块数据集并输出地图数据;如果不是遍历局部地图所有栅格,则进入步骤2.1。4.如权利要求2所述的一种基于分块化的大规模场景下实时地图构建方法,其特征在于,所述的步骤2.1中,在将当前地图块保存到本地磁盘时,文件命名方式为:当前地图块中心x坐标_当前地图块中心y坐标.png,即所述的地图块均在本地磁盘上以图片的形式保存。5.如权利要求2所述的一种基于分块化的大规模场景下实时地图构建方法,其特征在于,所述的地图块初始化操作,具体为:首先根据局部地图中心位置初始化一个对应地图块替代当前地图块;然后在地图保存的路径上搜索是否包含对应地图块的数据,搜索方式是读取本地磁盘中的文件名后和当前地图块中心对比,如果存在,则将本地磁盘的文件数据加载到当前地图块中,如果不存在,则使用数据为空的当前地图块。6.如权利要求2所述的一种基于分块化的大规模场景下实时地图构建方法,其特征在于,所述的步骤2.2中,在遍历局部地图的所有栅格更新当前地图块时,如果局部地图栅格超出当前地图块范围,则进行地图边缘处理。7.如权利要求6所述的一种基于分块化的大规模场景下实时地图构建方法,其特征在于,所述地图边缘处理的具体操作为:调用地图块初始化模块,根据超出当前地图块范围的局部地图栅格,初始化一个与当前地图块相邻的对应地图块,即生成邻接地图块,然后将局部地图的栅格数据更新到对应的邻接地图块中。8.如权利要求2所述的一种基于分块化的大规模场景下实时地图构建方法,其特征在于,所述的地图调用模块根据所需地图的中心位置和尺寸加载本地磁盘中一个地图块或将多个地图块数据拼接为一个地图块,并输出地图结果。9.一种基于分块化的大规模场景下实时地图构建装置,其特征在于,包括一个或多个处理器,用于实现权利要求1~8中任一项所述的一种基于分块化的大规模场景下实时地图
构建方法。10.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1~8中任一项所述的一种基于分块化的大规模场景下实时地图构建方法。

技术总结


本发明涉及机器人自主定位导航领域,尤其涉及一种基于分块化的大规模场景下实时地图构建方法和装置,该方法包括:步骤一,利用机器人平台搭载的传感器构建局部地图;步骤二,遍历局部地图以更新当前地图块及其邻接地图块,将更新后的地图块以图片形式保存到本地磁盘,完成本次更新迭代;步骤三,依据所述传感器构建的最新局部地图,重复步骤二的操作以构建出实时地图。本发明通过分块化的算法,将内存占用转嫁到本地磁盘,极大的减少了内存的消耗,此外,由于每次只处理分块后的地图,当涉及到地图更新和应用时,搜索范围也被极大的减少了,从而减少了计算时间,采用本发明的方法使得机器人的任务场景越大,分块化地图构建的增益越明显。益越明显。益越明显。


技术研发人员:

周洋 李月华 喻源 黄煌 李谋 刘乃龙

受保护的技术使用者:

北京控制工程研究所

技术研发日:

2022.11.17

技术公布日:

2022/12/23

本文发布于:2024-09-22 13:33:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/48052.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地图   图块   栅格   步骤
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议