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

关键帧的管理方法及管理装置、SLAM方法、电子设备与流程

2022-11-23 12:48:21 来源:中国专利 TAG:

关键帧的管理方法及管理装置、slam方法、电子设备
技术领域
1.本技术涉及机器人导航技术领域,特别是涉及一种关键帧的管理方法、slam方法、关键帧的管理装置、slam系统、电子设备和计算机可读存储介质。


背景技术:

2.同步定位与建图(simultaneous localization and mapping,slam)是机器人定位与导航的核心技术,通过持续匹配机器人的环境感知和地图实现自身定位,并在此基础上构建增量式全局地图。随着机器人作业时间的增长,导航系统中的冗余信息也不断累积。因此对该过程中冗余信息的识别与剔除,是机器人导航系统长航时运行稳定性的可靠保障。
3.一些相关技术根据关键帧的共视关系,选取共视度大于一定阈值的关键帧为候选冗余关键帧,然后利用滑动窗口的有效约束进行筛选,保留有效关键帧,剔除冗余关键帧,但在约束较少且单一的位姿图优化问题中,满足该筛选条件的冗余关键帧较少,限制了算法的去冗余效果;还有一些相关技术将时间最早的关键帧视为冗余关键帧,虽然在一定程度上可以避免关键帧剔除对后端优化的影响,但是无法保证优化后地图的饱和性,且将提取的冗余关键帧直接剔除,会导致原本完整的约束链断裂,影响后端优化效果。


技术实现要素:

4.本技术主要解决的技术问题是如何实现对slam系统的冗余关键帧的剔除,以提高slam系统内存资源的利用率,及如何减小冗余关键帧的剔除与slam系统的位姿优化之间的相互影响与制约,以保证slam系统运行的鲁棒性。
5.为解决上述技术问题,本技术提供一种关键帧的管理方法。该关键帧的管理方法用于slam系统,该管理方法包括:获取地图空间的关键帧链;基于关键帧链中关键帧的位姿匹配度获取关键帧链中的主关键帧及从关键帧,位于同一关键帧链中的主关键帧的位姿匹配度大于从关键帧的位姿匹配度;确定关键帧链是否是冗余关键帧链;若关键帧链是冗余关键帧链,则剔除冗余关键帧链中的从关键帧;slam系统的位姿优化约束是基于冗余关键帧链中的主关键帧及地图空间的其它关键帧链中的主关键帧建立。
6.为解决上述技术问题,本技术提供一种slam方法,该slam方法包括:数据预处理及匹配;利用上述管理方法剔除冗余关键帧链中的从关键帧;基于冗余关键帧链中的主关键帧及地图空间的其它关键帧链中的主关键帧建立位姿优化约束,并进行位姿更新。
7.为解决上述技术问题,本技术提供一种关键帧的管理装置。该关键帧的管理装置包括:关键帧链获取模块,用于获取地图空间的关键帧链;主从关键帧确定模块,与关键帧链获取模块连接,用于基于关键帧链中关键帧的位姿匹配度获取关键帧链中的主关键帧及从关键帧;冗余关键帧链确定模块,与关键帧链获取模块连接,用于确定关键帧链是否是冗余关键帧链;从关键帧剔除模块,与冗余关键帧链确定模块及主从关键帧确定模块连接,用于剔除冗余关键帧链中的从关键帧;其中,slam系统的位姿优化约束是基于冗余关键帧链
中的主关键帧及地图空间的其它关键帧链中的主关键帧建立。
8.为解决上述技术问题,本技术提供一种slam系统。该slam系统包括:图像采集装置,用于获取地图空间的点云数据;前端模块,与图像采集模块连接,用于对点云数据进行预处理及位姿匹配;上述关键帧的管理装置,与前端模块连接,用于前端模块输出的位姿匹配度确定关键帧链中的主关键帧及从关键帧,并剔除冗余关键帧链中的从关键帧;位姿优化模块,与关键帧的管理装置连接,用于基于冗余关键帧链中的主关键帧及地图空间的其它关键帧链中的主关键帧建立位姿优化约束,并进行位姿优化。
9.为解决上述技术问题,本技术提供一种电子设备。该电子设备包括:处理器和存储器,存储器中存储有程序数据,处理器用于执行程序数据以实现上述关键帧的管理方法和/或上述slam方法。
10.为解决上述技术问题,本技术提供一种计算机可读存储介质,该计算机可读存储介质存储有程序数据,程序数据能够被处理器执行时实现上述关键帧的管理方法和/或上述slam方法。
11.本技术的有益效果是:本技术关键帧的管理方法用于slam系统,该管理方法首先获取slam系统的地图空间的关键帧链,并基于关键帧链中的关键帧在slam系统前端位姿匹配的位姿匹配度,来获取关键帧链中的主关键帧及从关键帧,即对地图空间的关键帧链中的关键帧进行主-从关键帧的划分,且确定关键帧链是否是冗余关键帧链,若是,则从冗余关键帧链中剔除从关键帧,而保留主关键帧,其中,即slam系统的位姿优化约束是基于冗余关键帧链中的主关键帧及地图空间的其它关键帧链,即地图空间中的非冗余关键链中的主关键帧建立的。通过这种方式,因剔除了地图空间的冗余关键帧链中的从关键帧,能够提高slam系统内存资源的利用率;且基于冗余关键帧链中的主关键帧及非冗余关键帧链中的主关键帧建立的位姿优化约束,因主关键帧的位姿匹配度较高,能够保证slam后端优化稳定性以及地图饱和性,且本技术对关键帧链中的关键帧进行了主-从划分,并基于主关键帧建立的位姿优化约束,因此不会存在因从关键帧的剔除而导致约束链断裂的问题,因此能够减小冗余关键帧的剔除与slam系统后端的位姿优化之间的相互影响与制约,能够保证slam系统运行的鲁棒性。
附图说明
12.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1是本技术关键帧的管理方法一实施例的流程示意图;图2是本技术地图空间及其关键帧链一实施例的结构示意图;图3是图1实施例中步骤s11的具体流程示意图;
图4是图1实施例中步骤s13的具体流程示意图;图5是本技术关键帧的管理方法中确定冗余关键帧的具体流程示意图;图6是图5实施例中步骤s56的具体流程示意图;图7a是图2实施例地图空间的关键帧链中的主关键帧及从关键帧的结构示意图;图7b是图7a实施例地图空间的关键帧链中剔除从关键帧后的结构示意图;图7c是本技术位姿对应的点及其变换点云中的变换点对应的栅格示意图;图8是本技术slam方法一实施例的流程示意图;图9是图8实施例中步骤s83的具体流程示意图;图10是本技术关键帧的管理装置一实施例的结构示意图;图11是本技术slam系统一实施例的结构示意图;图12是图11实施例slam系统的一工作流程示意图;图13是本技术电子设备一实施例的结构示意框图;图14是本技术计算机可读存储介质一实施例的结构示意图。
具体实施方式
15.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
16.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
17.还应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
18.还应当进一步理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
19.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0020]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0021]
slam系统通常包含前端处理及后端处理。前端处理主要是通过点云匹配等方式估计机器人的当前位姿,然而该过程存在累计误差,在slam系统长时间运行后会导致机器人位姿漂移。为此,后端处理通过回环检测、全局优化等方式对前端处理的累计误差进行抑制。在后端处理中,通常以前端处理中筛选出的关键帧作为节点,并以两节点之间的相对位
姿关系作为约束,进而通过全局优化算法实现地图误差最小化。然而在长航时运行下,选取关键帧逐渐增多,slam系统的内存资源逐渐紧缺。
[0022]
为了提高slam系统长航时运行下内存资源的利用率,需要对冗余关键帧进行剔除。然而这一过程必然伴随着相应的优化节点及约束的剔除,导致后端优化链的断裂,影响slam系统运行的稳定性。
[0023]
为解决上述技术问题,本技术首先提出一种关键帧的管理方法,用于slam系统,如图1所示,图1是本技术关键帧的管理方法一实施例的流程示意图。本实施例的管理方法具体包括以下步骤:步骤s11:获取地图空间的关键帧链。
[0024]
该地图空间可以是slam系统一个地图更新周期对应的地图空间,即本实施例针对每个地图更新周期都进行冗余关键帧的剔除。
[0025]
关键帧是一种常用的方法,可以减少待优化的帧数,并且可以代表其附近的帧,关键帧相当于slam系统的骨架,是在局部一系列普通帧中选一帧作为局部帧的代表,记录局部信息。
[0026]
在关键帧提取当中,提取出来的关键帧序列都存在冗余帧,本文称之为冗余关键帧,即一些相同的关键帧。这些冗余关键帧只能提供有限的信息,却需要占用很大的资源对其进行存储、建立索引以及其他操作,因此,为了提高内存资源的利用率,需要对冗余关键帧进行剔除处理。
[0027]
获取机器人定位与建图对应的地图空间(也可以称之为机器人的环境区域)的多个关键帧及该多个关键帧对应的帧序号,基于多个关键帧及对应的帧序号,可以得到关键帧序列,如图2所示。其中,图2中方向表示相邻关键帧的帧序号的先后顺序。
[0028]
可选地,本实施例可以通过如图3所示的方法实现步骤s11,本实施例的方法包括步骤s31及步骤s32。
[0029]
步骤s31:将地图空间进行网格化处理,获取多个网格。
[0030]
将机器人定位建图的地图空间划分成多个网格,例如如图2所示,将地图空间划分成4个网格,每个网格的边长可以是d1。
[0031]
步骤s32:基于网格内的关键帧,获取网格对应的关键帧链。
[0032]
上述获取的关键帧序列中的关键帧会落入地图空间的网格内,每个网格对应有上述获取的一个或者多个关键帧。针对每个网格,基于网格内的关键帧建立网格对应的关键帧链。
[0033]
网格边长d1的具体数值可以基于slam系统的内存利用率和/或后端位姿优化效果而定。
[0034]
具体地,可以将位于同一网格内且时序相邻的关键帧依次连接,以建立网格对应的关键帧链。该时序可以基于关键帧的帧序号等获得。
[0035]
例如,如图2所示,地图空间的关键帧链为:网格m11内的关键帧链l1及l3,网格m12内的关键帧链l2,网格m13内的关键帧链l4,网格m14内的关键帧链l5。
[0036]
本实施例采用步骤s11获得的地图空间中的所有关键帧的关键帧序列,其包含关键帧及对应的帧序号,其可以表征机器人的运行轨迹,如图2中箭头所示的运行轨迹。按照预设网格大小将运行轨迹对应的多个关键帧划分为多个关键帧链。
[0037]
当然,在其它实施例中,关键帧链中的相邻关键帧在时序上可以不相邻,例如可以以跳帧方式建立关键帧链。
[0038]
地图空间的关键帧链包括冗余关键帧链及其它关键帧链,即非冗余关键帧链。
[0039]
步骤s12:基于关键帧链中关键帧的位姿匹配度获取关键帧链中的主关键帧及从关键帧;其中,位于同一关键帧链中的主关键帧的位姿匹配度大于从关键帧的位姿匹配度。
[0040]
slam系统通常在前端处理中通过点云匹配等方式估计机器人的当前位姿,会得到每个关键帧的位姿匹配度,本实施例基于关键帧链中的关键帧的位姿匹配度来确定地图空间中的多个关键帧链中的主关键帧及从关键帧。
[0041]
因每个关键帧链中的多个关键帧表征了机器人预设时段内的运动轨迹及位姿,因此,本实施例可以采用关键帧链中位姿匹配度最高的关键帧作为该关键帧链中的主关键帧来建立后续的位姿优化约束,能够保证该关键帧链在后端位姿优化中的作用,保证饱和性和稳定性。
[0042]
可以针对每个关键帧链,比较所有关键帧对应的位姿匹配度,将位姿匹配度最高的关键帧作为该关键帧链的主关键帧(如图2、图7a及图7b中黑点所示),该关键帧链中的其它关键帧作为从关键帧(如图2、图7a及图7b中圆圈所示)。如图7a所示,展示了图2中地图空间的各个关键帧链的主关键帧及从关键帧。
[0043]
步骤s13:确定关键帧链是否是冗余关键帧链。
[0044]
具体地,本实施例可以通过如图4所示的方法实现步骤s13,本实施例包括步骤s41及步骤s42。
[0045]
步骤s41:计算关键帧链中冗余关键帧的第一占比。
[0046]
步骤s42:若第一占比大于第一阈值,则确定关键帧链为冗余关键帧链。
[0047]
例如,计算每条关键帧链中冗余关键帧的第一占比,若第一占比大于第一阈值,则确定该关键帧链为冗余关键帧链;例如,该第一阈值可以是3、4、5等。
[0048]
在另一实施例中,在步骤s41之前,进一步确定地图空间的冗余关键帧。
[0049]
可选地,本实施例可以通过如图5所示的方法确定地图空间的冗余关键帧,本实施例的方法包括步骤s51至步骤s55。
[0050]
步骤s51:生成地图空间的栅格地图。
[0051]
slam系统构建地图空间的栅格地图。栅格地图由一个个栅格构成,本实施例栅格的初始栅格值可以为零,在后续的变换点云的注册过程中,可以将非冗余的关键帧的点云的冗余信息注册到对应的栅格,以更新栅格的栅格值,以使在对后续关键帧进行冗余判断时,将被前面的关键帧覆盖度较高的关键帧确定为冗余关键帧。
[0052]
步骤s52:获取地图空间的关键帧,并将关键帧的位姿对关键帧的点云进行坐标换,获得关键帧的变换点云。
[0053]
本实施例可以将关键帧的位姿对该关键帧的点云进行坐标变换,获得关键帧的变换点云,即将激光雷达从不同位置获取的关键帧的点云数据统一到同一参考坐标系下,以便于后续冗余点的判断。
[0054]
可以理解的,每个关键帧,其点云数据除了包括激光雷达在参考位置采集的点,即关键帧的位姿对应的点,还包括变换点云,该变换点云包含激光雷达在其它非参考位置采集的关键帧的点映射到参考坐标系下的点。
[0055]
步骤s53:确定变换点云中的冗余点。
[0056]
变换点云中存在与参考位置采集的点云相同的点,即冗余点。
[0057]
具体地,若变换点云中的变换点对应栅格的栅格值大于第一预设阈值或小于第二预设阈值,则确定该变换点为冗余点。其中,第一预设阈值大于第二预设阈值,第一预设阈值是判定栅格为障碍物点的参考栅格值,第二预设阈值是判定栅格为非障碍物的参考栅格值。关于栅格的栅格值的更新,可以参阅下文介绍。
[0058]
步骤s54:统计变换点云中冗余点的第二占比。
[0059]
步骤s55:若第二占比大于第二阈值,则确定关键帧为冗余关键帧。
[0060]
若关键帧对应的变换点云中冗余点的第二占比大于第二阈值,则确定该关键帧为冗余关键帧。
[0061]
本实施例的方法还包括步骤s56。
[0062]
步骤s56:若第二占比小于或者等于第二阈值,则将变换点云注册到栅格地图,以更新栅格地图。
[0063]
若关键帧对应的变换点云中冗余点的第二占比小于或者等于第二阈值,则确定关键帧不是冗余关键帧,需要将该关键帧的点云信息更新到栅格地图中,即更新栅格的栅格值,以使得在其它关键帧的冗余性判断时,可以根据栅格的覆盖关系,提取被其余关键帧覆盖度较高的关键帧为冗余关键帧。
[0064]
可选地,本实施例可以通过如图6所示的方法实现步骤s56,本实施例的方法包括步骤s61及步骤s62。
[0065]
步骤s61:获取以与位姿对应的栅格为起点,以与变换点云中所有变换点对应的栅格为终点的直线段簇。
[0066]
例如,如图7c所示,可以将参考位置采集的点,即关键帧的位姿对应的点a1及变换点云中的变换点a2映射到栅格地图b中,并获取位于以关键帧的位姿的点a1对应的栅格为起点,以该关键帧的变换点a2对应的栅格为终点的直线段中间位置上的栅格,即图7c中斜线标记的栅格。
[0067]
步骤s62:减小栅格地图中经过直线段簇中任意直线段的中间位置栅格的栅格值,并增加变换点对应栅格的栅格值。
[0068]
激光雷达能够获取到变换点a2,则该变换点a2为障碍物点,其对应的栅格的栅格值加一,且以关键帧的位姿对应的点a1对应的栅格为起点,以该变换点a2对应的栅格为终点的直线段的中间位置上的点无障碍,其对应的栅格值减一。
[0069]
通过栅格地图的这种注册方式,能够累计当前关键帧之前的非冗余关键帧的障碍物的情况。
[0070]
若某栅格的栅格值小于第二预设阈值时,可以认为在多个关键帧中该栅格都确定为非障碍物点,则确定该栅格对应的变换点为冗余点;若某栅格的栅格值大于第一预设阈值时,可以认为在多个关键帧中该栅格都确定为障碍物点,则确定该栅格对应的变换点云
为冗余点。
[0071]
通过上述方式,能够避免某一关键帧中某个栅格出现动态障碍物的问题,能够减少动态障碍物的干扰。
[0072]
在一应用场景中,生成地图空间的栅格地图,栅格地图的尺寸可以为,栅格的边长为d1,初始栅格值设定为零;根据关键帧的位姿对其点云进行坐标变换,生成变换点云,并逐点比对变换点云中的变换点和栅格地图的对应的栅格,若出现以下两种情况之一,则确定该变换点为冗余点:栅格值大于第一预设阈值(栅格值为正整数,如1等)或栅格值小于第二预设阈值(栅格值为负整数,如-2等);统计关键帧点云中冗余点的第二占比,若第二占比大于第二阈值,则该关键帧为冗余关键帧,存储该关键帧的id;否则将该关键帧的变换点云注册到栅格地图中。
[0073]
具体地,变换点云到栅格地图注册方式为:设第帧关键帧位姿对应的栅格为,设第帧关键帧的变换点云对应的栅格集合为,式中,为关键帧数量,为第帧关键帧变换点云中变换点的数量。设为以栅格为起点,栅格集合为终点的直线段簇,将栅格地图中经过的栅格值减一(不包括起点与终点),栅格集合对应的栅格值加一。
[0074]
进一步地,本实施例还可以按时间顺序逆序对地图空间的关键帧链中的多个关键帧进行冗余性判定,即优先对靠近当前时刻的关键帧进行冗余性判定,能够提高优化后地图的实时性。
[0075]
本实施例的上述方法适用于动态/变化场景的冗余关键帧提取,能够保证了优化后地图的饱和性与实时性,并在此基础上综合考虑了传感器测量的直线特性,使得算法能够将动态点云识别为冗余点云,降低了动态障碍物对算法的影响。
[0076]
步骤s14:若关键帧链是冗余关键帧链,则剔除冗余关键帧中的从关键帧;其中,slam系统的位姿优化约束是基于冗余关键帧中的主关键帧及地图空间的其它关键帧链中的主关键帧建立。
[0077]
剔除每个冗余关键帧链中的从关键帧,保留主关键帧。slam系统的后端处理基于冗余关键帧链中主关键帧及地图空间的其它关键帧链中的关键帧,即非冗余关键帧链中的主关键帧建立位姿优化约束,如图7b所示。
[0078]
本实施例因剔除了地图空间的冗余关键帧链中的从关键帧,能够提高slam系统内存资源的利用率;且基于冗余关键帧链中的主关键帧及非冗余关键帧链中的主关键帧建立的位姿优化约束,因主关键帧的位姿匹配度较高,能够保证slam后端优化稳定性以及地图饱和性,且本技术对关键帧链中的关键帧进行了主-从划分,并基于主关键帧建立的位姿优化约束,因此不会存在因从关键帧的剔除而导致约束链断裂的问题,因此能够减小冗余关键帧的剔除与slam系统后端的位姿优化之间的相互影响与制约,能够保证slam系统运行的鲁棒性。
[0079]
本技术进一步提出一种slam方法,如图8所示,图8是本技术slam方法一实施例的流程示意图,本实施例的slam方法具体包括以下步骤:步骤s81:数据预处理及匹配。
[0080]
其中,数据预处理主要是通过激光雷达等获取机器人所在位置的环境信息,然后对激光雷达原始数据进行优化,剔除一些有问题的数据,或者进行滤波。
[0081]
匹配主要是将当前局部环境的点云数据在已建立的地图上寻找对应的位置,匹配的好坏对slam系统构建地图的精度有直接的影响。在slam过程中,需要将激光雷达当前采集的点云匹配拼接到原有地图中。
[0082]
步骤s82:确定关键帧链中的主关键帧及从关键帧,并剔除地图空间的冗余关键帧链中的从关键帧。
[0083]
具体地,先将地图空间进行网格化处理,获取网格对应的关键帧链;基于前端处理中的关键帧的位姿匹配度确定关键帧中的主关键帧及从关键帧,并对关键帧链的冗余性进行判断,然后剔除冗余关键帧链中的从关键帧。
[0084]
本实施例可以采用上述关键帧的管理方法实现步骤s82,这里不赘述。
[0085]
步骤s83:基于冗余关键帧链中的主关键帧及地图空间的其它关键帧链中的主关键帧,并进行位姿更新。
[0086]
具体地,本实施例可以采用如图9所示的方法实现步骤s83,本实施例的方法包括步骤s91至步骤s94。
[0087]
步骤s91:基于冗余关键帧链中的主关键帧及地图空间中其它关键帧链中的主关键帧建立位姿优化约束。
[0088]
具体实施方式可以参阅现有技术。
[0089]
步骤s92:基于位姿优化约束更新主关键帧对应的位姿。
[0090]
步骤s93:获取主关键帧优化前后的位姿变换矩阵。
[0091]
步骤s94:基于位姿变换矩阵对与主关键帧位于同一关键帧链中的从关键帧进行位姿更新。
[0092]
仅将主关键帧传送到slam系统的后端处理并生成节点,并计算该节点与历史节点(时序相邻的两节点)的约束,以此构建后端优化约束;当后端优化执行完成后,根据主关键帧优化前后的位姿变换矩阵,对位于同一关键帧链中的从关键帧位姿进行更新。
[0093]
本技术进一步提出一种关键帧的管理装置,如图10所示,图10是本技术关键帧的管理装置一实施例的结构示意图。本实施例的管理装置包括:关键帧链获取模块10、冗余关键帧链获取模块11、主从关键帧确定模块12及从关键帧剔除模块13;其中,关键帧链获取模块10用于获取地图空间的关键帧链;主从关键帧确定模块12与关键帧链获取模块10连接,用于基于关键帧链中关键帧的位姿匹配度获取关键帧链中的主关键帧及从关键帧;冗余关键帧链获取模块11与关键帧链获取模块10连接,用于确定关键帧链是否是冗余关键帧链;从关键帧剔除模块13与冗余关键帧链获取模块11及主从关键帧确定模块12连接,用于剔除冗余关键帧链中的从关键帧;slam系统的位姿优化约束是基于冗余关键帧链中的主关键帧及地图空间的其它关键帧链中的主关键帧建立。
[0094]
上述模块之间的连接为数据通信连接,以进行数据传输。
[0095]
本实施例的关键帧的管理装置还用于实现上述关键帧的管理方法。
[0096]
本技术进一步提出一种slam系统,如图11所示,图11是本技术slam系统一实施例的结构示意图。本实施例的slam系统包括:图像采集装置111、前端模块112、关键帧的管理装置113及位姿优化模块114;其中,图像采集装置111用于获取地图空间的点云数据;前端模块112与图像采集装置111连接,用于对点云数据进行预处理及位姿匹配;关键帧的管理装置113与前端模块112连接,用于基于前端模块112输出的位姿匹配度确定关键帧链中的主关键帧及从关键帧,并剔除冗余关键帧中的从关键帧;位姿优化模块114与关键帧的管理装置113及前端模块112连接,用于基于冗余关键帧链中的主关键帧及地图空间的其它关键帧链中的主关键帧建立位姿优化约束,并进行位姿优化。
[0097]
关键帧的管理装置113的结构及工作原理可以参阅上述实施例。图像采集装置111可以是激光雷达等。
[0098]
前端模块112主要用于对激光雷达原始数据进行优化,剔除一些有问题的数据,或者进行滤波,及将当前局部环境的点云数据在已建立的地图上寻找对应的位置,将激光雷达当前采集的点云匹配拼接到原有地图中。位姿优化模块114基于主关键帧建立位姿优化约束,并基于该位姿优化约束进行主关键帧位姿优化,及根据主关键帧优化前后的位姿变换矩阵,对位于同一关键帧链中的从关键帧位姿进行更新,以完成位姿优化。
[0099]
其中,在一些应用场景中,例如slam系统的内存足够大时,可以不触发关键帧的管理装置113工作,即直接利用获取的地图空间的所有关键帧进行位姿优化。
[0100]
在一应用场景中,如图12所示,在执行slam算法的过程中,在每一个定位建图周期内,判断是否执行关键帧管理;若是,则先提取冗余关键帧,并提取冗余关键帧链,然后删除冗余关键帧链中的从关键帧,最后更新slam系统。
[0101]
本技术进一步提出一种电子设备,如图13所示,图13是本技术电子设备一实施例的结构示意图。本实施例电子设备100包括处理器101、与处理器101耦接的存储器102、输入输出设备103以及总线104。
[0102]
该处理器101、存储器102、输入输出设备103分别与总线104相连,该存储器102中存储有程序数据,处理器101用于执行程序数据以实现上述关键帧的管理方法和/或上述slam方法。
[0103]
在本实施例中,处理器101还可以称为cpu(central processing unit,中央处理单元)。处理器101可能是一种集成电路芯片,具有信号的处理能力。处理器101还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器101也可以是任何常规的处理器等。
[0104]
在一些实施例中,上述电子设备可以为移动机器人,例如扫地机器人、陪伴机器人、无人机等。
[0105]
本技术进一步提出一种计算机可读存储介质,如图14所示,图14是本技术计算机可读存储介质一实施例的结构示意图。计算机可读存储介质131其上存储有程序数据132,程序数据132被处理器(图未示)执行时实现上述关键帧的管理方法和/或上述slam方法。
[0106]
本实施例计算机可读存储介质131可以是但不局限于u盘、sd卡、pd光驱、移动硬盘、大容量软驱、闪存、多媒体记忆卡、服务器等。
[0107]
本技术关键帧的管理方法用于slam系统,该管理方法首先获取slam系统的地图空
间的关键帧链,并基于关键帧链中的关键帧在slam系统前端位姿匹配的位姿匹配度,来获取关键帧链中的主关键帧及从关键帧,即对地图空间的关键帧链中的关键帧进行主-从关键帧的划分,且确定关键帧链是否是冗余关键帧链,若是,则从冗余关键帧链中剔除从关键帧,而保留主关键帧,其中,即slam系统的位姿优化约束是基于冗余关键帧链中的主关键帧及地图空间的其它关键帧链,即非冗余关键链中的主关键帧建立的。通过这种方式,因剔除了地图空间的冗余关键帧链中的从关键帧,能够提高slam系统内存资源的利用率;且基于冗余关键帧链中的主关键帧及非冗余关键帧链中的主关键帧建立的位姿优化约束,因主关键帧的位姿匹配度较高,能够保证slam后端优化稳定性以及地图饱和性,且本技术对关键帧链中的关键帧进行了主-从划分,并基于主关键帧建立的位姿优化约束,因此不会存在因从关键帧的剔除而导致约束链断裂的问题,因此能够减小冗余关键帧的剔除与slam系统后端的位姿优化之间的相互影响与制约,能够保证slam系统运行的鲁棒性。
[0108]
另外,上述功能如果以软件功能的形式实现并作为独立产品销售或使用时,可存储在一个移动终端可读取存储介质中,即,本技术还提供一种存储有程序数据的存储装置,所述程序数据能够被执行以实现上述实施例的方法,该存储装置可以为如u盘、光盘、服务器等。也就是说,本技术可以以软件产品的形式体现出来,其包括若干指令用以使得一台智能终端执行各个实施例所述方法的全部或部分步骤。
[0109]
在本技术的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0110]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0111]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0112]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(可以是个人计算机,服务器,网格设备或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接
部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0113]
以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献