如何根据通过 Google GNSSLogger 获取的参数计算伪距?

Posted

技术标签:

【中文标题】如何根据通过 Google GNSSLogger 获取的参数计算伪距?【英文标题】:How to compute pseudorange from the parameters fetched via Google GNSSLogger? 【发布时间】:2019-07-21 03:04:41 【问题描述】:

通过 GNSS 记录器应用获取的官方 GNSS 原始测量值提供以下参数:

TimeNanos   
LeapSecond  
TimeUncertaintyNanos    
FullBiasNanos   
BiasNanos   
BiasUncertaintyNanos
DriftNanosPerSecond 
DriftUncertaintyNanosPerSecond  HardwareClockDiscontinuityCount 
Svid    
TimeOffsetNanos 
State   
ReceivedSvTimeNanos 
ReceivedSvTimeUncertaintyNanos  
Cn0DbHz 
PseudorangeRateMetersPerSecond  
PseudorangeRateUncertaintyMetersPerSecond

我正在从上述数据中寻找原始伪距测量值PR。有点帮助?​​

参考1:https://github.com/google/gps-measurement-tools

参考2:https://developer.android.com/guide/topics/sensors/gnss

【问题讨论】:

【参考方案1】:
Pseudorange[m] = (AverageTravelTime[s] + delta_t[s]) * speedOfLight[m/s]

其中:m - 米,s - 秒。

试试这个方法:

    从一个星座中选择卫星(首先尝试使用 GPS)。 选择ReceivedSvTimeNanos的最大值。 将每颗卫星的delta_t 计算为最大ReceivedSvTimeNanos 减去当前ReceivedSvTimeNanos(delta_t = maxRst - curRst)。 平均行程时间为 70 毫秒,光速为 299792458 m/s。用它来计算。

不要忘记将所有值转换为相同的单位。

详情请参考this pdf和UserPositionVelocityWeightedLeastSquare class

【讨论】:

你从哪里得到AverageTravelTime?【参考方案2】:

不幸的是,Android 不直接从 API 提供伪距离 - 您必须自己计算。

EU GSA 有一个很棒的文档在这里详细解释了如何在第 2.4 节中使用 GNSS 原始测量值: https://www.gsa.europa.eu/system/files/reports/gnss_raw_measurement_web_0.pdf

具体来说,第 2.4.2 节解释了如何根据 Android API 提供的数据计算伪距。它实际上是几页文本,所以我不会在这里复制整个内容,但这是他们共享的示例 1,用于 Matlab 代码 sn-p 计算伽利略、GPS 和北斗信号的伪距-week 被编码:

% Select GPS + GAL TOW decoded (state bit 3 enabled)
pos = find( (gnss.Const == 1 | gnss.Const == 6) & bitand(gnss.State,2^3);
% Generate the measured time in full GNSS time
tRx_GNSS = gnss.timeNano(pos) - (gnss.FullBiasNano(1) + gnss.BiasNano(1));
% Change the valid range from full GNSS to TOW
tRx = mod(tRx_GNSS(pos),WEEKSEC*1e9);
% Generate the satellite time
tTx = gnss.ReceivedSvTime(pos) + gnss.TimeOffsetNano(pos);
% Generate the pseudorange
prMilliSeconds = (tRx - tTx );
pr = prMilliSeconds *Constant.C*1e-9;

【讨论】:

以上是关于如何根据通过 Google GNSSLogger 获取的参数计算伪距?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 tiki-wiki 12+ 上通过 OpenLayers 显示 Google 地图

如何在MySQL中加入查询以根据距离计算和Google地理编码查找WordPress帖子?

如何使用 oauth2 并通过 google api 刷新令牌?

如何使用 google api 根据所选国家/地区自动完成?

您如何在 Google 表格中进行动态/依赖下拉菜单?

如何将添加到Google表格单元格中的图像保存到Google云端硬盘?