一种地图构建方法和装置与流程

文档序号:15968419发布日期:2018-11-16 23:19阅读:204来源:国知局

本发明涉及机器人感知技术领域,特别涉及一种地图构建方法和装置。

背景技术

近年来,随着机器人应用的深入,机器人环境感知与定位技术,尤其是大尺度环境下同步定位与制图技术,成为机器人技术发展的重要瓶颈。由于在许多大型环境里,单机器人效率低,任务量小,不能够满足实际需求,多机器人应运而生。多机器人系统相对于其它的分布式系统而言更为复杂,因为它们面对的是不可预测的动态的实际应用环境。多机器人的同步定位与地图创建(simultaneouslocalizationandmapping,slam)问题是基于单个机器人独立探索并绘制地图,最终将多个机器人所获得的地图整合成一张完整的地图。多机器人协同合作能够高效率地完成大区域环境下的同步定位与制图,克服了单机器人效率低的缺点,但是其也面临更多单机器人没有遇到的挑战,如机器人独立构建的地图之间重叠的部分是不知道的,寻找各个地图之间的对应部分进行地图之间的融合是各大公司和机构争相解决的重要问题。



技术实现要素:

本发明提供了一种地图构建方法和装置,以解决现有技术无法准确寻找各个地图之间的重叠部分进行地图融合的问题。

本发明一方面提供了一种地图构建方法,包括:

获取设置于多个子区域的各机器人构建的标示对应子区域地图的点云图,其中,多个子区域是将待建图区域进行划分而成,且相邻子区域之间具有重叠区域;

根据点云图的灰度特征在相邻子区域的点云图中确定至少三组匹配区域,其中同一点云图中的至少三个匹配区域的中心点不在同一直线上,一组匹配区域包含至少一个表示同一标识物的像素点;

根据相邻子区域中匹配区域之间的位姿关系获得相邻子区域的点云图之间的位姿变换参数;

根据位姿变换参数调整相邻子区域的点云图的位姿,以实现相邻子区域地图的融合。

本发明另一方面提供了一种地图构建装置,包括:

点云图获取单元,用于获取设置于多个子区域的各机器人构建的标示对应子区域地图的点云图,其中,多个子区域是将待建图区域进行划分而成,且相邻子区域之间具有重叠区域;

区域匹配单元,用于根据点云图的灰度特征在相邻子区域的点云图中确定至少三组匹配区域,其中同一点云图中的至少三个匹配区域的中心点不在同一直线上,一组匹配区域包含至少一个表示同一标识物的像素点;

参数计算单元,用于根据相邻子区域中所述匹配区域之间的位姿关系获得相邻子区域的点云图之间的位姿变换参数;

地图融合单元,用于根据位姿变换参数调整相邻子区域的点云图的位姿,以实现相邻子区域地图的融合。

本发明的有益效果是:本发明实施例基于点云图的灰度特征确定匹配区域,利用匹配区域之间的位姿关系确定相邻子区域的点云图之间的位姿变换参数,即可准确的获得相邻子区域的点云图之间的重合部分进行地图构建,提升地图构建的准确性。由于本发明实施例只需基于点云图的灰度特征即可获得地图融合的位姿变换参数,无需建立并存储大量拓扑节点的特征信息,因此本发明实施例具有计算量少、计算复杂度低的优势,且利用相邻子区域的点云图之间的匹配区域的位姿关系确定出相邻子区域的点云图之间的位姿变换参数,使得误匹配发生的概率非常小,提高了地图构建的准确性。

附图说明

图1为本发明实施例示出的地图构建方法的流程图;

图2为本发明实施例示出的构建点云图上任一像素点a的第二预设窗口的示意图;

图3为本发明实施例示出的多机器人构建地图的过程示意图;

图4为本发明实施例示出的地图构建装置的结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

本发明的实施例一方面提供一种地图构建方法。

图1为本发明实施例示出的地图构建方法的流程图,如图1所示,本实施例的方法包括:

s110,获取设置于多个子区域的各机器人构建的标示对应子区域地图的点云图,其中,多个子区域是将待建图区域进行划分而成,且相邻子区域之间具有重叠区域。

本实施例相邻子区域之间的重叠区域中包括相同障碍物或边界物等标识物,以使得可以基于这些相同的标识物对机器人自主构建的多个点云图进行融合。

s120,根据点云图的灰度特征在相邻子区域的点云图中确定至少三组匹配区域,其中同一点云图中的至少三个匹配区域的中心点不在同一直线上,一组匹配区域包含至少一个表示同一标识物的像素点。

由于本实施例相邻子区域之间具有重叠区域,因此相邻子区域的点云图中存在重合部分(即在地图上表示同一地理位置范围),本实施例在相邻子区域的点云图的重合部分中可以确定出多组匹配区域。假设第一子区域与第二子区域为相邻子区域,那么第一子区域的第一点云图与第二子区域的第二点云图之间存在重合部分,可以在第一点云图的重合部分中确定出至少三个匹配区域,同样的,在第二点云图上确定出数目相同的匹配区域,第一点云图上的每个匹配区域与第二点云图上的相应匹配区域对应,由此可以根据多个匹配区域之间的位姿关系确定出两个点云图之间的位姿变换参数。

s130,根据相邻子区域中匹配区域之间的位姿关系获得相邻子区域的点云图之间的位姿变换参数。

本实施例在相邻子区域的两张点云图中的任一张中确定出至少三个中心点不在同一直线上的匹配区域,即可根据匹配区域之间的位姿关系确定相邻子区域的点云图之间的位姿变换参数。本实施例的位姿变换参数包括位移参数、旋转角度和/或缩放比例。

可以理解的是,在相邻子区域的两张点云图中的任一张中确定出至少三个中心点不在同一直线上的匹配区域之后,为便于描述,假设第一点云图和第二点云图为相邻子区域的两者点云图,分别在第一点云图和第二点云图上确定出三组中心点不在同一直线上的匹配区域,若第一点云图上的匹配区域a1、a2、a3分别与第二点云图上的匹配区域b1、b2、b3一一对应,那么即可确定第一点云图上的三个匹配区域的中心点与第二点云图上的三个匹配区域的中心点之间的位置关系,由此可以获得上述位姿变换参数。示例性的,将第一点云图上的三个匹配区域的中心点连接形成一个第一三角形,再将第二点云图上的三个匹配区域的中心点连接形成一个第二三角形,可以确定第二三角形相对于第一三角形的位移、旋转角度和/或缩放比例,由此获得本实施例的位姿变换参数。

s140,根据位姿变换参数调整相邻子区域的点云图的位姿,以实现相邻子区域地图的融合。

在获得相邻子区域的点云图的位姿变换参数后,基于该位姿变换参数对相邻子区域的两张点云图中的任一张进行位姿变换,再基于两张点云图的重合部分对两张点云图进行融合,由此对多个子区域的点云图进行融合,实现整个待建图区域的地图构建。

本实施例基于点云图的灰度特征确定匹配区域,利用匹配区域之间的位姿关系确定相邻子区域的点云图之间的位姿变换参数,即可准确的获得相邻子区域的点云图之间的重合部分进行地图构建,提升地图构建的准确性。

由于本实施例只需基于点云图的灰度特征即可获得地图融合的位姿变换参数,无需建立并存储大量拓扑节点的特征信息,因此本发明实施例具有计算量少、计算复杂度低的优势,且利用相邻子区域的点云图之间的匹配区域的位姿关系确定出相邻子区域的点云图之间的位姿变换参数,使得误匹配发生的概率非常小,提高了地图构建的准确性。

为便于描述,本实施例的多个子区域包括相邻的第一子区域和第二子区域。本实施例可以通过下述方法在相邻子区域的点云图中确定至少三组匹配区域:

在对应第一子区域的第一点云图上选择第一预设窗口大小的第一参考区域,并根据第一点云图的灰度特征确定第一参考区域内每个像素点的兴趣值。在对应第二子区域的第二点云图上选择第一预设窗口大小的目标区域,并根据第二子区域的灰度特征确定目标区域内每个像素点的兴趣值。需要说明的是,选择第一参考区域的窗口大小与选择目标区域的窗口大小保持一致,以便于后续将第一参考区域内的每个像素点的兴趣值与目标区域内的每个像素点的兴趣值进行一一对比。

将第一参考区域内每个像素点的兴趣值与目标区域内每个像素点的兴趣值进行对比,当第二点云图上存在一目标区域使目标区域内的每个像素点的兴趣值与第一参考区域内每个像素点的兴趣值相同时,确定目标区域与第一参考区域互为第二点云图和第一点云图的匹配区域,当第二点云图上不存在与第一参考区域内每个像素点的兴趣值相同的目标区域时,在第一点云图上重新选取第一预设窗口大小的第二参考区域,并在第二点云图上重新选择目标区域进行像素点的兴趣值的对比。

本实施例依照上述方法可以在相邻子区域的点云图中确定出至少三组匹配区域。

本实施例通过下述方法计算每个像素点的兴趣值:

针对第一参考区域内的每个像素点,构建以该像素点为中心的第二预设窗口,在第二预设窗口内,获得以该像素点为中心、位于各个预设方向上的目标像素点;本实施例的第二预设窗口小于第一预设窗口,如图2所示,本实施例的像素点的各个预设方向包括该像素点的正上方、正下方、正左方、正右方、左上方、左下方、右上方和右下方八个方向;显然,本实施例的像素点的各个方向也可以是正上方、正下方、正左方、正右方、左上方四个方向,本实施例对此不作具体限定。分别计算每个预设方向上各像素点(包括第二预设窗口内中心位置处的该像素点以及位于同一预设方向上的目标像素点)之间的灰度差异,将各个预设方向中灰度差异的最小值作为该像素点的兴趣值;其中,针对每个预设方向,灰度差异为对应方向上该像素点与相邻于该像素点的目标像素点之间、相邻目标像素点之间灰度差的平方和,或者灰度差异为对应预设方向上该像素点与相邻于该像素点的目标像素点之间、相邻目标像素点之间灰度差的和。

根据本发明的实施例,假设在第一子区域的第一点云图上选择第一预设窗口大小的第一参考区域为m×m的矩形区域,例如选择一个31x31像素点的区域为第一参考区域;本实施例中第一预设窗口为m×m的矩形窗口,m为奇数,以保证第一参考区域在围绕其中心点旋转时,各方向相对于中心点的像素数相同。其中,本实施例根据第一点云图和第二点云图重合部分的大小设定第一预设窗口的大小,第一预设窗口的大小小于重合部分的大小。

在第一点云图上选择第一参考区域后,计算第一参考区域内的每个像素点的兴趣值。本实施例针对第一参考区域内的每个像素点,构建以该像素点为中心的第二预设窗口,实施例的第二预设窗口为n×n的矩形窗口,在第二预设窗口内,获得以该像素点为中心、位于各个预设方向上的目标像素点,再分别计算每个预设方向上相邻目标像素点之间的灰度差异,将灰度差异的最小值作为该像素点的兴趣值。

本实施例以计算图2中的像素点a(c,r)的兴趣值为例进行说明。如图2所述,本实施例假设第二预设窗口为5x5的矩形窗口,计算像素点a的八个主要方向的灰度差异。

其中,像素点a的右下方d1方向的灰度差异为v1,正下方d2方向的灰度差异为v2,正右方d3方向的灰度差异为v3,左下方d4方向的灰度差异为v4,右上方d5方向的灰度差异为v5,左上方d6方向的灰度差异为v6,正左方d7方向的灰度差异为v7,正上方d8方向的灰度差异为v8,其中,灰度差异v1至v8的公式如下:

在上述公式v1至v8中,gx,y表示像素点(x,y)的灰度值,i,j,k均为正数,k=(n-1)/2,n为第二预设窗口的大小。

参考区域内每个像素点的兴趣值为min{v1,v2,v3,v4,v5,v6,v7,v8}。

需要说明的是,本实施例示例性示出参考区域内任一像素点在八个方向上的灰度差异为该像素点a与相邻于该像素点a的目标像素点之间、相邻目标像素点之间灰度差的平方和,实际应用中,参考区域内任一像素点在八个方向上的灰度差异也可以为该像素点a与相邻于该像素点a的目标像素点之间、相邻目标像素点之间灰度差的和,此时图2中像素点a的右下方d1方向的灰度差异

在依据上述公式计算第一参考区域内的每个像素点在第二预设窗口内的八个方向上的灰度差异后,选择这八个灰度差异中的最小值作为该像素点的兴趣值。

本实施例之所以选取最小灰度差异作为参考区域内每个像素点的兴趣值,是因为:处于障碍物边界的点,也是障碍物上最具特征的点,体现在点云图上就是处于边角处的点。举例来说,如果是处于障碍物中心位置的点,无论在哪个方向上其灰度变化都不大,甚至为0,只有处于障碍物边界上的点,在各个方向上的灰度变化较大,体现在上述公式上就是计算得到灰度差异在各个方向上相对较大,因此,像素点在各个方向上的灰度变化最小值可以标识该像素点的特征,因此本实施例选择最小灰度差异作为对应像素点的兴趣值。

在计算第一参考区域内的每个像素点的兴趣值之后,依据相同的方法计算第二点云图上每个像素点的兴趣值,将第一参考区域内的每个像素点的兴趣值与第二点云图上的像素点进行对比,如果第二点云图上存在一个区域(该区域为目标区域),该区域内的每个像素点的兴趣值与第一参考区域每个像素点的兴趣值对应相同,则确定该目标区域与第一参考区域互为匹配区域,如果第二点云图上不存在目标区域,则在第一点云图上重新选取第一预设窗口大小的第二参考区域,并在第二点云图上重新选择目标区域进行像素点的兴趣值的对比。以此在第一点云图和第二点云图上确定出至少三组对应像素点的兴趣值对应相同的匹配区域。

其中,本实施例第一参考区域与第二参考区域内每个像素点的兴趣值均大于预设阈值,用于排除离散点对选择匹配区域的影响。

在依据上面描述的方法获得第一子区域与第二子区域的匹配区域之后,本实施例分别获取第一点云图上每个目标区域的中心点和第二点云图上每个参考区域的中心点,根据第一点云图与第二点云图上每组匹配区域的对应关系,获取每个目标区域的中心点与每个参考区域的中心点之间的点对应关系,根据点对应关系确定第二点云图相对第一点云图之间的位移、旋转角度和/或缩放比例,基于位移、旋转角度和/或缩放比例得到位姿变换参数,并对基于该位置变换参数对第二点云图进行位移、旋转和/或缩放处理,将处理后的第二点云图与第一点云图采用叠加的方式拼接成一张包含第一点云图和第二点云图的大图,使得到的图像无缝平滑,实现两幅地图的融合,依此进行多个点云图的融合,从而构建待建图区域的电子地图。

为详细说明本发明利用多个机器人构建电子地图的过程,本发明通过下述实施例进行说明。

图3为本发明实施例示出的多机器人构建地图的过程示意图,如图3所示,本实施例对电子地图的构建过程如下:

s301,将待建图区域划分成n个子区域,相邻子区域之间具有重叠区域,每个子区域设置一台机器人构建该子区域的点云图,每台机器人将构建的点云图上传到服务器。

本实施例每台机器人设置有唯一身份标识,该唯一身份标识可以标识其构建的点云图,本实施例将每台机器人的身份标识记录在服务器中,使得服务器可以根据该唯一身份标识可以确定两张点云图是否为相邻子区域的点云图。

s302,服务器根据相邻子区域的点云图之间位姿变换参数对相邻子区域的点云图进行融合,依此完成全部子区域的点云图的融合,得到待建图区域的完整地图并下发给每台机器人,使得每台机器人可以根据完整地图进行定位和导航等工作。

本实施例在接收到每台机器人上传到的点云图后,根据构建点云图的机器人的身份标识确定出相邻子区域的点云图,根据点云图的灰度特征在相邻子区域的点云图中确定至少三个匹配区域,根据相邻子区域中匹配区域之间的位姿关系获得相邻子区域的点云图之间的位姿变换参数,以根据位姿变换参数对相邻子区域的点云图进行融合。

如果在某个子区域的区域位置发生变化,或者某个子区域内的物体发生了变化,利用该子区域的机器人重新构建该子区域的点云图,将重新构建的点云图上传到服务器,服务器将此区域的地图替换为重新构建的点云图,以实现电子地图的更新。

本实施例利用多台机器人对待建图区域进行电子地图构建,由于多台机器人各自负责待建图区域的一部分区域,通过对多台机器人构建的点云图进行融合,提高构建地图的效率;如果待建图区域中的一部分小的区域出现了变化,不需要废弃整个地图,仅需重新构建变化区域的点云图,将完整地图中变换区域的地图替换为新构建的点云图即可,加强复用率和灵活性。

本发明的实施例另一方面提供一种地图构建装置。

图4为本发明实施例示出的地图构建装置的结构框图,如图4所示,本实施例的装置包括:

点云图获取单元41,用于获取设置于多个子区域的各机器人构建的标示对应子区域地图的点云图,其中,、多个子区域是将待建图区域进行划分而成,且相邻子区域之间具有重叠区域;

区域匹配单元42,用于根据、点云图的灰度特征在相邻子区域的点云图中确定至少三组匹配区域,其中,同一点云图中的至少三组匹配区域的中心点不在同一直线上,一组匹配区域包含至少一个表示同一标识物的像素点;

参数计算单元43,用于根据相邻子区域中匹配区域之间的位姿关系获得相邻子区域的点云图之间的位姿变换参数;

地图融合单元44,用于根据位姿变换参数调整相邻子区域的点云图的位姿,以实现相邻子区域地图的融合。

本实施例多个子区域包括相邻的第一子区域和第二子区域;相应的,区域匹配单元42包括:

参考区域选择模块,用于在对应第一子区域的第一点云图上选择第一预设窗口大小的第一参考区域,并根据第一点云图的灰度特征确定第一参考区域内每个像素点的兴趣值;

目标区域选择模块,用于在对应第二子区域的第二点云图上选择第一预设窗口大小的目标区域,并根据第二子区域的灰度特征确定目标区域内每个像素点的兴趣值;

区域确定模块,用于将第一参考区域内每个像素点的兴趣值与目标区域内每个像素点的兴趣值进行对比;当第二点云图上存在一目标区域使目标区域内的每个像素点的兴趣值与第一参考区域内每个像素点的兴趣值相同时,确定目标区域与第一参考区域互为第二点云图和第一点云图的匹配区域,当第二点云图上不存在与第一参考区域内每个像素点的兴趣值相同的目标区域时,在第一点云图上重新选取第一预设窗口大小的第二参考区域,并在第二点云图上重新选择目标区域进行像素点的兴趣值的对比。

本实施例中的第一参考区域与第二参考区域内每个像素点的兴趣值均大于预设阈值。

本实施例的区域匹配单元42还包括:兴趣值计算模块,用于针对第一参考区域内的每个像素点,构建以该像素点为中心的第二预设窗口,在第二预设窗口内,获得以该像素点为中心、位于各个预设方向上的目标像素点;分别计算每个预设方向上各像素点之间的灰度差异,将各个预设方向中灰度差异的最小值作为该像素点的兴趣值;其中,针对每个预设方向,所述灰度差异为对应预设方向上该像素点与相邻于该像素点的目标像素点之间、相邻目标像素点之间灰度差的平方和,或者所述灰度差异为对应预设方向上该像素点与相邻于该像素点的目标像素点之间、相邻目标像素点之间灰度差的和。

相应的,本实施例的参数计算单元43,用于分别获取第一点云图上每个目标区域的中心点和第二点云图上每个参考区域的中心点;根据第一点云图与第二点云图上每组匹配区域的对应关系,获取每个目标区域的中心点与每个参考区域的中心点之间的点对应关系;根据点对应关系确定第二点云图相对第一点云图之间的位移、旋转角度和/或缩放比例,基于位移、旋转角度和/或缩放比例得到位姿变换参数。

本发明装置实施例的各单元的具体工作方式可以参见本发明的方法实施例。

本发明的另一个方面提供了一种可读存储介质。

根据本发明实施例,本发明实施例的可读存储介质,存储有可执行指令,可执行指令被处理器执行时以实现前文描述的地图构建方法。

需要说明的是,本发明实施例的可读存储介质,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。完整地图

可读存储介质可以包括计算机程序,该计算机程序可以包括代码/计算机可执行指令,其在由处理器执行时使得处理器执行例如前文所描述的地图构建方法流程及其任何变形。

计算机程序可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序中的代码可以包括一个或多个程序模块。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器执行时,使得处理器可以执行例如上文所描述的地图构建方法流程及其任何变形。

为了便于清楚描述本发明实施例的技术方案,在发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。

以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。

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