定位方法、装置、电子设备及计算机存储介质

文档序号:5547 发布日期:2021-09-17 浏览:53次 英文

定位方法、装置、电子设备及计算机存储介质

技术领域

本申请实施例涉及定位

技术领域

,尤其涉及一种定位方法、装置、电子设备及计算机存储介质。

背景技术

定位是各种基于位置的服务(如导航、网约车等)的基础。随着航天事业的发展,卫星定位技术越来越成熟,利用卫星定位技术可以确定车辆、终端设备的实时位置。但是,卫星定位依赖卫星信号,在一些例如隧道、地下车库的场景中,卫星信号很弱或者没有卫星信号,从而导致定位错误或者无法定位。为解决这些场景的定位问题,可以将多种技术结合起来进行定位,以提高定位的可靠性。例如,卫星定位技术、视觉定位技术、惯性导航技术等。在卫星信号强的时候,使用卫星定位进行定位,在卫星信号弱的时候,使用其他定位方式进行定位。但是,产业界对定位技术的需求并不仅限于可靠性,定位的精确度(精度)成为比如智能车等产业更为关注的问题。因此,不断提高定位的精确度是本领域技术人员需要持续解决的问题。

发明内容

有鉴于此,本申请实施例提供一种定位方法、装置、电子设备及计算机存储介质,以解决上述部分或全部问题。

根据本申请实施例的第一方面,提供了一种定位方法,用于对目标设备进行定位,目标设备至少搭载了用于融合定位的惯性测量模块、卫星定位模块、视觉模块,方法包括:基于惯性测量模块采集的数据,获取惯性导航数据;基于卫星定位模块采集的数据,获取卫星定位数据;基于视觉模块采集的数据,获取视觉定位数据;利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据;利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新;利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。

根据本申请实施例的第二方面,提供了一种定位装置,包括:惯性导航模块,用于基于目标设备的惯性测量模块采集的数据,获取惯性导航数据;卫星定位模块,用于基于目标设备的卫星定位模块采集的数据,获取卫星定位数据;视觉定位模块,用于基于目标设备的视觉模块采集的数据,获取视觉定位数据;精度模块,用于利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据;参数更新模块,用于利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新;导航修正模块,还用于利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。

根据本申请实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如第一方面的定位方法对应的操作。

根据本申请实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面的定位方法。

本申请实施例提供的定位方法、装置、电子设备及计算机存储介质,基于惯性测量模块采集的数据,获取惯性导航数据;基于卫星定位模块采集的数据,获取卫星定位数据;基于视觉模块采集的数据,获取视觉定位数据;利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据;利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新;利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。因为结合了卫星定位数据和视觉定位数据对导航误差参数进行更新,提高了导航误差参数的可靠性,利用可靠性更高的导航误差参数对惯性导航数据进行修正,能够更进一步提高惯性导航数据的准确度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本申请实施例一提供的一种定位方法的场景示意图;

图2为本申请实施例一提供的一种定位方法的流程图;

图3为本申请实施例二提供的一种定位方法的场景示意图;

图4为本申请实施例二提供的一种定位方法的逻辑框图;

图5为本申请实施例二提供的一种视觉定位的流程框图;

图6为本申请实施例二提供的另一种定位方法的逻辑框图;

图7为本申请实施例三提供的一种定位装置的结构框图;

图8为本申请实施例四提供的一种电子设备的结构示意图。

具体实施方式

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

下面结合本申请实施例附图进一步说明本申请实施例具体实现。

实施例一

本申请实施例一提供一种定位方法,应用于电子设备,该电子设备可以是用于对导航数据进行数据处理的设备,例如,终端设备、服务器等。为了便于理解,对本申请实施例一所提供的定位方法的应用场景进行说明,参照图1所示,图1为本申请实施例一提供的一种定位方法的场景示意图。图1所示的场景中包括电子设备101、车辆102、用户103和卫星104;电子设备101可以是执行本申请实施例一提供的定位方法的设备。

电子设备101可以是如智能手机、平板电脑、笔记本电脑等终端设备,也可以是如服务器等云端设备。需要说明的是,电子设备101还可以接入网络,通过网络与云端连接,并进行数据交互,电子设备101可以是终端设备或云端设备。本申请中,网络包括局域网(英文:Local Area Network,LAN)、广域网(英文:Wide Area Network,WAN)、移动通信网络;如万维网(英文:World Wide Web,WWW)、长期演进(英文:Long Term Evolution,LTE)网络、2G网络(英文:2th Generation Mobile Network)、3G网络(英文:3th Generation MobileNetwork),5G网络(英文:5th Generation Mobile Network)等。当然,此处只是示例性说明,并不代表本申请局限于此。云端可以包括通过网络连接的各种设备,例如,服务器、中继设备、端到端(英文:Device-to-Device,D2D)设备等。

图1所示的场景,将车辆102作为目标设备,以对车辆102进行导航作为示例,车辆102上可以搭载用于融合定位的惯性测量模块、卫星定位模块、视觉模块,车辆102可以通过卫星定位模块接收卫星104传输的卫星信号,并得到卫星定位数据,将卫星定位数据传输至电子设备101,车辆102还可以向电子设备101传输视觉模块测量得到的数据;车辆102还可以向电子设备101传输惯性测量模块采集的数据,电子设备101对车辆102传输的数据进行数据处理得到惯性导航数据、卫星定位数据以及视觉定位数据,确定位置精度更高的数据,利用位置精度更高的数据对应的位置误差对导航误差参数进行更新,然后对惯性导航数据进行修正,以得到融合定位结果,并向用户103进行提示。在图1所示的场景中,用户103可以是车辆102中的驾驶员或乘客,电子设备101可以是车辆102上的终端设备,或者是用户103使用的终端设备;电子设备101也可以是云端设备,将惯性导航数据传输至车辆102上的终端设备,以便该终端设备向用户103进行提示。

结合图1所示的场景,详细说明本申请实施例一提供的定位方法,需要说明的是,图1只是本申请实施例一提供的定位方法的一种应用场景,并不代表该定位方法必须应用于图1所示的场景,参照图2所示,图2为本申请实施例一提供的一种定位方法的流程图,该方法用于对目标设备进行定位,目标设备至少搭载了用于融合定位的惯性测量模块、卫星定位模块、视觉模块,该方法包括以下步骤:

步骤201、基于惯性测量模块采集的数据,获取惯性导航数据。

目标对象是待定位的对象,例如,目标对象可以是车辆、用户、终端设备等。对目标对象进行惯性导航可以是监测与目标对象运动状态相同的终端设备,从而确定目标对象的运动状态。例如,目标对象可以是车辆,电子设备可以是车辆上的终端设备,电子设备根据自身的定位数据进行导航,即可完成对目标对象的惯性导航;又如,目标对象可以是车辆,电子设备可以是云端设备,电子设备可以接收车辆上的车载终端传输的定位数据,完成对目标对象的惯性导航。获取惯性导航数据后,可以利用导航误差参数对惯性导航数据进行修正,然后输出修正后的惯性导航数据,向用户提示。

需要说明的是,惯性导航可以是利用惯性测量数据进行惯性导航解算得到惯性导航数据的过程。电子设备可以接收惯性测量模块采集得到的惯性测量数据,然后对惯性测量数据进行导航解算得到惯性导航数据。惯性导航数据可以包括位置数据、速度数据、航向角等参数中的一个或多个。其中,位置数据可以包括经度、纬度、高度中的一个或多个,速度数据用于指示目标对象的速度,航向角用于指示目标对象当前周期相对于上一周期在左右方向的角度变化(即左右方向上角度的变化量);惯性测量模块可以包括惯性测量单元(英文:Inertial Measurement Unit,IMU),以IMU为例,惯性测量数据可以包括利用IMU测量得到的目标对象(例如车辆)至少一个方向的加速度以及至少一个轴的角速度,结合上一周期的位置数据、速度数据和航向角,根据IMU测量得到的惯性测量数据进行惯性导航解算确当前周期目标对象的位置数据、速度数据和航向角。还需要说明的是,至少一个方向的加速度可以包括前向加速度、侧向加速度和垂向加速度中的至少一项,至少一个轴的角速度可以包括航向角的角速度、俯仰角的角速度以及横滚角的角速度中的至少一项。当然,以上只是示例性说明,并不代表本申请局限于此。

在惯性导航解算时,惯性测量模块采集得到的惯性测量数据可能存在误差,因此,需要对惯性测量数据进行误差修正,可选地,在一个应用场景中,基于惯性测量模块采集的数据,获取惯性导航数据,包括:获取惯性测量模块采集得到的惯性测量数据,利用传感器误差参数对惯性测量数据进行修正;利用修正后的惯性测量数据进行惯性导航解算得到惯性导航数据。其中,传感器误差参数可以包括陀螺零偏误差、加速度计零偏误差、安装角误差、里程计刻度系数误差中的至少一项。陀螺零偏误差指的是静止的陀螺仪偏离零点的误差,即零位漂移或偏移量;加速度计零偏误差指的是加速度为0时加速度计偏离零点的误差;安装角误差指的是安装加速度计的过程中,加速度计本身的坐标系与安装平台的坐标系(例如,车辆的坐标系)之间产生的角度偏差;里程计刻度系数误差指的是里程计测量距离与实际行驶距离之间的偏差。当然,此处只是示例性说明。因为惯性测量数据是传感器测量得到的数据,利用传感器误差参数对惯性测量数据进行修正,可以使得传感器测量数据更加精准,进一步保证惯性导航解算得到的惯性导航数据更精准。

可选地,该方法进一步还包括:利用惯性测量数据和惯性导航数据对传感器误差参数进行更新。利用惯性测量数据和惯性导航数据对传感器误差参数进行更新,可以提高传感器误差参数的准确度,使得后续对惯性测量数据进行修正,更加准确。此处,列举两个示例分别说明如何对安装角和里程计刻度系数误差进行更新。

在第一个示例中,惯性导航数据包括预估速度数据,利用惯性测量数据和惯性导航数据对传感器误差参数进行更新,包括:根据预估速度数据中包含的目标对象的侧向速度和垂向速度,对传感器误差参数中的安装角误差进行更新。以车辆为例,在车辆实际行驶过程中,侧向速度即车辆向左或向右移动的速度应当为0,垂向速度即车辆在垂直于车体向上或向下的移动速度也应当为0,如果预估速度数据中包含的目标对象的侧向速度和垂向速度不为0,说明安装角误差不准确,在对惯性测量数据进行修正时,修正得不够准确,因此,可以根据目标对象的侧向速度和垂向速度重新计算安装角误差,提高安装角误差的准确度。

在第二个示例中,目标设备还搭载了里程计模块,根据里程计模块采集到的数据可以获取到实测速度数据,惯性导航数据包括预估速度数据,利用惯性测量数据和惯性导航数据对传感器误差参数进行更新,包括:根据实测速度数据和预估速度数据,对传感器误差参数中的里程计刻度系数误差进行更新。需要说明的是,以车辆为例,里程计模块可以包括里程计(英文:Odometer,ODOM),通过里程计测量得到实测速度数据,实测速度数据可以包括车辆的实测前向速度,预估速度数据可以包括车辆的预估前向速度,将这两个速度值进行比较,即可确定里程计刻度系数误差。

以上只是列举传感器误差参数中两个参数进行示例性说明,其余参数可以按照相似的方式进行更新,此处不再赘述。

步骤202、基于卫星定位模块采集的数据,获取卫星定位数据。

对目标对象进行卫星定位可以通过对与目标对象运动状态相同的终端设备进行卫星定位实现。例如,目标对象为车辆,可以对车辆上的车载终端进行卫星定位以确定车辆位置。需要说明的是,可以利用卫星系统进行卫星定位,卫星系统可以包括全球导航卫星系统(英文:Global Navigation Satellite System,GNSS),具体地,GNSS可以包括以下至少一项:北斗卫星导航系统、全球定位系统(英文:Global Positioning System,GPS)、广域增强系统(英文:Wide Area Augmentation System,WAAS)、格洛纳斯卫星导航系统、伽利略卫星导航系统等。在一个示例中,电子设备与目标对象运动状态相同,获取卫星定位数据可以是电子设备接收卫星信号,根据卫星信号生成卫星定位数据;在另一个示例中,电子设备接收与目标对象运动状态相同的终端设备发送的卫星定位数据,或者,电子设备接收与目标对象运动状态相同的终端设备转发的卫星信号,根据该卫星信号生成卫星定位数据。

步骤203、基于视觉模块采集的数据,获取视觉定位数据。

结合步骤202,在卫星系统有效时,获取卫星定位数据,在视觉定位有效时,获取视觉定位数据,卫星定位数据和视觉定位数据获取可以同步获取,也可以不同步获取,可以不分先后,卫星定位数据和视觉定位数据获取的频率可以相同或者不同。

电子设备可以直接接收与目标对象运动状态相同的终端设备发送的视觉定位数据,或者,电子设备接收与目标对象运动状态相同的终端设备发送的基于目标对象的视角的至少一个图像,利用至少一个图像生成视觉定位数据;或者,电子设备基于目标对象的视角进行拍摄得到至少一个图像,利用至少一个图像生成视觉定位数据。此处列举一个实施例说明如何进行视觉定位,可选地,基于视觉模块采集的数据,获取视觉定位数据,包括:获取视觉采集模块采集的图像;基于图像和高精地图进行语义融合,以得到视觉定位数据。在一种可选地实现方式中,可以对至少一个图像进行几何特征提取,并根据电子地图进行特征关联;根据特征关联的结果对目标对象进行位姿估计得到视觉定位数据。对目标对象进行位姿估计可以利用粒子滤波的方法,也可以利用重投影残差的方法,当然,此处只是示例性说明。

步骤204、利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据。

可选地,在一种实施例中,惯性导航数据包括惯性定位数据,利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据包括:在卫星定位数据有效时,根据卫星定位数据与惯性定位数据,确定目标对象的位置第一误差,并确定位置第一误差的不确定度;根据视觉定位数据与惯性定位数据,确定目标对象的位置第二误差,并确定位置第二误差的不确定度;根据位置第一误差的不确定度和位置第二误差的不确定度确定卫星定位数据和视觉定位数据中位置精度更高的数据;在卫星定位数据无效时,确定视觉定位数据为位置精度更高的数据。需要说明的是,在本申请中,位置第一误差和位置第二误差可以是对同一个位置的两个不同误差,不确定度用于表示位置精度,不确定度越低,位置精度越高。示例性地,可以利用卡尔曼滤波(英文:KalmanFiltering)计算位置第一误差和位置第二误差,当然,也可以利用其他滤波算法进行计算,此处只是示例性说明。在卫星定位数据无效时,确定视觉定位数据为位置精度更高的数据,保持对导航误差参数的更新,提高了导航误差参数的准确度,进而提高惯性导航数据的准确度。需要说明的是,卫星定位数据无效指的是不能接收到卫星信号或者卫星信号太弱,不能实现卫星定位,卫星定位数据无效的原因可能是目标对象处于卫星信号弱的区域,也可能是因为其他原因导致没有接收到卫星信号,例如,卫星信号每1秒接收1次,以一秒的时间长度为一个卫星信号接收的周期,如果连续5秒都没有接收到到卫星信号,即卫星系统无效,当然,此处5秒只是示例性说明,可以是连续n个卫星信号接收的周期都没有接收到卫星信号,则确定卫星系统无效,n为大于1的整数,一个卫星信号接收的周期为1秒或者2秒等。

可选地,此处,列举两种可能的情况进行说明,根据位置第一误差的不确定度和位置第二误差的不确定度确定卫星定位数据和视觉定位数据中位置精度更高的定位数据,包括:在位置第一误差的不确定度大于第一阈值,且位置第二误差的不确定度小于第二阈值时,确定视觉定位数据为位置精度更高的定位数据;在位置第一误差的不确定度小于或等于第一阈值时,确定卫星定位数据为位置精度更高的定位数据。其中,第一阈值和第二阈值可以相同或者不同。

步骤205、利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新。

其中,导航误差参数用于指示惯性导航数据的误差。示例性地,导航误差参数可以包括位置误差、速度误差、姿态误差中的一个或多个。位置误差指的是对目标对象进行惯性导航解算确定的预估位置与对目标对象利用卫星定位或视觉定位测量的实际位置之间的偏差,目标对象的位置数据可以包括经度、维度、高度中的至少一项,对应的,位置误差也可以包括经度误差、纬度误差和高度误差中的至少一个;速度误差指的是对目标对象进行惯性导航解算确定的预估速度数据与对目标对象进行测量得到的实测速度数据之间的偏差;姿态误差指的是对目标对象进行惯性导航解算确定的目标对象的姿态与对目标对象进行测量确定的姿态之间的偏差,目标对象的姿态可以用航向角、横滚角、俯仰角中的至少一项进行描述,对应的,姿态误差可以包括航向角误差、横滚角误差和俯仰角误差中的至少一项。

此处列举三个示例分别对位置误差、速度误差和航向角误差的更新进行说明。

可选地,在第一个示例中,以更新导航误差参数中的位置误差为例,获取卫星定位数据的时间和获取视觉定位数据的时间和频率可以相同或者不同。例如,如果获取到卫星定位数据,则可以根据卫星定位数据对导航误差参数进行更新,或者不进行更新;如果没有获取到卫星定位数据,获取到了视觉定位数据,则可以根据视觉定位数据对导航误差参数进行更新,或者不进行更新;又如,同时获取到卫星定位数据和视觉定位数据,则利用卫星定位数据和视觉定位数据中位置精度更高的定位数据,对导航误差参数进行更新。

结合步骤204中的实施例,在一种可选的实现方式中,用位置精度更高的数据对应的位置误差,对导航误差参数进行更新,包括:利用位置第二误差对导航误差参数中包含的视觉位置误差进行更新,视觉位置误差是指视觉定位与惯性导航确定的目标对象的位置之间的位置误差;利用位置第一误差对导航误差参数中包含的卫星位置误差进行更新,卫星位置误差是指卫星定位与惯性导航确定的目标对象的位置之间的误差。在卫星定位数据比视觉定位数据位置精度高时,利用卫星定位数据和惯性定位数据对导航误差参数进行更新;在视觉定位数据比卫星定位数据位置精度高时,利用视觉定位数据和惯性定位数据对导航误差参数进行更新。利用位置精度高的定位数据对导航误差参数进行更新,提高了导航误差参数的准确度。

可选地,在第二个示例中,以更新速度误差为例,目标设备还搭载了里程计模块,惯性导航数据包括预估速度数据,方法还包括:基于里程计模块采集的数据,获取实测速度数据,根据实测速度数据和预估速度数据对导航误差参数中的速度误差进行更新。具体地,可以将实测速度数据减去预估速度数据即可得到速度误差,当然,此处只是示例性说明。需要说明的是,此处对导航误差参数中的速度误差进行更新时,实测速度数据可以是利用ODOM测量得到的,也可以是根据卫星定位数据或视觉定位数据计算得到的。

可选地,在第三个示例中,以更新航向角误差为例,该方法还包括:在目标对象静止时,对导航误差参数中的航向角误差进行更新。示例性地,静止状态下,航向角不变,航向角变化量应该为0,如果惯性导航数据中的航向角变化量不为0,则惯性导航数据中的航向角的数值即为航向角误差。

对导航误差参数中的速度误差和姿态误差(包含航向角误差)进行更新,可以进一步提高导航误差参数的准确度,进而提高惯性导航数据的准确度。

步骤206、利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。

利用导航误差参数对惯性导航数据进行修正,可以减少惯性导航解算确定的惯性导航数据与实际测量数据之间的偏差,提高惯性导航数据的准确度。

结合步骤201-206,需要说明的是,电子设备可以循环执行步骤201-206,步骤202-205的执行,是由获取卫星定位数据和视觉定位数据的频率决定的,步骤202-205,与步骤201和步骤206没有必然的先后顺序。即进行惯性导航得到惯性导航数据,并利用导航误差参数对惯性导航数据进行修正,并输出修正后的惯性导航数据;这与获取卫星定位数据以及视觉定位数据,对导航误差参数更新没有必然的先后顺序,在获取惯性导航数据进行修正并输出的过程中,什么时候获取卫星定位数据和视觉定位数据,则对导航误差参数进行更新,如果没有获取这两个数据,则不对导航误差参数中相应的参数进行更新。在一种应用场景中,电子设备获取惯性导航数据,并利用导航误差参数对惯性导航数据进行修正,然后对导航误差参数进行更新,继续对下一周期获取的惯性导航数据进行修正。当然,此处只是示例性说明。

本申请实施例提供的定位方法,基于惯性测量模块采集的数据,获取惯性导航数据;基于卫星定位模块采集的数据,获取卫星定位数据;基于视觉模块采集的数据,获取视觉定位数据;利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据;利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新;利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。因为结合了卫星定位数据和视觉定位数据对导航误差参数进行更新,提高了导航误差参数的可靠性,利用可靠性更高的导航误差参数对惯性导航数据进行修正,能够更进一步提高惯性导航数据的准确度。

实施例二

基于上述实施例一所描述的定位方法,本申请实施例二提供一种定位方法,以惯性导航、卫星定位、视觉定位三种方式结合为例,详细描述实施例一中的定位方法,该方法应用于电子设备,该电子设备可以为图1所示的场景中的电子设备101。为了便于说明,对定位方法的应用场景进行说明,在图1所示的应用场景的基础上,图3为本申请实施例二提供的一种定位方法的场景示意图,图3示出了电子设备101的结构,该电子设备101包括高精度定位引擎1011和高精度地图1012,其中,高精度定位引擎1011包括多传感器融合定位模块10111和语义融合模块10112。图3还示出了车辆102上包含的传感器模块,车辆102包括IMU1021(惯性测量模块)、GNSS模块1022(卫星定位模块)、ODOM模块1023(里程计模块)、视觉模块1024。

需要说明的是,IMU1021用于进行惯性测量得到惯性测量数据;GNSS模块1022用于接收卫星104(即GNSS的卫星)的卫星信号;ODOM模块1023用于进行里程测量并得到里程数据;视觉模块1024用于基于车辆102向前的视角,拍摄得到至少一个图像,并将至少一个图像传输至电子设备101中的语义融合模块10112。

语义融合模块10112,用于根据视觉模块1024拍摄的至少一个图像,结合高精度电子地图1012,进行视觉定位得到视觉定位数据,并将视觉定位数据传输至多传感器融合定位模块10111。

电子设备101中的多传感器融合定位模块10111,用于接收IMU1021测量得到的惯性测量数据,接收GNSS模块1022传输的卫星信号,并接收ODOM模块1023传输的里程数据;利用惯性测量数据进行惯性导航解算得到惯性导航数据,利用卫星信号进行卫星定位得到卫星定位数据,利用里程数据进行计算得到实测速度数据。多传感器融合定位模块10111,还用于接收语义融合模块10112传输的视觉定位数据。电子设备101根据惯性导航数据向用户103进行提示,可选地,可以通过播放语音、显示视频、显示图像、显示文字等方式对用户进行提示。具体地,结合图4,图4为本申请实施例二提供的一种定位方法的逻辑框图。本实施例提供的定位方法具体过程如下:

电子设备将IMU中的陀螺仪和加速度计进行时间对齐,然后判断初始化是否完成。

如果初始化没有完成,则进行初始化,并返回判断初始化是否完成。具体地,如果GNSS有效,则可以根据GNSS的卫星信号进行位置和速度的初始化,根据GNSS的卫星信号确定的航向角进行航向角的初始化;如果视觉定位有效,则根据视觉定位确定的航向角进行航向角的初始化;根据IMU中的加速度计的测量值进行俯仰角和滚转角的初始化。几何GNSS和视觉定位进行初始化,降低了初始化的工况要求,使得车辆既能在静止时初始化(在高精度地图区域),同时也能在运动时完成初始化。

如果初始化完成,则获取车辆102上各个传感器模块测量得到的数据,并确定惯性测量数据,利用传感器误差参数对惯性测量数据进行修正,利用修正后的惯性测量数据进行惯性导航解算得到惯性导航数据,利用导航误差参数对惯性导航数据进行修正,并根据修正后的当前周期的导航数据对用户进行提示。

建立捷联惯导误差方程,对滤波算法进行时间更新,具体地,可以采用卡尔曼滤波对捷联惯导误差方程中的误差参数以及各个误差参数的协方差进行更新。捷联惯导误差方程中的误差参数包括传感器误差参数和惯性导航误差参数,例如,位置误差、速度误差、姿态误差、陀螺零偏误差、加速度计零偏误差、安装角误差、里程计刻度系数误差等,其中,位置误差包括视觉位置误差和卫星位置误差。具体地,可以包括以下误差参数的更新:

确定GNSS模块是否更新,如果GNSS模块更新(即GNSS的卫星信号有效),则根据GNSS的卫星信号确定的卫星定位数据对导航误差参数(包含位置误差、速度误差和姿态误差)进行更新。如果GNSS模块未更新,或者已完成更新,则继续进行下一判断。

确定ODOM模块是否更新,如果ODOM模块更新,则根据ODOM模块传输的里程数据所确定的实测速度数据,对速度误差进行更新。如果ODOM模块未更新,或者已完成更新,则继续下一判断。

确定视觉模块是否更新,如果视觉模块更新,则判断GNSS模块持续无效的时间是否大于或等于预设时间长度,预设时间长度可以是3秒、5秒或10秒等。如果GNSS模块持续无效的时间大于或等于预设时间长度,则利用视觉定位数据对位置误差、速度误差以及姿态误差进行更新;如果GNSS模块持续无效的时间小于预设时间长度,则利用卫星定位数据以及视觉定位数据计算位置第一误差和位置第二误差的不确定度,在位置第一误差的不确定度大于第一阈值,且位置第二误差的不确定度小于第二阈值时,利用位置第二误差对导航误差参数中包含的视觉位置误差进行更新,否则利用卫星定位数据对卫星位置误差进行更新。如果视觉模块未更新,或者已完成更新,则继续进行下一判断。

确定目标对象是否静止,即目标对象速度是否为0,如果目标对象静止,则基于航向角为零的设定,对航向角误差进行更新。如果目标对象速度不为0,或者已完成航向角误差更新,则进行误差状态反馈,并获取新的传感器测量得到的数据,继续生成惯性测量数据进行惯性导航解算。

当然,此处只是示例性说明了几个误差参数的更新方式,还可以包括安装角、里程计刻度系数误差等参数的更新,此处不再赘述。

需要说明的是,语义融合模块在进行视觉定位的过程中,可以对至少一个图像进行几何特征提取,并结合高精度地图进行特征关联,根据特征关联的结果进行位姿估计得到视觉定位数据。语义融合模块可以基于粒子滤波进行位姿估计,也可以基于重投影残差进行位姿估计。示例性地,如图5所示,图5为本申请实施例二提供的一种视觉定位的流程框图,利用GPS和高精度地图进行粗定位;利用视觉信息处理模块采集至少一个图像,对至少一个图像进行语义分割,并基于语义分割的结果进行几何特征提取;利用激光雷达进行目标对象识别,并在高精度地图上对目标对象进行预选;利用预选结果进行重投影,根据视觉定位数据以及重投影的结果与提取的几何特征进行特征关联,进而计算配准残差,结合粗定位的结果进行位姿估计得到视觉定位数据,从而实现高精度定位。

基于上述实施例二所描述的定位方法,该定位方法可以采用组合滤波器进行处理。示例性地,图6为本申请实施例二提供的另一种定位方法的逻辑框图。如图6所示,GNSS模块、IMU和ODOM模块构成子滤波器1,视觉模块、IMU和ODOM模块构成子滤波器2,滤波时,各子滤波器独立进行时间与量测更新,主滤波器又进行时间更新,相应状态估计与协方差矩阵计算,进行全局信息融合后依照信息分配系数更新子滤波器与主滤波器。

本申请实施例提供的定位方法,基于惯性测量模块采集的数据,获取惯性导航数据;基于卫星定位模块采集的数据,获取卫星定位数据;基于视觉模块采集的数据,获取视觉定位数据;利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据;利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新;利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。因为结合了卫星定位数据和视觉定位数据对导航误差参数进行更新,提高了导航误差参数的可靠性,利用可靠性更高的导航误差参数对惯性导航数据进行修正,能够更进一步提高惯性导航数据的准确度。

实施例三

基于上述实施例一和实施例二所描述的方法,本申请实施例三提供一种定位装置,用于执行上述实施例一和实施例二所描述的方法,参照图7所示,该定位装置70包括:

惯性导航模块701,用于基于目标设备的惯性测量模块采集的数据,获取惯性导航数据;

卫星定位模块702,用于基于目标设备的卫星定位模块采集的数据,获取卫星定位数据;

视觉定位模块703,用于基于目标设备的视觉模块采集的数据,获取视觉定位数据;

精度模块704,用于利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据;

参数更新模块705,用于利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新;

导航修正模块706,还用于利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。

可选地,惯性导航数据包括惯性定位数据,精度模块704,用于在卫星定位数据有效时,根据卫星定位数据与惯性定位数据,确定目标对象的位置第一误差,并确定位置第一误差的不确定度;根据视觉定位数据与惯性定位数据,确定目标对象的位置第二误差,并确定位置第二误差的不确定度;根据位置第一误差的不确定度和位置第二误差的不确定度确定卫星定位数据和视觉定位数据中位置精度更高的数据;在卫星定位数据无效时,确定视觉定位数据为位置精度更高的数据。

可选地,精度模块704,用于在位置第一误差的不确定度大于第一阈值,且位置第二误差的不确定度小于第二阈值时,确定视觉定位数据为位置精度更高的定位数据;在位置第一误差的不确定度小于或等于第一阈值时,确定卫星定位数据为位置精度更高的定位数据。

可选地,参数更新模块705,用于利用位置第二误差对导航误差参数中包含的视觉位置误差进行更新,视觉位置误差是指视觉定位与惯性导航确定的目标对象的位置之间的位置误差;利用位置第一误差对导航误差参数中包含的卫星位置误差进行更新,卫星位置误差是指卫星定位与惯性导航确定的目标对象的位置之间的误差。

可选地,目标设备还搭载了里程计模块,惯性导航数据包括预估速度数据,参数更新模块705,还用于基于里程计模块采集的数据,获取实测速度数据,根据实测速度数据和预估速度数据对导航误差参数中的速度误差进行更新。

可选地,视觉定位模块703,用于获取视觉采集模块采集的图像;基于图像和高精地图进行语义融合,以得到视觉定位数据。

本申请实施例提供的定位装置,基于惯性测量模块采集的数据,获取惯性导航数据;基于卫星定位模块采集的数据,获取卫星定位数据;基于视觉模块采集的数据,获取视觉定位数据;利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据;利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新;利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。因为结合了卫星定位数据和视觉定位数据对导航误差参数进行更新,提高了导航误差参数的可靠性,利用可靠性更高的导航误差参数对惯性导航数据进行修正,能够更进一步提高惯性导航数据的准确度。

实施例四

基于上述实施例一和实施例二所描述的方法,本申请实施例四提供一种电子设备,用于执行上述实施例一和实施例二所描述的方法,参照图8所示,图8为本申请实施例四提供的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。

如图8所示,该电子设备可以包括:处理器(processor)802、通信接口(Communications Interface)804、存储器(memory)806、以及通信总线808。

其中:

处理器802、通信接口804、以及存储器806通过通信总线808完成相互间的通信。

通信接口804,用于与其它电子设备如终端设备或服务器进行通信。

处理器802,用于执行程序810,具体可以执行上述方法实施例中的相关步骤。

具体地,程序810可以包括程序代码,该程序代码包括计算机操作指令。

处理器802可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器806,用于存放程序810。存储器806可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序810具体可以用于使得处理器802执行前述实施例一和实施例二中任一方法。

程序810中各步骤的具体实现可以参见上述定位方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

本申请实施例提供的电子设备,基于惯性测量模块采集的数据,获取惯性导航数据;基于卫星定位模块采集的数据,获取卫星定位数据;基于视觉模块采集的数据,获取视觉定位数据;利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据;利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新;利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。因为结合了卫星定位数据和视觉定位数据对导航误差参数进行更新,提高了导航误差参数的可靠性,利用可靠性更高的导航误差参数对惯性导航数据进行修正,能够更进一步提高惯性导航数据的准确度。

实施例五

基于上述实施例一和实施例二所描述的方法,本申请实施例五提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例一和实施例二所描述的任一定位方法。

本申请实施例提供的计算机存储介质,基于惯性测量模块采集的数据,获取惯性导航数据;基于卫星定位模块采集的数据,获取卫星定位数据;基于视觉模块采集的数据,获取视觉定位数据;利用卫星定位数据、视觉定位数据以及惯性导航数据,确定位置精度更高的数据;利用位置精度更高的数据对应的位置误差,对导航误差参数进行更新;利用更新后的导航误差参数对惯性导航数据进行修正,以得到融合定位结果。因为结合了卫星定位数据和视觉定位数据对导航误差参数进行更新,提高了导航误差参数的可靠性,利用可靠性更高的导航误差参数对惯性导航数据进行修正,能够更进一步提高惯性导航数据的准确度。

需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。

上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的定位方法。此外,当通用计算机访问用于实现在此示出的定位方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的定位方法的专用计算机。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。

以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种智能感知传感器全域感知预警系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!