基于移动智能终端的GNSS高精度定位方法与流程

文档序号:13948669阅读:5461来源:国知局
基于移动智能终端的GNSS高精度定位方法与流程

本发明属于卫星定位技术领域,具体涉及一种移动智能终端的高精度定位方法。



背景技术:

随着智能手机等移动智能终端设备的飞速发展和普及,以及基于移动智能终端的线上打车、代驾和共享单车等新兴事物的兴起,大众对于室外位置服务的定位精度提出越来越高的要求。当前移动智能终端的室外定位技术主要有两种,一种是基于运营商网络,利用移动智能终端相对基站的距离测量来确定终端的位置;另一种是基于全球导航卫星系统(gnss),利用移动智能终端中的定位模块与卫星的交互来实现定位。然而传统的智能终端设备通过这两种定位方法只能提供约15m的定位精度,无法满足高精度定位需求和准确的位置服务要求,因此研究基于移动智能终端的高精度定位方法具有重大的意义和市场价值。

gnss为全球或空间用户提供定位、导航和授时信息,目前在轨运行和建设的gnss主要有gps、glonass、galileo和bds。传统基于android操作系统的智能终端利用gnss卫星定位技术的定位方案主要是通过调用应用层封装好的locationmanager类直接得到位置信息,这无法满足用户的高精度需求;然而,在其他的一些定位测量领域,已经实现了厘米级,甚至毫米级的定位精度,理论和实践方面都已经趋于成熟,这为移动智能终端的高精度定位提供了可能。google在2016年5月的i/o大会上声称将会在android7.0及以上的系统中开放原始观测数据,其中就包括伪距和载波数据,为android智能终端的米级甚至是厘米级定位提供了可行性。



技术实现要素:

发明目的:基于以上信息,本发明提出一种基于移动智能终端的gnss高精度定位方法,解决了智能手机定位精度较低的问题,能够为用户提供亚米级的定位精度。

技术方案:本发明所述的一种基于移动智能终端的gnss高精度定位方法,包括以下步骤:1)在android7.0及以上的系统下,利用系统提供的基于位置服务的api,获取到原始的观测值数据;2)通过对原始观测值数据进行分析,设计基于移动智能终端的差分定位模型,解算出伪距值;3)对得到的卫星进行高度角排序,采用高度角定权的方案,选择高度角较大的卫星参与解算;4)利用基于卡尔曼滤波的伪距差分方案得到高精度的定位结果。

本发明利用android系统的android.location包所提供的api来实现基于位置的服务。location包主要包括geocoder和locationmanager两个组件,本发明使用的是locationmanager接口。具体地,步骤1)包括以下步骤:

11)使用locationmanager中的registergnssmeasurementscallback方法注册观测值数据的回调对象gnssmeasurementsevent.callback;

12)在回调对象中覆写监听接收观测数据的ongnssmeasurementsreceived方法,得到接收观测值数据的事件类gnssmeasurementsevent;

13)由事件类中的getmeasurements方法得到gnss观测值类gnssmeasurements,由该类可以获得相关的观测值数据,包括有伪距率、载波、数据发射的时间等。

本发明采用伪距差分定位方案,步骤2)具体包括:

21)根据以下公式(2-1)计算卫星j与接收机k的非差伪距观测值:

其中r是卫星与接收机之间的距离,c是光速,δtk是接收机时钟相对于标准时间的偏差,δtj是卫星时钟相对于标准时间的偏差,是对流层改正项,是电离层改正项,是其余误差;

22)根据以下公式(2-2)计算卫星i,j和接收机a,b的站际星际双差伪距观测值:

其中是站星距的双差值,是对流层延迟的双差值,是电离层延迟的双差值,是其他误差的双差值,此处各个双差值具体由步骤21)中的相应非差值做差而得到。

本发明定位模型中采用高度角定权方式,当移动站观测到卫星的高度角大于30度,就将其权值设为1,当卫星高度角小于30度时,卫星权值设为sin2e,e为高度角,同时将卫星高度角的阈值设为10度,舍弃低于阈值的卫星数据。

有益效果:本发明提出的一种基于移动智能终端的gnss高精度定位方法,详细分析了基于android操作系统下位置服务的数据获取以及纯gnss下的高精度定位方案,完全利用智能手机自带的定位模块就可以得到亚米级的定位精度,随着手机等移动智能终端设备的飞速发展和普及,以及基于移动智能终端的线上打车、代驾和共享单车等新兴产业的兴起,大众对于室外位置服务的定位精度提出来更高的要求,因此基于移动智能终端的高精度定位方法具有重大的意义和市场价值。

附图说明

图1是基于移动智能终端的gps高精度定位方法流程图;

图2是本发明的获取原始观测值数据的流程图;

图3是android应用程序可以获得的gnss卫星观测值数据;

图4是android应用程序可以获得的有关gnss卫星的时间;

图5是android应用程序可以获得gnss卫星导航电文数据;

图6是根据本发明的实施例得到的卫星可见度;

图7是根据本发明的实施例得到的卫星载噪比;

图8是根据本发明的实施例得到的卫星高度角;

图9是根据本发明的实施例得到的零基线定位结果图;

图10是根据本发明的实施例得到的10km短基线定位结果图;

图11是根据本发明的实施例得到的25km短基线定位结果图。

具体实施方式

下面结合附图对本发明的技术方案作进一步说明。

图1是基于移动智能终端的gnss高精度定位方法流程图,一种基于移动智能终端的gnss高精度定位方法,首先在android7.0及以上的系统下,利用系统提供的基于位置服务的api,获取到原始的观测值数据,通过观测值数据分析解算出伪距值;然后对得到的卫星进行高度角排序,采用高度角定权的方案,选择高度角较大的卫星参与解算;最后利用基于卡尔曼滤波的伪距差分方案得到高精度的定位结果。以下详述具体过程。

首先基于移动智能终端获取原始观测值数据,本发明设计了通过android7.0中的locationmanager接口获取gnss原始观测值数据的方案,图2示出了获取原始观测值数据的流程图。具体步骤包括:第一步使用locationmanager中的registergnssmeasurementscallback方法注册观测值数据的回调对象gnssmeasurementsevent.callback,第二步在回调对象中覆写监听接收观测数据的ongnssmeasurementsreceived方法,得到接收观测值数据的事件类gnssmeasurementsevent,第三步由事件类中的getmeasurements方法得到gnss观测值类gnssmeasurements,最后由该类可以获得相关的观测值数据,包括有伪距率、载波、数据发射的时间等。图3-图5分别示出了android应用程序可以获得的gnss卫星观测值数据、有关gnss卫星的时间以及gnss卫星导航电文数据,其中主要数据项的说明分别如表1、表2和表3所示。

表1gnss卫星观测值数据

表2gnss卫星的时间相关数据

表3gnss卫星导航电文数据

接下来根据原始观测值数据,采用伪距差分定位方案,解算出伪距观测值,具体步骤如下:

(1)计算非差伪距观测值

通过测量gnss卫星信号在卫星j和接收机k之间传播的时间,从而求算出伪距值:

ρ=δt·c(1)

其中δt是卫星和接收机之间的传播时间,c是光速,δt可由卫星发射数据的时间和接收机接收数据的时间求差得到:

δt=tk-tj(2)

其中tk是接收机接收数据的时间,tj是卫星发射数据的时间,都可以由原始数据求得:

tk=t-tfullbias-tbias(3)

tj=tallweek+treceivedsv(4)

其中t是gnss接收机内部硬件时钟gettimenanos(),tfullbias是硬件时钟内的gps接收机和真实gps时间之间的差值getfullbiasnanos(),tbias是时钟的偏置getbiasnanos();tallweek是总的整周数时间,可以通过当前时间计算得到,代表从1980.6.1到当前时间之间的整周个数,treceivedsv是卫星发射数据的时间getreceivedsvtimenanos()。

构造卫星j与接收机k的伪距非差观测方程,得到非差伪距观测值:

其中r是卫星和接收机之间的距离,δtk是接收机时钟相对于标准时间的偏差,δtj是卫星时钟相对于标准时间的偏差,是对流层改正项,是电离层改正项,是其余误差。

(2)计算双差伪距观测值

根据非差伪距观测值,构造卫星i,j和接收机a,b的站际星际双差方程:

其中是站星距的双差值,是对流层延迟的双差值,是电离层延迟的双差值,是其他误差的双差值。具体各项双差伪距观测值是由上述相应的非差伪距观测值做差计算而来,这样可以消除共同误差。

为了提高导航定位精度,需要对无效观测值数据进行剔除。本发明定位模型中采用高度角定权方式,选择高度角较大的卫星参与解算,当移动站观测到卫星的高度角大于30度,就将其权值设为1,当卫星高度角小于30度时,卫星权值设为sin2e,e为高度角。同时将卫星高度角的阈值设为10度,舍弃低于该阈值的卫星数据。

最后通过卡尔曼滤波方法对历元间相关性加以滤除,得到精确的定位结果。卡尔曼滤波的计算过程可分为预测、滤波增益和滤波估值三部分。

(1)预测

假设当前的系统状态是k,根据前一次滤波结果(或初值)计算当前预测值:

xk,k-1=φk,k-1xk-1(7)

其中,xk,k-1是利用上一状态最优值预测的当前结果,φk,k-1是运动方程系数,xk-1是上一状态最优的结果。

根据前一次滤波结果的误差方差阵(或初值)和系统动态噪声方差阵计算预测值的误差方差阵:

其中,qk,k-1是利用上一次协方差最优值预测的当前误差方差阵,qk-1,k-1是前一次滤波结果的误差方差阵,是φk,k-1的转置矩阵,qwk是系统动态噪声方差阵。

(2)滤波增益

为了得到最小均方误差,计算最优卡尔曼增益矩阵:

其中,kk是当前状态的最优估计值,ak是观测方程的系数,是ak的转置矩阵,rk是测量的噪声方差阵。

(3)滤波估值

计算本次滤波结果:

xk,k=xk,k-1+kk(lk-akxk,k-1)(10)

其中,xk,k是本次滤波结果,lk是观测值。

计算本次滤波结果的误差方差阵:

qk.k=(i-kkak)qk,k-1(11)

其中,qk,k是本次滤波结果的误差方差阵,i是单位矩阵。

存储滤波估计,等待下一时刻得到新的观测值,重复前述过程。

卡尔曼滤波与最小二乘平差相比,充分顾及了未知参数的随机特性,更适合用于gnss实时定位解算,计算效率也更高。卡尔曼滤波过程中,模型参数的设置非常重要,设置不当的话很容易造成滤波发散,使定位结果严重偏离真值。通常静态定位的滤波参数可根据经验值设置,动态定位需要根据实际情况做出调整。本发明动态条件下的系统动态噪声阵qwk只对加速度进行处理,而并不对位置和速度进行处理。同样预测的误差方差阵qk,k-1会根据前后历元间的时间差对速度和加速度进行处理。

实施例:

试验所使用的android移动智能终端是华为p9手机,型号是eva-al00,版本号是eva-al00c00b377,emui版本为5.0,操作系统是android7.0。手机终端放置在东南大学的大礼堂附近,采用实验数据的时间是2017年4月26日09点38分03秒,时间长度为900秒,基准站采用的是实验室基站,数据采样间隔为1秒。由于手机的精确坐标未知,所以首先使用移动站测量出该点的精确坐标,然后将手机放置到这一点。

通过对原始观测值数据的解析,得到卫星数据。图6示出了卫星的可见度,其中gps卫星一直稳定在9颗,glonass卫星开始一段时间为9颗,之后降为7颗。gps卫星的可见度良好,采用gps卫星数据参与解算,卫星编号分别为:g10、g14、g15、g22、g25、g26、g29、g31、g32。图7显示的是手机接收机接收到的gps卫星载噪比,从图7中可见,gps卫星载噪比正常维持在40以上,只有g18号卫星载噪比很差;由图8中示出的gps卫星高度角可知,g18号卫星高度角很低,一直在10度以下,并且在逐渐降低,因此解算过程中舍弃g18号卫星的数据。其他卫星高度角都在20度以上,平均高度角在45度左右,可见手机接收机接收到的gps卫星信号质量良好。

伪距差分定位实验分别选取了实验室基站的零基线、马群基站的10km短基线以及六合基站的25km短基线数据。实验继续验证了基于卡尔曼滤波的伪距差分定位方案。图9-图11是基于序贯的伪距差分定位结果图,表4列出了基于序贯的伪距差分零基线、10km以及25km基线定位中误差。

表4卡尔曼滤波伪距差分零基线、10km及25km基线定位中误差

零基线情况下,平面方向定位误差约为0.75m,高程方向约为0.8m;10km和25km短基线情况下,平面方向定位误差为0.8m,高程方向约为1m。由定位结果可知,短基线下的平面方向和高程方向定位精度相比零基线有所降低,最终平面定位精度优于0.8-1m,高程定位精度优于1m。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1