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

扩展建图方法、装置、计算机设备和存储介质

文献发布时间:2024-01-17 01:17:49


扩展建图方法、装置、计算机设备和存储介质

技术领域

本申请涉及智能机器人技术领域,特别是涉及一种扩展建图方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

随着三维激光雷达传感器的发展,基于三维激光雷达的即时定位与建图(Simultaneous Localization and Mapping, SLAM)技术越来越广泛地应用于配送机器人、清洁机器人、安防机器人等机器人领域。

SLAM的主要原理就是通过机器人上的传感器检测周围环境,并在估计机器人的实时位姿(Localization)的同时,构建环境点云地图(Mapping)。当机器人应用于大尺度工作场景中,利用三维激光雷达建图时,由于机器人续航能力有限以及各种突发情况造成的建图中断,很难一次完成整个大尺度工作场景的地图构建。现有技术中,通过使用当前帧所有激光点云和目标点位姿,基于特定的点云配准(Point Cloud Registration)算法直接进行当前点云帧到底图点云的匹配,实现中断后从之前建图过程生成的底图的基础上继续扩展建图。但是,这种扩展建图的方法稳定性差,扩展建图容易失败。

发明内容

基于此,有必要针对上述技术问题,提供一种扩展建图方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,使机器人能够在历史建图的基础上继续进行建图,且建图稳定性较好。

第一方面,本申请提供了一种扩展建图方法,包括:

获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;

根据所述节点位姿对各所述目标点位姿进行修正,得到修正后位姿,并基于各所述修正后位姿分别在所述全局点云地图中提取局部点云地图;

将所述机器人采集的当前点云帧和各所述局部点云地图进行匹配,得到匹配结果,并基于所述匹配结果确定所述机器人的当前位姿;

根据所述当前点云帧与所述当前位姿,在所述全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。

在一个实施例中,所述将所述机器人采集的当前点云帧和各所述局部点云地图进行匹配,包括:

获取所述机器人预采集的点云帧,并计算所述预采集的点云帧与各所述建图节点对应的点云关键帧间的相似度得分;

若所述相似度得分满足得分条件,则将所述预采集的点云帧作为当前点云帧,并将所述当前点云帧和各所述局部点云地图进行匹配;

若所述相似度得分不满足所述得分条件、且所述预采集的点云帧的总帧数小于帧数阈值,则返回所述获取所述机器人预采集点云帧的步骤;

若所述相似度得分不满足所述得分条件、且所述预采集的点云帧的总帧数大于或等于所述帧数阈值,则调整所述机器人的位姿,并在调整后继续执行所述获取所述机器人预采集点云帧的步骤,直到所述相似度得分满足所述得分条件。

在一个实施例中,所述根据所述节点位姿对各所述目标点位姿进行修正,得到修正后位姿,包括:

确定各所述建图节点对应的节点位姿与所述目标点位姿间的距离;

在各所述距离中,确定满足距离条件的目标距离;

将所述目标距离对应的节点位姿作为所述目标点位姿对应的修正后位姿。

在一个实施例中,所述基于各所述修正后位姿分别在所述全局点云地图中提取局部点云地图,包括:

基于所述修正后位姿对各所述目标点进行校验,并确定校验通过的所述目标点;

根据校验通过的所述目标点对应的修正后位姿,在所述全局点云地图中提取局部点云地图。

在一个实施例中,所述方法还包括:

对所述局部点云地图进行下采样,得到下采样局部地图;

所述将所述机器人采集的当前点云帧和各所述局部点云地图进行匹配,得到匹配结果包括:

获取所述机器人采集的当前点云帧;

对所述当前点云帧进行下采样,得到下采样点云帧;

将所述下采样点云帧和所述下采样局部地图进行匹配,得到匹配结果。

在一个实施例中,将所述机器人采集的当前点云帧和各所述局部点云地图进行匹配,得到匹配结果,包括:

根据所述修正后位姿对所述当前点云帧进行坐标转换,得到转换后的所述当前点云帧;

计算转换后的所述当前点云帧与各所述局部点云地图间的匹配得分;

根据所述匹配得分在所述局部点云地图中选取匹配的局部地图;

将所述匹配的局部地图和所述当前点云帧组成配准对,并将所述配准对作为匹配结果。

在一个实施例中,所述基于所述匹配结果确定所述机器人的当前位姿,包括:

计算所述配准对中的当前点云帧与相匹配的局部点云地图间的映射矩阵;

基于所述修正后位姿和所述映射矩阵确定所述机器人的当前位姿。

第二方面,本申请还提供了一种扩展建图装置。所述装置包括:

获取模块,用于获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;

修正模块,用于根据所述节点位姿对各所述目标点位姿进行修正,得到修正后位姿,并基于各所述修正后位姿分别在所述全局点云地图中提取局部点云地图;

匹配模块,用于将所述机器人采集的当前点云帧和各所述局部点云地图进行匹配,得到匹配结果,并基于所述匹配结果确定所述机器人的当前位姿;

建图模块,用于根据所述当前点云帧与所述当前位姿,在所述全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。

在一个实施例中,所述匹配模块,还用于:

获取所述机器人预采集的点云帧,并计算所述预采集的点云帧与各所述建图节点对应的点云关键帧间的相似度得分;

若所述相似度得分满足得分条件,则将所述预采集的点云帧作为当前点云帧,并将所述当前点云帧和各所述局部点云地图进行匹配;

若所述相似度得分不满足所述得分条件、且所述预采集的点云帧的总帧数小于帧数阈值,则返回所述获取所述机器人预采集点云帧的步骤;

若所述相似度得分不满足所述得分条件、且所述预采集的点云帧的总帧数大于或等于所述帧数阈值,则调整所述机器人的位姿,并在调整后继续执行所述获取所述机器人预采集点云帧的步骤,直到所述相似度得分满足所述得分条件。

在一个实施例中,所述修正模块,还用于:

确定各所述建图节点对应的节点位姿与所述目标点位姿间的距离;

在各所述距离中,确定满足距离条件的目标距离;

将所述目标距离对应的节点位姿作为所述目标点位姿对应的修正后位姿。

在一个实施例中,所述修正模块,还用于:

基于所述修正后位姿对各所述目标点进行校验,并确定校验通过的所述目标点;

根据校验通过的所述目标点对应的修正后位姿,在所述全局点云地图中提取局部点云地图。

在一个实施例中,所述装置还包括:

下采样模块,用于对所述局部点云地图进行下采样,得到下采样局部地图;

所述匹配模块,还用于:

获取所述机器人采集的当前点云帧;

对所述当前点云帧进行下采样,得到下采样点云帧;

将所述下采样点云帧和所述下采样局部地图进行匹配,得到匹配结果。

在一个实施例中,所述匹配模块,还用于:

根据所述修正后位姿对所述当前点云帧进行坐标转换,得到转换后的所述当前点云帧;

计算转换后的所述当前点云帧与各所述局部点云地图间的匹配得分;

根据所述匹配得分在所述局部点云地图中选取匹配的局部地图;

将所述匹配的局部地图和所述当前点云帧组成配准对,并将所述配准对作为匹配结果。

在一个实施例中,所述确定模块,还用于:

计算所述配准对中的当前点云帧与相匹配的局部点云地图间的映射矩阵;

基于所述修正后位姿和所述映射矩阵确定所述机器人的当前位姿。

第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;

根据所述节点位姿对各所述目标点位姿进行修正,得到修正后位姿,并基于各所述修正后位姿分别在所述全局点云地图中提取局部点云地图;

将所述机器人采集的当前点云帧和各所述局部点云地图进行匹配,得到匹配结果,并基于所述匹配结果确定所述机器人的当前位姿;

根据所述当前点云帧与所述当前位姿,在所述全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;

根据所述节点位姿对各所述目标点位姿进行修正,得到修正后位姿,并基于各所述修正后位姿分别在所述全局点云地图中提取局部点云地图;

将所述机器人采集的当前点云帧和各所述局部点云地图进行匹配,得到匹配结果,并基于所述匹配结果确定所述机器人的当前位姿;

根据所述当前点云帧与所述当前位姿,在所述全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;

根据所述节点位姿对各所述目标点位姿进行修正,得到修正后位姿,并基于各所述修正后位姿分别在所述全局点云地图中提取局部点云地图;

将所述机器人采集的当前点云帧和各所述局部点云地图进行匹配,得到匹配结果,并基于所述匹配结果确定所述机器人的当前位姿;

根据所述当前点云帧与所述当前位姿,在所述全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。

上述的扩展建图方法、装置、计算机设备、存储介质和计算机程序产品,获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;根据节点位姿对各目标点位姿进行修正,得到修正后位姿;由于目标点位姿是在建图过程中实时保存的机器人位姿,在保存目标点位姿后建图过程并没有立即中断,所以实时保存的目标点位姿可能与机器人的实际位姿有较大差距,对目标点位姿进行修正后可以缩小这种差距。基于各修正后位姿分别在全局点云地图中提取局部点云地图,将机器人采集的当前点云帧和各局部点云地图进行匹配;基于匹配结果确定机器人的当前位姿;根据当前点云帧与当前位姿,在全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图;由于局部点云地图是根据修正后位姿在全局点云地图中提取的,与实际位姿的差距较小,因此提高了扩展建图的稳定性,而且还提高了对当前点云帧与局部点云地图进行匹配的准确性,避免了发生匹配失败,提高了扩展建图的成功率。

附图说明

图1为一个实施例中扩展建图方法的应用环境图;

图2为一个实施例中扩展建图方法的流程示意图;

图3为一个实施例中当前点云帧获取方法的流程示意图;

图4为一个实施例中对目标点进行校验方法的流程示意图;

图5为另一个实施例中扩展建图方法的流程示意图;

图6为一个实施例中扩展建图装置的结构框图;

图7为另一个实施例中扩展建图装置的结构框图;

图8为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的扩展建图方法,可以应用于如图1所示的应用环境中。其中,机器人102获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;根据节点位姿对各目标点位姿进行修正,得到修正后位姿,并基于各修正后位姿分别在全局点云地图中提取局部点云地图;将机器人采集的当前点云帧和各局部点云地图进行匹配,得到匹配结果,并基于匹配结果确定机器人的当前位姿;根据当前点云帧与当前位姿,在全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。其中,机器人102可以但不限于各种需要自主移动的工业机器人(如搬运机器人、码垛机器人、喷涂机器人等)、服务机器人(如清洁机器人、配送机器人、割草机器人等)或特种机器人(消防机器人、水下机器人、安防机器人等)。机器人102上部署有激光雷达传感器,尤其是三维激光雷达建图,通过三维激光雷达传感器可以采集周围环境的点云数据。

在一个实施例中,如图2所示,提供了一种扩展建图方法,以该方法应用于图1中的机器人为例进行说明,包括以下步骤:

S202,获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图。

其中,历史建图过程是机器人在建图中断之前进行的即时建图过程,建图节点是机器人在历史建图过程中保存点云关键帧的节点,包括节点标识、节点位姿、点云关键帧的描述子等。例如,机器人在历史建图过程中,保存了采集的第10帧、25帧、41帧、46帧等点云关键帧,并分别基于保存的每个点云关键帧生成各个建图节点。

位姿用于表示机器人在空间中的位置与姿态。位置用于表示机器人在空间中的定位,可以用矩阵表示。例如,位置可以表示为

在一个实施例中,机器人在历史建图过程中实时保存目标点位姿和建图节点的节点位姿。若发生建图中断,在重启建图后,从存储区加载历史建图过程中保存的节点位姿、目标点位姿和全局点云地图。

S204,根据节点位姿对各目标点位姿进行修正,得到修正后位姿,并基于各修正后位姿分别在全局点云地图中提取局部点云地图。

其中,修正后位姿是对目标点位姿进行修正后所得的位姿。由于目标点位姿是在建图过程中实时保存的机器人位姿,在保存目标点位姿后的建图过程并没有立即中断,通过建图过程还可以继续对目标点位姿进行优化,所以实时保存的目标点位姿可能与机器人的实际位姿有较大差距,对目标点位姿进行修正后可以缩小甚至弥补这种差距。如果基于未经修正的目标点位姿在全局点云地图中提取局部点云地图,由于目标点位姿可能与机器人实际位姿有较大差距,可能导致无法成功将局部点云地图与当前点云帧进行匹配,从而导致扩展建图失败。而对目标点位姿进行修正后,由于修正后位姿的准确性较高,可以避免局部点云地图与当前点云帧匹配失败,保证了扩展建图的稳定性。

在一个实施例中,机器人分别以各修正后位姿为中心点,在全局点云地图中确定目标区域,然后提取目标区域中的局部点云地图。其中,目标区域可以是圆形区域、矩形区域或者其他任意形状的区域。

在一个实施例中,S204具体包括:确定各建图节点对应的节点位姿与目标点位姿间的距离;在各距离中,确定满足距离条件的目标距离;将目标距离对应的节点位姿作为目标点位姿对应的修正后位姿。

其中,距离为节点位姿的位置坐标与目标点位姿的位置坐标间的距离。距离条件例如可以是距离最小、距离在预设范围内等。计算机设备计算各建图节点对应的节点位姿与目标点位姿间的距离,然后在距离中选取满足距离条件的目标距离,用目标距离对应的节点位姿作为目标点位姿对应的修正后位姿。例如,计算机设备选取与目标点位姿距离最小的节点位姿作为目标点位姿对应的修正后位姿。

S206,将机器人采集的当前点云帧和各局部点云地图进行匹配,得到匹配结果,并基于匹配结果确定机器人的当前位姿。

其中,当前点云帧是机器人在重启建图后实时采集的点云帧。机器人可以用各种点云配准(Point Cloud Registration)算法对当前点云帧和各局部点云地图进行匹配,例如,机器人可以用ICP(Iterative Closest Point,最近点迭代)、PFH(PointFeatureHistogram,点特征直方图)等点云配准算法对当前点云帧和各局部点云地图进行匹配。

在一个实施例中,S206之前还包括:对局部点云地图进行下采样,得到下采样局部地图。S206具体包括:获取机器人采集的当前点云帧;对当前点云帧进行下采样,得到下采样点云帧;将下采样点云帧和下采样局部地图进行匹配,得到匹配结果。点云数据中往往包含大量冗余数据,直接处理计算量大,消耗时间长,通过对当前点云帧和各局部点云地图进行下采样,使得在保留主要纹理的同时,点数大大减少,可以减少配准算法的计算量,减少耗时,提高算法速度。

在一个实施例中,机器人在获取当前点云帧之后,首先对当前点云帧进行异常点过滤,以将当前点云帧中的无效点和距离其他点过远的点删除;然后对过滤后的当前点云帧进行去畸变处理,以修正当前点云帧中每个点的坐标;在去畸变处理后,通过体素滤波器对其进行下采样。

S208,根据当前点云帧与当前位姿,在全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。

机器人在得到当前点云帧与当前位姿时,以当前点云帧为扩展建图的首个点云帧,以当前位姿为初始位姿,通过建图算法在全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。例如,机器人可以当前点云帧为扩展建图的首个点云帧,以当前位姿为初始位姿,通过SLAM算法,在全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。

上述实施例中,获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;根据节点位姿对各目标点位姿进行修正,得到修正后位姿;由于目标点位姿是在建图过程中实时保存的机器人位姿,在保存目标点位姿后建图过程并没有立即中断,所以实时保存的目标点位姿可能与机器人的实际位姿有较大差距,对目标点位姿进行修正后可以缩小这种差距。基于各修正后位姿分别在全局点云地图中提取局部点云地图,将机器人采集的当前点云帧和各局部点云地图进行匹配;基于匹配结果确定机器人的当前位姿;根据当前点云帧与当前位姿,在全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图;由于局部点云地图是根据修正后位姿在全局点云地图中提取的,与实际位姿的差距较小,因此提高了扩展建图的稳定性,而且还提高了对当前点云帧与局部点云地图进行匹配的准确性,避免了发生匹配失败,提高了扩展建图的成功率。

在一个实施例中,如图3所示,S206具体包括如下步骤:

S302,获取机器人预采集的点云帧,并计算预采集的点云帧与各建图节点对应的点云关键帧间的相似度得分。

其中,相似度得分为用于表征预采集的点云帧与各建图节点对应的点云关键帧间相似度的分值。

在一个实施例中,S302具体包括:对预采集的点云帧进行特征提取,得到第一点云描述子。对各建图节点对应的点云关键帧进行特征提取,得到第二点云描述子。根据第一点云描述子与第二点云描述子计算预采集的点云帧与各建图节点对应的点云关键帧间的相似度得分。其中,点云描述子用于描述点云帧特征,可以用向量或者矩阵来表示。例如,点云描述子可以是多维向量。

S304,若相似度得分满足得分条件,则将预采集的点云帧作为当前点云帧,并将当前点云帧和各局部点云地图进行匹配。

其中,得分条件为用于判断预采集的点云帧与当前点云帧间的相似度是否满足要求的条件。例如,得分条件可以是相似度得分大于得分阈值,或者得分条件也可以是相似度得分在某一预设得分范围内等。

在一个实施例中,机器人可以对预采集的点云帧对应的第一点云描述子,与点云关键帧对应的第二点云描述子进行计算,得到预采集的点云帧与各建图节点对应的点云关键帧间的相似度得分。

在一个实施例中,机器人根据各建图节点对应的全部点云描述子构建KD树(K-dimensional tree),根据构建的KD树在各建图节点中查询相似度得分满足得分条件的目标建图节点。

如果机器人在各建图节点中查找到满足得分条件的目标建图节点,则说明机器人当前所处的环境与全局点云地图对应的建图环境相似度较高,能够将预采集的点云帧作为当前点云帧,并将当前点云帧和各局部点云地图进行匹配。

S306,若相似度得分不满足得分条件、且预采集的点云帧的总帧数小于帧数阈值,则返回获取机器人预采集点云帧的步骤。

若相似度得分不满足得分条件、且预采集的点云帧的总帧数小于帧数阈值,则使机器人继续采集点云帧,并继续判断机器人所采集的点云帧与各建图节点对应的点云关键帧间的相似度得分是否满足得分条件。

S308,若相似度得分不满足得分条件、且预采集的点云帧的总帧数大于或等于帧数阈值,则调整机器人的位姿,并在调整位姿后继续执行获取机器人预采集点云帧的步骤,直到相似度得分满足得分条件。

如果机器人预采集的连续多个点云帧与各建图节点对应的点云关键帧间的相似度得分均不满足得分条件,则说明机器人当前所处的环境与全局点云地图对应的建图环境相似度较低,机器人当前的位置距离目标点较远。若此时即开始对机器人采集的点云帧与局部点云地图进行匹配,则在机器人到达目标点之前需要一直进行匹配,而由于点云帧间的配准算法通常较为复杂,匹配过程比较耗时。因此,在相似度得分不满足得分条件、且预采集的点云帧的总帧数大于或等于帧数阈值时,调整机器人的位姿,使机器人位于目标点附近,从而可以降低配准耗时,提高扩展建图效率。

上述实施例中,若预采集的点云帧与各建图节点间相似度得分满足得分条件,则将预采集的点云帧作为当前点云帧,并将当前点云帧和各局部点云地图进行匹配;若相似度得分不满足得分条件、且预采集的点云帧的总帧数大于或等于帧数阈值,则调整机器人的位姿,并在调整后继续执行获取机器人预采集点云帧的步骤,直到相似度得分满足得分条件。从而可以使机器人在位于目标点附近时开始进行点云帧间的配准,节省了配准的时间,提高了扩展建图的效率。

在一个实施例中,如图4所示,S204具体包括如下步骤:

S402,基于修正后位姿对各目标点进行校验,并确定校验通过的目标点。

机器人对各目标点进行校验,以判断该机器人当前是否在某个目标点附近。如果目标点通过校验,说明机器人在该目标点附近。对于每个目标点,机器人首先确定距离该目标点最近的第一建图节点。然后在各建图节点对应的点云关键帧中,查询与当前点云帧间的相似度满足相似度条件的点云关键帧,如果查询到的点云关键帧对应的第二建图节点与第一建图节点间的位置关系满足位置关系条件,则确定该目标点通过校验。机器人按照上述方法遍历各目标点,从中选取校验通过的目标点。其中,位置关系条件可以是第二建图节点在第一建图节点周围预设范围内,例如,第二建图节点在距离第一建图节点最近的n个建图节点范围内。其中,n可以为大于1的任意正整数,例如,n可以为10。

S404,根据校验通过的目标点对应的修正后位姿,在全局点云地图中提取局部点云地图。

其中,校验通过的目标点对应的修正后位姿可以用距离该目标点最近的建图节点的节点位姿来表示。由于机器人当前可能在通过校验的目标点附近,所以基于目标点对应的修正后位姿在全局点云地图中提取局部点云地图,以将当前点云帧和提取的局部点云地图进行配准。

在一个实施例中,假设在历史建图过程中保存了20个目标点,其中有10个目标点通过校验。对于10个目标点中的每个目标点,机器人确定距离该目标点最近的建图节点,以该建图节点为中心,在全局点云地图中提取局部点云地图。

上述实施例中,首先基于修正后位姿对各目标点进行校验,并确定校验通过的目标点,然后根据校验通过的目标点对应的修正后位姿,在全局点云地图中提取局部点云地图。如此设置可以判断机器人是否在某个目标点附近,并选取机器人附近的目标点进行配准,降低了配准的计算量和耗时,提高了扩展建图的效率。

在一个实施例中,S206具体包括:根据修正后位姿对当前点云帧进行坐标转换,得到转换后的当前点云帧;计算转换后的当前点云帧与各局部点云地图间的匹配得分;根据匹配得分在局部点云地图中选取匹配的局部地图;将匹配的局部地图和当前点云帧组成配准对,并将配准对作为匹配结果。

机器人根据修正后位姿对当前点云帧进行坐标转换,以将当前点云帧中的点云坐标转换到全局点云地图的坐标系。机器人计算转换后的当前点云帧与各局部点云地图间的匹配得分,例如,机器人可以根据ICP配准算法计算当前点云帧与各局部点云地图间的匹配得分。然后根据匹配得分在局部点云地图中选取匹配的局部地图,并将匹配的局部地图和当前点云帧组成配准对。例如,选取匹配得分最低的局部点云地图;或者也可以选取匹配得分最低且匹配得分低于得分阈值的局部点云地图。

在一个实施例中,机器人将修正后位姿与当前点云帧间相乘,得到转换后的当前点云帧。例如,机器人根据公式(1)计算转换后的当前点云帧,其中,

上述实施例中,机器人根据修正后位姿对当前点云帧进行坐标转换,得到转换后的当前点云帧;计算转换后的当前点云帧与各局部点云地图间的匹配得分;根据匹配得分在局部点云地图中选取匹配的局部地图。从而可以在各局部点云地图中找到与当前点云帧间最匹配的局部点云地图,提高了匹配结果的准确性。

在一个实施例中,S206具体包括:计算配准对中的当前点云帧与相匹配的局部点云地图间的映射矩阵;基于修正后位姿和映射矩阵确定机器人的当前位姿。

其中,配准对由当前点云帧与相匹配的局部点云地图组成,映射矩阵为用于确定当前点云帧与局部点云地图间映射关系的矩阵。通过映射矩阵可以将当前点云帧映射至局部点云地图的坐标系。映射矩阵还可以表示当前点云帧与相匹配的局部点云地图间的相对位姿。机器人通过点云配准算法可以计算得到当前点云帧与相匹配的局部点云地图间的映射矩阵。例如,映射矩阵为Tc。

机器人基于修正后位姿和映射矩阵确定当前位姿。例如,机器人可以根据公式(2)计算当前位姿。其中,Δ

Δ

上述实施例中,计算配准对中的当前点云帧与相匹配的局部点云地图间的映射矩阵,并基于修正后位姿和映射矩阵确定机器人的当前位姿,从而可以机器人的当前位姿为初始位姿进行扩展建图,在机器人建图环境较大时,保证了扩展建图的顺利完成。

在一个实施例中,如图5所示,扩展建图方法包括如下步骤:

S502,获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;

S504,确定各建图节点对应的节点位姿与目标点位姿间的距离;

S506,在各距离中,确定满足距离条件的目标距离,并将目标距离对应的节点位姿作为目标点位姿对应的修正后位姿;

S508,基于修正后位姿对各目标点进行校验,并确定校验通过的目标点;

S510,根据校验通过的目标点对应的修正后位姿,在全局点云地图中提取局部点云地图;

S512,根据修正后位姿对当前点云帧进行坐标转换,得到转换后的当前点云帧;

S514,计算转换后的当前点云帧与各局部点云地图间的匹配得分,并根据匹配得分在局部点云地图中选取匹配的局部地图;

S516,将匹配的局部地图和当前点云帧组成配准对,并将配准对作为匹配结果;

S518,计算配准对中的当前点云帧与相匹配的局部点云地图间的映射矩阵,并基于修正后位姿和映射矩阵确定机器人的当前位姿;

S520,根据当前点云帧与当前位姿,在全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。

上述S502至S520的具体内容可以参考上文的具体实现过程。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的扩展建图方法的扩展建图装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个扩展建图装置实施例中的具体限定可以参见上文中对于扩展建图方法的限定,在此不再赘述。

在一个实施例中,如图6所示,提供了一种扩展建图装置,包括:获取模块602、修正模块604、匹配模块606和建图模块608,其中:

获取模块602,用于获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;

修正模块604,用于根据节点位姿对各目标点位姿进行修正,得到修正后位姿,并基于各修正后位姿分别在全局点云地图中提取局部点云地图;

匹配模块606,用于将机器人采集的当前点云帧和各局部点云地图进行匹配,得到匹配结果,并基于匹配结果确定机器人的当前位姿;

建图模块608,用于根据当前点云帧与当前位姿,在全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图。

上述实施例中,获取历史建图过程中各建图节点对应的节点位姿、机器人在目标点时的目标点位姿以及历史建图中断时生成的全局点云地图;根据节点位姿对各目标点位姿进行修正,得到修正后位姿;由于目标点位姿是在建图过程中实时保存的机器人位姿,在保存目标点位姿后建图过程并没有立即中断,所以实时保存的目标点位姿可能与机器人的实际位姿有较大差距,对目标点位姿进行修正后可以缩小这种差距。基于各修正后位姿分别在全局点云地图中提取局部点云地图,将机器人采集的当前点云帧和各局部点云地图进行匹配;基于匹配结果确定机器人的当前位姿;根据当前点云帧与当前位姿,在全局点云地图的基础上继续进行扩展建图操作,得到当前的点云地图;由于局部点云地图是根据修正后位姿在全局点云地图中提取的,与实际位姿的差距较小,因此提高了扩展建图的稳定性,而且还提高了对当前点云帧与局部点云地图进行匹配的准确性,避免了发生匹配失败,提高了扩展建图的成功率。

在一个实施例中,匹配模块606,还用于:

获取机器人预采集的点云帧,并计算预采集的点云帧与各建图节点对应的点云关键帧间的相似度得分;

若相似度得分满足得分条件,则将预采集的点云帧作为当前点云帧,并将当前点云帧和各局部点云地图进行匹配;

若相似度得分不满足得分条件、且预采集的点云帧的总帧数小于帧数阈值,则返回获取机器人预采集点云帧的步骤;

若相似度得分不满足得分条件、且预采集的点云帧的总帧数大于或等于帧数阈值,则调整机器人的位姿,并在调整后继续执行获取机器人预采集点云帧的步骤,直到相似度得分满足得分条件。

在一个实施例中,修正模块604,还用于:

确定各建图节点对应的节点位姿与目标点位姿间的距离;

在各距离中,确定满足距离条件的目标距离;

将目标距离对应的节点位姿作为目标点位姿对应的修正后位姿。

在一个实施例中,修正模块604,还用于:

基于修正后位姿对各目标点进行校验,并确定校验通过的目标点;

根据校验通过的目标点对应的修正后位姿,在全局点云地图中提取局部点云地图。

在一个实施例中,如图7所示,进一步地,图6所示的扩展建图装置,还包括:

下采样模块610,用于对局部点云地图进行下采样,得到下采样局部地图;

匹配模块606,还用于:

获取机器人采集的当前点云帧;

对当前点云帧进行下采样,得到下采样点云帧;

将下采样点云帧和下采样局部地图进行匹配,得到匹配结果。

在一个实施例中,匹配模块606,还用于:

根据修正后位姿对当前点云帧进行坐标转换,得到转换后的当前点云帧;

计算转换后的当前点云帧与各局部点云地图间的匹配得分;

根据匹配得分在局部点云地图中选取匹配的局部地图;

将匹配的局部地图和当前点云帧组成配准对,并将配准对作为匹配结果。

在一个实施例中,匹配模块606,还用于:

计算配准对中的当前点云帧与相匹配的局部点云地图间的映射矩阵;

基于修正后位姿和映射矩阵确定机器人的当前位姿。

上述扩展建图装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种机器人,其内部结构图可以如图8所示。该机器人包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该机器人的处理器用于提供计算和控制能力。该机器人的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该机器人的输入/输出接口用于处理器与外部设备之间交换信息。该机器人的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种扩展建图方法。该机器人的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该机器人的输入装置可以是显示屏上覆盖的触摸层,也可以是机器人外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric RandomAccess Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccessMemory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

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

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • Activiti流程图的重绘制方法、装置、计算机设备及存储介质
  • 一种查询图构建方法、装置、电子设备及计算机存储介质
  • 用于切分图数据的方法、装置、设备以及计算机可读存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种元数据存储方法、装置、设备及计算机可读存储介质
  • 点云建图方法、计算机设备及计算机可读存储介质
  • 激光建图方法、装置及电子设备、计算机可读存储介质
技术分类

06120116117700