本发明涉及人工智能技术领域,更具体地说,涉及一种建图方法及装置。
背景技术:
服务机器人在运行前需要先获得环境地图,但由于装修、临时布置等原因环境易变,导致实际与预先部署的地图不一致。从而导致后续定位导航出现问题。
现阶段,为解决环境变化影响导航效果,需要用户重新手动建图,这就会极大提高用户的工作量。
技术实现要素:
有鉴于此,为解决上述问题,本发明提供一种建图方法及装置,技术方案如下:
一种建图方法,所述方法包括:
获取用于建图的数据序列;其中,所述数据序列包括具有时序的多帧激光点云;
通过与环境地图进行匹配分析从所述多帧激光点云中确定参与建图的、连续的多帧目标激光点云;
根据所述多帧目标激光点云创建局部地图,并使用所述局部地图覆盖所述环境地图。
优选的,所述通过与环境地图进行匹配分析从所述多帧激光点云中确定参与建图的、连续的多帧目标激光点云,包括:
确定每帧激光点云在所述环境地图中的最佳匹配点,并计算每帧激光点云与其最佳匹配点之间的第一匹配度;其中,所述最佳匹配点为距离最近的位置点;
基于第一匹配度从所述多帧激光点云中确定作为建图起点的第一激光点云、以及作为建图终点的第二激光点云;
将所述多帧激光点云中位于所述第一激光点云和所述第二激光点云之间的激光点云作为所述目标激光点云。
优选的,所述基于第一匹配度从所述多帧激光点云中确定作为建图起点的第一激光点云、以及作为建图终点的第二激光点云,包括:
对所述多帧激光点云进行由前向后的遍历扫图,将第n个第一匹配度大于第一预设匹配度阈值的激光点云作为所述第一激光点云;以及
对所述多帧激光点云进行由后向前的遍历扫图,将第m个第一匹配度大于所述第一预设匹配度阈值的激光点云作为所述第二激光点云;其中,n和m相等或不等。
优选的,所述根据所述多帧目标激光点云创建局部地图,包括:
在按照时序对每帧目标激光点云进行建图的过程中,计算该帧目标激光点云与所述第二激光点云之间的距离;
如果所述距离小于预设的距离阈值,计算该帧目标激光点云与所述第二激光点云的最佳匹配点之间的第二匹配度;
如果所述第二匹配度大于第二预设匹配度阈值,则结束建图。
优选的,所述根据所述多帧目标激光点云创建局部地图,还包括:
对所述多帧目标激光点云的建图结果进行全局优化。
一种建图装置,所述装置包括:
获取模块,用于获取用于建图的数据序列;其中,所述数据序列包括具有时序的多帧激光点云;
确定模块,用于通过与环境地图进行匹配分析从所述多帧激光点云中确定参与建图的、连续的多帧目标激光点云;
创建模块,用于根据所述多帧目标激光点云创建局部地图,并使用所述局部地图覆盖所述环境地图。
优选的,所述确定模块,具体用于:
确定每帧激光点云在所述环境地图中的最佳匹配点,并计算每帧激光点云与其最佳匹配点之间的第一匹配度;其中,所述最佳匹配点为距离最近的位置点;基于第一匹配度从所述多帧激光点云中确定作为建图起点的第一激光点云、以及作为建图终点的第二激光点云;将所述多帧激光点云中位于所述第一激光点云和所述第二激光点云之间的激光点云作为所述目标激光点云。
优选的,用于基于第一匹配度从所述多帧激光点云中确定作为建图起点的第一激光点云、以及作为建图终点的第二激光点云的所述确定模块,具体用于:
对所述多帧激光点云进行由前向后的遍历扫图,将第n个第一匹配度大于第一预设匹配度阈值的激光点云作为所述第一激光点云;以及对所述多帧激光点云进行由后向前的遍历扫图,将第m个第一匹配度大于所述第一预设匹配度阈值的激光点云作为所述第二激光点云;其中,n和m相等或不等。
优选的,所述创建模块,具体用于:
在按照时序对每帧目标激光点云进行建图的过程中,计算该帧目标激光点云与所述第二激光点云之间的距离;如果所述距离小于预设的距离阈值,计算该帧目标激光点云与所述第二激光点云的最佳匹配点之间的第二匹配度;如果所述第二匹配度大于第二预设匹配度阈值,则结束建图。
优选的,所述创建模块,还用于:
对所述多帧目标激光点云的建图结果进行全局优化。
本发明提供一种建图方法及装置,通过与环境地图进行匹配分析,能够从获得的数据序列中确定参与建图的、连续的多帧目标激光点云,从而根据多帧目标激光点云创建局部地图,由此使用局部地图覆盖环境地图。基于本发明能够实现自动建图,解决环境变化影响导航效果时需要手工建图的问题,提高服务机器人的智能化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的建图方法的方法流程图;
图2为本发明实施例提供的建图方法的部分方法流程图;
图3为本发明实施例提供的建图方法的另一部分方法流程图;
图4为本发明实施例提供的环境地图示例;
图5为本发明实施例提供的建图装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例提供一种建图方法,该方法的方法流程图如图1所示,包括如下步骤:
s10,获取用于建图的数据序列;其中,数据序列包括具有时序的多帧激光点云。
本发明实施例中,当服务机器人由于环境变化影响导航效果时,由用户选择正常导航任务的激光数据来创建环境变化区域内的地图。
s20,通过与环境地图进行匹配分析从多帧激光点云中确定参与建图的、连续的多帧目标激光点云。
本发明实施例中,环境地图是服务机器人所预置的地图,通过与环境地图进行点云匹配来确定多帧激光点云中的建图起点和终点,提高与环境地图的匹配度。从而使用起始点和结束点间的所有激光点云作为参与建图的目标激光点云。
具体实现过程中,步骤s20“通过与环境地图进行匹配分析从多帧激光点云中确定参与建图的、连续的多帧目标激光点云”可以采用如下步骤,方法流程图如图2所示:
s201,确定每帧激光点云在环境地图中的最佳匹配点,并计算每帧激光点云与其最佳匹配点之间的第一匹配度;其中,最佳匹配点为距离最近的位置点。
本发明实施例中,通过点云匹配icp(iterativeclosestpoint)的方式,寻找每帧激光点云在环境地图中的最佳匹配点。具体的,对于每帧激光点云来说,从环境地图中提取各位置点的点云,遍历计算该帧激光点云与各位置点点云间的距离,确定距离最小的位置点,其中,本发明实施例中采用均方根来表示距离。
此外,对于每帧激光点云来说,通过计算该帧激光点云与其最佳匹配点的平均偏差来衡量两者的第一匹配度,平均偏差的计算参见以下公式(1):
其中,
s202,基于第一匹配度从多帧激光点云中确定作为建图起点的第一激光点云、以及作为建图终点的第二激光点云。
本发明实施例中,可以按照时序将多帧激光点云中第一个第一匹配度低于匹配度阈值的激光点云作为建图起点,将第一个第一匹配度高于匹配度阈值的激光点云作为建图终点。其中,该匹配度阈值与及后续的第一预设匹配度阈值、第二预设匹配度阈值的大小关系并不限定,并且第一预设匹配度阈值与第二预设匹配度阈值的大小关系也不限定。
而为提高建图精确性,本发明实施例中采用两遍法扫图,第一遍遍历多帧激光点云从中选择合适的建图起点和终点,第二遍遍历建图起点和终点间的激光点云创建局部地图。
具体的,在选择合适的建图起点时,本发明实施例按照时序对多帧激光点云进行由前向后的遍历扫图,将第n个第一匹配度大于第一预设匹配度阈值的激光点云作为第一激光点云。
在选择合适的建图终点时,本发明实施例按照时序对多帧激光点云进行由后向前的遍历扫图,将第m个第一匹配度大于第一预设匹配度阈值的激光点云作为第二激光点云;其中,n和m相等或不等。
这样就可以实现参与建图的目标激光点云能够完全覆盖环境变化区域。
s203,将多帧激光点云中位于第一激光点云和第二激光点云之间的激光点云作为目标激光点云。
s30,根据多帧目标激光点云创建局部地图,并使用局部地图覆盖环境地图。
本发明实施例中,利用多帧目标激光点云创建局部地图的过程可以采用常见的图优化建图方式,具体建图算法在此不再说明。
而为提高局部地图的处理效率,本发明实施例中,可以在建图开始时,建立作为建图起点的第一激光点云与其最佳匹配点的强约束;在建图过程中,只使用目标激光点云,环境地图的点云不再参与建图,即在建图过程中不与环境地图产生约束;在建图结束时,建立作为建图终点的第二激光点云与其最佳匹配点的强约束。
此外,在建图过程中,为提高建图效率,本发明实施例中确定实际的建图终点。具体的,“根据多帧目标激光点云创建局部地图”可以采用如下步骤,方法流程图如图3所示:
s301,在按照时序对每帧目标激光点云进行建图的过程中,计算该帧目标激光点云与第二激光点云之间的距离。
s302,如果距离小于预设的距离阈值,计算该帧目标激光点云与第二激光点云的最佳匹配点之间的第二匹配度。
s303,如果第二匹配度大于第二预设匹配度阈值,则结束建图。
也就是说,在建图过程中,当目标激光点云与第二激光点云之间的距离,即建图距离不断接近建图起点和终点间的距离时,目标激光点云开始与第二激光点云的最佳匹配点进行匹配,如果两者的第二匹配度大于第二预设匹配度阈值,则表示参与建图的目标激光点云已经完全覆盖环境变化区域,此时,可以将该目标激光点云作为建图终点,从而建立该目标激光点云与其最佳匹配点的强约束。优选的,第二预设匹配度阈值与上述第一预设匹配度阈值的大小相等,这就可以提供同一匹配标准。
在此基础上,为提高与环境地图的匹配度,本发明实施例还对多帧目标激光点云的建图结果进行全局优化。即,通过建图结果的方向和大小,从而与环境地图中环境变化区域对应的部分地图相匹配。
需要说明的是,在计算目标激光点云与第二激光点云之间的距离时,可以采用均方根来表示距离。此外,计算第二匹配度的过程,可以参见计算第一匹配度的公式(1),在此不再赘述。
还需要说明的是,本发明实施例中所建立的强约束,即赋予建图算法的信息矩阵一个高权重。
参见图4所示的环境地图,左侧为原始的地图,右侧为基于本发明得到的地图。本发明实施例中,在生成局部地图后,将该局部地图覆盖环境地图中的相应区域。具体的,由于局部地图和环境地图的原点坐标系不一致,因此,本发明使用逐像素覆盖的方式将局部地图映射到环境地图的相应区域内。
本发明实施例提供的建图方法,通过与环境地图进行匹配分析,能够从获得的数据序列中确定参与建图的、连续的多帧目标激光点云,从而根据多帧目标激光点云创建局部地图,由此使用局部地图覆盖环境地图。基于本发明能够实现自动建图,解决环境变化影响导航效果时需要手工建图的问题,提高服务机器人的智能化。
基于上述实施例提供的建图方法,本发明实施例则对应提供执行上述建图方法的装置,该装置的结构示意图如图5所示,包括:
获取模块10,用于获取用于建图的数据序列;其中,数据序列包括具有时序的多帧激光点云;
确定模块20,用于通过与环境地图进行匹配分析从多帧激光点云中确定参与建图的、连续的多帧目标激光点云;
创建模块30,用于根据多帧目标激光点云创建局部地图,并使用局部地图覆盖环境地图。
可选的,确定模块20,具体用于:
确定每帧激光点云在环境地图中的最佳匹配点,并计算每帧激光点云与其最佳匹配点之间的第一匹配度;其中,最佳匹配点为距离最近的位置点;基于第一匹配度从多帧激光点云中确定作为建图起点的第一激光点云、以及作为建图终点的第二激光点云;将多帧激光点云中位于第一激光点云和第二激光点云之间的激光点云作为目标激光点云。
可选的,用于基于第一匹配度从多帧激光点云中确定作为建图起点的第一激光点云、以及作为建图终点的第二激光点云的确定模块20,具体用于:
对多帧激光点云进行由前向后的遍历扫图,将第n个第一匹配度大于第一预设匹配度阈值的激光点云作为第一激光点云;以及对多帧激光点云进行由后向前的遍历扫图,将第m个第一匹配度大于第一预设匹配度阈值的激光点云作为第二激光点云;其中,n和m相等或不等。
可选的,创建模块30,具体用于:
在按照时序对每帧目标激光点云进行建图的过程中,计算该帧目标激光点云与第二激光点云之间的距离;如果距离小于预设的距离阈值,计算该帧目标激光点云与第二激光点云的最佳匹配点之间的第二匹配度;如果第二匹配度大于第二预设匹配度阈值,则结束建图。
可选的,创建模块30,还用于:
对多帧目标激光点云的建图结果进行全局优化。
本发明实施例提供的建图装置,通过与环境地图进行匹配分析,能够从获得的数据序列中确定参与建图的、连续的多帧目标激光点云,从而根据多帧目标激光点云创建局部地图,由此使用局部地图覆盖环境地图。基于本发明能够实现自动建图,解决环境变化影响导航效果时需要手工建图的问题,提高服务机器人的智能化。
以上对本发明所提供的一种建图方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。