地图生成方法、装置、存储介质及处理器与流程

文档序号:27016857发布日期:2021-10-23 01:41阅读:141来源:国知局
地图生成方法、装置、存储介质及处理器与流程

1.本发明涉及领域,具体而言,涉及一种地图生成方法及、装置、存储介质及处理器。


背景技术:

2.目前,机器人感知环境、适应环境的主要方法是实时定位与建图,即通过传感器(如激光雷达)获取其所在位置附近的局部环境地图,从图中标明占用区域、空闲区域以及未探索区域,再前进至未探索区域对环境进行进一步探索,并根据采集的数据扩充局部环境地图,从而完成对所处的整个环境的认知和建图。然而,建筑施工往往需要多种不同功能的机器人交替或配合作业,在这种情况下,上述实时定位与建图方法存在一系列问题:(1)每款机器人在现场(例如某个在建楼层)作业前,都需要将整层楼遍历一遍,以获取地图,之后才能开始工作,这将大大降低作业效率;(2)对于同一个环境(例如同一层楼),在此作业的不同机器人会多次重复进行建图工作,造成资源浪费;(3)限于成本等因素,建图所用的雷达一般为厘米级或更低精度。
3.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本发明实施例提供了一种地图生成方法及装置,以至少解决相关技术中需要先进行建图,才能生成地图,导致效率低的技术问题。
5.根据本发明实施例的一个方面,提供了一种地图生成方法,包括:获取目标建筑物的三维点云;根据所述三维点云确定所述目标建筑物的障碍区域和可通行区域;根据所述障碍区域和所述可通行区域,生成所述目标建筑物的室内地图。
6.可选的,所述根据所述三维点云确定所述目标建筑物的障碍区域包括:通过水平面对所述三维点云进行截取,获取所述水平面对应的障碍物的点云数据;将所述障碍物的点云数据在水平面上进行投影,确定所述障碍物在所述水平面上的障碍轮廓;根据所述障碍轮廓,生成对应的障碍栅格图片,以确定所述障碍区域。
7.可选的,所述根据所述三维点云确定所述目标建筑物的可通行区域包括:根据所述三维点云确定所述目标建筑物的地面的点云数据;根据所述地面的点云数据,确定可通行轮廓;根据所述可通行轮廓,生成对应的可通行栅格图片,以确定所述可通行区域。
8.可选的,根据所述障碍轮廓,生成对应的障碍栅格图片,或根据所述可通行轮廓,生成对应的可通行栅格图片之前,还包括:新建栅格图片,所述栅格图片的分辨率为r,图片的宽度iwidth与高度iheight可采用下式计算:的宽度iwidth与高度iheight可采用下式计算:式中,x
max
为所述障碍轮廓的点云数据与所述可通行轮廓的点云数据的交集中,x坐标的最大值;x
min
为所述障碍轮廓的点云数据与所述可通行轮廓的点云数据的交集中,x坐标的最小值;y
max
为所述障碍轮廓的点云数据与所述可通行轮廓的点云数据的交集中,y坐标的最大值;y
min
为所述障碍轮廓的点云数据与所述可通行轮廓的点云数
据的交集中,y坐标的最小值。
9.可选的,根据所述障碍轮廓,生成对应的障碍栅格图片,包括:根据所述障碍轮廓,确定所述栅格图片中每个栅格的所述障碍轮廓的点云数据的数量,在所述数量不超过预设数量的情况下,确定所述栅格为第一预设灰度,在所述数量超过预设数量的情况下,确定所述栅格为第二预设灰度,以生成所述障碍栅格图片;和/或,根据所述可通行轮廓,生成对应的可通行栅格图片,包括:根据所述可通行轮廓,确定所述栅格图片中每个栅格的所述可通行轮廓的点云数据的数量,在所述数量不超过预设数量的情况下,确定所述栅格为第一预设灰度,在所述数量超过预设数量的情况下,确定所述栅格为第二预设灰度,以生成所述可通行栅格图片。
10.可选的,根据所述三维点云确定所述目标建筑物的地面的点云数据包括:通过统计所述三维点云中各点的竖直方向的z坐标,确定所述三维点云的各个点云数据的z坐标的分布情况;根据所述分布情况,确定所述地面的点云数据的z坐标值;确定所述三维点云中满足所述z坐标值的多个点云数据为所述地面的点云数据。
11.可选的,根据所述分布情况,确定所述地面的点云数据的z坐标值包括;根据所述三维点云中所有点云数据的z坐标的最大值和最小值,以及预设的间隔长度,确定分布直方图的间隔数,和每个间隔对应的点云数据的集合,生成分布直方图;确定所述分布直方图下分位点,以及所述下分位点所在的间隔的下标;根据所述下分位点所在的间隔的下标,确定所述分布直方图的第一峰值和第二峰值之间任一间隔的下标,根据所述任一间隔的下标,确定所述第一峰值对应的下标和所述第二峰值对应的下标;比较所述第一峰值的下标对应的第一z坐标值,和所述第二峰值的下标对应的第二z坐标值,将所述第一z坐标值和所述第二z坐标值中z坐标值较小的z坐标值为所述地面的z坐标值。
12.可选的,根据所述障碍区域和所述可通行区域,生成所述目标建筑物的室内地图包括:根据所述障碍轮廓的所述障碍栅格图片和所述可通行轮廓的所述可通行栅格图片,确定所述目标建筑物的所述可通行轮廓中的门轮廓的门栅格图片;根据所述障碍栅格图片和所述门栅格图片,确定所述目标建筑物的封闭轮廓;根据所述封闭轮廓确定所述目标建筑物的室内障碍物的边界线和室内外分界线;对室内障碍物的边界线的封闭区域和室内外分界线的封闭区域分别进行标示,得到所述目标建筑物的室内。
13.可选的,根据所述障碍轮廓的所述障碍栅格图片和所述可通行轮廓的所述可通行栅格图片,确定所述目标建筑物的门轮廓的门栅格图片包括:对所述障碍栅格图片和所述可通行栅格图片进行处理,使所述障碍栅格图片和所述可通行栅格图片的栅格的像素连通;用像素连通后的所述可通行栅格图片减去像素连通后的所述障碍栅格图片,得到所述目标建筑物的门轮廓的所述门栅格图片;根据所述障碍栅格图片,所述可通行栅格图片和所述门栅格图片,确定所述目标建筑物的封闭轮廓包括:将所述门栅格图片,所述障碍栅格图片和所述可通行栅格图片合并,生成所述目标建筑物的所述封闭轮廓。
14.可选的,根据所述封闭轮廓确定所述目标建筑物的室内障碍物的边界线和室内外分界线包括:将所述封闭轮廓中封闭区域面积最大的封闭轮廓,作为所述室内外分界线;将所述封闭轮廓中除所述室内外分界线之外的封闭轮廓,作为所述室内障碍物的边界线。
15.可选的,对室内障碍物的边界线的封闭区域和室内外分界线的封闭区域分别进行标示,得到所述目标建筑物的室内地图包括:确定所述室内障碍物的边界线的封闭区域的
内部为所述障碍区域,通过第一标识对所述障碍区域进行填充标示;确定所述室内外分界线的封闭区域的外部为未探索区域,通过第二标识对所述未探索区域进行填充标示;确定所述室内外分界线的封闭区域内部,除所述室内障碍物的边界线的封闭区域内部之外的区域为所述可通行区域,通过第三标识对所述可通行区域进行填充标示;其中,所述第一标识的所述障碍区域,所述第二标识的所述未探索区域,和所述第三标识的所述可通行区域,以及所述封闭轮廓组成所述目标建筑物的室内地图。
16.可选的,根据所述三维点云确定所述目标建筑物的障碍区域和可通行区域之前包括:对所述三维点云的竖直方向的z坐标轴进行校准,以使所述三维点云的z坐标轴的正方向竖直朝上;通过水平面对所述三维点云截取,确定所述三维点云对应的所述目标建筑物的墙体在所述水平面上的投影的点云数据;根据所述投影的点云数据确定任一墙体对应的直线;根据所述直线的旋转角对所述三维点云的坐标进行旋转调整,使得所述三维点云所代表的目标建筑物的水平轴线与所述三维点云的水平坐标轴平行或垂直,其中,所述旋转角为所述直线与所述三维点云的水平坐标轴的夹角,所述水平坐标轴为互相垂直的x坐标轴或y坐标轴。
17.可选的,根据所述投影的点云数据确定任一墙体对应的直线包括:根据所述投影的点云数据,确定所述直线及所述直线的方向向量;根据所述直线的旋转角对所述三维点云的坐标进行旋转调整包括:确定所述方向向量与所述x坐标轴的正方向或所述y坐标轴的正方向的夹角,为所述旋转角;根据所述旋转角对所述三维点云进行旋转调整。
18.根据本发明实施例的另一方面,还提供了一种地图生成装置,包括:第一确定模块,用于获取目标建筑物的三维点云;第二确定模块,用于根据所述三维点云确定所述目标建筑物的障碍区域和可通行区域;生成模块,用于根据所述障碍区域和所述可通行区域,生成所述目标建筑物的室内地图。
19.根据本发明实施例的另一方面,还提供了一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的方法。
20.根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的方法。
21.在本发明实施例中,采用获取目标建筑物的三维点云;根据三维点云确定目标建筑物的障碍区域和可通行区域;根据障碍区域和可通行区域,生成地图的方式,通过三维点云直接对障碍区域和可通行区域进行确定,从而生成目标建筑物的室内地图,达到了避免机器人自主建图,通过三维点云直接生成目标建筑物的室内地图,供机器人使用的目的,从而实现了提高地图生成的效率的技术效果,进而解决了相关技术中需要对机器人进行建图,才能生成地图,导致效率低的技术问题。
附图说明
22.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
23.图1是根据本发明实施例的一种地图生成方法的流程图;
24.图2是根据本发明实施方式的地图生成方法的流程图;
25.图3是根据本发明实施方式的根据障碍区域和可通行区域生成地图的方法的流程图;
26.图4-1是根据本发明实施方式的障碍栅格图片的示意图;
27.图4-2是根据本发明实施方式的可通行栅格图片的示意图;
28.图5-1是根据本发明实施方式的像素连通后的障碍栅格图片的示意图;
29.图5-2是根据本发明实施方式的像素连通后的可通行栅格图片的示意图;
30.图6是根据本发明实施方式的门栅格图片的示意图;
31.图7是根据本发明实施方式的封闭轮廓的示意图;
32.图8-1是根据本发明实施方式的室内外分界线的示意图;
33.图8-2是根据本发明实施方式的室内障碍物边界线的示意图;
34.图9是根据本发明实施方式的地图的示意图;
35.图10是根据本发明实施例的一种地图生成装置的示意图。
具体实施方式
36.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
37.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
38.根据本发明实施例,提供了一种地图生成方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
39.图1是根据本发明实施例的一种地图生成方法的流程图,如图1所示,该方法包括如下步骤:
40.步骤s102,获取目标建筑物的三维点云;
41.步骤s104,根据三维点云确定目标建筑物的障碍区域和可通行区域;
42.步骤s106,根据障碍区域和可通行区域,生成目标建筑物的室内地图。
43.通过上述步骤,采用确定目标建筑物的三维点云;根据三维点云确定目标建筑物的障碍区域和可通行区域;根据障碍区域和可通行区域,生成地图的方式,通过三维点云直接对障碍区域和可通行区域进行确定,从而生成目标建筑物的室内地图,达到了避免机器人自主建图,通过三维点云直接生成目标建筑物的室内地图,供机器人使用的目的,从而实
现了提高地图生成的效率的技术效果,进而解决了相关技术中需要对机器人进行建图,才能生成地图,导致效率低的技术问题。
44.地面三维激光扫描技术不断发展,扫描速度和精度都有很大提升,利用激光扫描仪快速获取整层楼以至整栋楼的高精(毫米级)点云数据,从而获取上述三维点云数据。上述三维点云数据具有多种用途,例如用于施工进度追踪等。如果在建筑施工机器人进场作业前获取现场的三维点云,它们还可用于制作现场高精地图。
45.上述三维点云以三维立体坐标系为基准,采集目标建筑物的点,确定对应的点云数据在三维立体坐标系中的立体坐标,从而构成三维点云,上述立体坐标系,包括竖直方向的z坐标轴,位于水平面的相互垂直的x坐标轴和y坐标轴。
46.根据三维点云确定障碍区域和可通行区域,根据障碍区域和可通行区域,生成地图,从而根据三维点云生成目标建筑物的地图,以供其他设备使用,解决了相关技术中需要先建图,然后生成地图,导致的效率低的问题。
47.上述障碍区域可以是一定高度范围内的障碍区域,从而使得机器人或者地图的使用设备,在使用地图时通过该高度的探测装置,对障碍区域进行检测,从而地图更具实用性,对于使用设备地图的精准度更高。
48.可选的,根据三维点云确定目标建筑物的障碍区域包括:通过水平面对三维点云进行截取,获取水平面对应的障碍物的点云数据;将障碍物的点云数据在水平面上进行投影,确定障碍物在水平面上的障碍轮廓;根据障碍轮廓,生成对应的障碍栅格图片,以确定障碍区域。
49.上述水平面可以是预设高度的水平面,该预设高度可以是上述地图使用设备的探测装置的探测高度,例如,机器人上述红外探测器的设置高度。
50.上述水平面可以包括一定的高度容差,通过水平面获取高度容差范围内的三维点云,上述三维点云与目标建筑物对应,通过水平面对三维点云进行截取,获得目标建筑物的墙体或者其他建筑障碍在上述水平面上的交线,从而将所述交线投影在上述水平面上,可以确定该障碍物的轮廓。
51.具体的,水平面离地面的高度为s,高度容差为δ,则离地面高度为的点集:
[0052][0053]
将c
obst
投影至水平面z=z
floor
,得到交线点集c

obst
,包括目标建筑物在上水水平面的高度处的所有障碍物的轮廓。
[0054]
上述障碍物的轮廓还是以点云数据的形式存在,不够直观,因此,通过障碍轮廓生成对应的障碍栅格图片,从而将上述障碍轮廓显示在栅格图片上,也方便了之后根据栅格图片生成地图,提高了地图生成的效率。
[0055]
可选的,根据三维点云确定目标建筑物的可通行区域包括:根据三维点云确定目标建筑物的地面的点云数据;根据地面的点云数据,确定可通行轮廓;根据可通行轮廓,生成对应的可通行栅格图片,以确定可通行区域。
[0056]
上述可通行区域可以为上述目标建筑物室内的可通行区域,上述可通行轮廓可以为上述目标建筑物的地面点云的轮廓,根据上述可通行轮廓可以确定上述可通行区域。上
述可通行区域可以是基于地面,确定目标建筑物在地面上的可通行区域,因此,先确定地面点集,从地面点集中确定可通行区域的轮廓,具体的,获取离地面高度为的点集c
floor0

[0057][0058]
根据随机抽样一致算法ransac从点集c
floor0
中,确定地面点集c
floor
;通过点云边界提取算法,从c
floor
中得到可通行区域的可通行轮廓。
[0059]
上述可通行轮廓还是以点云数据的形式存在,不够直观,因此,通过可通行轮廓生成对应的可通行栅格图片,从而将上述可通行轮廓显示在栅格图片上,也方便了之后根据栅格图片生成地图,提高了地图生成的效率。
[0060]
可选的,根据障碍轮廓,生成对应的障碍栅格图片,或根据可通行轮廓,生成对应的可通行栅格图片之前,还包括:新建栅格图片,栅格图片的分辨率为r,图片的宽度iwidth与高度iheight可采用下式计算:与高度iheight可采用下式计算:式中,x
max
为障碍轮廓的点云数据与可通行轮廓的点云数据的交集中,x坐标的最大值;x
min
为障碍轮廓的点云数据与可通行轮廓的点云数据的交集中,x坐标的最小值;y
max
为障碍轮廓的点云数据与可通行轮廓的点云数据的交集中,y坐标的最大值;y
min
为障碍轮廓的点云数据与可通行轮廓的点云数据的交集中,y坐标的最小值。
[0061]
根据障碍轮廓生成障碍栅格图片,以及根据可通行轮廓生成可通行栅格图片,都需要先建立新的栅格图片,将障碍轮廓的点云数据对应在上述栅格图片上,生成障碍栅格图片,将可通行轮廓的点云数据对应在上述栅格图片上,生成可通行栅格图片。
[0062]
上述分辨率r可以与栅格图片的栅格对应,一个栅格对应一个像素,从而将点云数据的坐标值和栅格图片的分辨率联系起来,从而通过x坐标的最大值和最小值的差,与分辨率的比值确定上述栅格图片的宽度,以及通过y坐标的最大值和最小值的差,与分辨率的比值确定上述栅格图片的高度。有效确定障碍栅格图片和可通行栅格图片的大小,保证建立的栅格图片可以完整容纳上述障碍轮廓和/或可通行轮廓。
[0063]
可选的,根据障碍轮廓,生成对应的障碍栅格图片,包括:根据障碍轮廓,确定栅格图片中每个栅格的障碍轮廓的点云数据的数量,在数量不超过预设数量的情况下,确定栅格为第一预设灰度,在数量超过预设数量的情况下,确定栅格为第二预设灰度,以生成障碍栅格图片;和/或,根据可通行轮廓,生成对应的可通行栅格图片,包括:根据可通行轮廓,确定栅格图片中每个栅格的可通行轮廓的点云数据的数量,在数量不超过预设数量的情况下,确定栅格为第一预设灰度,在数量超过预设数量的情况下,确定栅格为第二预设灰度,以生成可通行栅格图片。
[0064]
在新建栅格图片后,将障碍轮廓的点云数据对应在上述栅格图片上,将点云数据数量超过预设数量的栅格以第二预设灰度显示,与其他栅格以第一预设灰度进行区别显示,通常将没有点云数据或者点云数据没有达到上述预设数量的栅格以0灰度值显示,也即是上述第一预设灰度可以为0,也即是黑色,上述第二预设灰度,可以是任意值,本实施例为了显示区别,采用灰度值较高的255,也即是白色与其他栅格的黑色形成鲜明对比,方便用户直观感受。
[0065]
对于可通行轮廓与上述障碍轮廓类似,在此不再赘述。
[0066]
具体的,对于障碍区域轮廓栅格图片,初始化为iwidth
×
iheight像素、灰度值为0的灰度图像,对任一第i行、第j列像素(i∈[1,iwidth],j∈[1,iheight]),其灰度值g
ij
采用下式计算:
[0067][0068]
式中,m
ij
为以像素中心点所对应的点c
ij
为圆心,以给定的正数radius为搜索半径,点集c

obst
中落在该圆形搜索区域内的点的数量,可使用常用的构建kdtree的方法实现近邻点搜索;n
threshold
为一个较小的正整数,当搜索区域内的点的数量不小于n
threshold
时,该像素灰度值可以设为255。点c
ij
的x、y坐标通过下式求得:
[0069][0070][0071]
对于可通行区域轮廓栅格图片,采用上述相同的过程得到灰度图片,但搜索的目标点集变为c

floor
而非c

obst

[0072]
可选的,根据三维点云确定目标建筑物的地面的点云数据包括:通过统计三维点云中各点的竖直方向的z坐标,确定三维点云的各个点云数据的z坐标的分布情况;根据分布情况,确定地面的点云数据的z坐标值;确定三维点云中满足所述z坐标值的多个点云数据为地面的点云数据。
[0073]
识别目标建筑物的三维点云中地面的同时,还可以识别目标建筑物的天花板,具体的,确定三维点云中目标建筑的天花板和地面,可以通过三维点云的z坐标来确定。具体的,通过统计三维点云中各点的竖直方向的z坐标,确定三位点云的各点z坐标分布情况;根据分布情况,确定天花板和地面的点的z坐标值;确定满足z坐标范围的点为天花板或地面的点。
[0074]
通过统计点云z坐标的分布情况,估计地面与天花板的z坐标值。此处假定所输入的点云的z坐标轴已被校准到竖直方向,且正方向竖直向上。根据建筑室内的点云特性可知,当室内地面和天花板基本水平时,点云密度沿高度方向有2个峰值,一个峰值位于地面附近,另一个峰值位于天花板附近。根据这一假定,可通过获得点云密度沿高度方向的峰值,得到地面和天花板的z坐标值。从而确定三维点云中表示天花板和地面的点。
[0075]
可选的,根据分布情况,确定地面的点云数据的z坐标值包括;根据三维点云中所有点云数据的z坐标的最大值和最小值,以及预设的间隔长度,确定分布直方图的间隔数,和每个间隔对应的点云数据的集合,生成分布直方图;确定分布直方图下分位点,以及下分位点所在的间隔的下标;根据下分位点所在的间隔的下标,确定分布直方图的第一峰值和第二峰值之间任一间隔的下标,根据任一间隔的下标,确定第一峰值对应的下标和第二峰值对应的下标;比较第一峰值的下标对应的第一z坐标值,和第二峰值的下标对应的第二z坐标值,将第一z坐标值和第二z坐标值中z坐标值较小的z坐标值为地面的z坐标值。
[0076]
上述根据三维点云中所有点云数据的z坐标的最大值和最小值,以及预设的间隔长度,确定分布直方图的间隔数,和每个间隔对应的点云数据的集合,生成分布直方图,分布直方图的每个间隔的长度为d,分布直方图的间隔数量为n;
[0077][0078]
式中,z
min
为三维点云中所有的点的z坐标的最小值,z
max
为三维点云中所有的点的z坐标的最大值,符号表示向上取整,任意间隔j中所包含的点的集合为:
[0079][0080]
任一间隔j中所包含的点的个数为:式中,符号||表示集合中的元素个数。
[0081]
根据下分位点所在的间隔的下标,确定分布直方图的第一峰值和第二峰值之间任一间隔的下标,根据任一间隔的下标,确定第一峰值对应的下标和第二峰值对应的下标;比较第一峰值的下标对应的第一z坐标值,和第二峰值的下标对应的第二z坐标值,将z坐标值较小的z坐标值为地面的z坐标值。
[0082]
记z
α
为三维点云的z坐标分布的下α分位点,α∈(0,1),从三维点云中随机选取一个点c
i
,满足:
[0083][0084]
设z
α
所在分布直方图的间隔下标index
α
,则index
α
可用下式确定:
[0085][0086]
直方图存在两个峰值,包括第一峰值和第二峰值,两个峰值之间的某个直方图间隔的下标可用下式估算:
[0087][0088]
则直方图的两个峰值所对应的下标为:
[0089][0090][0091]
式中,为分布直方图中间隔j中所包含的点的个数,n为分布直方图的间隔数量;通过下列公式计算天花板的z坐标值z
ceiling
,和地面的z坐标值z
floor

[0092][0093][0094]
式中,z
min
为三维点云中所有的点的z坐标的最小值,d为分布直方图每个间隔的长度。
[0095]
上述α可以取一个较小的正数,如0.05。
[0096]
可选的,根据障碍区域和可通行区域,生成目标建筑物的室内地图包括:根据障碍
轮廓的障碍栅格图片和可通行轮廓的可通行栅格图片,确定目标建筑物的可通行轮廓中的门轮廓的门栅格图片;根据障碍栅格图片和门栅格图片,确定目标建筑物的封闭轮廓;根据封闭轮廓确定目标建筑物的室内障碍物的边界线和室内外分界线;对室内障碍物的边界线的封闭区域和室内外分界线的封闭区域分别进行标示,得到目标建筑物的室内地图。
[0097]
上述障碍轮廓可以包括目标建筑物预设高度的墙体以及其他障碍物的轮廓,上述可通行区域轮廓包括地面的可通行区域轮廓,通过上述障碍轮廓和可通行轮廓可以确定障碍物的门轮廓,上述门轮廓可以为可通行区域中的门轮廓,也即是建筑物围墙上的门的轮廓,可以引起障碍区域的障碍轮廓发生断裂,本实施例中的目标建筑物可以是处于刚建好主体的建筑物,需要使用地图知道机器人进行工作,在建筑物主体内的墙壁上的门认为是可通行的,在形成障碍区域轮廓时设置门墙壁的轮廓与建筑物外墙的轮廓相连,不会引起障碍区域的障碍轮廓发生断裂。从而通过叠加障碍轮廓,以及门轮廓形成目标建筑物的封闭轮廓。具体的方式通过障碍栅格图片和可通行栅格图片,确定门栅格图片,从而根据障碍栅格图片和门栅格图片确定目标建筑物的封闭轮廓的栅格图片。根据封闭轮廓确定目标建筑物的室内障碍物的边界线和室内外分界线,从而生成上述目标建筑物的室内地图。
[0098]
上述室内外分界线可以是目标建筑物的室内与室外的分界线,例如墙壁和门窗组成的封闭轮廓。上述目标建筑物的室内障碍物的边界线可以是上述目标建筑物内没有与室内外分界线接触的封闭的障碍物的边界线,例如,室内独立的立柱的边界线。与室内外分界线接触的障碍物其本身就构成了室内外分界线的一部分,例如,设置在墙壁内部的立柱,在室内表现为阳角,也就使得室内外分界线产生阳角,该立柱的边界线与室内外分界线相交叉,也就构成了室内外分界线的一部分。
[0099]
可选的,根据障碍轮廓的障碍栅格图片和可通行轮廓的可通行栅格图片,确定目标建筑物的门轮廓的门栅格图片包括:对障碍栅格图片和可通行栅格图片进行处理,使障碍栅格图片和可通行栅格图片的栅格的像素连通;用像素连通后的可通行栅格图片减去像素连通后的障碍栅格图片,得到目标建筑物的门轮廓的门栅格图片;根据障碍栅格图片,可通行栅格图片和门栅格图片,确定目标建筑物的封闭轮廓包括:将门栅格图片,障碍栅格图片和可通行栅格图片合并,生成目标建筑物的封闭轮廓。
[0100]
上述对障碍栅格图片和可通行栅格图片进行处理,可以是通过形态学闭运算对障碍区域的轮廓和可通行区域的轮廓进行处理,使障碍区域的轮廓和可通行区域的轮廓的像素连通,从而使上述障碍栅格图片的障碍轮廓以及可通行栅格图片的可通行轮廓形成完整的线条。
[0101]
通过将障碍栅格图片,可通行栅格图片以及门栅格图片进行合并的方式,确定上述目标建筑物的封闭轮廓。
[0102]
可选的,根据封闭轮廓确定目标建筑物的室内障碍物的边界线和室内外分界线包括:将封闭轮廓中封闭区域面积最大的封闭轮廓,作为室内外分界线;将封闭轮廓中除室内外分界线之外的封闭轮廓,作为室内障碍物的边界线。
[0103]
对封闭轮廓图像进行轮廓提取,确定室内外分界线可以对上述封闭轮廓图像进行轮廓提取,并按提取的轮廓所围成的多边形面积降序排列,取首位(即面积最大)的轮廓,作为室内外分界线,其他轮廓为室内障碍物边界线。
[0104]
可选的,对室内障碍物的边界线的封闭区域和室内外分界线的封闭区域分别进行
标示,得到目标建筑物的室内地图包括:确定室内障碍物的边界线的封闭区域的内部为障碍区域,通过第一标识对障碍区域进行填充标示;确定室内外分界线的封闭区域的外部为未探索区域,通过第二标识对未探索区域进行标识填充标示;确定室内外分界线的封闭区域的内部,除室内障碍物的边界线的封闭区域的内部之外的区域为可通行区域,通过第三标识对可通行区域进行填充标示;其中,第一标识的障碍区域,第二标识的未探索区域,和第三标识的可通行区域,以及封闭轮廓组成目标建筑物的室内地图。
[0105]
上述第一标识,第二标识和第三标识可以为不同的颜色,或者不同的填充图像,以颜色为例,获取室内的障碍区域,通过第一标识进行颜色填充,可以是用白色(即灰度值为255)填充其内部,得到图像g1。获取室内的可通行区域,通过第三标识进行颜色填充,可以是取室内外分界线,用白色填充其内部后对图像进行取反操作,得到图像g2。获取障碍区域和可通行区域之外的为探索区域的轮廓,通过第二标识进行颜色填充,可以通过合并g1与g2,得到图像g3,则g3中所有白色像素集合p1代表未探索区域。对g3进行形态学运算膨胀1像素后,所有黑色像素(即灰度值为0)集合p2代表可通行区域;图像g
obst
中所有白色像素集合p3代表障碍区域。
[0106]
然后,初始化一个iwidth
×
iheight像素、灰度值为0的灰度图像g4,对任一第i行、第j列像素p
ij
(i∈[1,iwidth],j∈[1,iheight]),其灰度值g
ij
采用下式计算:
[0107][0108]
式中,gray∈(0,255)为给定的整数,代表灰色未探索区域,gray可取128。由此得到的栅格图g4即为地图。
[0109]
可选的,根据三维点云确定目标建筑物的障碍区域和可通行区域之前包括:对三维点云的竖直方向的z坐标轴进行校准,以使三维点云的z坐标轴的正方向竖直朝上,正方向向上;通过水平面对三维点云截取,确定三维点云对应的目标建筑物的墙体在水平面上的投影的点云数据;根据投影的点云数据确定任一墙体对应的直线;根据直线的旋转角对三维点云的坐标进行旋转调整,使得三维点云所代表的目标建筑物的水平轴线与三维点云的水平坐标轴平行或垂直,上述目标建筑物的水平轴线包括目标建筑物实际的x坐标轴和y坐标轴,其中,旋转角为直线与三维点云的水平坐标轴的夹角,水平坐标轴为互相垂直的x坐标轴或y坐标轴。
[0110]
上述三维点云在三维立体坐标系中可以与真实的目标建筑在真实空间方位相同,具体的,三维点云的坐标系与目标建筑物的立体坐标系相同,也即是三维点云的x坐标轴与目标建筑物的x坐标轴平行且正方向相同,三维点云的y坐标轴与目标建筑物的y坐标轴平行且正方向相同,三维点云的z坐标轴与目标建筑物的z坐标轴平行且正方向相同。但是大多数情况下,上述三维点云的坐标系和目标建筑物的坐标系是存在夹角的。
[0111]
因此,上述三维点云在生成过程中,上述三维立体坐标系与真实的目标建筑物的三维立体坐标系,可能存在不重合的情况,导致生成的三维点云的x坐标,和y坐标与三维立体坐标系的x坐标轴和y坐标轴不重合的情况,导致计算时运算量较大,因此,需要对三维点云的各点的坐标进行调整,使得目标建筑物的轴线与坐标轴平行或垂直。实现提高运算效率的技术效果。
[0112]
上述对三维点云的坐标进行调整,可以先对三维点云的竖直方向的z坐标轴进行校准,以使三维点云的z坐标轴的正方向竖直朝上,然后调整三维点云水平面的x坐标轴和y坐标轴。
[0113]
具体的,获取三维点云与水平面的交线集的一条直线;根据直线的旋转角对三维点云的坐标进行旋转调整,其中,旋转角为直线与坐标轴的夹角。
[0114]
对三维点云进行旋转变换,使三维点云所代表的目标建筑物的x、y坐标轴方向与三维点云的坐标系的x、y坐标轴平行或垂直。通常可对三维点云做主成分分析完成上述坐标调整,但存在调整后轴线方向仍与x、y坐标轴不平行(或垂直)的问题。本实施例可以采用以下方法进行点云坐标调整:通过用一个水平面截取三维点云,得到其交线,交线主要是目标建筑物的墙体。目标建筑物的建筑室内的主要墙体基本相互垂直,且其在水平面上的投影为直线,这样,通过将交线旋转至与x、y坐标轴平行或垂直,即可完成三维点云的坐标调整。
[0115]
根据目标建筑物的交线,确定投影在水平面上的直线及直线的方向向量;根据直线的旋转角对三维点云的坐标进行旋转调整包括:确定方向向量与x坐标轴的正方向或y坐标轴的正方向的夹角,为旋转角;根据旋转角对三维点云进行旋转调整。
[0116]
具体的,获取三维点云与水平面的交线的直线包括:水平面离地面的高度为s,高度容差为δ,则离地面高度为的点集:
[0117][0118]
将c
obst
投影至水平面z=z
floor
,得到交线点集c

obst
;根据交线点集c

obst
,通过随机抽样一致算法ransac确定点集中的一条直线及其方向向量
[0119]
根据直线的旋转角对三维点云的坐标进行旋转调整包括:量与坐标轴x正方向之间的夹角为θ,对三维点云中任意一点c
i
,旋转调整前后的齐次坐标分别为a和a

,则旋转调整后的坐标可通过下式求得:a

=ta,式中,t为变换矩阵,通过下式求得:
[0120][0121]
对三维点云中任意一点c
i
,通过上式进行旋转调整,以调整三维点云。
[0122]
需要说明的是,本实施例还提供了一种可选的实施方式,下面对该实施方式进行详细说明。
[0123]
随着我国人口红利的消失和人口老龄化的加剧,劳动力成本不断上升。特别地,对于建筑行业,由于建筑施工现场情况复杂,工作环境危险、恶劣,导致建筑施工岗位劳动力短缺现象越来越严重。在施工现场应用建筑施工机器人是上述问题的一个关键解决方案。建筑施工机器人在工地现场正常移动、正常作业的前提是,需要对现场环境进行感知,因此,现场的地图对引导机器人前往指定作业地点具有重要意义。
[0124]
近年来,地面三维激光扫描技术不断发展,扫描速度和精度都有很大提升,利用激光扫描仪快速获取整层楼以至整栋楼的高精(毫米级)点云数据已具备实践条件。这些点云数据具有多种用途,例如用于施工进度追踪等。如果在建筑施工机器人进场作业前获取现
场的高精点云,它们还可用于制作现场高精地图。
[0125]
本实施方式的主要内容是从室内三维点云中生成二维栅格地图,用于提供给各类机器人,引导机器人在建筑室内行动。
[0126]
本实施方式首先对三维点云进行处理,从中得到障碍物的轮廓和可通行区域的轮廓;之后根据障碍物轮廓和可通行区域轮廓,生成栅格地图,地图分辨率可以为不高于三维点云的分辨率的任意值。
[0127]
本实施方式可以省去机器人在作业前的建图工作,节省建图时间,减少重复工作。同时,如果所采用的点云精度能达到毫米级,所生成的地图也可以达到毫米级精度,支撑多种室内机器人的不同需求。
[0128]
图2是根据本发明实施方式的地图生成方法的流程图,如图2所示,根据三维点云生成二维栅格地图的流程如图1所示,包含如下四个步骤:1、地面与天花板识别;2、三维点云坐标调整;3、障碍区域与可通行区域轮廓获取;4、二维栅格地图生成。
[0129]
具体如下:
[0130]
1、地面与天花板识别:通过统计三维点云z坐标的分布情况,估计地面与天花板的z坐标值。此处假定所输入的三维点云的z坐标轴已被校准到竖直方向,且正方向竖直向上。根据目标建筑物的室内的点云特性可知,当室内地面和天花板基本水平时,点云密度沿高度方向有2个峰值,一个峰值位于地面附近,另一个峰值位于天花板附近。根据这一假定,可通过获得点云密度沿高度方向的峰值,得到地面和天花板的z坐标值,步骤如下:
[0131]
1)获取点云z坐标分布直方图。设所输入的点云c共包含n个点,对其中任意一个点c
i
∈c,设其z坐标为直方图每个间隔的长度为d(d>0),则直方图的间隔数n为
[0132][0133][0134][0135]
式(1)中,符号表示向上取整。任意间隔j中所包含的点的集合为
[0136][0137]
任一间隔j中所包含的点的个数(即频数)为
[0138][0139]
式(3)中,符号||表示集合中的元素个数。
[0140]
2)计算地面和天花板的z坐标估计值。记z
α
为点云z坐标分布的下α分位点,即给定α∈(0,1),从点云c中随机选取一个点c
i
,满足:
[0141][0142]
设z
α
所在的直方图的间隔下标index
α
,则index
α
可用下式估算:
[0143][0144]
根据假定,直方图存在2个峰值,双峰之间的某个直方图间隔的下标可用下式估
算:
[0145][0146]
式(6)中,α取一个较小的正数,如0.05。则直方图的两个峰值所对应的下标为:
[0147][0148][0149]
地面的z坐标估计值z
floor
和天花板的z坐标估计值z
ceiling
通过下式计算:
[0150][0151][0152]
2、三维点云坐标调整:对三维点云进行旋转变换,使三维点云所代表的目标建筑物的轴线方向与x、y坐标轴平行或垂直。通常可对三维点云作主成分分析完成上述坐标调整,但存在调整后轴线方向仍与x、y坐标轴不平行(或垂直)的问题。本实施方式采用以下方法进行三维点云坐标调整:通过用一个水平面截取三维点云,得到其交线,交线主要是墙体。假定目标建筑物室内的主要墙体基本相互垂直,且其在水平面上的投影为直线,这样,通过将交线旋转至与x、y坐标轴平行或垂直,即可完成三维点云坐标调整。具体步骤如下:
[0153]
1)获取水平面与三维点云的交线集及其中一条直线。设水平面离地面的高度为s,高度容差为δ,则可得到离地面高度为的点集:
[0154][0155]
将c
obst
投影至水平面z=z
floor
,得到点集c

obst
。针对交线点集c

obst
,使用通用的随机抽样一致ransac算法,得到交线点集中一条二维直线及其方向向量
[0156]
2)获取旋转角并对点云坐标进行旋转调整。
[0157]
设向量与坐标轴x之间的夹角为θ,对三维点云中任意一点c
i
,设其旋转调整前后的齐次坐标分别为a和a

,则旋转调整后的坐标可通过下式求得:
[0158]
a

=ta
ꢀꢀ
(12)
[0159]
式(12)中,t为变换矩阵,通过下式求得:
[0160][0161]
对三维点云中任意一点c
i
,利用式(12)对其进行旋转调整。
[0162]
3、障碍区域与可通行区域轮廓获取:地图中有两个关键性信息,即占用区域(或障碍区域)和空闲区域(或可通行区域)。通过从三维点云中获取墙、柱、飘窗台等障碍物的轮廓,以及地面可通行处的范围,即可获得这两个关键信息,具体步骤如下:
[0163]
1)获取障碍区域轮廓。根据第2步的描述,步骤2、1)中得到的交线点集c

obat
经过旋转调整后,即为给定高度s下障碍物轮廓所组成的三维点云。
[0164]
2)获取可通行区域轮廓。采用下式,获取离地面高度为的点集c
floor0

[0165][0166]
地面点集为集合c
floor
,则可使用通用的ransac算法,从c
floor0
中得到一个平面模型,模型内点即为地面点集c
floor
。进一步地,可使用常用的点云边界提取算法,例如,基于k近邻点向量夹角阈值判断的点云边界提取,从c
floor
中得到地面轮廓c

floor
,即可通行区域轮廓。
[0167]
3)根据三维点云的轮廓,得到障碍区域轮廓栅格图片与可通行区域轮廓栅格图片。设输出分辨率为r,即栅格图片中1像素代表实际距离为r,则图片的宽度iwidth与高度iheight可采用下式计算:
[0168][0169][0170]
式(15)和式(16)中,式(15)和式(16)中,式(15)和式(16)中,式中,分别为点c
i
的x坐标和y坐标。
[0171]
对于障碍区域轮廓栅格图片,初始化为iwidth
×
iheight像素、灰度值为0的灰度图像,对任一第i行、第j列像素(i∈[1,iwidth],j∈[1,iheight]),其灰度值g
ij
采用下式计算:
[0172][0173]
式中,m
ij
为以像素中心点所对应的点c
ij
为圆心,以给定的正数radois为搜索半径,点集c

obst
中落在该圆形搜索区域内的点的数量,可使用常用的构建kdtree的方法实现近邻点搜索;n
threshold
为一个较小的正整数,当搜索区域内的点的数量不小于n
threshold
时,该像素灰度值设为255。点c
ij
的x、y坐标通过下式求得:
[0174][0175][0176]
对于可通行区域轮廓栅格图片,采用上述相同的过程得到灰度图片,但搜索的目标点集变为c

floor
而非c

obst

[0177]
4、二维栅格地图生成:获取障碍区域轮廓和可通行区域轮廓栅格图片后,进行一系列图像处理,即得到地图,图3是根据本发明实施方式的根据障碍区域和可通行区域生成地图的方法的流程图,如图3所示,具体步骤如下:
[0178]
1)图4-1是根据本发明实施方式的障碍栅格图片的示意图,图4-2是根据本发明实施方式的可通行栅格图片的示意图,图5-1是根据本发明实施方式的像素连通后的障碍栅格图片的示意图,图5-2是根据本发明实施方式的像素连通后的可通行栅格图片的示意图,
分别对障碍区域轮廓(如图4-1所示)和可通行区域轮廓(如4-2所示)栅格图片进行通用的先膨胀、后腐蚀的形态学闭运算,使间断的轮廓像素连通,得到图像g
obst
(如图5-1所示)和图像g
floor
(如图5-2所示)。
[0179]
2)图6是根据本发明实施方式的门栅格图片的示意图,图7是根据本发明实施方式的封闭轮廓的示意图,如图6和图7所示,用可通行区域轮廓图像g
floor
减去障碍区域轮廓图像g
obst
,得到门的轮廓(如图6所示),再将其与图像g
obst
合并,得到完整的封闭轮廓图像(如图7所示)。
[0180]
3)图8-1是根据本发明实施方式的室内外分界线的示意图,图8-2是根据本发明实施方式的室内障碍物边界线的示意图,如图8-1和图8-2所示,对上一步得到的图像进行轮廓提取,并按轮廓所围成的多边形面积降序排列,取首位(即面积最大)的轮廓,作为室内外分界线(如图8-1所示),其他轮廓为室内障碍物边界线(如图8-2所示)。
[0181]
4)取室内障碍物边界线,用白色(即灰度值为255)填充其内部,得到图像g1;取室内外分界线,用白色填充其内部后对图像进行取反操作,得到图像g2;合并g1与g2,得到图像g3,则g3中所有白色像素集合p1代表未探索区域;对g3进行形态学运算膨胀1像素后,所有黑色像素(即灰度值为0)集合p2代表可通行区域;图像g
obst
中所有白色像素集合p3代表障碍区域。
[0182]
5)初始化一个iwidth
×
iheight像素、灰度值为0的灰度图像g4,对任一第i行、第j列像素p
ij
(i∈[1,iwidth],j∈[1,iheitht]),其灰度值g
ij
采用下式计算:
[0183][0184]
式中,gray∈(0,255)为给定的整数,代表灰色未探索区域,gray可取128。图9是根据本发明实施方式的地图的示意图,如图9所示,由此得到的栅格图g4即为地图。
[0185]
图10是根据本发明实施例的一种地图生成装置的示意图如图10所示,根据本发明实施例的另一方面,还提供了一种地图生成装置,包括:第一确定模块1002,第二确定模块1004和生成模块1006,下面对该装置进行详细说明。
[0186]
第一确定模块1002,用于获取目标建筑物的三维点云;第二确定模块1004,与上述第一确定模块1002相连,用于根据三维点云确定目标建筑物的障碍区域和可通行区域;生成模块1006,与上述第二确定模块1004相连,用于根据障碍区域和可通行区域,生成目标建筑物的室内地图。
[0187]
通过上述装置,采用第一确定模块1002确定目标建筑物的三维点云;第二确定模块1004根据三维点云确定目标建筑物的障碍区域和可通行区域;生成模块1006根据障碍区域和可通行区域,生成目标建筑物的室内地图的方式,通过三维点云直接对障碍区域和可通行区域进行确定,从而生成目标建筑物的室内地图,达到了避免机器人自主建图,通过三维点云直接生成地图,供机器人使用的目的,从而实现了提高地图生成的效率的技术效果,进而解决了相关技术中需要对机器人进行建图,才能生成地图,导致效率低的技术问题。
[0188]
根据本发明实施例的另一方面,还提供了一种存储介质,其特征在于,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述中任意一项的方法。
[0189]
根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,处理器用于运
行程序,其中,程序运行时执行上述中任意一项的方法。
[0190]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0191]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0192]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0193]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0194]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0195]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0196]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1