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

基于激光雷达的定位方法、装置、计算机设备和存储介质与流程

2022-11-28 14:33:55 来源:中国专利 TAG:


1.本技术涉及定位技术领域,特别是涉及一种基于激光雷达的定位方法、装置、计算机设备和存储介质。


背景技术:

2.目前,为了实现无人驾驶设备运行的安全稳定,一般利用激光雷达扫描技术来实现无人驾驶设备的定位、定向控制。
3.具体而言,传统的激光雷达扫描技术一般是相邻帧进行匹配得到帧间位姿,同时维护一个局部地图,把每帧或者历史帧加入到局部地图中,每帧会对地图进行匹配。
4.然而,传统的定位技术中,通过相邻帧进行匹配,使得累计误差较大。


技术实现要素:

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.获取激光雷达中当前帧的点云数据;
48.从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据;
49.根据当前帧的点云数据以及目标帧的点云数据,得到当前帧与目标帧的相对位姿;
50.根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿。
51.上述基于激光雷达的定位方法、装置、计算机设备和存储介质,通过获取激光雷达中当前帧的点云数据;从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据;根据当前帧的点云数据与以及目标帧的点云数据,得到当前帧与目标帧的相对位姿;根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿。本技术通过利用非相邻帧进行匹配,能够降低单帧连续帧间匹配带来的累计误差,本技术通过结合当前帧与目标帧的相对位姿以及至少一帧非相邻帧的相对位姿,得到当前帧的目标位姿,由于结合了多帧非相邻帧的位姿信息,递推得到当前帧的目标位姿,能够实现在不需要维护在线局部地图的情况下也保证了当前帧的位姿的递推精度。
附图说明
52.图1为一个实施例中基于激光雷达的定位方法的应用环境图;
53.图2为一个实施例中基于激光雷达的定位方法的流程示意图;
54.图3为一个实施例中对当前帧的点云数据进行预处理的坐标系示意图;
55.图4为一个实施例中对当前帧的点云数据进行预处理的坐标系示意图;
56.图5为一个实施例中对各特征点进行过滤的流程示意图;
57.图6为一个实施例中从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并
获取目标帧的点云数据步骤的流程示意图;
58.图7为一个实施例中根据各特征点对中两个特征点的坐标值,得到当前帧与目标帧的相对位姿步骤的流程示意图;
59.图8为一个实施例中对边缘特征点进行误差构建的原理示意图;
60.图9为一个实施例中对平面特征点进行误差构建的原理示意图;
61.图10为一个实施例中得到当前帧的目标位姿的步骤的流程示意图;
62.图11为一个实施例中,滑动窗口内各帧之间匹配的拓扑结构图;
63.图12为一个实施例中基于激光雷达的定位装置的结构框图;
64.图13为一个实施例中计算机设备的内部结构图。
具体实施方式
65.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
66.本技术中提供的一种基于激光雷达的定位方法可以单独应用于终端或单独应用于服务器,其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端可以但不限于是各种个人计算机、车载终端、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
67.请参考图1,图1为本技术一示例性实施例提供的一种基于激光雷达的定位方法的应用环境示意图。如图1所示,该应用环境中包括服务器100以及终端101,服务器100与终端101之间可以通过网络102实现可通信的连接,以实现本技术的基于激光雷达的定位方法。
68.服务器100用于获取激光雷达中当前帧的点云数据;从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据;根据当前帧的点云数据与以及目标帧的点云数据,得到当前帧与目标帧的相对位姿;根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿,将当前帧的目标位姿发送至终端101展示。其中,服务器100可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
69.终端101用于接收服务器100发送的当前帧的目标位姿并展示。终端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
70.网络102用于实现终端101与服务器100之间的网络连接,具体的,网络102可以包括多种类型的有线或无线网络。
71.在一个实施例中,如图2所示,提供了一种基于激光雷达的定位方法,以该方法应用于终端为例进行说明,包括以下步骤:
72.s11、获取激光雷达中当前帧的点云数据。
73.本技术中,上述的当前帧为利用上述的激光雷达每一个周期的扫描组成的一帧。其可以为激光雷达当前的一个周期的扫描组成的一帧,也可以为从激光雷达扫描得到的各帧中,获取的当前待处理的一帧。
74.上述的点云数据是指在一个三维坐标系统中的一组向量的集合。激光雷达扫描得到一帧一帧的点云,每一帧包括海量的点的集合,每一个点的点云数据可以包含三维坐标,
有些还可能含有颜色信息(rgb)或反射强度信息等。
75.s12、从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据。
76.本技术中,上述的历史帧可以为已经处理的历史帧,其可以从历史数据库中获取。上述的当前帧为当前待处理的帧。本技术中,历史数据库中可以存储各历史帧的点云数据、位姿信息以及对各历史帧进行特征点提取得到的特征点的坐标值等,或者也可以存储预设数目个历史帧的点云数据、位姿信息以及对各历史帧进行特征点提取得到的特征点的坐标值等。本技术可以对各历史帧或者其中的多个历史帧的处理结果进行保存,用于后续递推得到当前帧的目标位姿。
77.本技术中的多个历史帧可以为全部的历史帧,也可以为预设数目的历史帧。本技术可以通过多种方案从多个历史帧中选取与当前帧匹配的目标帧。本技术不需要将各个历史帧均与当前帧进行配准,而只需要选取多个历史帧中的一帧或者多帧作为上述的目标帧进行与当前帧配准。
78.具体的,本技术在选取与当前帧相匹配的非相邻的目标帧时,可以包括:
79.与当前帧的距离满足预设距离阈值,且与当前帧非相邻的帧作为目标帧。
80.s13、根据当前帧的点云数据以及目标帧的点云数据,得到当前帧与目标帧的相对位姿。
81.本技术中,上述的当前帧与目标帧的相对位姿可以为从当前帧到目标帧的转换关系,或者在里程计坐标下,当前帧相对于目标帧的相对坐标。本技术中,上述的当前帧的点云数据可以包括当前帧各个点的坐标值、颜色信息以及反射强度。上述的目标帧的点云数据可以包括目标帧的坐标值、颜色信息以及反射强度。
82.本技术中,根据当前帧的点云数据以及目标帧的点云数据,得到当前帧与目标帧的相对位姿,可以包括:
83.将当前帧的点云数据与目标帧的点云数据进行特征点配准,得到当前帧与目标帧的相对位姿。
84.在其中一个实施例中,上述的基于激光雷达的定位方法还可以包括:
85.对当前帧的点云数据进行预处理;
86.对预处理后的当前帧的点云数据进行特征提取,得到当前帧的多个特征点的坐标值以及特征点类型;
87.上述的根据当前帧的点云数据与以及目标帧的点云数据,得到当前帧与目标帧的相对位姿,可以包括:
88.获取目标帧的各特征点的坐标值以及特征点类型;将当前帧的各特征点的坐标值转换到目标帧的坐标系中,得到各转换点的坐标值;在目标帧中分别获取与各转换点的距离小于第一预设阈值的且特征点类型相同的特征点,得到多个特征点匹配成功的特征点对;分别获取各特征点对中两个特征点的坐标值;根据各特征点对中两个特征点的坐标值,得到当前帧与目标帧的相对位姿。
89.本技术中,上述的对当前帧的点云数据进行预处理,可以包括:
90.对当前帧的点云数据进行去噪点、点聚类、去畸变以及筛选高反射点等处理。
91.如图3所示,图3为一个实施例中,对当前帧的点云数据进行预处理的坐标系示意
图。图3中包括坐标系31、激光雷达32、a点所在的扫描线34、b点所在的扫描线33、a点35以及b点36。其中,角α为ab与ac之间的夹角,d为距离ab。对于激光雷达扫描到的每个点a,对其所有相邻的扫描点b,算得如图所示的α和d分别代表表面倾角和距离(与表面连续性相关),若角度α小于一定阈值且距离d小于一定阈值则将其分类为地面点。
92.如图4所示,图4为一种实施例中,对当前帧的点云数据进行预处理的坐标系示意图。图4中包括坐标系41、a点42以及b点43。其中,对于每一个点a和b,计算如图所示β角,β为长边ao与ab的夹角,若β接近90度,则认为ab处于同一物体,归为同一个cluster(组)。不在任一cluster中的点为噪点,且点数少于一定阈值的cluster中的所有点会被作为噪点。由此实现去噪和聚类。
93.去畸变:假设点云中基准点的时间戳是t1,对应的激光雷达位置为t_t1,。对于一个点p的时间戳t2,从滤波器的预测结果中预测该点激光雷达的位置t_t2,该点相对于基准点的畸变即为去畸变后的点即为由此实现去畸变。
94.本技术中,上述的对预处理后的当前帧的点云数据进行特征提取,得到当前帧的多个特征点的坐标值以及特征点类型,可以包括:
95.激光雷达扫描特性为一个激光扫描头不断地循环扫描,形成一条扫描线,多线激光雷达即形成了多个扫描线。对与每根扫描线中的点i,利用i左右的点,点i到激光雷达中心的距离r_i定义粗糙度c。
[0096][0097]
其中,c为粗糙度,点i的粗糙度为,c
i-5
、ci和c
i 5
之间的最小值。
[0098]
对于每帧机械激光雷达的点云,会将每个扫描线均分为12等分进行特征提取,每个分区内提取阈值x的严格特征点个数以及阈值y的宽松特征点个数,阈值y约为阈值x的10倍。
[0099]
上述的特征点类型包括两种:边缘特征点和平面特征点,边缘特征点为粗糙度小于一定阈值的点,平面特征点为粗糙度大于一定阈值的点。
[0100]
上述的将当前帧的各特征点的坐标值转换到目标帧的坐标系中,得到各转换点的坐标值;在目标帧中分别获取与各转换点的距离小于第一预设阈值的且特征点类型相同的特征点,得到多个特征点匹配成功的特征点对;分别获取各特征点对中两个特征点的坐标值可以包括:
[0101]
对于每个当前帧的特征点p1,将p1转换到目标帧的坐标系中,假设p1点位姿为t1,目标帧位姿为t2,其中,t1为通过滤波器对当前帧进行预测得到的位姿,t2为对目标帧进行处理后得到的位姿。转换过后的并在与p1相同的特征点类型中查找目标帧中距离p1

小于一定距离阈值的特征点p2,将p1与p2作为一对关联点对,以此方式得到所有的特征点对,并获取各特征点对的坐标值。
[0102]
上述的根据各特征点对中两个特征点的坐标值,得到当前帧与目标帧的相对位姿,可以包括:
[0103]
根据各特征点对中两个特征点的坐标值进行特征点配准,得到当前帧与目标帧的
相对位姿。
[0104]
s14、根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿。
[0105]
本技术中,上述的其他历史帧的位姿信息可以包括其他历史帧的绝对位姿以及相对位姿。其中,其他历史帧的相对位姿可以为各历史帧与其他历史帧之间相对位姿。例如,当前帧为第i帧,至少一个与当前帧非相邻的其他历史帧可以为第i-3、第i-5或者第i-n帧。与当前帧非相邻的其他历史帧的位姿信息则可以为第i-3帧的绝对位姿以及第i-3帧与其他多个历史帧之间的相对位姿、第i-5帧的绝对位姿以及第i-5帧与其他多个历史帧之间的相对位姿,或者第i-n帧的绝对位姿以及以及第i-n帧与其他多个历史帧之间的相对位姿。
[0106]
具体的,本技术可以通过当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息进行优化得到当前帧的目标位姿。或者,根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息进行递推得到当前帧的目标位姿。
[0107]
请参考图5,在其中一个实施例中,上述的方法还可以包括:
[0108]
s51、从当前帧中获取与各特征点相同以及相邻的两条激光雷达扫描线中的多个候选点;
[0109]
s52、计算各特征点与其对应的各候选点的协方差矩阵并进行特征值分解,得到各协方差矩阵对应的各特征值以及各特征向量;
[0110]
s53、根据各协方差矩阵对应的各特征值以及各特征向量对当前帧的各特征点进行过滤。
[0111]
本技术中,上述的多个候选点可以为预设数目个,例如,可以设定为4个。本技术中,选取特征后需要对特征点进行过滤。
[0112]
对于每个提取的特征点p(i,j)选取其相同以及相邻两条激光雷达扫描线中的四个点分别为p(i-k,j)、p(i k,j)、p(i,j-5)以及p(i,j 5)。每个相邻点应与中心点小于预置距离,否则不加入计算。
[0113]
p(i,j)与其周围的四个点构成的协方差矩阵为c=aa
t
,其中,a为去均值的点组成的矩阵,给定的点为p0、p1

pn,则矩阵a

为:
[0114][0115]
a为a

减去这组点的质心,即
[0116]
a=a

·
colwise()-a

·
rowwise()
·
mean()
[0117]
c=aa
^
t,则为一个3*3的协方差矩阵,该矩阵c的特征值λ1、λ2以及λ3,对应的特征向量为υ1、υ2以及υ3。
[0118]
对于边缘特征点,最大特征值应比第二大特征值大于一定阈值倍数,并且最大特征向量应在z轴有大于一定阈值的分量,否则,对该边缘特征点进行过滤。
[0119]
对于平面特征点,最小特征值应比第二以及第三小的特征值之和小于一定分数,否则,对该平面点进行过滤。
[0120]
本技术中可以对提取的特征点进行过滤,使得提取的特征点更加精准,进而实现
提高当前帧的递推精度。
[0121]
请参考图6,在其中一个实施例中,上述的从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据,包括:
[0122]
s61、从多个历史帧中确定预设数目的关键帧,将各关键帧的标识信息的队列存储于预设的滑动窗口中,滑动窗口中相邻两个关键帧之间满足预设条件,预设条件包括帧间距离大于第二预设阈值,帧间距离为根据两个关键帧的位姿信息得到;
[0123]
s62、从滑动窗口中获取与当前帧相匹配的非相邻的目标帧的标识信息,并根据目标帧的标识信息获取目标帧的点云数据;
[0124]
s63、根据至少一个关键帧的位姿信息,确定当前帧的预测位姿;
[0125]
s64、根据当前帧的预测位姿以及各关键帧的位姿信息,得到当前帧与各历史帧之间的距离;
[0126]
s65、根据当前帧与各历史帧之间的距离以及预设条件确定目标帧,并获取目标帧的点云数据。
[0127]
在其中一个实施例中,上述的预设条件还可以包括帧间距离小于第三预设阈值,且帧间的特征点匹配率大于第四预设阈值,特征点匹配率为匹配成功的特征点对数与待匹配的特征点数目的比值。
[0128]
本技术中,上述的滑动窗口存储了一个关键帧的队列。里面恒定保持预设数目的最新的关键帧。有一个最大长度k,新加入的关键帧会将最旧的关键帧替换掉。并且,新加入的关键帧需要满足如下条件:
[0129]
新加入的关键帧与上述的滑动窗口中最新加入的关键帧的距离需要大于第二预设阈值,小于第三预设阈值,且特征点匹配率大于第四预设阈值。其中,上述的第二预设阈值、第三预设阈值以及第四预设阈值可以根据实际需要进行设定,例如,上述的第二预设阈值可以设定为5米,上述的第三预设阈值可以设定为50米,上述的第四预设阈值可以设定为50%。上述的目标帧可以为一帧或者多帧。
[0130]
由此可知,上述的滑动窗口中的各个关键帧是经过了筛选的历史帧,并不是保持了所有的历史帧,只维护了一个经过筛选的预设数目的关键帧的队列。其中的各个关键帧之间都是非相邻的帧,且特征点的匹配率需要满足大于第四预设阈值。
[0131]
本技术中,上述的帧间距离可以为帧与帧的位姿信息作差得到。上述的第二预设阈值、第三预设阈值以及第四预设阈值可以根据实际需要进行设定,例如,上述的第二预设阈值可以设定为5米,上述的第三预设阈值可以设定为50米,上述的第四预设阈值可以设定为50%。上述的目标帧可以为一帧或者多帧。当滑动窗口中的各帧都不满足上述的预设条件时,则获取与当前帧相邻的帧与上述的当前帧进行匹配。
[0132]
本技术中,上述的从多个历史帧中确定预设数目的关键帧,可以是每处理完一帧,利用上述的预设条件判断该帧是不是关键帧,若是,则加入到滑动窗口中以替换掉滑动窗口中的一帧关键帧,以此来得到滑动窗口中的各关键帧。其也可以是从预先处理好的各历史帧中一次性选取预设数目的关键帧加入滑动窗口中,后续对滑动窗口中的帧进行更新。
[0133]
本技术预先维护有滑动窗口,无需保存激光雷达每一个周期扫描得到的所有的帧,而是只将关键帧放入滑窗中,每个当前帧只与滑窗中匹配的目标帧进行匹配,并且本技术选取的非相临帧进行匹配,相较于传统技术中的连续相邻帧之间的匹配而言可以减少累
计误差。
[0134]
如图7所示,在其中一个实施例中,上述的根据各特征点对中两个特征点的坐标值,得到当前帧与目标帧的相对位姿,可以包括:
[0135]
s71、根据各特征点对的坐标值对各对特征点对进行误差构建,得到各特征点对的误差值;
[0136]
s72、根据各特征点对的误差值以及预设的第二优化目标函数,得到当前帧与目标帧的相对位姿。
[0137]
本技术中,在对各对特征点对进行误差构建时,对于边缘特征点以及平面特征点所采取的方式不同。
[0138]
如图8所示,图8为一种实施例中,对边缘特征点进行误差构建的原理示意图。图8中包括点81为点pl,点82为点pj,点83为pi转换到目标帧坐标系中对应的转换点pi

,还包括pi

到边缘的距离84。假设pi与pj为一对边缘特征点对。其中,pi为当前帧上的边缘特征点,pj为目标帧上的边缘特征点,对各对边缘特征点对进行误差构建,得到各边缘特征点对的误差值,可以包括:
[0139]
在目标帧中寻找与pj所在扫描线相邻扫描线中的边缘特征点pl,pl距离pj小于一定阈值,pl和pj一同组成边缘描述。则pi

到边缘的距离de为上述的pi

到边缘的距离54,即为边缘特征点对pi与pj的误差值。
[0140][0141]
其中,上述公式中的p
l
,pj为点的坐标值,pi′
为pi转换到目标帧的坐标系中得到的转换点的坐标值。
[0142]
如图9所示,图9为一种实施例中,对平面特征点进行误差构建的原理示意图。图9中包括点91为点pl,点92为点pj,点93为pi转换到目标帧坐标系中对应的转换点pi

、点94为点pm以及点pi

到平面plpj pm的距离95。假设pi与pj为一对平面特征点对,其中,pi为当前帧上的平面特征点,pj为目标帧上的平面特征点,本技术对各对平面特征点对进行误差构建,得到各平面特征点对的误差值,可以包括:
[0143]
在目标帧中寻找与pj所在扫描线相邻扫描线中的平面特征点pl,pl距离pj小于一定阈值,再在pj相同扫描线中寻找平面特征点pm,pm距离pj小于一定阈值,三点组成平面描述。则点pi

到平面plpj pm的距离d
p
为上述的平面特征点对pi与pj的误差值。
[0144][0145]
其中,pi′
以及pj为点的坐标值,e为平面法向量e=(p
m-pj)
×
(p
l-pj)。
[0146]
上述的根据各特征点对的误差值以及预设的第二优化目标函数,得到当前帧与目标帧的相对位姿,可以包括:
[0147]
将所有特征点的误差值的最小二乘和作为上述的第二优化目标函数;
[0148]
具体的,上述的第二优化目标函数可以为:
[0149][0150]
其中,为各边缘特征点的误差值关于δt的函数,为各平面特征点的误差值关于δt的函数。
[0151]
本技术通过调整δt使得的取值最小,利用此时的δt代入公式δtt
t1-1
t
t2
得到上述的当前帧与目标帧之间的相对位姿。本技术中的相对位姿可以为一个矩阵,其中包括位置、姿态以及其他的信息。
[0152]
本技术通过对各对特征点对进行误差构建,对各误差值利用第一优化目标函数进行优化,使得生成的当前帧与目标帧之间的相对位姿的值更加精准。
[0153]
如图10所示,在其中一个实施例中,上述的方法还可以包括:
[0154]
s101、从滑动窗口中获取各关键帧的位姿信息,得到至少一个与当前帧非相邻的其他历史帧的位姿信息;
[0155]
上述的位姿信息包括绝对位姿以及相对位姿,根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿,可以包括:
[0156]
s102、根据当前帧与目标帧的相对位姿、各关键帧的绝对位姿以及相对位姿以及预设的第一优化目标函数,得到当前帧的目标位姿。
[0157]
本技术中,上述的第一优化目标函数的函数表达式可以为:
[0158][0159]
其中,n为帧数,t为时刻,t
t
为t时刻的帧对应的绝对位姿,t
t-n
为t-n时刻的帧对应的绝对位姿,t
ij
为第i帧与第j帧的相对位姿,ti和tj为第i帧以及第j帧的绝对位姿,ti和tj作为该第一优化目标函数中的优化变量。
[0160]
t
t

t
t-n
为t时刻到t-n时刻对应各关键帧的绝对位姿,需要说明的是,该t时刻对应帧到t-n时刻对应的帧中包括了当前帧以及至少一个与当前帧非相邻的其他历史帧,其中,也可能包括相邻帧。
[0161]
上述的调整各优化变量,得到第一优化目标函数的各个取值,可以包括:
[0162]
调整t时刻到t-n时刻对应各关键帧的绝对位姿的值,(其中就包括了当前帧的目标位姿的值),使得上述的第二优化目标函数的值最小,此时,选出当前帧的目标位姿。
[0163]
请参考图11,图11为一种实施例中,滑动窗口内各帧之间匹配的拓扑结构图。图11中包括t时刻对应帧的绝对位姿111、t-n1时刻对应帧的绝对位姿112、t-n2时刻对应帧的绝对位姿113、t-n3时刻对应帧的绝对位姿114、t-n4时刻对应帧的绝对位姿114、t时刻与t-n1时刻对应帧之间进行匹配的相对位姿116、t时刻与t-n2时刻对应帧之间进行匹配的相对位姿117以及t-n1时刻与t-n3时刻对应帧之间进行匹配的相对位姿118等,以此类推还有其他各帧之间的相对位姿。由此可知,滑动窗口内维护有个非相邻帧(也可能包括相邻帧)之间的相对位姿以及各帧的绝对位姿。可以从该滑动窗口中选取上述的目标帧,并与当前帧进行特征点配准得到当前帧与目标帧的相对位姿,进一步将该当前帧与目标帧的相对位姿与滑动窗口中的各关键字的位姿信息构建第一优化目标函数,对该第一目标优化函数进行优
化得到上述的目标位姿。
[0164]
本技术通过维护一个滑动窗口,该滑动窗口中的关键帧为筛选过的多个非相邻的帧,对该滑动窗口中的各关键帧的位姿信息以及当前帧与目标帧的相对位姿一起进行优化,生成当前帧的目标位姿,所得到的当前帧的目标位姿是融合了多帧非相邻帧的位姿信息的优化结果,使得生成的当前帧的目标位姿的准确度得到保障,并且不需要维护在线局部地图,只需要维护一个滑动窗口就能保证当前帧的位姿的递推精度。
[0165]
在其中一个实施例中,上述的方法还可以包括:
[0166]
当当前帧与滑动窗口中最新加入的关键帧满足预设条件时,将当前帧的标识信息加入滑动窗口中,以替换滑动窗口中最先加入的关键帧。
[0167]
本技术中,可以对当前帧进行判断,若当前帧满足加入滑动窗口的关键帧的条件,则将当前帧加入滑动窗口中以替换掉滑动窗口中最先加入的关键帧,以实现对滑动窗口的更新,保证了滑动窗口中的帧都是最新的帧,这样使得后续的帧的对推结果会更加精准。
[0168]
在一个实施例中,如图12所示,提供了一种基于激光雷达的定位装置,包括:获取模块11、匹配模块12、配准模块13以及处理模块14,其中:
[0169]
获取模块11,用于获取激光雷达中当前帧的点云数据;
[0170]
匹配模块12,用于从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据;
[0171]
配准模块13,用于根据当前帧的点云数据以及目标帧的点云数据,得到当前帧与目标帧的相对位姿;
[0172]
处理模块14,用于根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿。
[0173]
在其中一个实施例中,上述的基于激光雷达的定位装置还包括预处理模块(图未示),该预处理模块可以对当前帧的点云数据进行预处理,对预处理后的当前帧的点云数据进行特征提取,得到当前帧的多个特征点的坐标值以及特征点类型,上述的配准模块13可以获取目标帧的各特征点的坐标值以及特征点类型,将当前帧的各特征点的坐标值转换到目标帧的坐标系中,得到各转换点的坐标值,在目标帧中分别获取与各转换点的距离小于第一预设阈值的且特征点类型相同的特征点,得到多个特征点匹配成功的特征点对,分别获取各特征点对中两个特征点的坐标值;根据各特征点对中两个特征点的坐标值,得到当前帧与目标帧的相对位姿。
[0174]
在其中一个实施例中,上述的匹配模块12可以从多个历史帧中确定预设数目的关键帧,将各关键帧的标识信息的队列存储于预设的滑动窗口中,滑动窗口中相邻两个关键帧之间满足预设条件,预设条件包括帧间距离大于第二预设阈值,帧间距离为根据两个关键帧的位姿信息得到,从滑动窗口中获取与当前帧相匹配的非相邻的目标帧的标识信息,并根据目标帧的标识信息获取目标帧的点云数据,根据至少一个关键帧的位姿信息,确定当前帧的预测位姿,根据当前帧的预测位姿以及各关键帧的位姿信息,得到当前帧与各历史帧之间的距离,根据当前帧与各历史帧之间的距离以及预设条件确定目标帧,并获取目标帧的点云数据。
[0175]
在其中一个实施例中,上述的预设条件还包括帧间距离小于第三预设阈值,且帧间的特征点匹配率大于第四预设阈值,特征点匹配率为匹配成功的特征点对数与待匹配的
特征点数目的比值。
[0176]
在其中一个实施例中,上述的基于激光雷达的定位装置还包括筛选模块(图未示),该筛选模块可以从滑动窗口中获取各关键帧的位姿信息,得到至少一个与当前帧非相邻的其他历史帧的位姿信息,上述的位姿信息包括绝对位姿以及相对位姿,上述的处理模块14可以根据当前帧与目标帧的相对位姿、各关键帧的绝对位姿以及相对位姿以及预设的第一优化目标函数,得到当前帧的目标位姿。
[0177]
在其中一个实施例中,上述的基于激光雷达的定位装置还包括过滤模块(图未示),该过滤模块可以从当前帧中获取与各特征点相同以及相邻的两条激光雷达扫描线中的多个候选点,计算各特征点与其对应的各候选点的协方差矩阵并进行特征值分解,得到各协方差矩阵对应的各特征值以及各特征向量,根据各协方差矩阵对应的各特征值以及各特征向量对当前帧的各特征点进行过滤。
[0178]
在其中一个实施例中,上述的配准模块13还可以根据各特征点对的坐标值对各对特征点对进行误差构建,得到各特征点对的误差值,根据各特征点对的误差值以及预设的第二优化目标函数,得到当前帧与目标帧的相对位姿。
[0179]
在其中一个实施例中,上述的基于激光雷达的定位装置还包括更新模块(图未示),该更新模块可以当当前帧与滑动窗口中最新加入的关键帧满足预设条件时,将当前帧的标识信息加入滑动窗口中,以替换滑动窗口中最先加入的关键帧。
[0180]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储智能家居设备的运行数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现编译虚拟机的资源分配方法。
[0181]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取激光雷达中当前帧的点云数据;从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据;
[0182]
根据当前帧的点云数据以及目标帧的点云数据,得到当前帧与目标帧的相对位姿;根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿。
[0183]
在一个实施例中,处理器执行计算机程序时具体还实现以下步骤:
[0184]
对当前帧的点云数据进行预处理;
[0185]
对预处理后的当前帧的点云数据进行特征提取,得到当前帧的多个特征点的坐标值以及特征点类型;
[0186]
在一个实施例中,处理器执行计算机程序实现上述的根据当前帧的点云数据与以及目标帧的点云数据,得到当前帧与目标帧的相对位姿步骤时,具体实现以下步骤:
[0187]
获取目标帧的各特征点的坐标值以及特征点类型;将当前帧的各特征点的坐标值
转换到目标帧的坐标系中,得到各转换点的坐标值;在目标帧中分别获取与各转换点的距离小于第一预设阈值的且特征点类型相同的特征点,得到多个特征点匹配成功的特征点对;分别获取各特征点对中两个特征点的坐标值;根据各特征点对中两个特征点的坐标值,得到当前帧与目标帧的相对位姿。
[0188]
在一个实施例中,处理器执行计算机程序实现上述的从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据步骤时,具体实现以下步骤:
[0189]
从多个历史帧中确定预设数目的关键帧,将各关键帧的标识信息的队列存储于预设的滑动窗口中,滑动窗口中相邻两个关键帧之间满足预设条件,预设条件包括帧间距离大于第二预设阈值,帧间距离为根据两个关键帧的位姿信息得到;
[0190]
从滑动窗口中获取与当前帧相匹配的非相邻的目标帧的标识信息,并根据目标帧的标识信息获取目标帧的点云数据;
[0191]
根据至少一个关键帧的位姿信息,确定当前帧的预测位姿;
[0192]
根据当前帧的预测位姿以及各关键帧的位姿信息,得到当前帧与各历史帧之间的距离;
[0193]
根据当前帧与各历史帧之间的距离以及预设条件确定目标帧,并获取目标帧的点云数据。
[0194]
在一个实施例中,上述的预设条件还包括帧间距离小于第三预设阈值,且帧间的特征点匹配率大于第四预设阈值,特征点匹配率为匹配成功的特征点对数与待匹配的特征点数目的比值。
[0195]
在一个实施例中,处理器执行计算机程序时具体还实现以下步骤:
[0196]
从滑动窗口中获取各关键帧的位姿信息,得到至少一个与当前帧非相邻的其他历史帧的位姿信息;
[0197]
在一个实施例中,上述的位姿信息包括绝对位姿以及相对位姿,处理器执行计算机程序实现上述的根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿步骤时,具体实现以下步骤:
[0198]
根据当前帧与目标帧的相对位姿、各关键帧的绝对位姿以及相对位姿以及预设的第一优化目标函数,得到当前帧的目标位姿。
[0199]
在一个实施例中,处理器执行计算机程序时具体还实现以下步骤:
[0200]
从当前帧中获取与各特征点相同以及相邻的两条激光雷达扫描线中的多个候选点;
[0201]
计算各特征点与其对应的各候选点的协方差矩阵并进行特征值分解,得到各协方差矩阵对应的各特征值以及各特征向量;
[0202]
根据各协方差矩阵对应的各特征值以及各特征向量对当前帧的各特征点进行过滤。
[0203]
在一个实施例中,处理器执行计算机程序实现上述的根据各特征点对中两个特征点的坐标值,得到当前帧与目标帧的相对位姿步骤时,具体实现以下步骤:
[0204]
根据各特征点对的坐标值对各对特征点对进行误差构建,得到各特征点对的误差值;
[0205]
根据各特征点对的误差值以及预设的第二优化目标函数,得到当前帧与目标帧的
相对位姿。
[0206]
在一个实施例中,处理器执行计算机程序时具体还实现以下步骤:
[0207]
当当前帧与滑动窗口中最新加入的关键帧满足预设条件时,将当前帧的标识信息加入滑动窗口中,以替换滑动窗口中最先加入的关键帧。
[0208]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取激光雷达中当前帧的点云数据;从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据;根据当前帧的点云数据以及目标帧的点云数据,得到当前帧与目标帧的相对位姿;根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿。
[0209]
在一个实施例中,计算机程序被处理器执行时具体还实现以下步骤:
[0210]
对当前帧的点云数据进行预处理;
[0211]
对预处理后的当前帧的点云数据进行特征提取,得到当前帧的多个特征点的坐标值以及特征点类型;
[0212]
在一个实施例中,计算机程序被处理器执行实现上述的根据当前帧的点云数据与以及目标帧的点云数据,得到当前帧与目标帧的相对位姿步骤时,具体实现以下步骤:
[0213]
获取目标帧的各特征点的坐标值以及特征点类型;将当前帧的各特征点的坐标值转换到目标帧的坐标系中,得到各转换点的坐标值;在目标帧中分别获取与各转换点的距离小于第一预设阈值的且特征点类型相同的特征点,得到多个特征点匹配成功的特征点对;分别获取各特征点对中两个特征点的坐标值;根据各特征点对中两个特征点的坐标值,得到当前帧与目标帧的相对位姿。
[0214]
在一个实施例中,计算机程序被处理器执行实现上述的从多个历史帧中确定与当前帧相匹配的非相邻的目标帧,并获取目标帧的点云数据步骤时,具体实现以下步骤:
[0215]
从多个历史帧中确定预设数目的关键帧,将各关键帧的标识信息的队列存储于预设的滑动窗口中,滑动窗口中相邻两个关键帧之间满足预设条件,预设条件包括帧间距离大于第二预设阈值,帧间距离为根据两个关键帧的位姿信息得到;
[0216]
从滑动窗口中获取与当前帧相匹配的非相邻的目标帧的标识信息,并根据目标帧的标识信息获取目标帧的点云数据;
[0217]
根据至少一个关键帧的位姿信息,确定当前帧的预测位姿;
[0218]
根据当前帧的预测位姿以及各关键帧的位姿信息,得到当前帧与各历史帧之间的距离;
[0219]
根据当前帧与各历史帧之间的距离以及预设条件确定目标帧,并获取目标帧的点云数据。
[0220]
在一个实施例中,上述的预设条件还包括帧间距离小于第三预设阈值,且帧间的特征点匹配率大于第四预设阈值,特征点匹配率为匹配成功的特征点对数与待匹配的特征点数目的比值。
[0221]
在一个实施例中,计算机程序被处理器执行时具体还实现以下步骤:
[0222]
从滑动窗口中获取各关键帧的位姿信息,得到至少一个与当前帧非相邻的其他历史帧的位姿信息;
[0223]
在一个实施例中,上述的位姿信息包括绝对位姿以及相对位姿,计算机程序被处
理器执行实现上述的根据当前帧与目标帧的相对位姿以及至少一个与当前帧非相邻的其他历史帧的位姿信息,得到当前帧的目标位姿步骤时,具体实现以下步骤:
[0224]
根据当前帧与目标帧的相对位姿、各关键帧的绝对位姿以及相对位姿以及预设的第一优化目标函数,得到当前帧的目标位姿。
[0225]
在一个实施例中,计算机程序被处理器执行时具体还实现以下步骤:
[0226]
从当前帧中获取与各特征点相同以及相邻的两条激光雷达扫描线中的多个候选点;
[0227]
计算各特征点与其对应的各候选点的协方差矩阵并进行特征值分解,得到各协方差矩阵对应的各特征值以及各特征向量;
[0228]
根据各协方差矩阵对应的各特征值以及各特征向量对当前帧的各特征点进行过滤。
[0229]
在一个实施例中,计算机程序被处理器执行实现上述的根据各特征点对中两个特征点的坐标值,得到当前帧与目标帧的相对位姿步骤时,具体实现以下步骤:
[0230]
根据各特征点对的坐标值对各对特征点对进行误差构建,得到各特征点对的误差值;
[0231]
根据各特征点对的误差值以及预设的第二优化目标函数,得到当前帧与目标帧的相对位姿。
[0232]
在一个实施例中,计算机程序被处理器执行时具体还实现以下步骤:
[0233]
当当前帧与滑动窗口中最新加入的关键帧满足预设条件时,将当前帧的标识信息加入滑动窗口中,以替换滑动窗口中最先加入的关键帧。
[0234]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0235]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0236]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献