一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种机器人建图方法、系统、装置、设备及存储介质与流程

2022-06-12 00:15:45 来源:中国专利 TAG:


1.本技术实施例涉及机器人技术领域,尤其涉及一种机器人建图方法、系统、装置、设备及存储介质。


背景技术:

2.随着科技的不断发展,slam(simultaneous localization and mapping,即时定位与地图构建)技术被广泛应用在地图绘制的场景中。现有技术中,通常利用机器人与slam技术进行建图,大大提升了地图绘制的效率。
3.但是,在一些大型空间内,机器人扫图的路径较长,导致机器人无法在短时间内完成路径闭环。在长时间的扫图过程中,机器人的扫图误差逐渐累积,从而导致构建得到的地图与空间的实际布局偏差过大。因此,亟待提出一种解决方案。


技术实现要素:

4.本技术实施例提供一种机器人建图方法、系统、装置、设备及存储介质,用以减小构建得到的地图与空间的实际布局的偏差,提升建图的准确率。
5.本技术实施例提供一种机器人建图方法,包括:确定待建图的目标空间包含的多个子区域;所述目标空间部署有多个机器人;任一子区域的建图数据,由所述子区域中的机器人采集;控制所述多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集;接收所述多个机器人采集到的所述多个子区域各自的建图数据,并根据所述多个子区域各自的建图数据,生成所述多个子区域各自对应的子地图;根据所述多个子区域的相对位置关系,对所述多个子区域各自对应的子地图进行拼接,得到所述目标空间的地图。
6.进一步可选地,根据所述多个子区域的相对位置关系,对所述多个子区域各自对应的子地图进行拼接,得到所述目标空间的地图,包括:针对所述多个子区域中的任意相邻的第一子区域和第二子区域,识别所述第一子区域和第二子区域各自的子地图的重合部分;根据所述重合部分,确定所述第一子区域和所述第二子区域的边界线;按照所述边界线将所述第一子区域和所述第二子区域各自的子地图进行拼接。
7.进一步可选地,按照所述边界线将所述第一子区域和所述第二子区域各自的子地图进行拼接,包括:从所述边界线上选取至少两个拼接标识点;将所述第一子区域和所述第二子区域各自的子地图上位置对应的拼接标识点进行对齐,得到所述第一子区域的子地图和所述第二子区域的子地图的拼接结果。
8.进一步可选地,确定待建图的目标空间包含的多个子区域,包括:获取所述目标空间的平面布局尺寸;根据所述机器人的扫描半径,对所述目标空间进行划分,得到所述多个子区域;任一子区域的几何范围中的最大边长,小于或者等于所述扫描半径。
9.进一步可选地,控制所述多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集之前,还包括:针对所述多个子区域中的任一子
区域,从所述目标空间的平面布局图中获取所述子区域中分布的实际路径;根据所述子区域中分布的实际路径,在所述子区域中规划运动路径。
10.进一步可选地,根据所述子区域中分布的实际路径,在所述子区域中规划运动路径,包括:判断所述子区域中分布的实际路径是否能够形成闭环路径;若为是,则按照所述实际路径生成所述子区域中的运动路径;若为否,则响应虚拟分界点添加操作,在所述子区域中添加虚拟分界点,并根据所述虚拟分界点对所述实际路径的更新结果,生成所述子区域中的运动路径。
11.本技术实施例还提供一种机器人建图系统,包括:多个机器人以及云端服务器;所述多个机器人部署在待建图的目标空间中;任一子区域的建图数据,由所述子区域中的机器人采集;所述云端服务器,用于:确定所述目标空间包含的多个子区域;控制所述多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集;接收所述多个机器人采集到的所述多个子区域各自的建图数据,并根据所述多个子区域各自的建图数据,生成所述多个子区域各自对应的子地图;根据所述多个子区域的相对位置关系,对所述多个子区域各自对应的子地图进行拼接,得到所述目标空间的地图。
12.本技术实施例还提供一种机器人建图装置,包括:子区域确定模块,用于:确定待建图的目标空间包含的多个子区域;所述目标空间部署有多个机器人;任一子区域的建图数据,由所述子区域中的机器人采集;机器人控制模块,用于:控制所述多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集;子地图生成模块,用于:接收所述多个机器人采集到的所述多个子区域各自的建图数据,并根据所述多个子区域各自的建图数据,生成所述多个子区域各自对应的子地图;子地图拼接模块,用于:根据所述多个子区域的相对位置关系,对所述多个子区域各自对应的子地图进行拼接,得到所述目标空间的地图。
13.本技术实施例还提供一种云端服务器,包括:存储器、处理器以及通信组件;其中,所述存储器用于:存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令,以用于:执行所述机器人建图方法中的步骤。
14.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现本技术实施例所述机器人建图方法中的步骤。
15.本技术实施例提供一种机器人建图方法、系统、装置、设备及存储介质中,云端服务器可确定待建图空间包含的多个子区域,控制机器人分别对各自所在的子区域进行建图数据的采集,并根据接收到的由机器人发送的建图数据,生成多个子区域各自对应的子地图;云端服务器对多个子地图进行拼接,即可得到目标空间的地图。通过这种实施方式,可控制机器人分区域进行采集,缩短了机器人单次扫图任务的扫图路径,使机器人可在更短时间内完成路径闭环,降低了扫图误差的累积程度,从而减小了构建得到的地图与空间的实际布局的偏差。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根
据这些附图获得其他的附图。
17.图1为本技术一示例性实施例提供的机器人建图系统的结构示意图;
18.图2为本技术一示例性实施例提供的相邻子区域拼接的示意图;
19.图3为本技术另一示例性实施例提供的虚拟分界点生成的示意图;
20.图4为本技术一示例性实施例提供的实际应用场景下的运动路径规划的示意图;
21.图5为本技术另一示例性实施例提供的实际应用场景下的根据虚拟分界点生成运动路径的示意图;
22.图6为本技术一示例性实施例提供的实际应用场景下的子地图拼接的示意图;
23.图7为本技术一示例性实施例提供的机器人建图方法的流程示意图;
24.图8为本技术一示例性实施例提供的机器人建图装置的示意图;
25.图9为本技术一示例性实施例提供的云端服务器的结构示意图。
具体实施方式
26.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.现有技术中,机器人在长时间的扫图过程中,扫图误差逐渐累积,从而导致构建得到的地图与空间的实际布局偏差过大。针对上述技术问题,在本技术一些实施例中,提供了一种解决方案。以下将结合附图,详细说明本技术各实施例提供的技术方案。
28.图1为本技术一示例性实施例提供的机器人建图系统的结构示意图,如图1所示,机器人建图系统100包含:云端服务器10以及多个机器人20。
29.其中,云端服务器10可实现为云主机、云端的虚拟中心、云端的弹性计算实例等,本实施例对此不做限制。其中,云端服务器10的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,不再赘述。
30.在机器人建图系统100中,云端服务器10与机器人20之间,可建立无线通信连接,具体的通信连接方式可视不同应用场景而定。在一些实施例中,该无线通信连接,可基于专用虚拟网络(virtual private network,vpn)实现,以确保通信安全。
31.其中,机器人20部署在待建图的目标空间中,该目标空间可以是真实世界中的任一空间,例如图书馆、餐厅、酒店、住宅等等,机器人可在目标空间中提供服务。机器人20在提供服务之前,可预先执行扫图操作,并将扫图过程中采集的建图数据上传至云端服务器10,以构建目标空间的地图。
32.在机器人建图系统100中,云端服务器10可确定待建图的目标空间包含的多个子区域。该多个子区域是对目标空间进行划分得到的,每个子区域可视为目标空间中的一部分。其中,目标空间可部署有一个或者多个机器人20。目标空间中的任一子区域的建图数据,可由子区域中的机器人采集。其中,一个机器人可用于采集一个子区域中的建图数据,或者可用于依次采集多个子区域中的建图数据,本实施例不做限制。
33.其中,每个子区域中有至少一条运动路径。比如,目标空间中包含子区域y1、子区域y2、子区域y3和子区域y4,子区域y1中有运动路径s1,子区域y2中有运动路径s2,子区域
y3中有运动路径s3,子区域y4中有运动路径s4。
34.确定子区域后,云端服务器10可通过向机器人20发送控制指令的方式,控制机器人20,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集。其中,建图数据指的是用于构建目标空间对应的地图的数据,该建图数据包括但不限于:机器人的位姿数据、测距数据、里程数据、激光点云数据、碰撞数据、图像数据以及跌落检测数据中的至少一种。其中,激光点云数据可通过机器人20上的激光雷达进行采集;机器人的位姿数据可通过机器人20上的姿态传感器进行采集;测距数据可通过机器人20上的超声波传感器或者红外传感器进行采集;里程数据可通过机器人20上的里程计进行采集;碰撞数据可通过机器人20上的防撞传感器进行采集;跌落检测数据可通过机器人20上的防跌落传感器进行采集。
35.对应地,机器人20接收到控制指令后,可根据控制指令,根据各自所在的子区域中的运动路径在目标空间中采集建图数据。沿用前述例子进行举例,机器人q1可沿着运动路径s1采集子区域y1的建图数据,机器人q2可沿着运动路径s2采集子区域y2的建图数据,机器人q3可沿着运动路径s3采集子区域y3的建图数据,机器人q4可沿着运动路径s4采集子区域y4的建图数据。需要说明的是,上述例子是每个子区域都设置有机器人的情况,本实施例不限于此。当机器人数量少于子区域的数量时,一个机器人可负责多个子区域建图数据的采集,示例地,机器人q1可用于沿着运动路径s1采集子区域y1的建图数据。在子区域y1的建图数据采集完成后,机器人q1可用于沿着运动路径s2采集子区域y2的建图数据;同理,机器人q2可用于沿着运动路径s3采集子区域y3的建图数据;在子区域y3的建图数据采集完成后,机器人q2可用于沿着运动路径s4采集子区域s4的建图数据。机器人20基于上述采集建图数据的步骤采集建图数据后,可将采集到的建图数据发送至云端服务器10。
36.对应地,云端服务器10接收机器人20采集到的多个子区域各自的建图数据后,可根据多个子区域各自的建图数据,生成多个子区域各自对应的子地图。比如,根据子区域y1的建图数据生成子区域y1对应的子地图d1,根据子区域y2的建图数据生成子区域y2对应的子地图d2,根据子区域y3的建图数据生成子区域y3对应的子地图d3,根据子区域y4的建图数据生成子区域y4对应的子地图d4。
37.在生成子地图后,云端服务器10可根据多个子区域的相对位置关系,对多个子区域各自对应的子地图进行拼接,得到目标空间的地图。比如,子区域y1和子区域y2的相对位置关系为子区域y1在子区域y2的左侧,那么进行拼接时,子区域y1对应的子地图d1可在子区域y2对应的子地图d2的左侧。
38.在本实施例中,云端服务器10可确定待建图空间包含的多个子区域,控制机器人20分别对各自所在的子区域进行建图数据的采集,并根据接收到的由机器人20发送的建图数据,生成多个子区域各自对应的子地图;云端服务器对多个子地图进行拼接,即可得到目标空间的地图。通过这种实施方式,可控制机器人分区域进行采集,缩短了机器人单次扫图任务的扫图路径,使机器人可在更短时间内完成路径闭环,降低了扫图误差的累积程度,从而减小了构建得到的地图与空间的实际布局的偏差。
39.在一些可选的实施例中,由于机器人在两个相邻子区域之间的实际路径上移动并采集该相邻子区域的建图数据后,云端服务器10根据该建图数据生成的相邻子地图之间可能会出现重合部分。云端服务器10在对多个子区域进行拼接时,可将重合部分作为拼接的
参考依据。基于上述,根据多个子区域的相对位置关系,对多个子区域各自对应的子地图进行拼接,得到目标空间的地图,可基于以下步骤实现:
40.如图2所示,针对多个子区域中的任意相邻的第一子区域(即图2所示的abcd)和第二子区域(即图2所示的cdef),识别第一子区域和第二子区域各自的子地图的重合部分(即图2所示的虚线区域)。其中,采用“第一”、“第二”对相邻的两个子区域进行限定,仅用于对相邻的两个子区域进行区分。
41.云端服务器10识别出重合部分后,可根据重合部分,确定第一子区域和第二子区域的边界线。示例地,可在重合部分的上边沿和下边沿分别随机选取一个点,记为n点和m点,将这两个点进行连接,即为边界线nm。
42.确定边界线后,云端服务器10可将第一子区域和第二子区域各自的子地图,按照相对位置关系以及确定的边界线进行拼接。示例地,针对相邻子区域y1和y2,两者的相对位置关系为y1在y2的左侧,换言之,y1的右侧与y2的左侧存在重合部分。基于此,如图2所示,确定边界线后,可按照该相对位置关系,删除y1的子地图中边界线之外的部分区域以及y2的子地图中边界之外的部分区域,之后可将经过处理之后的两个子地图进行拼接,可得到目标空间的地图。
43.需要说明的是,图2仅示例性地对目标空间包含两个子区域的情况进行示意,目标空间包含更多子区域的情况同样适用上述方法,不再赘述。
44.进一步可选地,前述步骤中记载的按照边界线将第一子区域和第二子区域各自的子地图进行拼接,可基于以下步骤实现:
45.云端服务器10可从边界线上选取至少两个拼接标识点。该拼接标识点位于边界上,因此该拼接标识点既处在第一子区域,又处在第二子区域。基于此,在对第一子区域的子地图以及第二子区域的子地图进行拼接时,可将第一子区域和第二子区域各自的子地图上位置对应的拼接标识点进行位置对齐,可得到第一子区域的子地图和第二子区域的子地图的拼接结果。
46.需要说明的是,本实施例中,机器人可根据预设的任务时序或控制指令,依次进行扫图任务,也可多机器人同时进行扫图任务,本实施例不做限制。云端服务器10接收到机器人20上传的部分子区域的建图数据,即可对该部分子区域执行建图和拼接的操作,无需等待机器人在所有子区域扫图完毕。通过这种实施方式,使得建图任务的分配和完成更加灵活。
47.前述各实施例记载了云端服务器控制机器人在目标空间包含的多个子区域中进行扫图的实施方式。在一些示例性的实施例中,云端服务器10可在控制机器人进行扫图之前,对目标空间进行区域划分,得到目标空间的多个子区域。以下将进行示例性说明。
48.可选地,云端服务器10在确定待建图的目标空间包含的多个子区域时,可获取目标空间的平面布局尺寸,并根据机器人的扫描半径,对目标空间进行划分,得到多个子区域。其中,机器人的扫描半径指的是机器人上安装的激光雷达的最大扫描距离。其中,任一子区域的几何范围中的最大边长,小于或者等于该扫描半径,以使得任意子区域的几何范围不超过机器人扫描量程,降低扫描误差。比如,目标空间的平面布局尺寸为10m
×
10m,机器人的扫描半径为5m,那么可以该扫描半径为子区域的边长,依次划分出多个5m
×
5m的子区域。需要说明的是,上述内容仅为示例性说明,子区域边长小于机器人扫描半径的其他情
况也同样适用,比如子区域边长为4m、3m或2m等等。
49.基于此,在云端服务器10控制机器人20,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集之前,还可在子区域中规划出机器人20的运动路径。以下将进行详细说明。
50.针对多个子区域中的任一子区域,云端服务器10可从目标空间的平面布局图中获取子区域中分布的实际路径。比如,在目标空间实现为宾馆时,实际路径可包括:宾馆内的多个房间之间的走廊过道等等。例如,目标空间实现为大型展馆时,实际路径可包括:主干道以及展位之间的分支通道。
51.获取实际路径之后,云端服务器10可根据子区域中分布的实际路径,在子区域中规划运动路径,以便后续根据该运动路径向机器人20发送相应的控制指令。
52.可选地,根据子区域中分布的实际路径,在子区域中规划运动路径时,可判断子区域中分布的实际路径是否能够形成闭环路径。若子区域中分布的实际路径能够形成闭环路径,则可按照实际路径生成子区域中的运动路径。其中,判断实际路径是否能形成闭环路径时,可采用基于神经网络的分类方法,利用神经网络分类器对实际路径进行闭环与否的分类。或者,可采用虚拟仿真方法,模拟虚拟机器人在实际路径上行走时是否能够沿着实际路径回到出发点。或者,还可基于实际路径对应的地图进行连通域的检测,不再赘述。
53.若子区域中分布的实际路径不能够形成闭环路径,则可对实际路径进行重新分割,以生成新的路径。可选地,云端服务器10可响应用户的虚拟分界点添加操作,在子区域中添加虚拟分界点,并根据虚拟分界点对实际路径的更新结果,生成子区域中的运动路径。其中,根据虚拟分界点对实际路径进行更新时,可将实际路径上的参照物与虚拟分界点进行连接,形成与实际路径连接的新路径。其中,虚拟分界点的添加位置以及添加数量,可根据实际路径的闭合需求进行设置,本实施例不做限制。如图3所示,图3左侧框图中实际路径ab和实际路径bc无法形成闭环路径,可响应虚拟分界点添加操作,在该区域中添加虚拟分界点d,如图3右侧框图所示,连接a(即实际路径ab上的参照物)和d,以及c(即实际路径ab上的参照物)d,可形成闭环路径abcd,闭环路径abcd即为该子区域中的运动路径。
54.以下将结合图4、图5、图6以及实际应用场景,对机器人建图系统进行进一步说明。
55.如图4所示,若目标空间中有能形成闭环的多条实际路径,且该多条实际路径对目标空间形成区域划分时,云端服务器10可从目标空间的平面布局图中获取该多条实际路径。
56.获取多条实际路径之后,云端服务器10可根据该多条实际路径对目标空间进行区域划分,得到多个子区域,并根据子区域中分布的实际路径,在子区域中规划运动路径(如图4所示的虚线1、虚线2、虚线3和虚线4)。之后,云端服务器10可根据运动路径,向机器人20发送控制指令,以使机器人20沿着运动路径采集子区域的建图数据。云端服务器10接收到机器人20上传的建图数据后,可根据建图数据生成子区域对应的子地图。云端服务器10可将多个子区域的子地图进行拼接,得到目标空间的地图。
57.除了上述情况,如图5所示,当目标空间没有能够形成闭环的实际路径或者有不容易形成闭环的实际路径时,云端服务器10可响应用户的虚拟分界点添加操作,在目标空间中添加虚拟分界点。进一步可选地,云端服务器10可根据机器人20的扫描半径,在目标空间的平面布局图中自动生成至少一个虚拟分界点。例如,云端服务器10可在实际路径外部生
成一个虚拟分界点,该虚拟分界点与实际路径上的某一参照物(例如实际路径的末端的参照物)的距离小于或者等于机器人20的扫描半径。需要说明的是,平面布局图中添加虚拟分界点后,可在实际的目标空间中的对应位置上,添加实体的参照物,以供机器人20用作参照。
58.如图5所示,在目标空间的中心位置设置虚拟分界点之后,可根据虚拟分界点对实际路径的更新结果,生成子区域中的运动路径(即图5所示的虚线l1、虚线l2、虚线l3和虚线l4)规划出运动路径之后,云端服务器可根据运动路径向机器人20发送对应的控制指令,使机器人20沿着运动路径对子区域进行建图数据的采集。
59.进一步可选地,规划出运动路径之后,云端服务器10可识别出多条运动路径之间的重合部分,即图5中的重合部分1、重合部分2、重合部分3和重合部分4。
60.如图6所示,云端服务器10识别出重合部分后,可根据重合部分,确定边界线,并在每条边界线上随机选取两个拼接标识点。在云端服务器10根据建图数据生成子区域对应的子地图之后,可将相邻两个子区域各自的子地图上位置对应的拼接标识点进行位置对齐,可得到相邻子区域对应的子地图的拼接结果。
61.通过这种实施方式,通过多机器人并行工作,提高了整体的扫图效率。除此之外,可将各个子区域的建图数据保存在云端服务器上,当机器人在任意两个相邻子区域采集建图数据后,云端服务器可根据建图数据生成对应的子地图并进行拼接。通过这种实施方式,无需所有的机器人都同时完成扫图任务,使扫图建图任务的分配和完成更加灵活。
62.除上述各实施例提供的机器人建图系统之外,本技术实施例还提供一种机器人建图方法,以下将结合附图进行说明。
63.图7是本技术一示例性实施例提供的机器人建图方法的流程示意图,可包括如图7所示的步骤:
64.步骤11、确定待建图的目标空间包含的多个子区域;该目标空间部署有多个机器人;任一子区域的建图数据,由该子区域中的机器人采集。
65.步骤12、控制该多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集。
66.步骤13、接收该多个机器人采集到的该多个子区域各自的建图数据,并根据该多个子区域各自的建图数据,生成该多个子区域各自对应的子地图。
67.步骤14、根据该多个子区域的相对位置关系,对该多个子区域各自对应的子地图进行拼接,得到该目标空间的地图。
68.进一步可选地,根据该多个子区域的相对位置关系,对该多个子区域各自对应的子地图进行拼接,得到该目标空间的地图,包括:针对该多个子区域中的任意相邻的第一子区域和第二子区域,识别该第一子区域和第二子区域各自的子地图的重合部分;根据该重合部分,确定该第一子区域和该第二子区域的边界线;按照该边界线将该第一子区域和该第二子区域各自的子地图进行拼接。
69.进一步可选地,按照该边界线将该第一子区域和该第二子区域各自的子地图进行拼接,包括:从该边界线上选取至少两个拼接标识点;将该第一子区域和该第二子区域各自的子地图上位置对应的拼接标识点进行对齐,得到该第一子区域的子地图和该第二子区域的子地图的拼接结果。
70.进一步可选地,确定待建图的目标空间包含的多个子区域,包括:获取该目标空间的平面布局尺寸;根据该机器人的扫描半径,对该目标空间进行划分,得到该多个子区域;任一子区域的几何范围中的最大边长,小于或者等于该扫描半径。
71.进一步可选地,控制该多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集之前,还包括:针对该多个子区域中的任一子区域,从该目标空间的平面布局图中获取该子区域中分布的实际路径;根据该子区域中分布的实际路径,在该子区域中规划运动路径。
72.进一步可选地,根据该子区域中分布的实际路径,在该子区域中规划运动路径,包括:判断该子区域中分布的实际路径是否能够形成闭环路径;若为是,则按照该实际路径生成该子区域中的运动路径;若为否,则响应虚拟分界点添加操作,在该子区域中添加虚拟分界点,并根据该虚拟分界点对该实际路径的更新结果,生成该子区域中的运动路径。
73.在本实施例中,云端服务器可确定待建图空间包含的多个子区域,控制机器人分别对各自所在的子区域进行建图数据的采集,并根据接收到的由机器人发送的建图数据,生成多个子区域各自对应的子地图;云端服务器对多个子地图进行拼接,即可得到目标空间的地图。通过这种实施方式,可控制机器人分区域进行采集,缩短了机器人单次扫图任务的扫图路径,使机器人可在更短时间内完成路径闭环,降低了扫图误差的累积程度,从而减小了构建得到的地图与空间的实际布局的偏差。
74.需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤11至步骤14的执行主体可以为设备a;又比如,步骤11和12的执行主体可以为设备a,步骤13和14的执行主体可以为设备b;等等。
75.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如11、12等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
76.需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
77.图8是本技术一示例性实施例提供的机器人建图装置的结构示意图,如图8所示,该机器人建图装置包括:子区域确定模块801,用于:确定待建图的目标空间包含的多个子区域;该目标空间部署有多个机器人;任一子区域的建图数据,由该子区域中的机器人采集;机器人控制模块802,用于:控制该多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集;子地图生成模块803,用于:接收该多个机器人采集到的该多个子区域各自的建图数据,并根据该多个子区域各自的建图数据,生成该多个子区域各自对应的子地图;子地图拼接模块804,用于:根据该多个子区域的相对位置关系,对该多个子区域各自对应的子地图进行拼接,得到该目标空间的地图。
78.进一步可选地,子地图拼接模块804在根据该多个子区域的相对位置关系,对该多个子区域各自对应的子地图进行拼接,得到该目标空间的地图时,具体用于:针对该多个子区域中的任意相邻的第一子区域和第二子区域,识别该第一子区域和第二子区域各自的子地图的重合部分;根据该重合部分,确定该第一子区域和该第二子区域的边界线;按照该边
界线将该第一子区域和该第二子区域各自的子地图进行拼接。
79.进一步可选地,子地图拼接模块804在按照该边界线将该第一子区域和该第二子区域各自的子地图进行拼接时,具体用于:从该边界线上选取至少两个拼接标识点;将该第一子区域和该第二子区域各自的子地图上位置对应的拼接标识点进行对齐,得到该第一子区域的子地图和该第二子区域的子地图的拼接结果。
80.进一步可选地,子区域确定模块801在确定待建图的目标空间包含的多个子区域时,具体用于:获取该目标空间的平面布局尺寸;根据该机器人的扫描半径,对该目标空间进行划分,得到该多个子区域;任一子区域的几何范围中的最大边长,小于或者等于该扫描半径。
81.进一步可选地,子区域确定模块801在控制该多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集之前,还用于:针对该多个子区域中的任一子区域,从该目标空间的平面布局图中获取该子区域中分布的实际路径;根据该子区域中分布的实际路径,在该子区域中规划运动路径。
82.进一步可选地,子区域确定模块801在根据该子区域中分布的实际路径,在该子区域中规划运动路径时,具体用于:判断该子区域中分布的实际路径是否能够形成闭环路径;若为是,则按照该实际路径生成该子区域中的运动路径;若为否,则响应虚拟分界点添加操作,在该子区域中添加虚拟分界点,并根据该虚拟分界点对该实际路径的更新结果,生成该子区域中的运动路径。
83.在本实施例中,云端服务器可确定待建图空间包含的多个子区域,控制机器人分别对各自所在的子区域进行建图数据的采集,并根据接收到的由机器人发送的建图数据,生成多个子区域各自对应的子地图;云端服务器对多个子地图进行拼接,即可得到目标空间的地图。通过这种实施方式,可控制机器人分区域进行采集,缩短了机器人单次扫图任务的扫图路径,使机器人可在更短时间内完成路径闭环,降低了扫图误差的累积程度,从而减小了构建得到的地图与空间的实际布局的偏差。
84.图9是本技术一示例性实施例提供的云端服务器的结构示意图,如图9所示,该云端服务器包括:存储器901、处理器902以及通信组件903。
85.存储器901,用于存储计算机程序,并可被配置为存储其它各种数据以支持在终端设备上的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
86.处理器902,与存储器901耦合,用于执行存储器901中的计算机程序,以用于:确定待建图的目标空间包含的多个子区域;该目标空间部署有多个机器人;任一子区域的建图数据,由该子区域中的机器人采集;控制该多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集;接收该多个机器人采集到的该多个子区域各自的建图数据,并根据该多个子区域各自的建图数据,生成该多个子区域各自对应的子地图;根据该多个子区域的相对位置关系,对该多个子区域各自对应的子地图进行拼接,得到该目标空间的地图。
87.进一步可选地,处理器902在根据该多个子区域的相对位置关系,对该多个子区域各自对应的子地图进行拼接,得到该目标空间的地图时,具体用于:针对该多个子区域中的任意相邻的第一子区域和第二子区域,识别该第一子区域和第二子区域各自的子地图的重
合部分;根据该重合部分,确定该第一子区域和该第二子区域的边界线;按照该边界线将该第一子区域和该第二子区域各自的子地图进行拼接。
88.进一步可选地,处理器902在按照该边界线将该第一子区域和该第二子区域各自的子地图进行拼接时,具体用于:从该边界线上选取至少两个拼接标识点;将该第一子区域和该第二子区域各自的子地图上位置对应的拼接标识点进行对齐,得到该第一子区域的子地图和该第二子区域的子地图的拼接结果。
89.进一步可选地,处理器902在确定待建图的目标空间包含的多个子区域时,具体用于:获取该目标空间的平面布局尺寸;根据该机器人的扫描半径,对该目标空间进行划分,得到该多个子区域;任一子区域的几何范围中的最大边长,小于或者等于该扫描半径。
90.进一步可选地,处理器902在控制该多个机器人,分别根据各自所在的子区域中的运动路径,对各自所在的子区域进行建图数据的采集之前,还用于:针对该多个子区域中的任一子区域,从该目标空间的平面布局图中获取该子区域中分布的实际路径;根据该子区域中分布的实际路径,在该子区域中规划运动路径。
91.进一步可选地,处理器902在根据该子区域中分布的实际路径,在该子区域中规划运动路径时,具体用于:判断该子区域中分布的实际路径是否能够形成闭环路径;若为是,则按照该实际路径生成该子区域中的运动路径;若为否,则响应虚拟分界点添加操作,在该子区域中添加虚拟分界点,并根据该虚拟分界点对该实际路径的更新结果,生成该子区域中的运动路径。
92.进一步,如图9所示,该云端服务器还包括:电源组件904等其它组件。图9中仅示意性给出部分组件,并不意味着云端服务器只包括图9所示组件。
93.本实施例中,云端服务器可确定待建图空间包含的多个子区域,控制机器人分别对各自所在的子区域进行建图数据的采集,并根据接收到的由机器人发送的建图数据,生成多个子区域各自对应的子地图;云端服务器对多个子地图进行拼接,即可得到目标空间的地图。通过这种实施方式,可控制机器人分区域进行采集,缩短了机器人单次扫图任务的扫图路径,使机器人可在更短时间内完成路径闭环,降低了扫图误差的累积程度,从而减小了构建得到的地图与空间的实际布局的偏差。
94.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由云端服务器执行的各步骤。
95.上述图9中的存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
96.上述图9中的通信组件903被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g或5g,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(nfc)技术、射频识别(rfid)技术、红外数据协会(irda)技术、超宽带(uwb)技术、蓝牙(bt)技术和其他技术来实现。
97.上述图9中的电源组件904,为电源组件所在设备的各种组件提供电力。电源组件
可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
98.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
99.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
100.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
101.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
102.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
103.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
104.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
105.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
106.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献