掌桥专利:专业的专利平台
掌桥专利
首页

一种定位初始化方法、装置和机器人

文献发布时间:2023-06-19 11:19:16


一种定位初始化方法、装置和机器人

技术领域

本公开涉及机器人领域,特别涉及一种机器人定位初始化方法和装置。

背景技术

服务机器人作为灵活、高效的工作载体逐渐活跃在各商场、办公楼、园区等场景,如送餐机器人、清洁机器人等。对于自主定位导航的机器人,地图是帮助机器人描述环境和精确定位的主要工具之一,最常见的地图类型是栅格地图。可以采用SLAM(simultaneouslocalization and mapping,同步定位与建图)方法来构建机器人的地图,即让机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。当机器人工作的环境包括多个楼层时,为了保证机器人在多个楼层间的正常运作,机器人在上下电梯时需要切换各个楼层对应的栅格地图,而且由于电梯关闭、乘梯人等干扰因素,机器人自身很难直接通过扫描匹配等方式在定位初始化,因而需要外部给定机器人在新切换的栅格地图中的位置。目前,对于机器人定位初始化经常采用的做法是在电梯口安装可识别的辅助设备,如二维码、反光板等,来辅助完成初始化工作。但上述做法不够灵活,且需要在场景中进行相应的安装和布置。因此,需要一种更加灵活的机器人定位初始化方法。

发明内容

基于此,有必要针对上述技术问题,提供一种机器人定位初始化方法和装置。

根据本公开的一方面,提供一种机器人定位初始化方法,其特征在于,所述方法包括:

根据机器人在某一楼层地图中电梯区域的地图数据,计算得到电梯的形状;

根据所述电梯的形状确定机器人的乘梯点;

选择电梯区域地图数据质量最高的楼层地图作为参考地图;

以所述乘梯点作为初始值,使用其他楼层的地图与所述参考地图进行扫描匹配,完成对所述其他楼层的地图的坐标转换,获得机器人在其他楼层地图的坐标。

根据本公开的另一方面,提供一种机器人定位初始化装置,其特征在于,所述装置包括:

电梯形状计算模块,用于根据机器人在某一楼层地图中电梯区域的地图数据,计算得到电梯的形状;

乘梯点确定模块,用于根据所述电梯的形状确定机器人的乘梯点;

参考地图选择模块,用于选择电梯区域地图数据质量最高的楼层地图作为参考地图;

扫描匹配模块,用于以所述乘梯点作为初始值,使用其他楼层的地图与所述参考地图进行扫描匹配,完成对所述其他楼层的地图的坐标转换,获得机器人在其他楼层地图的坐标。

可选的,所述的装置,其特征在于,所述电梯形状计算模块还包括:

标注模块,用于在栅格地图中标注电梯区域;

直线拟合模块,用于对所述电梯区域的地图数据进行直线拟合;

边线判断模块,用于判断直线拟合获得的直线是否属于电梯的边线。

可选的,所述的装置,其特征在于,所述直线拟合模块还包括:

提取模块,用于提取一直线方程的局内点数据;

投影和排序模块,用于将所述直线方程的局内点数据投影到所述直线方程上,获得其在直线上的投影点,并对所述投影点进行排序;

直线判断模块,用于根据排序后的投影点计算所述局内点的连续性,判断是否属于正确的直线数据。

上述装置通过直线拟合可以自动获得电梯的形状,从而实现扫描匹配和地图切换。

可选的,所述的装置,其特征在于,所述乘梯点确定模块还包括:

端点确定模块,用于选择和中间线和左边线以及右边线的交叉点,分别作为中间线的左端点和右端点;

垂直平分线计算模块,用于计算中间线的垂直平分线;

乘梯点设定模块,用于设定中间线的垂直平分线上与电梯边线长度相对应的点作为乘梯点。

所述装置通过计算乘梯点,既可以作为各楼层地图扫描匹配的基准,从而实现各楼层地图切换和初始化,乘梯点也可以用作机器人的导航。

可选的,所述的装置,其特征在于,所述参考地图选择模块还包括:

直线拟合评分模块,用于计算电梯边线的直线拟合情况的评分;

夹角评分模块,用于计算电梯的中间线和左边线或右边线之间的夹角情况的评分;

选择模块,用于根据上述评分,选择电梯区域地图数据质量最高的楼层地图作为参考地图。

可选的,所述的装置,其特征在于,所述扫描匹配模块还包括:

中心位置转换模块,用于将各楼层地图的原点坐标转换至电梯区域中心位置;

扫描匹配实施模块,用于以各楼层地图的乘梯点为基准,使用其他楼层地图与参考地图进行扫描匹配;

乘梯点计算模块,用于根据地图数据的坐标变换关系,还原出在原地图坐标原点下的坐标关系,并计算出该楼层的乘梯点坐标。

可选的,所述的装置,其特征在于,所述扫描匹配实施模块,还用于当某一个楼层没有计算得到乘梯点,则以电梯区域的中心位置坐标作为转换的基准,使用其他楼层地图与参考地图进行扫描匹配。

根据本公开的另一方面,提供一种机器人,其特征在于,包括上述任一项所述的机器人定位初始化装置。

根据本公开的另一方面,提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理装置执行时实现上述任意一项所述的机器人定位初始化方法。

本公开的机器人定位初始化方法,根据机器人栅格地图电梯区域的形状,自动计算确定机器人的乘梯点,并使用数据质量较好的楼层的地图数据作为参考地图,使用其他楼层的地图数据与其进行扫描匹配,从而可以实现机器人在上下楼梯时的地图切换以及定位初始化,其他楼层的地图通过扫描匹配后的地图,还可以修正乘梯点,用于机器人导航,因而,本公开的机器人定位初始化方法更加灵活。

附图说明

图1为一实施例的机器人的栅格地图示意图;

图2为一实施例的机器人定位初始化方法200流程图;

图3为一实施例的电梯在地图中的形状示意图;

图4为一实施例的电梯门的中间位置示意图;

图5为一实施例的实施步骤S210的流程图;

图6为一实施例的标注电梯区域示意图;

图7为一实施例的实施步骤S520的流程图;

图8为一实施例的栅格地图中电梯数据质量较低的示意图;

图9为一实施例的确定机器人乘梯点的示意图;

图10为一实施例的实施步骤S220的流程图;

图11为一实施例的实施步骤S230的流程图;

图12为一实施例的实施步骤S240的流程图;

图13为一实施例的楼层地图数据扫描匹配结果的示意图;

图14为一实施例的机器人定位初始化装置的结构框图;

图15为一实施例的电梯形状计算模块1401的结构框图;

图16为一实施例的乘梯点确定模块1402的结构框图;

图17为一实施例的参考地图选择模块1403的结构框图;

图18为一实施例的扫描匹配模块1404的结构框图;

图19为一实施例的机器人的结构框图。

具体实施方式

下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。

本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

图1示出本公开一实施例的机器人的栅格地图示意图。机器人工作区域包括多个楼层,每个楼层有对应的栅格地图,在图1中,示例性地包括楼层1的地图1和楼层2的地图2。机器人在地图中的坐标为P,地图的原点坐标为O

图2示出根据本公开一实施例的机器人定位初始化方法200流程图,如图2所示,本公开提供的机器人定位初始化方法200可以包括以下步骤:

步骤S210,根据机器人在某一楼层地图中电梯区域的地图数据,计算得到电梯的形状;

本实施中,可以采用常规的方法获得机器人在某一楼层的地图,例如,采用SLAM(simultaneous localization and mapping,同步定位与建图)方法来构建机器人的栅格地图。本实施例注意到这样一个事实,电梯在各个楼层的地图中的位置应当是相同的,而且电梯的形状也是特定的(一般为矩形),所以,可以使用某一个楼层电梯区域的地图数据作为基准,使用其他楼层的地图数据与其进行匹配和修正,就可以实现不同楼层的地图数据之间的坐标转换,从而使得机器人在上下电梯时可以完成不同楼层地图的切换和定位初始化。因此,本实施例首先需要获得电梯在地图中的位置和形状。

电梯在地图平面中的形状一般都为矩形,参见图3,可以认为电梯在地图中的形状由左直线31、右直线32,和与其垂直的中间线33这3条边线组成。因此,只要确定电梯的上述3条边线,就可以确定电梯在地图中的形状。本实施例中可以采用直线拟合算法对栅格地图数据进行计算,从而获得电梯的3条边线,例如可以采用RANSAC(RAndom SAmpleConsensus,随机采样一致)算法提取直线特征,并判断是否为电梯的3条边线,具体过程将在以下实施例中详述。

步骤S220,根据所述电梯的形状确定机器人的乘梯点;

如前所述,采用电梯区域的地图数据作为不同楼层的地图之间坐标转换的基准,使用其他楼层的地图数据与其进行匹配和修正,而匹配算法需要由一个初始点开始进行,作为匹配的初始值。同时,为了保证机器人能安全进入电梯,需要保证机器人进入电梯的位置,即乘梯点,尽量位于电梯门的中间位置。目前,主要采用手动标定的方式标注乘梯点。参见图4,本实施例中,由于已经在步骤S210中获得了电梯的矩形形状,所以可以计算得出电梯门的中间位置41,因此,本实施例中,可以通过对电梯区域的地图数据的计算得到所述电梯门的中间位置41,并将其设为机器人的乘梯点,具体过程将在以下实施例中详述。同时,该乘梯点也可以作为机器人不同楼层的地图相互匹配的初始值。

步骤S230,选择电梯区域地图数据质量最高的楼层地图作为参考地图;

本实施例中,机器人工作的区域包括多个楼层,每一个楼层都具有对应的栅格地图。为了使得作为不同楼层的地图坐标切换的基准是尽量准确的,需要选择数据质量最高的地图作为参考地图。如上所述,本实施例首先对电梯区域的栅格地图数据进行直线拟合获得电梯的3条边线,之后再将计算得到的电梯门中间位置设为乘梯点,并以该乘梯点作为其他楼层地图匹配的初始点。所以本实施例可以根据电梯区域的栅格地图的数据质量,例如,可以判断电梯的3条边线的直线拟合的情况,判断该楼层地图的数据质量,将数据质量最高的楼层的地图,作为其他楼层坐标变换的参考地图。判断电梯区域地图数据的直线拟合的数据质量可以采用多种方式,本公开将在后续实施例中详述。

步骤S240,以所述乘梯点作为初始值,使用其他楼层的地图与所述参考地图进行扫描匹配,完成对所述其他楼层的地图的坐标转换,获得机器人在其他楼层地图的坐标。

本实施中,以数据质量最高的参考地图作为基准,并以所述乘梯点作为初始值,使用其他平面的电梯数据与参考地图进行扫描匹配(scan-match),就可以完成对所述其他楼层的地图的坐标转换,即实现了机器人在上下楼梯时在不同楼层的地图之间的切换,并可以获得机器人在切换后的地图中的坐标,即实现了机器人的定位初始化。扫描匹配(scan-match)方法是常见的机器人姿态估计优化的方法,该方法常使用在机器人的二维SLAM中,通过利用点云数据和栅格地图进行匹配,来修正机器人的位姿。本实施中利用其他楼层的地图数据与数据质量最高的楼层的地图数据进行匹配,从而修正其他楼层的地图数据,并完成地图坐标的变换。本公开将在后续实施例中介绍扫描匹配的具体方法。

图5示出根据本公开一实施例的实施步骤S210的流程图,如图5所示,步骤S210又可以包括以下步骤:

步骤S510,在栅格地图中标注电梯区域;

本实施例中,可以在各个楼层的栅格地图中标注出电梯区域,例如,参考图6,可以采用外包矩形框(Bounding Box)61来标注电梯区域。外包矩形框61是包含电梯区域的最小矩形,应当涵盖电梯区域的栅格点数据。同一楼层中可能包含多部电梯,应当为每部电梯指定序号,并且使得在各个楼层的地图中同一部电梯具有相同的序号。

步骤S520,对所述电梯区域的地图数据进行直线拟合;

参见图3,可以认为电梯区域中的地图数据主要由左直线31、右直线32,和中间线33这3条相互垂直的直线组成。因此,可以对电梯区域中的地图数据通过提取出直线特征,进行直线拟合,从而获得电梯的3条边线。

参见图7,步骤S520又可以包括以下步骤:

步骤S5201,采用RANSAC算法提取一直线方程的局内点数据;

RANSAC算法的基本假设是数据由“局内点”组成,其分布符合特定的数据模型,而“局外点”是不能适应该模型的数据,除此之外的数据属于噪声。本实施例中,数据模型为直线方程ax+by+c=0。其中,x为直线上点的横坐标,y为直线上点的纵坐标,a,b,c分别为直线的系数。因而,可以采用RANSAC算法提取该直线方程的局内点数据。

步骤S5202,将所述直线方程的局内点数据投影到所述直线方程上,获得其在直线上的投影点,并对所述投影点进行排序;

将由上述步骤S5201计算得到的局内点投影到所述直线方程上,计算出其在直线上的投影点,并对该投影点进行排序。示例性的,可以根据直线方程ax+by+c=0中系数a和系数b的大小比较来选择是按照投影点的横坐标x还是纵坐标y,对投影点进行排序。若系数a大于系数b,则选择按照横坐标x对各局内点在直线方程上的投影点进行排序,反之,则按照纵坐标y,对各局内点在直线方程上的投影点进行排序。

步骤S5203,根据排序后的投影点计算所述局内点的连续性,判断是否属于正确的直线数据;

示例性地,首先,判断排序后的两个相邻的投影点之间的距离是否小于一定的阈值d,如果小于阈值d,则为连续的局内点。其次,判断由该直线方程上连续的局内点所形成的直线的长度是否小于一定的阈值D。如果小于阈值D,则表明该直线不是电梯的一条边线,舍弃该直线。如果该直线方程上连续的局内点所形成的直线的长度大于阈值D,则认为该直线为一条正确的直线,有可能是电梯的3条边线之一。重复上述步骤,从而获得其他正确的直线数据。

步骤S530,判断直线拟合获得的直线是否属于电梯的边线;

本实施例中,通过步骤S520进行直线拟合获得直线之后,可以通过直线间的夹角关系,判断是否属于电梯的3条边线之一。电梯区域的3条直线之间的夹角应当接近90度或者0度,若是接近90度,则判断该直线为三条直线的中的一条。若接近0度,则需判断该直线与正确的直线间的距离是否大于一定的阈值T。如果大于一定的阈值T,则说明该直线为电梯的左边线或右边线,否则,则可以认为该直线是由于地图质量过低,导致电梯的某一条边线太厚而被误识别为两条直线。例如,参见图8,其中示出了栅格地图中电梯的中间线71的数据质量较低的示意图。

步骤S540,重复上述步骤,直到获得电梯的3条边线。

重复上述步骤,就可以由电梯区域的地图数据计算得到电梯的3条边线。

可选地,参见图3,由于左边线31和右边线32的信息量更多,本实施例还可以通过电梯的左边线31和右边线32,修正中间线33的计算结果。例如,对于中间线33,其和左边线31和右边线32的夹角大于一定的阈值,而左边线31和右边线32的角度差小于一定的阈值。当左边线31和右边线32的角度小于一个更加严格的阈值时,可以认为左边线31和右边线32相互平行,其数据质量更高,可以用来修正中间线33。示例性的,如电梯的左边线31的直线方程为:

A

右边线32的直线方程为:

A

则可以修正中间线33的直线方程为:

A

其中,A

B

上述A

图9示出了本公开一实施例确定机器人乘梯点的示意图,图10示出根据本公开一实施例的实施步骤S220的流程图,如图10所示,步骤S220又可以包括以下步骤:

步骤S1010,选择和中间线33和左边线31以及右边线32的交叉点,分别作为中间线33的左端点A和右端点B;

参见图9,其示出了通过电梯区域的地图数据获得中间线的左端点A和右端点B。

步骤S1020,计算中间线33的垂直平分线91;

参见图9,其示出了通过电梯区域的地图数据获得中间线的垂直平分线91。

步骤S1030,设定中间线33的垂直平分线上与电梯边线长度相对应的点作为乘梯点92。

参见图9,其示出了通过电梯区域的地图数据获得乘梯点92。

图11示出根据本公开一实施例的实施步骤S230的流程图,为了评价电梯区域栅格地图的数据质量,可以根据电梯区域直线拟合的情况,以及直线拟合获得的中间线33和左边线31或右边线32之间的夹角情况,判断电梯区域的三个地图的数据质量,如图11所示,步骤S230又可以包括以下步骤:

步骤S1110,计算电梯边线的直线拟合情况的评分;

示例性的,可以采用以下式计算电梯的3条边线的直线拟合情况的评分:

其中score1表示电梯的3条边线之一的直线拟合评分,i表示直线中的第i个点,n为直线上的点的个数,dist表示该点到直线的距离,threshold为直线拟合后点到直线的最远距离。

步骤S1120,计算电梯的中间线33和左边线31或右边线32之间的夹角情况的评分;

示例性的,可以采用以下式计算电梯的中间线33和左边线31或右边线32之间的夹角情况的评分:

其中score2表示电梯的中间线33和左边线31,或中间线33和右边线32之间的夹角情况的评分,θ为中间线33和左边线31,或中间线33和右边线32之间的夹角。

步骤S1130,根据上述评分,选择电梯区域地图数据质量最高的楼层地图作为参考地图;

本实施例可以将上述评分进行线性组合,作为最终的电梯区域的栅格地图的质量的评分。本实施不限定对评分进行组合的方式,例如,可以选取其中1个或多个评分进行组合。

一个楼层可能有多个电梯,对栅格地图中所有电梯区域的数据质量进行评分,从而选择出电梯区域数据质量最高的楼层地图,并以此作为参考地图。

图12示出根据本公开一实施例的实施步骤S240的流程图,如图12所示,步骤S240又可以包括以下步骤:

步骤S1210,将各楼层地图的原点坐标转换至电梯区域中心位置;

本实施中可以将各楼层地图的原点坐标转换至电梯区域中心位置。假设各楼层的栅格地图中电梯区域数据的点i的坐标为P

如果以T

P

通过上式,即可将作为基准的参考地图和其他楼层的地图的原点坐标都转换至电梯区域的中心位置。

步骤S1220,以各楼层地图的乘梯点为基准,使用其他楼层地图与参考地图进行扫描匹配;

在本实施例中,通过以上步骤已经计算出机器人在各楼层的地图中的乘梯点,而且应当认为该乘梯点的坐标在各地图中的坐标是一致的。设乘梯点E与参考地图的电梯区域中心位置C

T

由于在步骤S1210中,已经将各楼层地图的原点坐标转换至电梯区域中心位置,所以由上式就可以实现其他楼层地图的原点坐标和参考地图的原点坐标之间的转换,并以此作为各楼层地图扫描匹配的初始值,完成其他楼层地图与参考地图之间的扫描匹配。

可选地,本实施例中可以选择较小的匹配参数和较高的分辨率进行扫描匹配。

可选地,如果某一个楼层没有计算得到乘梯点,则可以以电梯区域的中心位置坐标作为转换的基准,同时选择较大的匹配参数和较低的分辨率进行初步的扫描匹配,在得到较好的值之后,再选择较小的匹配参数和较高的分辨率进行二次匹配,从而获得最终的结果。

步骤S1230,根据地图数据的坐标变换关系,还原出在原地图坐标原点下的坐标关系,并计算出该楼层的乘梯点坐标。

本实施例中,由于使用其他楼层的地图与参考地图进行扫描匹配,所以根据质量较高的楼层地图的数据,修正其他楼层地图的数据。在其他楼层地图数据完成扫描匹配之后,可以还原出在该楼层地图原地图坐标原点下的坐标关系,还可以重新计算该楼层地图的机器人乘梯点。该乘梯点可以作为机器人导航使用。

图13为各楼层地图数据扫描匹配结果的示意图,其中黑色为参考地图数据,而灰色为其他楼层待优化的地图数据。

图14示出根据本公开一实施例的机器人定位初始化装置14的结构框图,如图14,本公开提供的机器人定位初始化装置14可以包括以下模块:

电梯形状计算模块1401,用于根据机器人在某一楼层地图中电梯区域的地图数据,计算得到电梯的形状;

本实施中,可以采用常规的方法获得机器人在某一楼层的地图,例如,采用SLAM(simultaneous localization and mapping,同步定位与建图)方法来构建机器人的栅格地图。本实施例注意到这样一个事实,电梯在各个楼层的地图中的位置应当是相同的,而且电梯的形状也是特定的(一般为矩形),所以,可以使用某一个楼层电梯区域的地图数据作为基准,使用其他楼层的地图数据与其进行匹配和修正,就可以实现不同楼层的地图数据之间的坐标转换,从而使得机器人在上下电梯时可以完成不同楼层地图的切换和定位初始化。因此,本实施例首先需要获得电梯在地图中的位置和形状。

电梯在地图平面中的形状一般都为矩形,参见图3,可以认为电梯在地图中的形状由左直线31、右直线32,和与其垂直的中间线33这3条边线组成。因此,只要确定电梯的上述3条边线,就可以确定电梯在地图中的形状。本实施例中可以采用直线拟合算法对栅格地图数据进行计算,从而获得电梯的3条边线,例如可以采用RANSAC(RAndom SAmpleConsensus,随机采样一致)算法提取直线特征,并判断是否为电梯的3条边线,具体过程将在以下实施例中详述。

乘梯点确定模块1402,用于根据所述电梯的形状确定机器人的乘梯点;

如前所述,采用电梯区域的地图数据作为不同楼层的地图之间坐标转换的基准,使用其他楼层的地图数据与其进行匹配和修正,而匹配算法需要由一个初始点开始进行,作为匹配的初始值。同时,为了保证机器人能安全进入电梯,需要保证机器人进入电梯的位置,即乘梯点,尽量位于电梯门的中间位置。目前,主要采用手动标定的方式标注乘梯点。参见图4,本实施例中,由于已经在电梯形状计算模块1401中获得了电梯的矩形形状,所以可以计算得出电梯门的中间位置41,因此,本实施例中,可以通过对电梯区域的地图数据的计算得到所述电梯门的中间位置41,并将其设为机器人的乘梯点,具体过程将在以下实施例中详述。同时,该乘梯点也可以作为机器人不同楼层的地图相互匹配的初始值。

参考地图选择模块1403,用于选择电梯区域地图数据质量最高的楼层地图作为参考地图;

本实施例中,机器人工作的区域包括多个楼层,每一个楼层都具有对应的栅格地图。为了使得作为不同楼层的地图坐标切换的基准是尽量准确的,需要选择数据质量最高的地图作为参考地图。如上所述,本实施例首先对电梯区域的栅格地图数据进行直线拟合获得电梯的3条边线,之后再将计算得到的电梯门中间位置设为乘梯点,并以该乘梯点作为其他楼层地图匹配的初始点。所以本实施例可以根据电梯区域的栅格地图的数据质量,例如,可以判断电梯的3条边线的直线拟合的情况,判断该楼层地图的数据质量,将数据质量最高的楼层的地图,作为其他楼层坐标变换的参考地图。判断电梯区域地图数据的直线拟合的数据质量可以采用多种方式,本公开将在后续实施例中详述。

扫描匹配模块1404,用于以所述乘梯点作为初始值,使用其他楼层的地图与所述参考地图进行扫描匹配,完成对所述其他楼层的地图的坐标转换,获得机器人在其他楼层地图的坐标。

本实施中,以数据质量最高的参考地图作为基准,并以所述乘梯点作为初始值,使用其他平面的电梯数据与参考地图进行扫描匹配(scan-match),就可以完成对所述其他楼层的地图的坐标转换,即实现了机器人在上下楼梯时在不同楼层的地图之间的切换,并可以获得机器人在切换后的地图中的坐标,即实现了机器人的定位初始化。扫描匹配(scan-match)方法是常见的机器人姿态估计优化的方法,该方法常使用在机器人的二维SLAM中,通过利用点云数据和栅格地图进行匹配,来修正机器人的位姿。本实施中利用其他楼层的地图数据与数据质量最高的楼层的地图数据进行匹配,从而修正其他楼层的地图数据,并完成地图坐标的变换。本公开将在后续实施例中介绍扫描匹配的具体方法。

图15示出根据本公开一实施例的所述电梯形状计算模块1401的结构框图,如图15,本公开提供的电梯形状计算模块1401可以包括以下模块:

标注模块1501,用于在栅格地图中标注电梯区域;

本实施例中,可以在各个楼层的栅格地图中标注出电梯区域,例如,参考图6,可以采用外包矩形框(Bounding Box)61来标注电梯区域。外包矩形框61是包含电梯区域的最小矩形,应当涵盖电梯区域的栅格点数据。同一楼层中可能包含多部电梯,应当为每部电梯指定序号,并且使得在各个楼层的地图中同一部电梯具有相同的序号。

直线拟合模块1502,用于对所述电梯区域的地图数据进行直线拟合;

参见图3,可以认为电梯区域中的地图数据主要由左直线31、右直线32,和中间线33这3条相互垂直的直线组成。因此,可以对电梯区域中的地图数据通过提取出直线特征,进行直线拟合,从而获得电梯的3条边线。

参见图15,所述直线拟合模块1502又可以包括以下模块:

提取模块15021,用于采用RANSAC算法提取一直线方程的局内点数据;

RANSAC算法的基本假设是数据由“局内点”组成,其分布符合特定的数据模型,而“局外点”是不能适应该模型的数据,除此之外的数据属于噪声。本实施例中,数据模型为直线方程ax+by+c=0。其中,x为直线上点的横坐标,y为直线上点的纵坐标,a,b,c分别为直线的系数。因而,可以采用RANSAC算法提取该直线方程的局内点数据。

投影和排序模块15022,用于将所述直线方程的局内点数据投影到所述直线方程上,获得其在直线上的投影点,并对所述投影点进行排序;

将由上述提取模块15021计算得到的局内点投影到所述直线方程上,计算出其在直线上的投影点,并对该投影点进行排序。示例性的,可以根据直线方程ax+by+c=0中系数a和系数b的大小比较来选择是按照投影点的横坐标x还是纵坐标y,对投影点进行排序。若系数a大于系数b,则选择按照横坐标x对各局内点在直线方程上的投影点进行排序,反之,则按照纵坐标y,对各局内点在直线方程上的投影点进行排序。

直线判断模块15023,用于根据排序后的投影点计算所述局内点的连续性,判断是否属于正确的直线数据;

示例性地,首先,判断排序后的两个相邻的投影点之间的距离是否小于一定的阈值d,如果小于阈值d,则为连续的局内点。其次,判断由该直线方程上连续的局内点所形成的直线的长度是否小于一定的阈值D。如果小于阈值D,则表明该直线不是电梯的一条边线,舍弃该直线。如果该直线方程上连续的局内点所形成的直线的长度大于阈值D,则认为该直线为一条正确的直线,有可能是电梯的3条边线之一。重复上述步骤,从而获得其他正确的直线数据。

本公开提供的电梯形状计算模块1401可以包括以下模块:

边线判断模块1503,用于判断直线拟合获得的直线是否属于电梯的边线。

本实施例中,通过直线拟合模块1502进行直线拟合获得直线之后,可以通过直线间的夹角关系,判断是否属于电梯的3条边线之一。电梯区域的3条直线之间的夹角应当接近90度或者0度,若是接近90度,则判断该直线为三条直线的中的一条。若接近0度,则需判断该直线与正确的直线间的距离是否大于一定的阈值T。如果大于一定的阈值T,则说明该直线为电梯的左边线或右边线,否则,则可以认为该直线是由于地图质量过低,导致电梯的某一条边线太厚而被误识别为两条直线。例如,参见图8,其中示出了栅格地图中质量较低的电梯的中间线71。

本实施例中,通过上述模块的重复计算,就可以由电梯区域的地图数据计算得到电梯的3条边线。

可选地,参见图3,由于左边线31和右边线32的信息量更多,本实施例还可以通过电梯的左边线31和右边线32,修正中间线33的计算结果。例如,对于中间线33,其和左边线31和右边线32的夹角大于一定的阈值,而左边线31和右边线32的角度差小于一定的阈值。当左边线31和右边线32的角度小于一个更加严格的阈值时,可以认为左边线31和右边线32相互平行,其数据质量更高,可以用来修正中间线33。示例性的,如电梯的左边线31的直线方程为:

A

右边线32的直线方程为:

A

则可以修正中间线33的直线方程为:

A

其中,A

B

上述A

图16示出根据本公开一实施例的所述乘梯点确定模块1402的结构框图,如图16,本公开提供的乘梯点确定模块1402可以包括以下模块:

端点确定模块1601,用于选择和中间线33和左边线31以及右边线32的交叉点,分别作为中间线33的左端点A和右端点B;

参见图9,其示出了通过电梯区域的地图数据获得中间线的左端点A和右端点B。

垂直平分线计算模块1602,用于计算中间线33的垂直平分线91;

参见图9,其示出了通过电梯区域的地图数据获得中间线的垂直平分线91。

乘梯点设定模块1603,用于设定中间线33的垂直平分线上与电梯边线长度相对应的点作为乘梯点92。

参见图9,其示出了通过电梯区域的地图数据获得乘梯点92。

图17示出根据本公开一实施例的所述参考地图选择模块1403的结构框图,为了评价电梯区域栅格地图的数据质量,可以根据电梯区域直线拟合的情况,以及直线拟合获得的中间线33和左边线31或右边线32之间的夹角情况,判断电梯区域的三个地图的数据质量,如图17,本公开提供的参考地图选择模块1403可以包括以下模块:

直线拟合评分模块1701,用于计算电梯边线的直线拟合情况的评分;

示例性的,可以采用以下式计算电梯的3条边线的直线拟合情况的评分:

其中score1表示电梯的3条边线之一的直线拟合评分,i表示直线中的第i个点,n为直线上的点的个数,dist表示该点到直线的距离,threshold为直线拟合后点到直线的最远距离。

夹角评分模块1702,用于计算电梯的中间线33和左边线31或右边线32之间的夹角情况的评分;

示例性的,可以采用以下式计算电梯的中间线33和左边线31或右边线32之间的夹角情况的评分:

其中score2表示电梯的中间线33和左边线31,或中间线33和右边线32之间的夹角情况的评分,θ为中间线33和左边线31,或中间线33和右边线32之间的夹角。

选择模块1703,用于根据上述评分,选择电梯区域地图数据质量最高的楼层地图作为参考地图;

本实施例可以将上述评分进行线性组合,作为最终的电梯区域的栅格地图的质量的评分。本实施不限定对评分进行组合的方式,例如,可以选取其中1个或多个评分进行组合。

一个楼层可能有多个电梯,对栅格地图中所有电梯区域的数据质量进行评分,从而选择出电梯区域数据质量最高的楼层地图,并以此作为参考地图。

图18示出根据本公开一实施例的所述扫描匹配模块1404的结构框图,如图18,本公开提供的扫描匹配模块1404可以包括以下模块:

中心位置转换模块1801,用于将各楼层地图的原点坐标转换至电梯区域中心位置;

本实施中可以将各楼层地图的原点坐标转换至电梯区域中心位置。假设各楼层的栅格地图中电梯区域数据的点i的坐标为P

如果以T

P

通过上式,即可将作为基准的参考地图和其他楼层的地图的原点坐标都转换至电梯区域的中心位置。

扫描匹配实施模块1802,用于以各楼层地图的乘梯点为基准,使用其他楼层地图与参考地图进行扫描匹配;

在本实施例中,通过以上步骤已经计算出机器人在各楼层的地图中的乘梯点,而且应当认为该乘梯点的坐标在各地图中的坐标是一致的。设乘梯点E与参考地图的电梯区域中心位置C

T

由于中心位置转换模块1801,已经将各楼层地图的原点坐标转换至电梯区域中心位置,所以由上式就可以实现其他楼层地图的原点坐标和参考地图的原点坐标之间的转换,并以此作为各楼层地图扫描匹配的初始值,完成其他楼层地图与参考地图之间的扫描匹配。

可选地,本实施例中可以选择较小的匹配参数和较高的分辨率进行扫描匹配。

可选地,如果某一个楼层没有计算得到乘梯点,则可以以电梯区域的中心位置坐标作为转换的基准,同时选择较大的匹配参数和较低的分辨率进行初步的扫描匹配,在得到较好的值之后,再选择较小的匹配参数和较高的分辨率进行二次匹配,从而获得最终的结果。

乘梯点计算模块1803,用于根据地图数据的坐标变换关系,还原出在原地图坐标原点下的坐标关系,并计算出该楼层的乘梯点坐标。

本实施例中,由于使用其他楼层的地图与参考地图进行扫描匹配,所以根据质量较高的楼层地图的数据,修正其他楼层地图的数据。在其他楼层地图数据完成扫描匹配之后,可以还原出在该楼层地图原地图坐标原点下的坐标关系,还可以重新计算该楼层地图的机器人乘梯点。该乘梯点可以作为机器人导航使用。

图19示出根据本公开一实施例的机器人19的结构框图,所述机器人19可以包括处理器1901、传感器1902、存储器1903、输出装置1904、清洁部件1905等部件,还包括上述机器人定位初始化装置14。上述部件可以通过总线或其他方式连接,图19以通过总线为例。

参见图19,在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1903,上述计算机程序指令可由处理器1901执行以完成上述机器人定位初始化方法200。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。

进一步需要说明的是,虽然图2、图5、图7、图10-12的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图5、图7、图10-12中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。

另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。

所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。

相关技术
  • 一种定位初始化方法、装置和机器人
  • 一种基于激光地图的机器人定位初始化方法
技术分类

06120112879348