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

定位方法、装置、电子设备及计算机可读存储介质与流程

2022-02-21 04:25:51 来源:中国专利 TAG:


1.本技术涉及定位技术领域,特别涉及一种定位方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.随着定位技术的发展,越来越多的定位方法被应用于人们的生活中。例如,imu(inertial measurement unit,惯性测量单元)定位、视觉定位和gnss(global navigation satellite system,全球导航卫星系统)定位均为可选择的定位方法。
3.然而,上述举例中的定位方法均存在一定的弊端。比如imu定位通过当前时刻的定位结果来推算下一时刻的定位结果,因而应用于长时间、长距离的定位场景时定位准确度会逐渐发散、定位准确度较低。另外,视觉定位对场景亮度的要求较高、定位准确度较低。gnss定位仅适用于室外空旷环境,而不适用于室内环境或者有遮挡的室外环境。因此,亟待提供一种适用性强、定位准确度高的定位方法。


技术实现要素:

4.本技术实施例提供了一种定位方法、装置、电子设备及计算机可读存储介质,以解决相关技术适用性较弱、定位准确度不高问题。所述技术方案如下:
5.一方面,提供了一种定位方法,所述方法包括:
6.获取需要定位的对象的第一状态变量,所述第一状态变量包括所述对象在至少一个时刻的参考信息,所述参考信息包括imu信息、视觉信息和gnss信息;
7.基于所述第一状态变量包括的参考信息确定imu误差、视觉误差和gnss误差,基于所述imu误差、所述视觉误差和所述gnss误差确定目标误差;
8.通过最小化所述目标误差的过程对所述第一状态变量包括的参考信息进行更新,得到第二状态变量,所述第二状态变量用于对所述对象进行定位。
9.在示例性实施例中,所述获取需要定位的对象的第一状态变量,包括:获取所述对象的第三状态变量,所述第三状态变量包括所述对象在至少一个第一时刻的参考信息;响应于检测到满足条件,向所述第三状态变量中插入所述对象在第二时刻的参考信息,得到更新后的第三状态变量,所述第二时刻晚于所述至少一个第一时刻中的任一第一时刻;基于所述更新后的第三状态变量得到所述第一状态变量。
10.在示例性实施例中,所述基于所述更新后的第三状态变量得到所述第一状态变量,包括:响应于所述至少一个第一时刻和所述第二时刻的时刻数量之和大于数量阈值,从所述至少一个第一时刻和所述第二时刻中确定至少一个目标时刻;从所述更新后的第三状态变量中删除所述对象在所述至少一个目标时刻的参考信息,得到所述第一状态变量。
11.在示例性实施例中,所述方法还包括:基于所述第一状态变量和所述对象在所述至少一个目标时刻的参考信息确定边缘化误差;所述基于所述imu误差、所述视觉误差和所述gnss误差确定目标误差,包括:将所述边缘化误差、所述imu误差、所述视觉误差和所述
gnss误差之和确定为所述目标误差。
12.在示例性实施例中,所述从所述至少一个第一时刻和所述第二时刻中确定至少一个目标时刻,包括:在所述至少一个第一时刻和所述第二时刻中,将最早的一个时刻确定为所述目标时刻。
13.在示例性实施例中,所述方法还包括:响应于获得imu测量信息、获得视觉测量信息、获得gnss测量信息和经过参考时长中的至少一个事件发生,确定检测到满足所述条件。
14.在示例性实施例中,所述基于所述第一状态变量包括的参考信息确定imu误差、视觉误差和gnss误差,包括:获得imu测量信息和imu估计信息,基于所述imu测量信息、所述imu估计信息和所述imu信息确定所述imu误差;获得视觉测量信息,基于所述视觉信息获得视觉估计信息,基于所述视觉测量信息和视觉估计信息确定所述视觉误差;获得gnss测量信息和gnss估计信息之间的差值,基于所述差值和所述gnss信息确定所述gnss误差。
15.一方面,提供了一种定位装置,所述装置包括:
16.获取模块,用于获取需要定位的对象的第一状态变量,所述第一状态变量包括所述对象在至少一个时刻的参考信息,所述参考信息包括惯性测量单元imu信息、视觉信息和全球导航卫星系统gnss信息;
17.确定模块,用于基于所述第一状态变量包括的参考信息确定imu误差、视觉误差和gnss误差,基于所述imu误差、所述视觉误差和所述gnss误差确定目标误差;
18.更新模块,用于通过最小化所述目标误差的过程对所述第一状态变量包括的参考信息进行更新,得到第二状态变量,所述第二状态变量用于对所述对象进行定位。
19.在示例性实施例中,所述获取模块,用于获取所述对象的第三状态变量,所述第三状态变量包括所述对象在至少一个第一时刻的参考信息;响应于检测到满足条件,向所述第三状态变量中插入所述对象在第二时刻的参考信息,得到更新后的第三状态变量,所述第二时刻晚于所述至少一个第一时刻中的任一第一时刻;基于所述更新后的第三状态变量得到所述第一状态变量。
20.在示例性实施例中,所述获取模块,用于响应于所述至少一个第一时刻和所述第二时刻的时刻数量之和大于数量阈值,从所述至少一个第一时刻和所述第二时刻中确定至少一个目标时刻;从所述更新后的第三状态变量中删除所述对象在所述至少一个目标时刻的参考信息,得到所述第一状态变量。
21.在示例性实施例中,所述确定模块,还用于基于所述第一状态变量和所述对象在所述至少一个目标时刻的参考信息确定边缘化误差;
22.所述确定模块,用于将所述边缘化误差、所述imu误差、所述视觉误差和所述gnss误差之和确定为所述目标误差。
23.在示例性实施例中,所述获取模块,用于在所述至少一个第一时刻和所述第二时刻中,将最早的一个时刻确定为所述目标时刻。
24.在示例性实施例中,所述获取模块,还用于响应于获得imu测量信息、获得视觉测量信息、获得gnss测量信息和经过参考时长中的至少一个事件发生,确定检测到满足所述条件。
25.在示例性实施例中,所述确定模块,用于获得imu测量信息和imu估计信息,基于所述imu测量信息、所述imu估计信息和所述imu信息确定所述imu误差;获得视觉测量信息,基
于所述视觉信息获得视觉估计信息,基于所述视觉测量信息和视觉估计信息确定所述视觉误差;获得gnss测量信息和gnss估计信息之间的差值,基于所述差值和所述gnss信息确定所述gnss误差。
26.一方面,提供了一种电子设备,所述电子设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以使电子设备实现本技术的任一种示例性实施例所提供的定位方法。
27.一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以使计算机实现本技术的任一种示例性实施例所提供的定位方法。
28.另一方面,提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品包括:计算机指令,所述计算机指令被计算机执行时,使得所述计算机实现本技术的任一种示例性实施例所提供的定位方法。
29.本技术实施例所提供的技术方案带来的有益效果至少包括:
30.基于imu信息、视觉信息和gnss信息计算目标误差,通过对目标误差的最小化获得用于进行定位的第二状态变量,从而相当于对imu定位、视觉定位和gnss定位三种不同的定位方式进行了紧耦合,使得定位的准确度较高。不仅适用于复杂有遮挡的环境,而且成本较低,适用性较强。
附图说明
31.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1是本技术实施例提供的实施环境示意图;
33.图2是本技术实施例提供的定位方法的流程图;
34.图3是本技术实施例提供的插入参考信息的流程示意图;
35.图4是本技术实施例提供的获取信息的示意图;
36.图5是本技术实施例提供的定位装置的结构示意图;
37.图6是本技术实施例提供的电子设备的结构示意图。
具体实施方式
38.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
39.本技术实施例提供了一种定位方法,该方法可应用于如图1所示的实施环境中。图1中,包括至少一个电子设备11和服务器12,电子设备11可与服务器12进行通信连接,以从服务器12获取定位过程中需要使用的信息。
40.其中,电子设备11可以是pc(personal computer,个人计算机)、手机、智能手机、pda(personal digital assistant,个人数字助手)、可穿戴设备、掌上电脑ppc(pocket pc)、平板电脑、智能车机、智能电视等电子产品。
41.服务器12可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
42.本领域技术人员应能理解上述电子设备11和服务器12仅为举例,其他现有的或今后可能出现的电子设备或服务器如可适用于本技术,也应包含在本技术保护范围以内,并在此以引用方式包含于此。
43.基于上述图1所示的实施环境,参见图2,本技术实施例提供了一种定位方法,该方法可应用于图1所示的电子设备中。如图2所示,该方法包括如下的步骤。
44.201,获取需要定位的对象的第一状态变量,第一状态变量包括对象在至少一个时刻的参考信息,参考信息包括imu信息、视觉信息和gnss信息。
45.其中,需要定位的对象包括但不限于人和物体,本实施例不对需要定位的对象加以限定。第一状态变量包括对象在至少一个时刻的参考信息,本实施例不对时刻数量加以限定,根据实际需要确定该时刻数量即可。
46.示例性地,对象在一个时刻的imu信息包括:该时刻对象在世界坐标系下的位置、速度、旋转角度、加速度偏置和陀螺仪偏置中至少一种信息。对象在一个时刻的视觉信息包括:该时刻拍摄得到的图像中的各个视觉特征点的信息,图像由与对象关联的摄像机拍摄得到,与对象关联的摄像机例如为安装于对象上的摄像机。示例性地,一个视觉特征点的信息包括该视觉特征点在三维空间中的实际位置,或者说是该视觉特征点在摄像机坐标系下的位置。对象在一个时刻的gnss信息包括:该时刻对象在地球坐标系下的位置和gnss的模糊度向量。示例性地,模糊度向量例如为gnss的站间单差整周模糊度向量,gnss包括但不限于如下的至少一种系统:gps(global positioning system,全球定位系统)、glonass(格洛纳斯,一种全球卫星导航系统)、bds(beidou navigation satellite system,北斗导航卫星系统)和galileo(伽利略,一种全球卫星导航系统)。gnss也可简称为s系统。
47.需要说明的是,在一些实施方式中,对象在至少一个时刻中的任一时刻的参考信息均包括上述imu信息、视觉信息和gnss信息。在另一些实施方式中,对象在一个时刻的参考信息包括imu信息、视觉信息和gnss信息中的至少一种信息。其原因在于,imu信息、视觉信息和gnss信息的采集频率往往不同,因而对于一个时刻而言,在该时刻有可能仅能够获取到imu信息、视觉信息和gnss信息中的至少一种信息。另外,对象在不同时刻的imu信息可能相同,也可能不同。例如,对象在一些时刻的imu信息包括对象在imu坐标系下的位置、速度和旋转角度,对象在另一些时刻的imu信息包括对象在imu坐标系下的位置、速度、旋转角度、加速度偏置和陀螺仪偏置。
48.基于以上说明,第一状态变量表示为如下的公式(1):
[0049][0050]
首先,对公式(1)中的[x0,x1,...,xn]进行说明。其中,xn为对象在bk时刻的imu信息(n为正整数),bk时刻的粒度基于imu信息的采集频率确定。例如,imu信息的采集频率为100赫兹,则bk时刻的粒度为0.01秒。在xn中,为bk时刻对象在世界坐标系(表示为w)下的位置,为bk时刻对象在世界坐标系下的速度,为bk时
刻对象在世界坐标系下的旋转角度。为bk时刻的加速度偏置,为bk时刻的陀螺仪偏置。
[0051]
接着,对公式(1)中的和[λ0,λ1,...,λm]进行说明。为与对象关联的摄像机的外参信息,为摄像机坐标系(表示为c)相对于imu坐标系(表示为b)的位置,为摄像机坐标系相对于imu坐标系的旋转角度。λm为对象在cj时刻的视觉信息(m为正整数),cj时刻的粒度基于视觉信息的采集频率确定。例如,视觉信息的采集频率为10赫兹,则cj时刻的粒度为0.1秒。根据上文说明可知,对象在一个时刻的视觉信息包括:该时刻拍摄得到的图像中的各个视觉特征点在摄像机坐标系下的位置。因此,其中,l用于指示cj时刻拍摄得到的图像中的各个视觉特征点。
[0052]
再有,对公式(1)中的p
t
和δn
st
进行说明。p
t
表示对象一个时刻在地球坐标系下的位置,该时刻的粒度基于gnss的采集频率确定,p
t
的上标t表示转置。δn
st
表示该时刻下的模糊度向量,例如上述说明中的gnss的站间单差整周模糊度向量,δn
st
的上标t表示转置。
[0053]
以上,对第一状态变量包括的参考信息进行了说明。在示例性实施例中,获取需要定位的对象的第一状态变量,包括如下的步骤。
[0054]
2011,获取对象的第三状态变量,第三状态变量包括对象在至少一个第一时刻的参考信息。
[0055]
对象在第一时刻的参考信息参见上文说明,此处不再进行赘述。示例性地,对象的第三状态变量的获取方式包括如下的两种。
[0056]
获取方式一:第三状态变量为通过初始化过程获得的状态变量。在初始化过程中,获取imu测量信息、视觉测量信息和gnss测量信息,从而求解得到第三状态变量。求解得到第三状态变量的方式例如为svd(singular value decomposition,奇异值分解),本实施例不对求解方式加以限定。
[0057]
示例性地,imu测量信息包括:位置预积分的测量值、速度预积分的测量值、旋转角度预积分的测量值、加速度偏置的测量值和陀螺仪偏置的测量值。视觉测量信息包括视觉特征点在图像中的像素位置的测量值,gnss测量信息包括载波相位的测量值和伪距的测量值中的至少一种,载波相位包括l1载波相位或者l2载波相位,本实施例不对使用的载波加以限定。
[0058]
获取方式二:第三状态变量为已优化过的状态变量。例如,在通过初始化过程获得状态变量之后,按照本技术实施例提供的方式对该状态变量进行了一次或多次的优化,则可将已优化过一次或多次的状态变量作为第三状态变量。在该实施方式中,是对已经优化过一次或多次的第三状态变量继续进行优化。能够看出,本实施例能够随着时间变化对参考信息进行多次更新,从而保证了定位准确度。
[0059]
2012,响应于检测到满足条件,向第三状态变量中插入对象在第二时刻的参考信息,得到更新后的第三状态变量,第二时刻晚于至少一个第一时刻中的任一第一时刻。
[0060]
其中,对象在第二时刻的参考信息参见上文说明,此处不再进行赘述。在更新后的第三状态变量中,不仅包括对象在至少一个第一时刻的参考信息,还包括对象在第二时刻的参考信息。能够理解的是,由于第二时刻晚于至少一个第一时刻中的任一第一时刻,因而
相比于对象在第一时刻的参考信息而言,对象在第二时刻的参考信息是较新的参考信息。换言之,在对对象进行定位的过程中,本实施例会不断向第三状态变量中插入新的参考信息,从而不断对新的参考信息进行优化。
[0061]
在示例性实施例中,方法还包括:参见图3,响应于获得imu测量信息、获得视觉测量信息、获得gnss测量信息和经过参考时长中的至少一个事件发生,确定检测到满足条件,从而向第三状态变量中插入对象在第二时刻的参考信息。示例性地,第二时刻为上述至少一个事件发生的时刻。imu测量信息和视觉测量信息参见上文说明,此处不再进行赘述。示例性地,由于视觉测量信息为视觉特征点在图像中的像素位置的测量值,因而获得视觉测量信息包括:通过摄像机拍摄得到图像。示例性地,经过参考时长是指:当前时刻和上一次向第三状态变量中插入对象在第二时刻的参考信息的时刻之间的时间间隔为该参考时长,也就是说本实施例每隔参考时长向第三状态变量中插入一次对象在第二时刻的参考信息。
[0062]
在一些实施方式中,考虑到获得imu测量信息的频率较高,如果每获得一次imu测量信息均向第三状态变量中插入对象在第二时刻的参考信息,则需要较多的处理资源。例如,参见图4,本实施例在6个时刻均获取了imu测量信息,仅在5个时刻获取了视觉测量信息,仅在1个时刻获取了gnss信息。因此,本实施例仅在获得视觉测量信息、获得gnss测量信息和经过参考时长中的至少一个事件发生时,再向第三状态变量中插入对象在第二时刻的参考信息。
[0063]
2013,基于更新后的第三状态变量得到第一状态变量。
[0064]
在一些实施方式中,基于更新后的第三状态变量得到第一状态变量,包括:将更新后的第三状态变量作为第一状态变量。或者,在示例性实施例中,基于更新后的第三状态变量得到第一状态变量,包括:响应于至少一个第一时刻和第二时刻的时刻数量之和大于数量阈值,从至少一个第一时刻和第二时刻中确定至少一个目标时刻。从更新后的第三状态变量中删除对象在至少一个目标时刻的参考信息,得到第一状态变量。
[0065]
能够理解的是,第一状态变量中对象在越多个时刻的参考信息,后续计算过程的计算量就越大。因此,参见图3,在至少一个第一时刻和第二时刻的时刻数量之和大于数量阈值的情况下,本实施例需要从更新后的第三状态变量中删除对象在至少一个目标时刻的参考信息,以减小后续计算过程的计算量,避免影响到定位的实时性。其中,本实施例不对数量阈值加以限定,数量阈值根据实际需要或者电子设备的计算能力中的至少一种进行设置即可。
[0066]
在该实施例中,随着对象在第二时刻的参考信息的插入,对象在至少一个目标时刻的参考信息被删除。则,插入和删除参考信息的过程相当于一个滑动窗口(sliding window)在不同时刻之间的滑动过程,滑动窗口与第一状态变量相对应,第一状态变量中包括的时刻数量即为滑动窗口尺寸(window size)。
[0067]
在一些实施方式中,从至少一个第一时刻和第二时刻中确定至少一个目标时刻,包括:在至少一个第一时刻和第二时刻中,将最早的一个时刻确定为目标时刻。也就是说,每插入一个对象在第二时刻的参考信息,均相应地删除一个对象在最早的目标时刻的参考信息,从而使得滑动窗口的尺寸在插入和删除参考信息的过程中保持不变。当然,该实施方式仅为举例,本实施例中不对目标时刻和目标时刻的数量加以限定。
[0068]
示例性地,本实施例通过边缘化误差对被删除的对象在至少一个目标时刻的参考
信息进行保留。在后续的计算过程中,将该边缘化误差也计算在内。在示例性实施例中,方法还包括:基于第一状态变量和对象在至少一个目标时刻的参考信息确定边缘化误差。
[0069]
在一些实施方式中,本实施例基于第一状态变量和对象在至少一个目标时刻的参考信息,采用舒尔补计算的方式确定边缘化误差。该边缘化误差的确定方式仅为举例,不用于对本实施例造成限定。
[0070]
202,基于第一状态变量包括的参考信息确定imu误差、视觉误差和gnss误差,基于imu误差、视觉误差和gnss误差确定目标误差。
[0071]
在一些实施方式中,基于imu误差、视觉误差和gnss误差确定目标误差,包括:将imu误差、视觉误差和gnss误差之和确定为目标误差。或者,针对于上文中确定了边缘化误差的情况,基于imu误差、视觉误差和gnss误差确定目标误差,包括:将边缘化误差、imu误差、视觉误差和gnss误差之和确定为目标误差。当然,以上确定目标误差的方式仅为举例,不用于对本实施例造成限定。例如,本实施例还可以在求和的基础上,采用加权求和的方式确定目标误差,且不同误差的权重可以相同,也可以不同。
[0072]
接下来,对确定imu误差、视觉误差和gnss误差的方式进行说明。在示例性实施例中,基于第一状态变量包括的参考信息确定imu误差、视觉误差和gnss误差,包括如下的步骤。
[0073]
2021,获得imu测量信息和imu估计信息,基于imu测量信息、imu估计信息和imu信息确定imu误差。
[0074]
其中,根据上文2011中的说明可知,imu测量信息包括:位置预积分的测量值、速度预积分的测量值、旋转角度预积分的测量值、加速度偏置的测量值和陀螺仪偏置的测量值。相应地,imu估计信息包括:位置预积分的估计值、速度预积分的估计值和旋转角度预积分的估计值。需要说明的是,预积分是在相邻两个时刻之间计算得到的。例如,位置预积分的测量值是指:对两个相邻时刻的位置的测量值进行预积分得到的值。又例如,位置预积分的估计值是指:对两个相邻时刻的位置的估计值进行预积分得到的值。对于其他预积分,此处不再一一赘述。在本实施例中,基于imu测量信息、imu估计信息和第一状态变量中的imu信息,确定第一状态变量中的两个相邻时刻的imu子误差,则任意两个相邻时刻对应一个imu子误差,之后,再将各个imu子误差之和确定为imu误差。
[0075]
基于以上说明,imu误差表示为如下的公式(2):
[0076][0077]
其中,bk用于区分不同时刻,bk的粒度基于imu的采集频率确定。b为imu测量信息和imu估计信息的集合,z1用于指示两个相邻时刻bk和b
k 1
对应的imu子误差,‖
·
‖用于表示范数。z1表示为如下的公式(3):
[0078][0079]
在公式(3)中,为位置预积分的测量值与位置预积分的估计值之间的差值,也即是位置预积分的误差值。在位置预积分的估计值中,表示bk时刻世界坐标系在imu坐标系下的旋转矩阵,为b
k 1
时刻对象在世界坐标系下的位置,为bk时刻对象在世界坐标系下的位置,为bk时刻对象在世界坐标系下的速度,δtk为bk时刻和b
k 1
时刻之间的差值,gw为世界坐标系下的重力加速度。
[0080]
为速度预积分的测量值与速度预积分的估计值与速度预积分的估计值之间的差值,也即是速度预积分的误差值。为b
k 1
时刻对象在世界坐标系下的速度。
[0081]
为旋转角度预积分的误差值,基于旋转角度预积分的测量值和旋转角度预积分的估计值计算得到。在旋转角度预积分的估计值中,为bk时刻对象在世界坐标系下的旋转角度,为b
k 1
时刻对象在世界坐标系下的旋转角度,x、y、z表示旋转角度的三种不同方向。为张量积,属于一种运算符号。
[0082]
δba为加速度偏置的误差值,通过bk时刻的加速度偏置测量值和b
k 1
时刻的加速度偏置测量值计算得到。δbg为陀螺仪偏置的误差值,通过bk时刻的陀螺仪偏置测量值和b
k 1
时刻的陀螺仪偏置测量值计算得到。
[0083]
在上述公式(3)中,需要求解的变量包括在上述公式(3)中,需要求解的变量包括和需要求解的变量即为第一状态变量包括的参考信息中的imu信息。
[0084]
2022,获得视觉测量信息,基于视觉信息获得视觉估计信息,基于视觉测量信息和视觉估计信息确定视觉误差。
[0085]
其中,根据2011中的说明可知,视觉测量信息包括视觉特征点在图像中的像素位
置的测量值。对象在一个时刻的视觉估计信息包括:视觉特征点在图像中的像素位置的估计值,视觉估计信息基于视觉信息确定。对于第一状态变量中的各个时刻拍摄得到的图像,本实施例计算图像中的视觉特征点在该图像中的像素位置的估计值和测量值之间的差值,得到特征点对应的误差值,将各个图像中的各个特征点对应的误差值之和确定为视觉误差。
[0086]
基于以上说明,视觉误差表示为如下的公式(4):
[0087][0088]
其中,c为视觉测量信息和视觉估计信息的集合,j用于区分第一状态变量中各个时刻拍摄得到的图像,l用于区分图像中的各个特征点。ρ(
·
)为损失函数,z2为特征点l对应的误差值。z2表示为如下的公式(5):
[0089][0090]
在公式(5)中,为cj时刻拍摄得到的图像j中的第l个特征点的像素位置的测量值。为cj时刻拍摄得到的图像j中的第l个特征点的像素位置的估计值。
[0091]
其中,表示为如下的公式(6):
[0092][0093]
πc表示圆周率,表示imu坐标系相对于摄像机坐标系的旋转矩阵,表示拍摄得到图像j的时刻世界坐标系相对于imu坐标系的旋转矩阵,表示摄像机坐标系相对于imu坐标系的旋转矩阵,为拍摄得到图像j 1的时刻,图像j 1中的视觉特征点在三维空间中的实际位置。为摄像机坐标系相对于imu坐标系的位置,为拍摄得到图像j 1的时刻,imu测量得到的对象在世界坐标系下的位置,为拍摄得到图像j的时刻,imu测量得到的对象在世界坐标系下的位置。
[0094]
在上述公式(6)中,需要求解的变量包括需要求解的变量即为第一状态变量包括的参考信息中的视觉信息。
[0095]
2023,获得gnss测量信息和gnss估计信息之间的差值,基于差值和gnss信息确定gnss误差。
[0096]
根据上文2011中的说明可知,gnss测量信息包括但不限于载波相位的测量值和伪距的测量值中的至少一种,相应地,gnss估计信息包括但不限于载波相位的估计值和伪距的估计值中的至少一种。在本实施例中,计算载波相位的测量值和载波相位的估计值之间的差值l(x)
s,φ
,计算伪距的测量值和伪距的估计值之间的差值l(x)
s,p
。则gnss测量信息和gnss估计信息之间的差值即为l(x)
s,φ
和l(x)
s,p
。之后,再结合gnss信息确定gnss误差。
[0097]
基于以上说明,gnss误差按照如下的公式(7)计算:
[0098][0099]
在公式(7)中,g表示gnss,即s系统,从而指示gnss误差是基于s系统包括的各个卫星计算得到的。z3表示为如下的公式(8):
[0100][0101]
公式(8)中,h为设计矩阵,ds为s系统测量值站间单差转至站间双差的转换矩阵,es为s系统观测方程余弦,λs为s系统频点的波长。p
t
为gnss信息中的位置,δn
st
为gnss信息中的模糊度向量。l(x)
s,φ
和l(x)
s,p
参见上文说明。其中,需要求解的变量为p
t
和δn
st
,需要求解的变量即为第一状态变量包括的参考信息中的gnss信息。
[0102]
以s系统包括gps和bds(即短基线gps/bds双系统)为例,计算gnss误差的方式参见如下的公式(9):
[0103][0104]
在公式(9)中,dg为gps测量值站间单差转至站间双差的转换矩阵,db为bds测量值站间单差转至站间双差的转换矩阵,eg为gps观测方程余弦,eb为bds观测方程余弦,λg为gps频点的波长,λb为bds频点的波长,p
t
为需要求解的位置,δn
gt
为需要求解的gps的模糊度向量,为需要求解的bds的模糊度向量,l(x)
g,φ
为gps的载波相位的观测值和估计值之差,l(x)
g,p
为gps的伪距的观测值和估计值之差,l(x)
b,φ
为bds的载波相位的观测值和估计值之差,l(x)
b,p
为bds的伪距的观测值和估计值之差。
[0105]
需要说明的是,根据201中的说明可知,s系统包括gps、glonass、bds和galileo中的至少一种。以上举例对应的是s系统包括gps和bds的情况,对于其他情况,此处不再一一举例。
[0106]
基于2021中对imu误差的说明、2022中对视觉误差的说明和2023中对gnss误差的说明,将目标误差表示为如下的公式(10):
[0107][0108]
示例性地,对于201中说明的计算边缘化误差的情况,将边缘化误差表示为z4,则目标误差表示为如下的公式(11):
[0109][0110]
另外,能够理解的是,本实施例不对2021-2023的执行顺序加以限定,2021-2023可同时执行,也可根据实际需求依次执行。
[0111]
203,通过最小化目标误差的过程对第一状态变量包括的参考信息进行更新,得到第二状态变量,第二状态变量用于对对象进行定位。
[0112]
其中,本实施例可基于第一状态变量进行迭代,使得上述目标误差达到最小,此时第一状态变量被更新为第二状态变量。该过程即为对第一状态信息包括的参考信息的优化过程。相比于第一状态变量所包括的参考信息,第二状态变量所包括的参考信息更接近于真实信息。
[0113]
根据202中的说明可知,优化后的imu信息包括根据202中的说明可知,优化后的imu信息包括和优化后的视觉信息包括优化后的gnss信息包括p
t
和δn
st
。基于这些信息中的一种或多种,本实施例能够实现对象的定位。
[0114]
本技术实施例提供的方法适用于多种需要定位的场景。例如,适用于在无人车进行自动驾驶的场景中对无人车进行定位,还适用于在用户手动驾驶车辆的场景中对车辆进行定位。以无人车进行自动驾驶的场景为例,该无人车上安装有imu、摄像机和电子设备。通过imu能够获得imu测量信息,imu将imu测量信息传输给电子设备。通过摄像机能够获得视觉测量信息,摄像机将视觉测量信息传输给电子设备。另外,通过电子设备能够计算imu估计信息、视觉估计信息,还能够接收gnss测量信息和gnss估计信息。基于以上信息,电子设备可以执行上述说明中的方法,得到优化后的imu信息、视觉信息和gnss信息,从而实现无人车的定位。能够理解的是,在无人车进行自动驾驶的场景中,上述说明中的方法可以执行一次或多次,从而对无人车进行一次或者多次定位。
[0115]
综上所述,本技术实施例基于imu信息、视觉信息和gnss信息计算目标误差,通过对目标误差的最小化获得用于进行定位的第二状态变量,从而相当于对imu定位、视觉定位和gnss定位三种不同的定位方式进行了紧耦合,使得定位的准确度较高。不仅适用于复杂有遮挡的环境,而且成本较低,适用性较强。
[0116]
本技术实施例提供了一种定位装置,参见图5,装置包括:
[0117]
获取模块501,用于获取需要定位的对象的第一状态变量,第一状态变量包括对象在至少一个时刻的参考信息,参考信息包括惯性测量单元imu信息、视觉信息和全球导航卫星系统gnss信息;
[0118]
确定模块502,用于基于第一状态变量包括的参考信息确定imu误差、视觉误差和gnss误差,基于imu误差、视觉误差和gnss误差确定目标误差;
[0119]
更新模块503,用于通过最小化目标误差的过程对第一状态变量包括的参考信息进行更新,得到第二状态变量,第二状态变量用于对对象进行定位。
[0120]
在示例性实施例中,获取模块501,用于获取对象的第三状态变量,第三状态变量包括对象在至少一个第一时刻的参考信息;响应于检测到满足条件,向第三状态变量中插入对象在第二时刻的参考信息,得到更新后的第三状态变量,第二时刻晚于至少一个第一时刻中的任一第一时刻;基于更新后的第三状态变量得到第一状态变量。
[0121]
在示例性实施例中,获取模块501,用于响应于至少一个第一时刻和第二时刻的时刻数量之和大于数量阈值,从至少一个第一时刻和第二时刻中确定至少一个目标时刻;从更新后的第三状态变量中删除对象在至少一个目标时刻的参考信息,得到第一状态变量。
[0122]
在示例性实施例中,确定模块502,还用于基于第一状态变量和对象在至少一个目标时刻的参考信息确定边缘化误差;
[0123]
确定模块502,用于将边缘化误差、imu误差、视觉误差和gnss误差之和确定为目标误差。
[0124]
在示例性实施例中,获取模块501,用于在至少一个第一时刻和第二时刻中,将最早的一个时刻确定为目标时刻。
[0125]
在示例性实施例中,获取模块501,还用于响应于获得imu测量信息、获得视觉测量信息、获得gnss测量信息和经过参考时长中的至少一个事件发生,确定检测到满足条件。
[0126]
在示例性实施例中,确定模块502,用于获得imu测量信息和imu估计信息,基于imu测量信息、imu估计信息和imu信息确定imu误差;获得视觉测量信息,基于视觉信息获得视觉估计信息,基于视觉测量信息和视觉估计信息确定视觉误差;获得gnss测量信息和gnss估计信息之间的差值,基于差值和gnss信息确定gnss误差。
[0127]
综上所述,本技术实施例基于imu信息、视觉信息和gnss信息计算目标误差,通过对目标误差的最小化获得用于进行定位的第二状态变量,从而相当于对imu定位、视觉定位和gnss定位三种不同的定位方式进行了紧耦合,使得定位的准确度较高。不仅适用于复杂有遮挡的环境,而且成本较低,适用性较强。
[0128]
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0129]
参见图6,其示出了本技术实施例提供的一种终端600的结构示意图。该终端600可以是便携式移动终端,比如:智能手机、平板电脑、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、笔记本电脑或台式电脑。终端600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
[0130]
通常,终端600包括有:处理器601和存储器602。
[0131]
处理器601可以包括一个或多个处理核心,比如4核心处理器、6核心处理器等。处理器601可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)所组成的群组中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏605所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0132]
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可
读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本技术中方法实施例提供的定位方法。
[0133]
在一些实施例中,终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、显示屏605、摄像头606、音频电路607、定位组件608和电源609所组成的群组中的至少一种。
[0134]
外围设备接口603可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0135]
射频电路604用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及6g)、无线局域网和/或wi-fi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
[0136]
显示屏605用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置终端600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emitting diode,有机发光二极管)等材质制备。
[0137]
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
[0138]
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
[0139]
定位组件608用于定位终端600的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。定位组件608可以是基于美国的gps(global positioning system,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
[0140]
电源609用于为终端600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
[0141]
在一些实施例中,终端600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
[0142]
加速度传感器610可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
[0143]
陀螺仪传感器612可以检测终端600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对终端600的3d动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
[0144]
压力传感器613可以设置在终端600的侧边框和/或显示屏605的下层。当压力传感器613设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在显示屏605的下层时,由处理器601根据用户对显示屏605的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件所组成的群组中的至少一种。
[0145]
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置终端600的正面、背面或侧面。当终端600上设置有物理按键或厂商logo时,指纹传感器614可以与物理按键或厂商logo集成在一起。
[0146]
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学
传感器615采集的环境光强度,控制显示屏605的显示亮度。具体地,当环境光强度较高时,调高显示屏605的显示亮度;当环境光强度较低时,调低触示屏606的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
[0147]
接近传感器616,也称距离传感器,通常设置在终端600的前面板。接近传感器616用于采集用户与终端600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与终端600的正面之间的距离逐渐变小时,由处理器601控制显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与终端600的正面之间的距离逐渐变大时,由处理器601控制显示屏605从息屏状态切换为亮屏状态。
[0148]
本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0149]
本技术实施例提供了一种电子设备,设备包括存储器及处理器;存储器中存储有至少一条指令,至少一条指令由处理器加载并执行,以实现本技术的任一种示例性实施例所提供的定位方法。
[0150]
本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令,指令由处理器加载并执行以实现本技术的任一种示例性实施例所提供的定位方法。
[0151]
本技术实施例提供了一种计算机程序或计算机程序产品,计算机程序或计算机程序产品包括:计算机指令,计算机指令被计算机执行时,使得计算机实现本技术的任一种示例性实施例所提供的定位方法。
[0152]
上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
[0153]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0154]
以上仅为本技术的实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献