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

一种获取raw数据并转换为GNSS原始数据的方法与流程

2022-05-18 14:31:07 来源:中国专利 TAG:

一种获取raw数据并转换为gnss原始数据的方法
技术领域
1.本发明涉及一种数据处理和转换方法,尤其是将raw数据转换为gnss原始数据的方法。


背景技术:

2.谷歌开放了android系统gnss(全球导航卫星系统)观测数据的api(应用程序接口),用户通过api可以获得gnssclock、gnssmeasurement等gnss数据相关数据类,api提供的类包含计算gnss原始观测值的参数,经过用户的计算转换可以获得伪距、载波相位、多普勒等信息,用于gnss定位。raw数据面临着不同的使用场景,其既可能在本地(用户端)进行传递与解析,也可能上传至边缘云进行解析处理,但目前缺少一种从api的raw数据获取至终端处理的详细方案;另外,从api获取的raw数据中存在数值较大的参数,在传递过程中可能存在数据精度缺失的问题;如果要将raw数据传递至边缘云,更需要简化参数,方便编解码,防止占用过多带宽。


技术实现要素:

3.发明目的:本发明的目的是提供一种从api获取raw数据并转化为gnss定位可直接使用的观测值的方法,解决raw数据传递中的精度缺失问题,获取高质量原始观测值。
4.技术方案:本发明所述的一种获取raw数据并转换为gnss原始数据的方法,包括如下步骤:
5.(1)获取并存储gnssclock、gnssmeasurement类参数;
6.(2)根据实际带宽需求将类参数进行拆分传递;
7.(3)判断用户端接收到的频率carrierfrequencyhz为哪个卫星导航系统的哪一个卫星频率的观测值;若carrierfrequencyhz与某卫星导航系统的卫星频率curfreq的之差小于阈值,则carrierfrequencyhz为curfreq的观测值;
8.(4)进行raw数据解析,计算伪距、载波相位、多普勒信息用于gnss定位。进一步地,步骤(2)中参数拆分的方法为a=b*c d,其中a为类参数,b为满足带宽需求的整数数值,c为b的最大倍数,d<b,避免了底层参数在传递过程中的精度损失。
9.进一步地,步骤(4)中在全球定位系统中计算伪距时,接收接接收信号时间的计算方法为:
10.townanos=(b*c d)mod(weeksecnanos)
11.其中townanos为周内纳秒,weeksecnanos为一周的纳秒数,weeksecnanos=604800
×
109ns,选取拆分参数b时,可以将其设定为与周纳秒相关的数值,如倍数或约数,以保证在计算townanos时,不需要全部c个b值,减少计算量数值大小;
12.tr=townanos timeoffsetnanos-(fullbiasnanos biasnanos)
13.若tr》weeksecnanos,则tr=t
r-weeksecnanos
14.t
rxgps
=tr15.其中tr为用户端信号接收时间,timeoffsetnanos为测量时间偏移量,fullbiasnanos为总时钟偏差,biasnanos为时钟纳秒以下偏差,weeksecnanos为一周的纳秒数,t
rxgps
为gps系统中的接收接接收信号时间。进一步地,在北斗卫星导航系统中接收信号时间t
rxbds
=t
rxgps-14s;在伽利略卫星导航系统中接收信号时间t
rxgalileo
=t
r mode(millisecondsnanos),其中millisecondsnanos=0.1
×
109ns,或t
rxgalileo
=t
rxgps
;在格洛纳斯导航系统中接收信号时间t
rxglonass
=t
r mod(daysecnanos) 3h-leapsecond,其中daysecnanos=86400
×
109ns。
16.进一步地,步骤(4)中计算载波相位φ的方法为φ=carriercycles carrierphase,其中carriercycles为载波周数,carrierphase为载波相位分数部分;若无法获取carriercycles或carrierphase,则载波相位φ=c*accumulateddeltarangemeters/f,其中c为光速,f为信号频率,ccumulateddeltarangemeters为集聚距离。
17.进一步地,步骤(2)中参数传递的方法为本机传递或边缘云传递;所述本机传递为在用户端上集成raw数据获取程序和gnss定位程序进行数据解析和gnss定位;所述边缘云传递为在用户端端获取raw数据,再传输至边缘云进行数据解析与gnss定位。
18.进一步地,在所述本机传递中,将raw数据通过jni层传递到c/c 语言中进行数据解析和gnss定位。
19.进一步地,步骤(1)中使用java语言从安卓用户端的api接口进行参数回调,获取gnssclock和gnssmeasurement类参数。
20.有益效果:本发明与现有技术相比的优点在于:(1)通过对数值较大的参数的拆分、传递,避免了底层参数在传递过程中的几十米范围的精度损失,同时方便raw数据上传至边缘云时的编解码工作;(2)对于不同型号用户端的底层参数参差不齐、数据较为杂乱的情况,组合了积聚距离和载波周数两种获取多载波相位观测值的方法,并对可用频率的卫星数进行排序选择,以尽可能获取数量较多、质量较高的观测值;(3)提供了一个完整的提取raw数据并转换为gnss定位可直接使用的伪距、载波和多普勒的方法,形成一个完整的用户端gnss数据转化流程,解决用户端原始数据中无用、错误信息较多,可用数据尤其双频载波较少的问题,为后续的用户端gnss定位提供较好的数据源。
附图说明
21.图1为本发明的方法流程图;
22.图2为本发明的方法架构图。
具体实施方式
23.下面结合附图对本发明的技术方案作进一步说明。本实施例中的用户端为android手机,在实际使用中,本发明适用于android系统的gnss领域,包括平板、电脑等移动设备。
24.如图1所示,本发明所述的获取raw数据并转换为gnss原始数据的方法包括如下步骤:
25.(1)手机底层raw数据的获取
26.目前android系统的移动设备的api接口仅支持java程序的接入,首先使用java语言进行参数回调,获取gnssclock、gnssmeasurement类参数,并进行储存。raw数据的获取频率设置为1秒一次(手机输出频率通常是1秒一次)。
27.(2)手机底层raw数据的拆分
28.gnssclock、gnssmeasurement等类参数中存在一些较大的数值,如接收机硬件时间timenanos,其以纳秒为单位,目前数值在10
19
量级,1纳秒的误差反应在距离上为0.3米左右。因而,在计算机中进行处理时,应该对大数值参数进行拆分传递,以防止参数精度的损失。总的拆分原理为:大数值参数a,转换成b*c d的格式,本实施例中b、c分别为一周的纳秒数、整周数,d为不满一周的纳秒。
29.例如,将timenanos拆分为周数weeks、周内秒townanos:
30.weeks=timenanos/weeksecnanos
31.townanos=timenanos-weeks
×
weeksecnanos
32.weeksecnanos为一周的纳秒数,weeksecnanos=604800
×
109ns大数值参数拆分后将很大程度的缩小参数的数值。同样b、c可以为100000000纳秒,100000000纳秒数,d可以为不满100000000纳秒的纳秒数。
33.(3)raw数据的传递
34.raw数据的获取使用java语言进行,为了程序运行的高效率,后续的解算程序通常使用c/c 语言进行,故而需要对raw数据进行传递,此处分为两种情况:
35.①
本机传递,即raw数据获取程序和后续的gnss定位程序均在手机上集成。此处需要通过jni层,将java语言的raw数据传递到c/c 语言中处理,并进行后续的解析与定位。
36.②
边缘云传递,即手机端负责raw数据的获取,随后通过网络传输至边缘云进行解析与gnss定位。传递至边缘云,要涉及到数据的编解码过程。
37.(4)手机信号频率的判断
38.raw数据传递到c/c 层或边缘云以后开始数据解析工作,首先要判断每组gnssmeasurement类参数的频率。导航卫星的定位信号是通过固定的几种频率行传递的。对于同一种定位系统(gps(美国gps导航系统)\bds(中国北斗卫星导航系统)\gal(欧洲伽利略导航系统)\glo(俄罗斯格洛纳斯导航系统)),接收机通常会接收每颗卫星固定频率的信号,用以后续的定位。由于手机接收信号存在较大的不稳定性,需要对频率进行判断,以确定当前信号频率:
39.carrierfrequencyhz-curfreq<threshold
40.carrierfrequencyhz表示手机接收到的频率(观测值频率),curfreq表示任意一个该定位系统中的固定频率值,threshold为判断阈值,若小于该阈值则说明carrierfrequencyhz为该导航系统curfreq的观测值。
41.(5)伪距观测值的计算
42.本实施例使用周内秒townanos来计算伪距观测值,在实际使用中可根据拆分后的小数值参数计算伪距,伪距的计算方法如下:
43.对于gps系统:
44.tr=townanos timeoffsetnanos-(fullbiasnanos biasnanos)
45.若tr》weeksecnanos,则tr=t
r-weeksecnanos
46.t
rx
=t
rxgps
=tr47.其中tr为手机信号接收时间,timeoffsetnanos为测量时间偏移量,fullbiasnanos为总时钟偏差,biasnanos为时钟纳秒以下偏差,weeksecnanos为gps周内秒,t
rxgps
为gps系统中的接收接接收信号时间。
48.对于bds系统,使用bds周内秒来计算伪距:
49.t
rx
=t
rxbds
=t
rxgps-14s
50.对于galileo系统,分两种情况:
51.①
使用0~100ms内的部分计算伪距,则:
52.t
rx
=t
rxgalileo
=t
r mode(millisecondsnanos)
53.millisecondsnanos=0.1
×
109ns
54.②
使用galileo周内秒计算伪距,则:
55.t
rx
=t
rxgalileo
=t
rxgps
56.对于glonass系统,使用glonass天内秒来计算伪距:
57.t
rx
=t
r mod(daysecnanos) 3h-leapsecond
58.daysecnanos=86400
×
109ns
59.其中为leapsecond跳秒。
60.卫星发射信号时间为t
tx

61.t
tx
=receivedsvtimenanos timeoffsetnanos
62.其中receivedsvtimenanos为接收时间,timeoffsetnanos为测量时间偏移。
63.由此可得伪距ρ:
64.ρ=(t
rx-t
tx
)
×c×
109,c为光速
65.由于手机输出数据质量不一,为避免伪距结果有较大的偏差,这里需要对解算出的伪距ρ进行基本判断,例如若ρ<50000000m则认为伪距测算基本正确,可以用作定位,否则直接剔除该计算结果,进行下一组观测值的计算。
66.(6)载波相位求取方式的组合
67.手机载波观测值缺失或多频观测值较少是手机gnss定位面临的普遍问题,而结合积聚距离accumulateddeltarangemeters载波周数carriercycles两种方式来求取载波相位观测值,一定程度上可以获取更多的载波相位观测值。
68.载波周数carriercycles和载波相位分数部分carrierphase相较于积聚距离accumulateddeltarangemeters有更好的精度,故而优先使用载波周数和载波相位分数部分来求取载波相位观测值:
69.φ=carriercycles carrierphase
70.若无法从手机中获取carriercycles和carrierphase,则使用下式获取载波相位观测值:
71.φ=c*accumulateddeltarangemeters/f,其中c为光速,f为信号频率。
72.联合使用两种载波相位求取的方式,尽量获取更多的载波相位观测值,同时对同种定位系统(gps/bds/glo/gal)同种频率的可用卫星数进行计数,选取可用卫星数较多的频率进行使用。
73.(7)多普勒观测值获取
74.多普勒观测值可以按照下式获取:
75.d=pseudorangeratemeterspersecond/λ
76.其中pseudorangeratemeterspersecond为伪距速率。
77.同一历元的观测值解析完成后,即可进行gnss定位。
再多了解一些

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

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

相关文献