激光建图方法、装置及电子设备、计算机可读存储介质与流程

阅读: 评论:0



1.本技术涉及地图构建技术领域,尤其涉及一种激光建图方法、装置及电子设备、计算机可读存储介质。


背景技术:



2.激光slam(simultaneous localization and mapping,同步定位与建图)是一种基于激光雷达采集的点云数据实现的建图方案,在无卫星定位信号或者卫星定位信号质量较差等场景中为保证自动驾驶车辆的精准定位提供了重要支撑。
3.loam(lidar odometry and mapping in real-time,实时激光雷达里程计与建图)是一种常用的激光slam方法,基于loam的点面特征进行激光雷达里程计建图的算法,在基本不损失精度的情况下,其运行效率比icp(iterative closest point,迭代最近点)算法和ndt(normal distributions transform,正态分布变换)算法高,所以是目前主流的激光雷达里程计建图方案,其基本思想是采用scan-to-map的点面特征匹配方式将点云注册到点云地图中。但是随着时间的增加,其飘移也会逐渐累加。
4.视觉slam中的bundle adjustment(光速平差法,简称ba)思想是通过将特征点与像素点进行关联,并设置一个滑动窗口,进而在滑动窗口内优化其重投影误差。然而,由于视觉图像的分辨率很高,所以很容易到关联点,而激光点云是稀疏的,因此将bundle adjustment的思想直接应用到激光slam中是比较困难的。


技术实现要素:



5.本技术实施例提供了一种激光建图方法、装置及电子设备、计算机可读存储介质,以提高激光建图效率和建图精度。
6.本技术实施例采用下述技术方案:
7.第一方面,本技术实施例提供一种激光建图方法,其中,所述激光建图方法包括:
8.获取当前帧的激光点云数据,并对所述当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据;
9.获取体素地图,并将所述当前帧的特征点数据与所述体素地图进行匹配,所述体素地图中的各个体素分别对应同一个特征;
10.根据匹配结果更新所述体素地图,得到更新后的体素地图;
11.基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图。
12.可选地,所述将所述当前帧的特征点数据与所述体素地图进行匹配包括:
13.将所述当前帧的特征点数据与所述体素地图进行距离匹配,得到所述当前帧的特征点数据对应的目标体素;
14.将所述当前帧的特征点数据与所述目标体素进行匹配,得到所述匹配结果。
15.可选地,所述体素地图为八叉树结构,所述匹配结果包括匹配位姿,所述根据匹配
结果更新所述体素地图,得到更新后的体素地图包括:
16.根据所述匹配位姿,将所述当前帧的特征点数据转换到体素地图坐标系下,得到转换后的特征点数据;
17.在所述体素地图中搜索所述转换后的特征点数据中的特征点是否位于所述体素地图的八叉树结构的叶子节点中,且与所述叶子节点对应的体素中的特征点属于同一特征;
18.若所述转换后的特征点数据中的特征点位于所述八叉树结构的叶子节点中,且与所述叶子节点对应的体素中的特征点属于同一特征,则将所述转换后的特征点数据中的特征点加入到所述叶子节点对应的体素中;
19.否则,则基于所述转换后的特征点数据中的特征点创建新的八叉树结构。
20.可选地,所述基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图包括:
21.确定所述待优化位姿数据的帧数是否达到预设滑动窗口的大小;
22.在所述待优化位姿数据的帧数达到所述预设滑动窗口的大小的情况下,获取所述预设滑动窗口内的待优化位姿数据;
23.基于所述更新后的体素地图,利用所述预设优化算法对所述预设滑动窗口内的待优化位姿数据进行优化,得到优化后的位姿数据。
24.可选地,所述基于所述更新后的体素地图,利用所述预设优化算法对所述预设滑动窗口内的待优化位姿数据进行优化,得到优化后的位姿数据包括:
25.基于所述更新后的体素地图,利用光束平差法构建非线性优化模型,所述非线性优化模型的待优化项为预设滑动窗口内的待优化位姿数据,所述非线性优化模型的残差项为所述预设滑动窗口对应的距离残差和;
26.利用所述非线性优化模型对所述预设滑动窗口内的待优化位姿数据进行局部优化,得到所述优化后的位姿数据。
27.可选地,所述基于所述更新后的体素地图,利用光束平差法构建非线性优化模型包括:
28.确定所述预设滑动窗口对应的多帧特征点数据,所述多帧特征点数据中分别包括多个特征点;
29.确定各个特征点对应的目标体素的特征类型;
30.根据各个特征点对应的目标体素的特征类型,构建各个特征点到对应的目标体素的距离残差;
31.根据各个特征点到对应的目标体素的距离残差,确定各帧特征点数据对应的距离残差和;
32.根据各帧特征点数据对应的距离残差和,确定所述预设滑动窗口对应的距离残差和。
33.可选地,所述特征类型包括线特征和面特征,所述根据各个特征点对应的目标体素的特征类型,构建各个特征点到对应的目标体素的距离残差包括:
34.若所述目标体素的特征类型为线特征,则根据各个特征点到对应的目标体素的距离构建点到线的距离残差;
35.若所述目标体素的特征类型为面特征,则根据各个特征点到对应的目标体素的距离构建点到面的距离残差。
36.第二方面,本技术实施例还提供一种激光建图装置,其中,所述激光建图装置包括:
37.获取单元,用于获取当前帧的激光点云数据,并对所述当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据;
38.匹配单元,用于获取体素地图,并将所述当前帧的特征点数据与所述体素地图进行匹配,所述体素地图中的各个体素分别对应同一个特征;
39.第一更新单元,用于根据匹配结果更新所述体素地图,得到更新后的体素地图;
40.优化单元,用于基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图。
41.第三方面,本技术实施例还提供一种电子设备,包括:
42.处理器;以及
43.被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述之任一所述激光建图方法。
44.第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行前述之任一所述激光建图方法。
45.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:本技术实施例的激光建图方法,先获取当前帧的激光点云数据,并对当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据;然后获取体素地图,并将当前帧的特征点数据与体素地图进行匹配,体素地图中的各个体素分别对应同一个特征;之后根据匹配结果更新体素地图,得到更新后的体素地图;最后基于更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图。本技术实施例的激光建图方法采用特定结构的体素地图,一方面将其应用于前端的匹配算法中加速匹配过程,从而提高了激光建图效率,另一方面将其应用于后端的优化算法中进一步优化位姿,从而提高了激光建图精度。
附图说明
46.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
47.图1为本技术实施例中一种激光建图方法的流程示意图;
48.图2为本技术实施例中一种激光建图流程示意图;
49.图3为本技术实施例中一种激光建图装置的结构示意图;
50.图4为本技术实施例中一种电子设备的结构示意图。
具体实施方式
51.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一
部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
52.以下结合附图,详细说明本技术各实施例提供的技术方案。
53.本技术实施例提供了一种激光建图方法,如图1所示,提供了本技术实施例中一种激光建图方法的流程示意图,所述激光建图方法至少包括如下的步骤s110至步骤s140:
54.步骤s110,获取当前帧的激光点云数据,并对所述当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据。
55.本技术实施例在进行激光建图时,需要先获取当前帧的激光点云数据,这里的激光点云数据可以由车辆上的激光雷达采集得到,然后利用一定的点云特征提取算法对当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据,这里的点云特征提取算法可以是采用现有技术中基于loam的特征提取算法来实现,例如可以通过计算特征点的曲率大小的方式来得到当前帧的线特征和面特征等特征点数据。
56.步骤s120,获取体素地图,并将所述当前帧的特征点数据与所述体素地图进行匹配,所述体素地图中的各个体素分别对应同一个特征。
57.本技术实施例的最终目的在于构建出一定区域内的激光点云地图,以为后续自动驾驶车辆的定位提供依据。但对于现有的基于loam算法中采用的scan-to-map特征匹配方式构建点云地图的方案来说,随着新的激光点云数据的到来,点云地图中包含的数据量也会越来越大,如果每次都与整个点云地图中的全部数据进行匹配,将会耗费大量时间,导致建图效率低下。
58.基于此,本技术实施例构建了一定结构的体素地图(voxelmap),体素地图由多个体素构成,每一个体素都可以看作是一个三维空间构成的点云地图块,但与点云地图相比,体素地图中除了存储了特征点信息,还存储了关于体素结构和特征点属性等信息,为提高建图匹配效率提供了支撑。
59.此外,本技术实施例的体素地图中的每一个体素分别表征同一个特征,也即属于相同特征的特征点数据会被划分到一个体素中,此种体素地图结构将减少在激光建图过程中搜索特征对应的时间,因为只需要搜索特征点所在或附近的体素即可,而不需要更详尽的搜索最近点,从而可以大幅度提高运行效率。当得到当前帧的特征点数据之后,将当前帧的特征点数据与体素地图中的各个体素进行匹配即scan-to-voxelmap,即可快速确定出与当前帧的特征点数据相匹配的体素,相比于传统的loam算法采取的全量数据匹配的方式,可以大大减少匹配的数据量,提高匹配效率。
60.步骤s130,根据匹配结果更新所述体素地图,得到更新后的体素地图。
61.上述匹配过程在于确定出体素地图中与当前帧的特征点数据相匹配的体素,匹配程度越高表明当前帧的特征点数据与对应的体素之间越有较大概率表征的是同一特征,因此可以以此来更新体素地图中的数据,也即基于匹配结果将当前帧的特征点数据注册到体素地图中。
62.步骤s140,基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图。
63.由于前述步骤是将当前帧的特征点数据与体素地图中的各个体素进行匹配,目的是为了提高匹配效率,但这种方式仅仅能够得到一个初步的匹配位姿,为了进一步提高匹
配位姿的精度,本技术实施例可以采用预设优化算法对待优化位姿数据进行优化,从而根据优化后的位姿数据进行点云拼接,得到最终的激光点云地图。
64.上述预设优化算法可以采用非线性优化算法,例如视觉slam中的bundle adjustment的思想可以直接应用到本技术实施例的激光建图优化过程中,因为本技术实施例构建的体素地图结构为特征点的匹配提供了有力支撑。当然,具体采用何种优化算法,本领域技术人员可以根据实际需求灵活选择,在此不作具体限定。
65.此外,为了便于前端的特征匹配以及后端的位姿优化对于体素地图的使用,本技术实施例构建的体素地图可以通过共享内存的方式提供给前端的特征匹配流程以及后端的位姿优化流程。
66.本技术实施例的激光建图方法采用特定结构的体素地图,一方面将其应用于前端的匹配算法中加速匹配过程,从而提高了激光建图效率,另一方面将其应用于后端的优化算法中进一步优化位姿,从而提高了激光建图精度。
67.在本技术的一些实施例中,所述将所述当前帧的特征点数据与所述体素地图进行匹配包括:将所述当前帧的特征点数据与所述体素地图进行距离匹配,得到所述当前帧的特征点数据对应的目标体素;将所述当前帧的特征点数据与所述目标体素进行匹配,得到所述匹配结果。
68.本技术在将当前帧的特征点数据与体素地图进行匹配时,针对当前帧的特征点数据中的每一个特征点,先计算该特征点与体素地图中的各个体素的距离,然后将距离最近的体素作为该特征点对应的目标体素。之后将当前帧的特征点数据与目标体素进行特征匹配,从而可以得到匹配位姿等数据。
69.在本技术的一些实施例中,所述体素地图包括多个体素的中心点,所述将所述当前帧的特征点数据与所述体素地图进行距离匹配,得到所述当前帧的特征点数据对应的目标体素包括:确定所述当前帧的特征点数据中的特征点与各个体素的中心点的距离;根据所述当前帧的特征点数据中的特征点与各个体素的中心点的距离,确定所述当前帧的特征点数据对应的目标体素。
70.本技术实施例在将当前帧的特征点数据中的特征点与体素地图进行距离匹配时,可以以体素地图中各个体素的中心点作为距离匹配的基准,各个体素的中心点可以在构建体素地图的过程中予以保存。通过计算特征点与各个体素的中心点的距离,可以将距离最小的体素作为目标体素。
71.在本技术的一些实施例中,所述获取体素地图包括:确定所述当前帧的特征点数据中的各个特征点是否对应同一特征;若是,则将当前帧的特征点数据保存到所述体素地图的一个体素中;若不是,则基于八叉树结构对所述当前帧的特征点数据进行若干次划分,得到多个体素,以使最终得到的各个体素分别对应同一特征。
72.本技术实施例在获取体素地图时,可以利用预设初始化策略对体素地图进行初始化,这里主要基于一个体素仅对应同一个特征的原则来构建体素地图的结构,因此可以先采用一定的检测算法来检测当前帧的特征点数据中的各个特征点是否对应同一特征。
73.特征点数据的属性主要分为线特征和面特征,首先,对于线特征和面特征二者之间的区分,可以通过现有技术中计算曲率的方式来实现,例如可以根据前后各5个点与当前点的长度(激光点到雷达的距离)计算曲率的大小。对于在三维空间中处于平滑平面上的
点,其和周围点的大小差距不大,曲率较低,因此可以看作是面特征点,而对于在三维空间中处于尖锐边缘上的点,其和周围点的大小差距较大,曲率较高,因此可以看作是线特征点。
74.其次,对于不同的线特征之间或者不同的面特征之间的区分,可以通过如下方式来检测,先计算当前帧的激光点云数据的平均值,然后根据当前帧的激光点云数据的平均值计算当前帧的协方差矩阵c,最后再计算该协方差矩阵c的3个特征值,如果其中1个特征值显著大于另外2个特征值,则当前帧的特征点数据中的特征点属于同一个线特征,如果其中2个特征值显著大于另外1个特征值,则当前帧的特征点数据中的特征点属于同一个面特征,否则,则不属于同一个线特征/面特征。
75.通过上述方式可以判断出当前帧的特征点数据中包含的多个特征点是否对应同一个线特征/面特征,如果对应同一个线特征/面特征,那么直接将当前帧的特征点数据中包含的多个特征点保存在一个体素中即可,而如果不对应同一个线特征/面特征,则可以基于八叉树结构对当前帧的特征点数据进行若干次划分,例如可以按照预设空间大小等分成8个体素,然后再分别判断这8个体素中包含的特征点数据是否对应同一个线特征/面特征,以此类推,直到最终得到的各个体素分别对应同一特征或者达到最小体素尺寸即结束。当然,最小体素尺寸的大小本领域技术人员可以根据实际需求灵活设置,在此不作具体限定。
76.本技术实施例的每个体素地图由多个哈希表索引的八叉树结构组成,多个八叉树是为了减少树的深度,进一步提高搜索速度。每个八叉树结构的体素地图可以对应空间中默认体素大小的非空立方体,不同的八叉树可能有不同的深度,这取决于空间中各个立方体的几何形状。八叉树中的每个叶子节点,也即最后一层的节点都保存了所有对应于相同特征的特征点数据。另外,本技术实施例构建的八叉树结构的体素地图可以基于线特征和面特征分别构建对应的线特征体素地图和面特征体素地图。
77.本技术实施例设计的自适应八叉树结构的体素地图能够大大减少匹配算法的内存消耗,并且与现有的八叉树等数据结构又能够自然兼容,极大地方便了其实现和使用效率。
78.在本技术的一些实施例中,所述体素地图为八叉树结构,所述匹配结果包括匹配位姿,所述根据匹配结果更新所述体素地图,得到更新后的体素地图包括:根据所述匹配位姿,将所述当前帧的特征点数据转换到体素地图坐标系下,得到转换后的特征点数据;在所述体素地图中搜索所述转换后的特征点数据中的特征点是否位于所述体素地图的八叉树结构的叶子节点中,且与所述叶子节点对应的体素中的特征点属于同一特征;若所述转换后的特征点数据中的特征点位于所述八叉树结构的叶子节点中,且与所述叶子节点对应的体素中的特征点属于同一特征,则将所述转换后的特征点数据中的特征点加入到所述叶子节点对应的体素中;否则,则基于所述转换后的特征点数据中的特征点创建新的八叉树结构。
79.由于当前帧的特征点数据对应的是激光雷达坐标系,而体素地图对应的是体素地图坐标系,其与最终要构建得到的激光点云地图坐标系一样均是以第一帧激光点云数据为基准建立的坐标系,因此本技术实施例可以先通过位姿变换将当前帧的特征点数据转换到体素地图所在坐标系下,然后在体素地图中包含的所有八叉树结构中搜索转换后的特征点数据中的特征点是否位于某一八叉树结构的叶子节点中,进而根据不同的搜索结果采取不
同的更新策略。
80.本技术实施例采取的更新策略的原则与前述实施例中初始化策略的原则相同,都是为了使体素地图中划分得到的每一个体素均对应同一个特征,因此在体素地图中进行搜索时,如果当前帧的特征点落入到某一个已有的叶子节点对应的体素内,同时与该叶子节点对应的体素中的特征点属于相同特征,例如均属于同一线特征/同一面特征,那么此时就可以将该特征点的数据直接加入到该叶子节点对应的体素中,实现对该叶子节点对应体素的更新。
81.而如果当前帧的特征点落入到任何一个已有的叶子节点对应的体素内,说明该特征点与已有的叶子节点中的特征点数据均不匹配,此时可以以该特征点作为根节点创建一个新的八叉树结构,并在哈希表中对其根进行索引。
82.通过上述自适应更新八叉树结构的体素地图的方式能够保证体素地图中的每一个体素均对应同一个特征,在激光建图过程中只需要搜索特征点所在或附近的体素即可,而不需要更详尽的搜索最近点,减少了搜索特征对应的时间,提高了匹配效率。
83.在本技术的一些实施例中,所述基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图包括:确定所述待优化位姿数据的帧数是否达到预设滑动窗口的大小;在所述待优化位姿数据的帧数达到所述预设滑动窗口的大小的情况下,获取所述预设滑动窗口内的待优化位姿数据;基于所述更新后的体素地图,利用所述预设优化算法对所述预设滑动窗口内的待优化位姿数据进行优化,得到优化后的位姿数据。
84.本技术实施例在进行后端优化时,可以采用预设滑动窗口的策略进行优化,也即基于预设滑动窗口的大小进行局部优化,因此在初始阶段,可以先判断当前已经获取到的待优化位姿数据的帧数是否已经达到预设滑动窗口的大小,例如预设滑动窗口的大小为20帧,那么如果当前已经获取到的待优化位姿数据的帧数为19帧,说明还不满足优化要求,而如果当前已经获取到的待优化位姿数据的帧数为20帧,说明已经满足优化要求,那么这时就可以基于更新后的体素地图,利用预设优化算法对预设滑动窗口内的所有待优化位姿数据进行位姿优化。
85.预设滑动窗口可以看作是一种队列结构,一旦窗口中的数据帧数超过预设滑动窗口的大小,会将较老的帧移出,例如,如果当前已经获取到的待优化位姿数据的帧数为21帧,那么会将第1帧数据从预设滑动窗口中移出,即始终保证对最新获取到的20帧数据进行优化。当然,预设滑动窗口的大小可以根据实际需求灵活设置,在此不作具体限定。
86.在本技术的一些实施例中,所述基于所述更新后的体素地图,利用所述预设优化算法对所述预设滑动窗口内的待优化位姿数据进行优化,得到优化后的位姿数据包括:基于所述更新后的体素地图,利用光束平差法构建非线性优化模型,所述非线性优化模型的待优化项为预设滑动窗口内的待优化位姿数据,所述非线性优化模型的残差项为所述预设滑动窗口对应的距离残差和;利用所述非线性优化模型对所述预设滑动窗口内的待优化位姿数据进行局部优化,得到所述优化后的位姿数据。
87.本技术实施例采用的预设优化算法可以采用基于ba算法构建的非线性优化模型来实现,ba算法目前主要应用于视觉slam中,视觉slam中的ba算法是通过将特征点与像素点进行关联,并通过构建重投影误差的方式来进行优化。而由于视觉图像的分辨率很高,所
以上述过程很容易到关联点,而在视觉slam中,激光点云是稀疏的,因此如果想将ba算法直接应用到激光slam中是比较困难的。
88.基于此,本技术实施例利用了前述实施例中构建的体素地图来克服ba算法在激光slam中应用困难的问题,因为体素地图结构中的每一个体素表征了同一特征,因此基于体素地图的结构同样能够容易且快速地到相匹配的特征。
89.本技术实施例基于ba算法构建的非线性优化模型主要需要确定待优化项和残差项,由于采用的是预设滑动窗口的局部优化策略,因此待优化项对应的就是预设滑动窗口中的所有待优化位姿数据,残差项则可以根据预设滑动窗口中对应的多帧特征点数据与体素的距离匹配结果来构建距离残差和得到,进而可以通过最小化距离残差和的方式优化预设滑动窗口内的待优化位姿数据。
90.在本技术的一些实施例中,所述基于所述更新后的体素地图,利用光束平差法构建非线性优化模型包括:确定所述预设滑动窗口对应的多帧特征点数据,所述多帧特征点数据中分别包括多个特征点;确定各个特征点对应的目标体素的特征类型;根据各个特征点对应的目标体素的特征类型,构建各个特征点到对应的目标体素的距离残差;根据各个特征点到对应的目标体素的距离残差,确定各帧特征点数据对应的距离残差和;根据各帧特征点数据对应的距离残差和,确定所述预设滑动窗口对应的距离残差和。
91.由于预设滑动窗口中存储的是待优化位姿数据,而每一帧待优化位姿都会对应一帧特征点数据,一帧特征点数据中会包含多个特征点,每一个特征点会匹配到一个距离最近的体素。
92.基于此,本技术实施例在构建非线性优化模型时,可以分两个维度来构建,第一个维度为单数据帧的维度,针对任意一帧特征点数据,可以结合每个特征点对应的目标体素的特征类型,构建每个特征点到对应的目标体素的距离残差,从而可以得到多个特征点的距离残差,将这多个特征点的距离残差在每个数据帧的维度分别进行求和,进而可以得到每一帧特征点数据对应的距离残差和。第二个维度为多数据帧的维度,也即预设滑动窗口的维度,在得到每一帧特征点数据对应的距离残差和之后,将预设滑动窗口对应的每一帧特征点数据的距离残差和进一步求和,从而可以得到多帧特征点数据的距离残差和,也即预设滑动窗口的距离残差和。
93.在本技术的一些实施例中,所述特征类型包括线特征和面特征,所述根据各个特征点对应的目标体素的特征类型,构建各个特征点到对应的目标体素的距离残差包括:若所述目标体素的特征类型为线特征,则根据各个特征点到对应的目标体素的距离构建点到线的距离残差;若所述目标体素的特征类型为面特征,则根据各个特征点到对应的目标体素的距离构建点到面的距离残差。
94.本技术实施例的特征类型主要包括线特征和面特征,在构建各个特征点到对应的目标体素的距离残差时,可以区分不同的特征类型进行构建,例如如果相匹配的目标体素是线特征,那么可以构建点到线的距离残差,如果相匹配的目标体素是面特征,那么可以构建点到面的距离误差。
95.在本技术的一些实施例中,在基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化之后,所述激光建图方法还包括:根据优化后的位姿数据,对所述更新后的体素地图中的特征点的位置信息进行更新。
96.由于体素地图中还存储了特征点在世界坐标系下的位置坐标等信息,因此在得到优化后的位姿数据后,可以利用优化后的位置信息对体素地图中存储的特征点的位置信息进行更新,从而利用更新后的体素地图参与下次scan-to-voxelmap的匹配流程。
97.为了便于对本技术各实施例的理解,如图2所示,提供了本技术实施例中一种激光建图流程示意图,本技术的整个激光建图流程主要分为3个线程:
98.1)线程1中基于loam算法单独对当前接收到的激光点云数据进行线/面特征提取,并保存特征点数据供其他线程使用;
99.2)线程2中基于loam特征匹配思想,执行scan-to-voxelmap的特征匹配,并以一定频率如10hz输出激光里程计位姿,这里与传统的loam特征匹配过程不同的点在于本技术使用的是voxelmap进行匹配,而不是全局的点云地图,从而可以大大提高匹配效率;
100.3)线程3基于voxelmap和ba算法执行后端的滑窗位姿优化,得到滑窗内的优化后位姿数据后,基于优化后位姿数据进行点云地图的拼接,并以一定频率如2hz输出,从而得到最终的激光点云地图。
101.综上所述,本技术的激光建图方法至少取得了如下的技术效果:
102.1)采用共享内存的体素地图,其既应用于前端的loam算法中加速匹过程,又应用于后端的ba算法中进一步进行位姿优化,最大化利用了体素地图,提高了激光建图效率和建图精度;
103.2)改进了传统的loam的匹配方式,即从scan-to-map的匹配方式调整为scan-to-voxelmap的匹配方式,在不降低匹配精度的前提下,可以大幅提高匹配速度;
104.3)将视觉slam中的ba思想应用于激光slam的后端滑窗优化中,提高了匹配位姿和建图精度;
105.4)采用多线程分别执行特征提取、匹配位姿以及位姿优化,进一步提高了建图速度,可以进行实时建图。
106.本技术实施例还提供了一种激光建图装置300,如图3所示,提供了本技术实施例中一种激光建图装置的结构示意图,所述激光建图装置300包括:获取单元310、匹配单元320、第一更新单元330以及优化单元340,其中:
107.获取单元310,用于获取当前帧的激光点云数据,并对所述当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据;
108.匹配单元320,用于获取体素地图,并将所述当前帧的特征点数据与所述体素地图进行匹配,所述体素地图中的各个体素分别对应同一个特征;
109.第一更新单元330,用于根据匹配结果更新所述体素地图,得到更新后的体素地图;
110.优化单元340,用于基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图。
111.在本技术的一些实施例中,所述匹配单元320具体用于:将所述当前帧的特征点数据与所述体素地图进行距离匹配,得到所述当前帧的特征点数据对应的目标体素;将所述当前帧的特征点数据与所述目标体素进行匹配,得到所述匹配结果。
112.在本技术的一些实施例中,所述体素地图为八叉树结构,所述匹配结果包括匹配位姿,所述第一更新单元330具体用于:根据所述匹配位姿,将所述当前帧的特征点数据转
换到体素地图坐标系下,得到转换后的特征点数据;在所述体素地图中搜索所述转换后的特征点数据中的特征点是否位于所述体素地图的八叉树结构的叶子节点中,且与所述叶子节点对应的体素中的特征点属于同一特征;若所述转换后的特征点数据中的特征点位于所述八叉树结构的叶子节点中,且与所述叶子节点对应的体素中的特征点属于同一特征,则将所述转换后的特征点数据中的特征点加入到所述叶子节点对应的体素中;否则,则基于所述转换后的特征点数据中的特征点创建新的八叉树结构。
113.在本技术的一些实施例中,所述优化单元340具体用于:确定所述待优化位姿数据的帧数是否达到预设滑动窗口的大小;在所述待优化位姿数据的帧数达到所述预设滑动窗口的大小的情况下,获取所述预设滑动窗口内的待优化位姿数据;基于所述更新后的体素地图,利用所述预设优化算法对所述预设滑动窗口内的待优化位姿数据进行优化,得到优化后的位姿数据。
114.在本技术的一些实施例中,所述优化单元340具体用于:基于所述更新后的体素地图,利用光束平差法构建非线性优化模型,所述非线性优化模型的待优化项为预设滑动窗口内的待优化位姿数据,所述非线性优化模型的残差项为所述预设滑动窗口对应的距离残差和;利用所述非线性优化模型对所述预设滑动窗口内的待优化位姿数据进行局部优化,得到所述优化后的位姿数据。
115.在本技术的一些实施例中,所述优化单元340具体用于:确定所述预设滑动窗口对应的多帧特征点数据,所述多帧特征点数据中分别包括多个特征点;确定各个特征点对应的目标体素的特征类型;根据各个特征点对应的目标体素的特征类型,构建各个特征点到对应的目标体素的距离残差;根据各个特征点到对应的目标体素的距离残差,确定各帧特征点数据对应的距离残差和;根据各帧特征点数据对应的距离残差和,确定所述预设滑动窗口对应的距离残差和。
116.在本技术的一些实施例中,所述特征类型包括线特征和面特征,所述优化单元340具体用于:若所述目标体素的特征类型为线特征,则根据各个特征点到对应的目标体素的距离构建点到线的距离残差;若所述目标体素的特征类型为面特征,则根据各个特征点到对应的目标体素的距离构建点到面的距离残差。
117.在本技术的一些实施例中,所述激光建图装置还包括:第一更新单元,用于根据优化后的位姿数据,对所述更新后的体素地图中的特征点的位置信息进行更新。
118.能够理解,上述激光建图装置,能够实现前述实施例中提供的激光建图方法的各个步骤,关于激光建图方法的相关阐释均适用于激光建图装置,此处不再赘述。
119.图4是本技术的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
120.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总
线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
121.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
122.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成激光建图装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
123.获取当前帧的激光点云数据,并对所述当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据;
124.获取体素地图,并将所述当前帧的特征点数据与所述体素地图进行匹配,所述体素地图中的各个体素分别对应同一个特征;
125.根据匹配结果更新所述体素地图,得到更新后的体素地图;
126.基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图。
127.上述如本技术图1所示实施例揭示的激光建图装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
128.该电子设备还可执行图1中激光建图装置执行的方法,并实现激光建图装置在图1所示实施例的功能,本技术实施例在此不再赘述。
129.本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中激光建图装置执行的方法,并具体用于执行:
130.获取当前帧的激光点云数据,并对所述当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据;
131.获取体素地图,并将所述当前帧的特征点数据与所述体素地图进行匹配,所述体素地图中的各个体素分别对应同一个特征;
132.根据匹配结果更新所述体素地图,得到更新后的体素地图;
133.基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以
根据优化后的位姿数据得到激光点云地图。
134.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
135.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
136.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
137.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
138.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
139.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
140.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
141.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
142.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。
因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
143.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。

技术特征:


1.一种激光建图方法,其中,所述激光建图方法包括:获取当前帧的激光点云数据,并对所述当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据;获取体素地图,并将所述当前帧的特征点数据与所述体素地图进行匹配,所述体素地图中的各个体素分别对应同一个特征;根据匹配结果更新所述体素地图,得到更新后的体素地图;基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图。2.如权利要求1所述激光建图方法,其中,所述将所述当前帧的特征点数据与所述体素地图进行匹配包括:将所述当前帧的特征点数据与所述体素地图进行距离匹配,得到所述当前帧的特征点数据对应的目标体素;将所述当前帧的特征点数据与所述目标体素进行匹配,得到所述匹配结果。3.如权利要求1所述激光建图方法,其中,所述体素地图为八叉树结构,所述匹配结果包括匹配位姿,所述根据匹配结果更新所述体素地图,得到更新后的体素地图包括:根据所述匹配位姿,将所述当前帧的特征点数据转换到体素地图坐标系下,得到转换后的特征点数据;在所述体素地图中搜索所述转换后的特征点数据中的特征点是否位于所述体素地图的八叉树结构的叶子节点中,且与所述叶子节点对应的体素中的特征点属于同一特征;若所述转换后的特征点数据中的特征点位于所述八叉树结构的叶子节点中,且与所述叶子节点对应的体素中的特征点属于同一特征,则将所述转换后的特征点数据中的特征点加入到所述叶子节点对应的体素中;否则,则基于所述转换后的特征点数据中的特征点创建新的八叉树结构。4.如权利要求1所述激光建图方法,其中,所述基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图包括:确定所述待优化位姿数据的帧数是否达到预设滑动窗口的大小;在所述待优化位姿数据的帧数达到所述预设滑动窗口的大小的情况下,获取所述预设滑动窗口内的待优化位姿数据;基于所述更新后的体素地图,利用所述预设优化算法对所述预设滑动窗口内的待优化位姿数据进行优化,得到优化后的位姿数据。5.如权利要求1所述激光建图方法,其中,所述基于所述更新后的体素地图,利用所述预设优化算法对所述预设滑动窗口内的待优化位姿数据进行优化,得到优化后的位姿数据包括:基于所述更新后的体素地图,利用光束平差法构建非线性优化模型,所述非线性优化模型的待优化项为预设滑动窗口内的待优化位姿数据,所述非线性优化模型的残差项为所述预设滑动窗口对应的距离残差和;利用所述非线性优化模型对所述预设滑动窗口内的待优化位姿数据进行局部优化,得到所述优化后的位姿数据。6.如权利要求5所述激光建图方法,其中,所述基于所述更新后的体素地图,利用光束
平差法构建非线性优化模型包括:确定所述预设滑动窗口对应的多帧特征点数据,所述多帧特征点数据中分别包括多个特征点;确定各个特征点对应的目标体素的特征类型;根据各个特征点对应的目标体素的特征类型,构建各个特征点到对应的目标体素的距离残差;根据各个特征点到对应的目标体素的距离残差,确定各帧特征点数据对应的距离残差和;根据各帧特征点数据对应的距离残差和,确定所述预设滑动窗口对应的距离残差和。7.如权利要求6所述激光建图方法,其中,所述特征类型包括线特征和面特征,所述根据各个特征点对应的目标体素的特征类型,构建各个特征点到对应的目标体素的距离残差包括:若所述目标体素的特征类型为线特征,则根据各个特征点到对应的目标体素的距离构建点到线的距离残差;若所述目标体素的特征类型为面特征,则根据各个特征点到对应的目标体素的距离构建点到面的距离残差。8.一种激光建图装置,其中,所述激光建图装置包括:获取单元,用于获取当前帧的激光点云数据,并对所述当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据;匹配单元,用于获取体素地图,并将所述当前帧的特征点数据与所述体素地图进行匹配,所述体素地图中的各个体素分别对应同一个特征;第一更新单元,用于根据匹配结果更新所述体素地图,得到更新后的体素地图;优化单元,用于基于所述更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图。9.一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述权利要求1~7之任一所述激光建图方法。10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述权利要求1~7之任一所述激光建图方法。

技术总结


本申请公开了一种激光建图方法、装置及电子设备、计算机可读存储介质,该方法包括:获取当前帧的激光点云数据,并对当前帧的激光点云数据进行特征提取,得到当前帧的特征点数据;获取体素地图,并将当前帧的特征点数据与体素地图进行匹配,体素地图中的各个体素分别对应同一个特征;根据匹配结果更新体素地图,得到更新后的体素地图;基于更新后的体素地图,利用预设优化算法对待优化位姿数据进行优化,以根据优化后的位姿数据得到激光点云地图。本申请采用特定结构的体素地图,一方面将其应用于前端的匹配算法中加速匹配过程,从而提高了激光建图效率,另一方面将其应用于后端的优化算法中进一步优化位姿,从而提高了激光建图精度。度。度。


技术研发人员:

赵清华

受保护的技术使用者:

智道网联科技(北京)有限公司

技术研发日:

2022.08.23

技术公布日:

2022/11/22

本文发布于:2022-11-27 01:01:02,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/6390.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   特征   数据   地图
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图