地图更新方法、装置以及计算机可读存储介质与流程

文档序号:18193419发布日期:2019-07-17 05:42阅读:187来源:国知局
地图更新方法、装置以及计算机可读存储介质与流程

本公开涉及计算机技术领域,特别涉及一种地图更新方法、装置以及计算机可读存储介质。



背景技术:

近年来,移动机器人技术发展迅速,应用场景也越来越多。例如无人驾驶汽车路上行驶,巡检机器人巡检,快递机器人送快递,服务机器人为家庭或餐厅服务等。移动机器人的安全运行成为本行业技术人员的重点研究方向之一。

系统地图是机器人对于周围环境进行感知的一种重要工具,在运行过程中机器人根据系统地图可以获知周围环境信息,例如道路、障碍物等。因此,系统滴入的实时准确成为了移动机器人安全运行必不可少的条件。

目前移动机器人创建地图的方法主要有:高精度地图测绘、slam(simultaneouslocalizationandmapping,即时定位与地图构建)。



技术实现要素:

发明人发现:高精度地图是提前测绘,离线存储的方式,不能根据当前环境实时更新,slam技术能够实时创建当前地图,但是计算量巨大,在大部分移动机器人上无法实现。并且slam技术当移动的障碍物例如人、汽车等出现时会被记录在地图中,可能会导致地面上低矮的台阶、路缘石、坑等地面障碍物被暂时遮挡,机器人无法记录地面情况,当移动障碍物走开后,机器人无法及时识别路面情况会导致运行安全问题。另外,由于机器人的传感器设置高度以及测量范围等问题,可能会出现测量盲区,例如当距离地面低矮障碍物较近时,无法准确检测,导致运行安全问题。

本公开所要解决的一个技术问题是:提供一种简单便捷实时创建地图的方案,并且能够准确识别地面低矮固定障碍物,提高机器人运行的安全性。

根据本公开的一些实施例,提供的一种地图更新方法,包括:获取机器人实时测量周围环境的点云数据;在将点云数据投影到待更新栅格地图的情况下,依次将各个点云数据的高度值与待更新栅格地图中对应栅格的高度信息进行比对;在点云数据的高度值低于对应栅格的高度信息情况下,将对应栅格的高度信息更新为点云数据的高度值。

在一些实施例中,地图更新方法还包括:在点云数据的高度值不低于对应栅格的高度信息情况下,保持对应栅格的高度信息不变。

在一些实施例中,地图更新方法还包括:在对应栅格的高度信息为空的情况下,将对应栅格的高度信息设置为点云数据的高度值。

在一些实施例中,在获取机器人测量周围环境的点云数据之前还包括:根据机器人的速度确定待更新栅格地图的尺寸;根据机器人行走的环境确定待更新栅格地图的分辨率。

在一些实施例中,根据机器人的速度确定待更新栅格地图的尺寸包括:将机器人的速度与预设比例的乘积作为待更新栅格地图的尺寸。

在一些实施例中,根据机器人行走的环境确定待更新栅格地图的分辨率包括:根据机器人行走的环境查找对应的预设分辨率,确定为待更新栅格地图的分辨率;其中,机器人行走的环境被划分为不同的类型,并分别对应不同的预设分辨率,机器人行走的环境越复杂,障碍物越多,则对应的预设分辨率越高。

在一些实施例中,在获取机器人实时测量周围环境的点云数据之前还包括:确定机器人当前位置与上一次更新栅格地图时所在的位置的距离;在距离达到距离阈值的情况下,将机器人当前位置作为待更新栅格地图的中心,并执行获取机器人实时测量周围环境的点云数据步骤。

在一些实施例中,地图更新方法还包括:根据各个栅格周围预设范围内栅格的高度信息,去除更新后的栅格地图中的干扰点。

在一些实施例中,各个根据栅格的周围预设范围内栅格的高度信息,去除更新后的栅格地图中的干扰点包括:针对每一个栅格,确定该栅格周围预设范围内所有栅格的高度信息的中值;将该栅格的高度信息更新为中值,以便去除更新后的栅格地图中的干扰点。

根据本公开的另一些实施例,提供的一种地图更新装置,包括:点云数据获取模块,用于获取机器人实时测量周围环境的点云数据。信息比对模块,用于在将点云数据投影到待更新栅格地图的情况下,依次将各个点云数据的高度值与待更新栅格地图中对应栅格的高度信息进行比对;栅格信息更新模块,用于在点云数据的高度值低于对应栅格的高度信息情况下,将对应栅格的高度信息更新为点云数据的高度值。

在一些实施例中,在点云数据的高度值不低于对应栅格的高度信息情况下,对应栅格的高度信息保持不变。

在一些实施例中,栅格信息更新模块还用于在对应栅格的高度信息为空的情况下,将对应栅格的高度信息设置为点云数据的高度值。

在一些实施例中,地图更新装置还包括:地图规格确定模块,用于根据机器人的速度确定待更新栅格地图的尺寸,根据机器人行走的环境确定待更新栅格地图的分辨率。

在一些实施例中,地图规格确定模块用于将机器人的速度与预设比例的乘积作为待更新栅格地图的尺寸,或者,根据机器人行走的环境查找对应的预设分辨率,确定为待更新栅格地图的分辨率;其中,机器人行走的环境被划分为不同的类型,并分别对应不同的预设分辨率,机器人行走的环境越复杂,障碍物越多,则对应的预设分辨率越高。

在一些实施例中,地图更新装置还包括:地图更新触发模块,用于确定机器人当前位置与上一次更新栅格地图时所在的位置的距离,在距离达到距离阈值的情况下,将机器人当前位置作为待更新栅格地图的中心,并触发点云数据获取模块的工作过程。

在一些实施例中,地图更新装置还包括:干扰消除模块,用于根据各个栅格周围预设范围内栅格的高度信息,去除更新后的栅格地图中的干扰点。

在一些实施例中,干扰消除模块用于针对每一个栅格,确定该栅格周围预设范围内所有栅格的高度信息的中值,将该栅格的高度信息更新为中值,以便去除更新后的栅格地图中的干扰点。

根据本公开的又一些实施例,提供的一种地图更新装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器设备中的指令,执行如前述任一个实施例的地图更新方法。

根据本公开的再一些实施例,提供的一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一个实施例的地图更新方法的步骤。

本公开中根据机器人实时测量的周围环境的点云数据更新栅格地图,并且在点云数据的高度值低于对应栅格的高度信息情况下,将对应栅格的高度信息更新为点云数据的高度值,即栅格地图的高度信息保留各次更新过程中测量的最低高度信息,这样针对地面台阶、坑等低矮固定障碍物可以进行准确记录,即使遇到地面固定障碍物被移动障碍物暂时遮挡的情况或者随着机器人移动地面障碍物进入测量盲区的情况,也不会造成机器人无法获知地面信息的问题。本公开的方案简单便捷,并且能够提高机器人运行的安全性。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本公开的一些实施例的地图更新方法的流程示意图。

图2a示出本公开的一些实施例的栅格地图的示意图。

图2b示出本公开的另一些实施例的栅格地图的示意图。

图3示出本公开的另一些实施例的地图更新方法的流程示意图。

图4示出本公开的一些实施例的地图更新装置的结构示意图。

图5示出本公开的另一些实施例的地图更新装置的结构示意图。

图6示出本公开的又一些实施例的地图更新装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

现有技术应用时会遇到地面台阶或坑等被移动障碍物暂时遮挡的情况或者随着机器人移动低矮的地面障碍物进入测量盲区的情况,可能会造成机器人无法准确判断地面低矮固定的障碍物,为机器人的安全运行带来隐患。针对上述问题提出本方案。下面结合图1描述本公开的地图更新方法的一些实施例。

图1为本公开地图更新方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤s102~s106。

步骤s102,获取机器人实时测量周围环境的点云数据。

机器人包括无人驾驶汽车等自动执行工作的装置。

机器人可以通过激光雷达、深度相机等方式获取周围环境的点云数据,也可以将多种方式获取的点云数据进行融合得到更为准确和数据量更大的点云数据。点云数据为三维数据包含三维坐标信息。

步骤s104,在将点云数据投影到待更新栅格地图的情况下,依次将各个点云数据的高度值与待更新栅格地图中对应栅格的高度信息进行比对。

栅格地图由多个栅格组成,不同的栅格对应不同的坐标,并且对应不同的高度信息,可以通过不同的灰度值表示不同的高度信息。将点云数据根据坐标对应关系投影到对应的栅格中包括根据点云数据的高度值将对应的栅格的高度信息进行赋值。

根据机器人实时测量的点云数据会对栅格地图进行动态更新包括每次将各个点云数据的高度值与待更新栅格地图中对应栅格的高度信息进行比对。

步骤s106,在点云数据的高度值低于对应栅格的高度信息情况下,将对应栅格的高度信息更新为点云数据的高度值。

在点云数据的高度值不低于对应栅格的高度信息情况下,保持对应栅格的高度信息不变。在对应栅格的高度信息为空的情况下,将对应栅格的高度信息设置为点云数据的高度值。也就是栅格地图中每个栅格的高度信息均保留历史最低的高度信息。这样只要机器人一次测量到台阶、路缘石、坑等地面低矮障碍物,则会被记录在栅格地图中,无论是否出现移动障碍物遮挡或者低矮障碍物进入测量盲区的情况,都不会影响机器人对这些障碍物的判断。

如图2a和2b所示,为部分栅格地图,实际使用中栅格地图可以采用不同的灰度值表示不同的高度信息。本实施例中为了更加清楚的表达,栅格地图中利用不同的斜线表示不同高度信息。假设如图2a所示,左侧一列栅格表示该处有台阶,用左斜线表示,采用本方案的方法,只要一次更新或创建地图的过程中,机器人测量到该处台阶的点云数据,则会根据点云数据将左侧一列栅格的高度信息赋值为台阶的高度信息。无论台阶是否被其他移动障碍物遮挡或进入测量盲区,由于台阶无法移动,则左侧一列栅格会始终处于表示为左斜线的状态,不会改变。也就是即使出现移动障碍物也不会显示在栅格地图中。

而基于其他现有技术,当左侧一列栅格对应的实际位置出现移动障碍物例如汽车将台阶遮挡时,则会出现如图2b的情况,即机器人将移动障碍物的高度作为栅格高度信息,导致左侧一列栅格高度信息增加,利用双斜线表示。栅格地图中会将每次测出的障碍物保留,不能测出实际的地面环境,当机器人检测到障碍物移开时会忽略地面的低矮障碍物,导致运行安全问题。

根据上述实施例的方法,机器人可以创建地表地图,即地图中只包含地面信息和固定的低矮障碍物的信息,而地图中不包含实际环境中的移动障碍物。这种地表地图作为基础地图对机器人的运行提供指示信息更为准确。可以利用上述实施方法创建地表地图后进一步结合移动障碍物的检测技术使机器人能够更加准确的识别周围的复杂环境,提高运行的安全性。

上述实施例的方法中根据机器人实时测量的周围环境的点云数据更新栅格地图,并且在点云数据的高度值低于对应栅格的高度信息情况下,将对应栅格的高度信息更新为点云数据的高度值,即栅格地图的高度信息保留各次更新过程中测量的最低高度信息,这样针对地面台阶、坑等低矮固定障碍物可以进行准确记录,即使遇到地面固定障碍物被移动障碍物暂时遮挡的情况或者随着机器人移动地面障碍物进入测量盲区的情况,也不会造成机器人无法获知地面信息的问题。上述实施例的方案简单便捷,并且能够提高机器人运行的安全性。

本公开中机器人对于栅格地图可以进行动态实时更新,为确保信息准确性并节省计算量,还可以对局部栅格地图进行更新。下面结合图3描述本公开地图更新方法的另一些实施例。

图3为本公开地图更新方法另一些实施例的流程图。如图3所示,该实施例的方法包括:步骤s302~s326。

步骤s302,机器人确定当前位置与上一次更新栅格地图时所在位置的距离。

机器人可以通过gps系统进行定位,同时可以在gps系统无法接收信号或定位信息不准确时,采用轮速计与陀螺仪进行辅助定位。可以根据机器人移动的距离确定是否更新地图,也可以每获取一帧点云数据则更新一次栅格地图。

步骤s304,判断当前位置与上一次更新栅格地图时所在位置的距离是否达到预设的距离阈值,如果达到则执行步骤s306。

步骤s306,可选的,将机器人当前位置作为待更新栅格地图的中心。

通过滚动栅格地图,由于机器人测量点云数据是基于机器人坐标系,以机器人当前的位置作为待更新栅格地图的中心,便于点云数据与栅格的投影。

步骤s308,确定待更新栅格地图的尺寸和分辨率。

通过确定待更新栅格地图的尺寸可以针对局部地图进行更新。将待更新栅格地图的中心设置机器人当前位置,进一步通过待更新栅格地图的尺寸,则可以划定以机器人为中心一定范围内的局部地图作为待更新栅格地图。

在一些实施例中,可以根据机器人的速度确定待更新栅格地图的尺寸。

进一步,可以将机器人的速度与预设比例的乘积作为待更新栅格地图的尺寸。例如,机器人速度为1m/s,预设比例为10,则待更新栅格地图的尺寸为半径为10m的圆形区域。该预设比例可以是根据机器人测量点云数据的范围、更新栅格地图的速率等综合考虑得到的,使得机器人能够对栅格地图中的每一个栅格信息进行完善,而不会因为移动或点云数据测量不及时导致部分栅格地图无法确定的情况出现。

在一些实施例中,可以根据机器人行走的环境确定待更新栅格地图的分辨率。

进一步,可以根据机器人行走的环境查找对应的预设分辨率,确定为待更新栅格地图的分辨率。

栅格地图的分别率越高显示的信息越全面,准确度越高。可以机器人行走的环境被划分为不同的类型,例如。开阔地段、拥挤地段等。并分别对应不同的预设分辨率。或者,将机器人行走的环境划分为不同的障碍等级,障碍物越多,道路越狭窄,障碍等级越高,对应的预设分辨率也越高。也就是机器人行走的环境越复杂,障碍物越多,则对应的预设分辨率越高。机器人可以根据初始创建栅格地图时地图中显示的障碍物信息,确定行走的环境,进一步确定对应的分辨率。

步骤s308也可以在最开始执行,即创建地图时则确定每次更新地图的尺寸和分辨率。

步骤s310,获取机器人实时测量周围环境的点云数据。

之后从第一个点云数据开始执行以下步骤。

步骤s312,将当前点云数据投影到待更新栅格地图中对应栅格。

步骤s314,判断当前点云数据对应的栅格中是否存在高度信息。如果存在,则执行步骤s316,否则,执行步骤s315。

步骤s315,将当前点云数据的高度值作为对应栅格的高度信息。

步骤s316判断当前点云数据的高度值是否低于待更新栅格地图中对应栅格的高度信息。如果低于,则执行步骤s318,否则,保持对应栅格的高度信息不变。

步骤s318,将对应栅格的高度信息更新为当前点云数据的高度值。

步骤s320,判断是否还存在未投影的点云数据。如果存在,则执行步骤s322,否则,执行步骤s324。

步骤s322,选取一个未投影的点云数据更新为当前点云数据。重新回到步骤s312开始执行。

步骤s324,对更新后的栅格地图进行滤波,去除干扰点。

在一些实施例中,根据各个栅格周围预设范围内栅格的高度信息,去除更新后的栅格地图中的干扰点。

进一步,针对每一个栅格,确定该栅格周围预设范围内所有栅格的高度信息的中值;将该栅格的高度信息更新为中值,以便去除更新后的栅格地图中的干扰点。

由于测量的点云数据存在误差等情况,可能会导致栅格地图中某些栅格出现高度值突变,相对于周围其他栅格高度明显升高或降低,采用上述方法可以将栅格地图这些干扰点进行去除,提高栅格地图的准确性。

步骤s326,输出更新后的局部栅格地图。返回步骤s302重新开始执行。

上述实施例的方法,机器人在移动过程中采集点云数据,并实时更新周围的局部栅格地图,可以降低移动障碍物以及测量盲区对机器人识别地面情况的影响,同时,动态更新提高了栅格地图的准确性,局部地图更新减少了计算量和提高了更新效率,进一步提高机器人运行的安全性。

本公开还提供一种地图更新装置,下面结合图4进行描述。

图4为本公开地图更新装置的一些实施例的结构图。如图4所示,该实施例的装置40包括:点云数据获取模块402,信息比对模块404,栅格信息更新模块406。

点云数据获取模块402,用于获取机器人实时测量周围环境的点云数据。

信息比对模块404,用于在将点云数据投影到待更新栅格地图的情况下,依次将各个点云数据的高度值与待更新栅格地图中对应栅格的高度信息进行比对。

栅格信息更新模块406,用于在点云数据的高度值低于对应栅格的高度信息情况下,将对应栅格的高度信息更新为点云数据的高度值。

在一些实施例中,在点云数据的高度值不低于对应栅格的高度信息情况下,对应栅格的高度信息保持不变。

在一些实施例中,栅格信息更新模块406还用于在对应栅格的高度信息为空的情况下,将对应栅格的高度信息设置为点云数据的高度值。

在一些实施例中,地图更新装置40还可以包括:地图规格确定模块408,用于根据机器人的速度确定待更新栅格地图的尺寸,根据机器人行走的环境确定待更新栅格地图的分辨率。

在一些实施例中,地图规格确定模块408用于将机器人的速度与预设比例的乘积作为待更新栅格地图的尺寸,或者,根据机器人行走的环境查找对应的预设分辨率,确定为待更新栅格地图的分辨率。

机器人行走的环境被划分为不同的类型,并分别对应不同的预设分辨率,机器人行走的环境越复杂,障碍物越多,则对应的预设分辨率越高。

在一些实施例中,地图更新装置40还可以包括:地图更新触发模块410,用于确定机器人当前位置与上一次更新栅格地图时所在的位置的距离,在距离达到距离阈值的情况下,将机器人当前位置作为待更新栅格地图的中心,并触发点云数据获取模块的工作过程。

在一些实施例中,地图更新装置40还可以包括:干扰消除模块412,用于根据各个栅格周围预设范围内栅格的高度信息,去除更新后的栅格地图中的干扰点。

在一些实施例中,干扰消除模块412用于针对每一个栅格,确定该栅格周围预设范围内所有栅格的高度信息的中值,将该栅格的高度信息更新为中值,以便去除更新后的栅格地图中的干扰点。

本公开的实施例中的地图更新装置可各由各种计算设备或计算机系统来实现,下面结合图5以及图6进行描述。

图5为本公开地图更新装置的一些实施例的结构图。如图5所示,该实施例的装置50包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器510中的指令,执行本公开中任意一些实施例中的地图更新方法。

其中,存储器510例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)、数据库以及其他程序等。

图6为本公开地图更新装置的另一些实施例的结构图。如图2所示,该实施例的装置60包括:存储器610以及处理器620,分别与存储器510以及处理器520类似,还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630,640,650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口650为sd卡、u盘等外置存储设备提供连接接口。

根据本公开的一些实施例,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一个实施例的地图更新方法的步骤。

本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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