如何根据通过 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 刷新令牌?