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

地图的更新方法及装置

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


地图的更新方法及装置

技术领域

本申请涉及地图更新领域,具体而言,涉及一种地图的更新方法及装置。

背景技术

三维点云地图,是将激光雷达采集到的点云数据投影到世界坐标系上所生成的地图,高精度的三维点云地图是机器人移动的重要组成部分,是机器人路径规划和决策控制的基础,也为高精度的机器人自定位提供核心数据。

在机器人定位构图中,一般只在第一次部署的时候运行slam(simultaneouslocalization and mapping,定位与地图构建)算法生成三维点云地图,后续机器人基于此点云地图进行定位和导航。但是,当环境发生较大改变的时候,基于地图的定位会出现偏差、漂移,从而影响导航的效果,因此需要重新部署,而重新部署点云地图又会耗费大量的时间和资源。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种地图的更新方法及装置,以至少解决相关技术中当环境发生变化时,需要重新部署地图,从而耗费大量的时间和资源的技术问题。

根据本申请实施例的一个方面,提供了一种地图的更新方法的流程图,包括:获取第一地图和第二地图,其中,第一地图用于表征预先构建的地图,第二地图是基于目标对象从初始位置移动至当前位置所获取到的多个特征集合构建的,每个特征集合用于表征目标对象在每个位置所处环境的特征;获取第一特征集合,其中,第一特征集合是目标对象在当前位置所获取到的特征集合;基于第二地图和第一特征集合,更新第一地图。

可选地,基于第二地图和第一特征集合,更新第一地图,包括:获取第二地图中与第一特征集合对应的第一关键帧,其中,第二地图由多个关键帧构成,每个关键帧中包括至少一个特征集合;确定第一地图中与第二特征集合对应的第二关键帧,其中,第二特征集合用于表征目标对象在目标位置所获取到的特征集合,目标位置为目标对象移动的多个位置中与当前位置最近的位置;利用第一关键帧替换第一地图中的第二关键帧,得到更新后的第一地图。

可选地,在基于第二地图和第一特征集合,更新第一地图之前,该方法包括:利用第二特征集合,确定第一地图包含的多个特征集合中的第三特征集合,其中,第三特征集合为多个特征集合与第二特征集合距离最近的特征集合;基于第一特征集合和第三特征集合,确定第一距离,其中,第一距离用于表征第一特征集合中的特征点与第三特征集合中的特征点之间的距离;基于第一特征集合和第二特征集合,确定第二距离,其中,第一距离用于表征第一特征集合中的特征点与第二特征集合中的特征点之间的距离;基于第一距离和第二距离,确定是否更新第一地图。

可选地,基于第一距离和第二距离,确定是否更新第一地图,包括:判断第一距离是否大于第一预设距离,第二距离是否小于第二预设距离;

在第一距离大于第一预设距离,且第二距离小于第二预设距离的情况下,基于第一距离和第二距离,确定更新第一地图。

可选地,基于第一特征集合和第三特征集合,确定第一距离,或,基于第一特征集合和第二特征集合,确定第二距离,包括:基于第三特征集合或第二特征集合中的特征点,构建平面方程;获取第一特征集合中的每个特征点与平面方程的目标距离;获取多个目标距离的平均值,得到第一距离或第二距离。

可选地,该方法还包括:获取多个传感器的测量数据;基于第一距离和第二距离,利用测量数据确定目标对象需要到达的下一个位置。

可选地,基于第一距离和第二距离,利用测量数据确定目标对象需要到达的下一个位置,包括:获取目标对象的移动距离,其中,移动距离用于表征目标对象从初始位置到当前位置之间移动的距离;基于第一距离和至少一个目标距离,确定第一协方差,每个目标距离为第一特征集合中的每个特征点与第一地图对应的平面方程的距离;基于第二距离和至少一个目标距离,确定第二协方差;基于移动距离、第一协方差和第二协方差,利用测量数据确定目标对象的需要到达的下一个位置。

可选地,在获取第二地图之前,该方法还包括:获取第三地图,其中,第三地图是基于目标对象从初始位置移动至当前位置的上一个位置所获取到的多个特征集合构建的地图;将第一特征集合添加至第三地图中,得到第二地图。

可选地,在获取第一特征集合之前,该方法还包括:获取原始特征集合;对原始特征集合的特征点进行预处理,其中,预处理包括如下至少之一:对原始特征集合中的每个特征点进行畸变校正;剔除原始特征集合中曲率小于预设曲率的特征点;基于预处理后的特征点,确定第一特征集合。

根据本申请实施例的另一方面,还提供了一种地图的更新装置,包括:第一获取模块,用于获取第一地图和第二地图,其中,第一地图用于表征预先构建的地图,第二地图是基于目标对象从初始位置移动至当前位置所获取到的多个特征集合构建的,多个特征集合用于表征目标对象所处环境的特征;第二获取模块,用于获取第一特征集合,其中,第一特征集合是目标对象在当前位置所获取到的特征集合;更新模块,用于基于第二地图和第一特征集合,更新第一地图。

根据本申请实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的地图的更新方法。

根据本申请实施例的另一方面,还提供了一种机器人,包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的地图的更新方法。

在本申请实施例中,首先获取预先构建的第一地图,以及目标对象移动过程中实时基于所处环境的特征构建的第二地图,然后获取目标对象在当前位置的第一特征集合,最后基于第二地图和第一特征集合,更新第一地图,实现了在环境发生较小的改变的时候,利用第二地图中的特征集合来对第一地图进行局部更新,当环境发生了较大的改变的时候,利用第二地图中的所有特征集合来对第一地图进行全局更新,避免耗费大量和时间和资源来重新部署地图,进而解决了相关技术中当环境发生变化时,需要重新部署地图,从而耗费大量的时间和资源的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种地图的更新方法的流程图;

图2是一种基于滑动窗口优化的多传感器融合定位方法估计状态的示意图;

图3是一种点云数据畸变校正的示意图;

图4是根据本申请实施例的另一种地图的更新方法的流程图;

图5是点云数据发生畸变的示意图;

图6是点云数据进行畸变校正后的示意图;

图7是环境变化前全局点云地图的示意图;

图8是环境发生变化后全局点云地图的示意图;

图9是另一种环境变化前全局点云地图的示意图;

图10是另一种环境发生变化后全局点云地图的示意图;

图11是根据本申请实施例的一种地图更新装置的示意图;

图12是根据本申请实施例的一种地图更新机器人的示意图。

具体实施方式

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

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

机器人的硬件部分由机械组件、控制器、雷达模块等部分所构成,由整体结构件结合到一起,同时也由专用的软件系统作为支撑,其中机械组件包括机身和机械腿,其中,机身上设置有雷达模块,用于在机身旋转的过程中采集机器人当前所处环境的特征点,其中,控制器用于控制机器人的机械腿进行移动。

实施例1

根据本申请实施例,提供了一种地图的更新方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中使出了逻辑顺序,但是在某些情况下,可以以不同于此的顺序执行所示出或描述的步骤。

图1是根据本申请实施例的一种地图的更新方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,获取第一地图和第二地图。

其中,第一地图用于表征预先构建的地图,第二地图基于目标对象从初始位置移动至当前位置所获取到的多个特征集合构建的,每个特征集合用于表征目标对象在每个位置环境的特征。

上述步骤中的第一地图可以是根据3D激光slam算法(simultaneouslocalization and mapping,定位与地图构建)预先构建的点云地图。需要说明的是,第一地图可以是指定区域的地图,第一地图还可以是构建的所有区域的地图,第一地图还可以从网络中获取。

上述步骤中的第二地图可以是实时构建的点云地图,具体的,在目标对象移动的过程中,实时的获取周围环境的特征集合,并根据获取到的特征集合实时构建地图。具体的,第二地图的构建过程可以为,目标对象移动一个位置,就根据移动过程中所获取的特征集合构建第二地图,在移动至下一个位置时,在上次构建的第二地图的基础上,将移动至下一个位置的移动过程中所获取的特征集合添加进去,重新构建成第二地图。

上述步骤中的目标对象可以是机器人、车辆等可以进行移动的机器或设备。

上述步骤中的特征集合中可以包括多个特征点,其中,多个特征点可以通过激光雷达获取得到。

在一种可选的实施例中,初始位置可以是目标对象进入指定区域时所在的位置,只有在目标对象到达初始位置的情况下,才获取特征集合。示例性的,指定区域为A区域,当机器人刚进入A区域时,则可以确定机器人的初始位置为机器人刚进入A区域时所在的位置,并开始获取特征集合;还可以是用户设定的位置,示例性的,指定区域为A区域,用户设定A区域的a位置为初始位置,只有当机器人移动至a位置的情况下,才确定机器人的初始位置为a位置,并开始获取特征集合,此时,机器人可以基于初始位置,即a位置开始进行移动。

步骤S104,获取第一特征集合。

其中,第一特征集合是目标对象在当前位置所获取到的特征集合。

上述步骤中的第一特征集合为目标对象在当前位置所获取到的当前环境的特征点的集合,其中,特征点是最基本的曲面集合形状的特征基元,其不会因为坐标系的改变而发生变化。

在一种可选的实施例中,可以采用3D激光雷达获取一帧点云数据,其中,该帧点云数据是激光雷达在一段连续时间内的累计测量,然后对该帧点云数据进行畸变校正,最后从畸变校正后的点云数据中提取多个特征点,即,从畸变校正后的点云数据中提取第一特征集合。其中,3D激光雷达可以是旋转的雷达,也可以是固定的雷达。其中,旋转的雷达获取到的特征点更多,固定的雷达获取到的特征点更加的准确。

步骤S106,基于第二地图和第一特征集合,更新第一地图。

在一种可选的实施例中,可以在第一地图的误差较大时,基于第二地图和第一特征集合,更新第一地图;可以在第一地图与实际地图误差较小时,不更新第一地图。

在另一种可选的实施例中,由于第二地图是基于目标对象从初始位置移动至当前位置所获取到的多个特征集合构建的,因此,当第一地图的误差较大时,可以基于第二地图进行更新,具体的,可以根据第二地图中的关键帧对第一地图进行更新,还可以基于第一特征集合中的特征点对第一地图进行更新。

通过本申请的上述实施例,首先获取预先构建的第一地图,以及目标对象移动过程中实时基于所处环境的特征构建的第二地图,然后获取目标对象在当前位置的第一特征集合,最后基于第二地图和第一特征集合,更新第一地图,实现了在环境发生较小的改变的时候,利用第二地图中的特征集合来对第一地图进行局部更新,当环境发生了较大的改变的时候,利用第二地图中的所有特征集合来对第一地图进行全局更新,避免耗费大量和时间和资源来重新部署地图,进而解决了相关技术中当环境发生变化时,需要重新部署地图,从而耗费大量的时间和资源的技术问题。

可选地,基于第二地图和第一特征集合,更新第一地图,包括:获取第二地图中与第一特征集合对应的第一关键帧,其中,第二地图由多个关键帧构成,一个关键帧中包括至少一个特征集合;确定第一地图中与第二特征集合对应的第二关键帧,其中,第二特征集合用于表征目标对象在目标位置所获取到的特征集合,目标位置为目标对象移动的多个位置中与当前位置最近的位置;利用第一关键帧替换第一地图中的第二关键帧,得到更新后的第一地图。

通过利用多个关键帧构建第二地图,可以避免构建的第二地图过大,并且降低内存负担。

上述步骤中的第二特征集合为在第一地图中,目标对象所在当前位置的距离最近的位置对应的特征集合。

在一种可选的实施例中,当目标对象当前所处环境发生局部的改变时,可以基于目标对象在当前位置所获取的第一特征集合,获取在第二地图中与该第一特征集合对应的第一关键帧,需要说明的是,第一关键帧中的特征集合都是目标对象在运动过程中实时获取的,因此,可以利用第一关键帧替换掉第一地图中误差较大的第二特征集合对应的第二关键帧,由此,可以通过更新第一地图中误差较大的关键帧,来消除环境发生改变时第一地图中的偏差部分。

可选地,在基于第二地图和第一特征集合,更新第一地图之前,该方法包括:利用第二特征集合,确定第一地图包含的多个特征集合中的第三特征集合,其中,第三特征集合为多个特征集合与第二特征集合距离最近的特征集合;基于第一特征集合和第三特征集合,确定第一距离,其中,第一距离用于表征第一特征集合中的特征点与第三特征集合中的特征点之间的距离;基于第一特征集合和第二特征集合,确定第二距离,其中,第一距离用于表征第一特征集合中的特征点与第二特征集合中的特征点之间的距离;基于第一距离和第二距离,确定是否更新第一地图。

在一种可选的实施例中,可以获取第二特征集合,以便确定第一地图中与第二特征集合临近的第三特征集合,具体的,可以根据第二特征集合中的特征点,搜索第一地图中与该特征点小于第一预设距离的多个特征点,由此,可以根据多个特征点确定第三特征集合,即第一地图中目标对象在当前位置的最近位置所对应的特征集合;由于目标对象在相邻的两个位置所获取到的特征集合一般不会发生较大的改变,因此,可以根据目标对象在第一地图中当前位置的最近位置对应的特征集合和目标对象在当前位置实际所获取到的特征集合来确定一个第一距离,以确定第一地图中的误差是否较大,是否需要更新第一地图。

上述步骤中的第一预设距离可以由用户进行设置,还可以根据环境的变化情况进行设置。上述步骤中的第二特征集合用于表征目标对象在当前位置的前一个位置所获取到的特征集合。

另外,根据目标对象在第二地图中的当前位置的前一个位置对应的特征集合和目标对象在当前位置实际所获取到的特征集合来确定一个第二距离,当第二距离较小的时候,可以在第一地图需要更新的情况下,利用第二地图中的第二特征集合更新第一地图中的第三特征集合;当第二距离较大的时候,在第一地图需要更新的情况下,由于第二距离较大,若采用第二特征集合进行更新则会引起第一地图更大的误差,此时,可以不更新第一地图,减少第一地图的误差。需要说明的是,第一地图需要更新的情况可以是当前环境发生了较大的改变。

可选地,基于第一距离和第二距离,确定是否更新第一地图,包括:判断第一距离是否大于第一预设距离,第二距离是否小于第二预设距离;在第一距离大于第一预设距离,且第二距离小于第二预设距离的情况下,基于第一距离和第二距离,确定更新第一地图。

在一种可选的实施例中,可以判断第一距离是否大于第一预设距离,在第一距离大于第一预设距离的情况下,说明目标对象所处的环境发生了较大的改变,此时需要对第一地图进行更新;可以判断第二距离是否小于第二预设距离,在第二距离小于第二预设距离的情况下,说明目标对象在移动过程中实时构建的第二地图的误差较小,此时,若第一地图需要更新,可以利用第二地图中的特征集合对第一地图中对应的特征集合进行替换,由此,使第一地图可以在环境发生较大改变的情况下进行更新。

示例性的,设置第二地图的误差距离为

需要说明的是,若第二距离大于第二预设距离,则说明第二地图中所获取到特征集合不够准确,若利用第二地图中的特征集合进行替换,得到的第一地图则会更加的不准确,此时,可以不利用第二地图中的特征集合对第一地图进行更新。

示例性的,在目标对象移动的过程中,可以采用激光雷达对当前环境中的特征进行采集和提取,若此时激光雷达采集到环境中具有不固定性的物体,例如车辆等,可能会造成第二距离较大,此时,获取到的特征集合就不适用于更新第一地图。

可选地,基于第一特征集合和第三特征集合,确定第一距离,或,基于第一特征集合和第二特征集合,确定第二距离,包括:基于第三特征集合或第二特征集合中的特征点,构建平面方程;获取第一特征集合中的每个特征点与平面方程的目标距离;获取多个目标距离的平均值,得到第一距离或第二距离。

在一种可选的实施例中,可以利用最小二乘法对第三特征集合或第二特征集合中的特征点进行拟合,构建平面方程。

在另一种可选的实施例中,可以根据公式

可选地,该方法还包括:获取多个传感器的测量数据;基于第一距离和第二距离,利用测量数据确定目标对象需要到达的下一个位置。

在一种可选的实施例中,可以获取多个传感器的测量数据,然后利用多传感器融合将多个测量数据进行分析,得到一个目标数据,并基于第一距离和第二距离,利用目标数据确定目标对象需要到达的下一个位置。其中,多传感器融合就是利用计算机技术将来自多传感器或多源的信息和数据,在一定的准则下加以自动分析和综合,以完成所需要的决策和估计而进行的信息处理过程。

示例性的,可以将目标对象的位姿设置为待估计的状态变量,再采用基于滑动窗口优化的多传感器融合定位方法估计状态,如图2所示,具体的根据轮速里程计的相对测量,局部地图的相对测量,全局地图的绝对测量等多传感器的测量,联合待估计的状态变量构建一个最大后验估计问题求解,最后得到机器人当前的最优位姿;其中,1表示为状态变量,2表示为局部地图的相对测量,3表示为全局地图的相对测量,4表示为轮速里程计的相对测量。

可选地,基于第一距离和第二距离,利用测量数据确定目标对象需要到达的下一个位置,包括:获取目标对象的移动距离,其中,移动距离用于表征目标对象从初始位置到当前位置之间移动的距离;基于第一距离和至少一个目标距离,确定第一协方差,每个目标距离为第一特征集合中的每个特征点与第一地图对应的平面方程的距离;基于第二距离和至少一个目标距离,确定第二协方差;基于移动距离、第一协方差和第二协方差,利用测量数据确定目标对象需要到达的下一个位置。

在一种可选的实施例中,通过第一距离和至少一个目标距离,可以确定第一协方差,具体的,可以根据第一距离确定第一变化矩阵,然后根据第一变化矩阵和至少一个目标距离的乘积确定第一协方差,其中,第一变化矩阵用于表征第一地图中的特征点的变化量;可以根据第二距离确定第二变化矩阵,然后根据第二变化矩阵和至少一个目标距离的乘积确定第二协方差,其中,第二变化矩阵用于表征第二地图中特征点的变化量,利用第一协方差和第二协方差对移动距离进行约束,进一步的利用测量数据对移动距离进行调整,根据调整后的移动距离确定目标对象需要到达的下一个位置。

示例性的,每一个特征点都构建一个约束方程,算法将两帧之间的变换矩阵T作为求解目标,点到对应平面块的距离作为代价函数,构建了一个优化方程:min∑||f(p

可选地,在获取第二地图之前,该方法还包括:获取第三地图,其中,第三地图是基于目标对象从初始位置移动至当前位置的上一个位置所获取到的多个特征集合构建的地图;将第一特征集合添加至第三地图中,得到第二地图。

在一种可选的实施例中,可以先获取第三地图,将第一特征集合添加至第三地图中,得到第二地图,在目标对象移动到下一个位置的时候,将得到的第二地图作为第三地图,并将下一个位置获取到的特征集合添加至该第三地图中,得到第二地图,由此,可以在目标对象移动的过程中一直对第二地图进行更新,以便最终获取到的第二地图中包括了目标对象在移动过程中所获得的所有特征集合。

可选地,在获取第一特征集合之前,该方法还包括:获取原始特征集合;对原始特征集合的特征点进行预处理,其中,预处理包括如下至少之一:对原始特征集合中的每个特征点进行畸变校正;剔除原始特征集合中曲率小于预设曲率的特征点;基于预处理后的特征点,确定第一特征集合。

在一种可选的实施例中,可以先用激光雷达获取原始特征集合,若激光雷达发生了运动,则会导致特征点在获取的过程中发生畸变,当激光雷达运动的越激烈,其特征点畸变的情况就越严重,此时,需要对原始特征集合中的特征点进行畸变处理;在对原始特征集合中的特征点进行畸变处理之后,可以通过曲率公式确定原始特征集合中曲率小于预设曲率的特征点,即平面中的特征点,并将确定的平面中的特征点都归纳至第一特征集合中。

畸变处理过程具体为,可以使用激光雷达获取一段时间内的累计测量点云数据,然后对点云数据进行畸变校正,其中,点云畸变可以理解为,t

曲率是一种点云表面的几何特征,其反应了该点表面的平滑度,平面上的点的曲率小,边缘上的点曲率大,设定一个平面曲率阈值,可以提取平面的特征点,点云的曲率公式可以表示为:

下面结合图4至图10对本申请一种优选的实施例进行详细说明。如图4所示,该方法可以包括如下步骤:

步骤S41,利用3D激光雷达获取点云数据;

步骤S42,对点云数据进行畸变校正,并对畸变校正后的点云提取特征点;

如图5所示为激光雷达发生运动,导致点云数据发生畸变的示意图;如图6所示为对点云数据进行畸变校正后的示意图。

步骤S43,根据特征点与全局点云地图和局部点云地图构建约束方程;

步骤S44,确定当前帧激光点云全局坐标系和局部坐标系下的位姿及其协方差;

步骤S45,根据轮式里程计的测量,3D激光对全局地图和局部地图的测量,运行多传感器融合的算法估计机器人在全局坐标系下的位姿;

步骤S46,运行环境变化检测模块,通过当前帧在局部地图和全局地图的平均误差距离,判定环境是否发生改变;若环境发生改变,则执行步骤S47,若环境未发生改变,则执行步骤S49;

步骤S47,将当前帧点云变换到全局坐标系下,并将当前帧点云添加到全局点云地图中;

步骤S48,将全局地图中距离当前帧最近的关键帧删除,更新全局点云地图;

步骤S49,禁止更新全局点云地图。

通过上述步骤,可以实现目标对象在移动的过程中自动更新点云地图,减少因环境变化而重复部署,延长点云地图使用周期,提高定位的精度和鲁棒性,减少人为干预。

如图7所示为环境变化前全局点云地图的示意图;如图8为环境发生变化后全局点云地图的示意图;如图9所示为环境变化前全局点云地图的示意图;如图10为环境发生变化后全局点云地图的示意图;图中箭头所指的部分为更新部分。

实施例2

根据本申请实施例,还提供了一种地图更新装置,该装置可以执行上述实施例中的地图更新方法,具体实现方式和优选应用场景与上述实施例相同,在此不做赘述。

图11是根据本申请实施例的一种地图更新装置的示意图,如图11所示,该装置包括:

第一获取模块110,用于获取第一地图和第二地图,其中,第一地图用于表征预先构建的地图,第二地图是基于目标对象从初始位置移动至当前位置所获取到的多个特征集合构建的,每个特征集合用于表征目标对象在每个位置所处环境的特征;

第二获取模块112,用于获取第一特征集合,其中,第一特征集合是目标对象在当前位置所获取到的特征集合;

更新模块114,用于基于第二地图和第一特征集合,更新第一地图。

可选地,更新模块包括:获取单元,用于获取第二地图中与第一特征集合对应的第一关键帧,其中,第二地图由多个关键帧构成,每个关键帧中包括至少一个特征集合;第一确定单元,用于确定第一地图中与第二特征集合对应的第二关键帧,其中,第二特征集合用于表征目标对象在目标位置所获取到的特征集合,目标位置为目标对象移动的多个位置中与当前位置最近的位置;替换单元,用于利用第一关键帧替换第一地图中的第二关键帧,得到更新后的第一地图。

该装置还包括:确定模块,用于利用第二特征集合,确定第一地图包含的多个特征集合中的第三特征集合,其中,第三特征集合为多个特征集合与第二特征集合距离最近的特征集合;确定模块还用于基于第一特征集合和第三特征集合,确定第一距离,其中,第一距离用于表征第一特征集合中的特征点与第三特征集合中的特征点之间的距离;确定模块还用于基于第一特征集合和第二特征集合,确定第二距离,其中,第一距离用于表征第一特征集合中的特征点与第二特征集合中的特征点之间的距离;确定模块还用于基于第一距离和第二距离,确定是否更新第一地图。

可选地,确定模块包括:判断单元,用于判断第一距离是否大于第一预设距离,第二距离是否小于第二预设距离;第二确定单元,用于在第一距离大于第一预设距离,且第二距离小于第二预设距离的情况下,基于第一距离和第二距离,确定更新第一地图。

可选地,确定模块包括:构建单元,用于基于第三特征集合或第二特征集合中的特征点,构建平面方程;获取单元,用于获取第一特征集合中的每个特征点与平面方程的目标距离;获取单元还用于获取多个目标距离的平均值,得到第一距离或第二距离。

可选地,该装置还包括:第四获取模块,用于获取多个传感器的测量数据;确定模块还用于基于第一距离和第二距离,利用测量数据确定目标对象需要到达的下一个位置。

可选地,确定模块包括:获取单元还用于获取目标对象的移动距离,其中,移动距离用于表征目标对象从初始位置到当前位置之间移动的距离;第二确定单元还用于基于第一距离和至少一个目标距离,确定第一协方差,每个目标距离为第一特征集合中的每个特征点与第一地图对应的平面方程的距离;第二确定单元还用于基于第二距离和至少一个目标距离,确定第二协方差;第二确定单元还用于基于移动距离、第一协方差和第二协方差,利用测量数据确定目标对象需要到达的下一个位置。

可选地,该装置还包括:第五获取模块,用于获取第三地图,其中,第三地图是基于目标对象从初始位置移动至当前位置的上一个位置所获取到的多个特征集合构建的地图;添加模块,用于将第一特征集合添加至第三地图中,得到第二地图。

可选地,该装置还包括:第六获取模块,用于获取原始特征集合;处理模块,用于对原始特征集合的特征点进行预处理,其中,预处理包括如下至少之一:对原始特征集合中的每个特征点进行畸变校正;剔除原始特征集合中曲率小于预设曲率的特征点;确定模块还用于基于预处理后的特征点,确定第一特征集合。

实施例3

本申请实施例还提供了一种计算机存储介质,计算机存储介质可以存储有多条指令,指令适于由处理器加载并执行如上述图1-图10所示实施例的方法步骤,具体执行过程可以参见图1-图10所示实施例的具体说明,在此不进行赘述。

存储介质所在设备可以是机器人。

实施例4

如图12所示,机器人1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。

其中,通信总线1002用于实现这些组件之间的连接通信。

其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。

其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。

其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种接口和线路连接整个机器人1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行机器人1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。

其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及智能交互平板的操作应用程序。

在图12所示的机器人1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的智能交互平板的操作应用程序,并具体执行以下操作:获取第一地图和第二地图,其中,第一地图用于表征预先构建的地图,第二地图是基于目标对象从初始位置移动至当前位置所获取到的多个特征集合构建的,每个特征集合用于表征目标对象在每个位置所处环境的特征;获取第一特征集合,其中,第一特征集合是目标对象在当前位置所获取到的特征集合;基于第二地图和第一特征集合,更新第一地图。

在一个实施例中,处理器1001还执行以下步骤:获取第二地图中与第一特征集合对应的第一关键帧,其中,第二地图由多个关键帧构成,每个关键帧中包括至少一个特征集合;确定第一地图中与第二特征集合对应的第二关键帧,其中,第二特征集合用于表征目标对象在目标位置所获取到的特征集合,目标位置为目标对象移动的多个位置中与当前位置最近的位置;利用第一关键帧替换第一地图中的第二关键帧,得到更新后的第一地图。

在一个实施例中,处理器1001还执行以下步骤:利用第二特征集合,确定第一地图包含的多个特征集合中的第三特征集合,其中,第三特征集合为多个特征集合与第二特征集合距离最近的特征集合;基于第一特征集合和第三特征集合,确定第一距离,其中,第一距离用于表征第一特征集合中的特征点与第三特征集合中的特征点之间的距离;基于第一特征集合和第二特征集合,确定第二距离,其中,第一距离用于表征第一特征集合中的特征点与第二特征集合中的特征点之间的距离;基于第一距离和第二距离,确定是否更新第一地图。

在一个实施例中,处理器1001还执行以下步骤:判断第一距离是否大于第一预设距离,第二距离是否小于第二预设距离;在第一距离大于第一预设距离,且第二距离小于第二预设距离的情况下,基于第一距离和第二距离,确定更新第一地图。

在一个实施例中,处理器1001还执行以下步骤:基于第三特征集合或第二特征集合中的特征点,构建平面方程;获取第一特征集合中的每个特征点与平面方程的目标距离;获取多个目标距离的平均值,得到第一距离或第二距离。

在一个实施例中,处理器1001还执行以下步骤:获取多个传感器的测量数据;基于第一距离和第二距离,利用测量数据确定目标对象需要到达的下一个位置。

在一个实施例中,处理器1001还执行以下步骤:获取目标对象的移动距离,其中,移动距离用于表征目标对象从初始位置到当前位置之间移动的距离;基于第一距离和至少一个目标距离,确定第一协方差,每个目标距离为第一特征集合中的每个特征点与第一地图对应的平面方程的距离;基于第二距离和至少一个目标距离,确定第二协方差;基于移动距离、第一协方差和第二协方差,利用测量数据确定目标对象需要到达的下一个位置。

在一个实施例中,处理器1001还执行以下步骤:获取第三地图,其中,第三地图是基于目标对象从初始位置移动至当前位置的上一个位置所获取到的多个特征集合构建的地图;将第一特征集合添加至第三地图中,得到第二地图。

在一个实施例中,处理器1001还执行以下步骤:获取原始特征集合;对原始特征集合的特征点进行预处理,其中,预处理包括如下至少之一:对原始特征集合中的每个特征点进行畸变校正;剔除原始特征集合中曲率小于预设曲率的特征点;基于预处理后的特征点,确定第一特征集合。

通过本申请的上述实施例,在本申请实施例中,首先获取预先构建的第一地图,以及目标对象移动过程中实时基于所处环境的特征构建的第二地图,然后获取目标对象在当前位置的第一特征集合,最后基于第二地图和第一特征集合,更新第一地图,实现了在环境发生较小的改变的时候,利用第二地图中的特征集合来对第一地图进行局部更新,当环境发生了较大的改变的时候,利用第二地图中的所有特征集合来对第一地图进行全局更新,避免耗费大量和时间和资源来重新部署地图,进而解决了相关技术中当环境发生变化时,需要重新部署地图,从而耗费大量的时间和资源的技术问题。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 地图更新方法、地图融合更新方法、终端及服务器
  • 地图更新装置、地图更新系统和地图更新方法
技术分类

06120112860945