Android 框架可在多个 Android 设备上访问原始 GNSS 测量数据。
您可以在 GitHub 上的 GPS 测量工具代码库中找到这些工具,其中包含 GnssLogger 预览版的源代码以及适用于Linux、Windows 和macOS 的桌面版 GNSS 分析应用的可执行文件。安装和用户手册。
Google 智能手机分米级挑战赛
Google、导航研究所的卫星部门和 Kaggle 正在赞助 ION GNSS+ 上的第三届智能手机分米级挑战赛。比赛于 2023 年 9 月 12 日开始,于 2024 年 5 月 23 日结束。将公开发布超过 150 个新的轨迹,其中包含原始 GNSS 测量数据、传感器数据和精确的地面实况。所有人都可以参加比赛。鼓励参赛者向题为“智能手机分米级挑战赛”的会议提交摘要,该会议将在 2024 年 ION GNSS+ 上举行。
有关更多信息(包括规则和条例),请访问Kaggle 上的比赛页面,该页面将于 2023 年 9 月 12 日下午 3:30(MDT)上线。
支持原始 GNSS 测量数据的 Android 设备
运行 Android 10(API 级别 29)或更高版本的设备必须支持原始 GNSS 测量数据。在 Android 9(API 级别 28)及更低版本中,所有包含 2016 年或更新硬件的 Android 设备都必须支持原始 GNSS 测量数据。目前,超过 90% 的现有 Android 手机都具有原始测量数据。
对某些原始 GNSS 测量字段的支持是可选的,并且可能因使用的 GNSS 芯片组而异。这些字段的示例包括:
- 伪距和伪距率。
- 导航信息。
- 自动增益控制 (AGC) 值。
- 累积增量范围 (ADR) 或载波相位。
下表列出了一些 Android 设备的示例,并显示了它们对原始 GNSS 测量数据的支持级别。
型号 | Android 版本 | AGC | ADR(载波相位) | L5 | 全球系统 |
---|---|---|---|---|---|
Google Pixel 4/5/6/7 | 12 | 是 | 是 | 是 | GPS GLO GAL BDS QZS |
小米 Mi 9 | 9 | 是 | 否 | 是 | GPS GLO GAL BDS QZS |
小米 Mi 8 | 8.1 | 否 | 是 | 是 | GPS GLO GAL BDS QZS |
华为 P30 Pro | 9 | 否 | 是 | 是 | GPS GLO GAL BDS |
华为 Mate 20 | 9 | 否 | 是 | 是 | GPS GLO GAL BDS |
一加 7 Pro | 9 | 是 | 否 | 是 | GPS GLO GAL |
一加 7 | 9 | 是 | 否 | 是 | GPS GLO GAL |
三星 Galaxy S20/S21 Ultra (Exynos)* | 12 | 是 | 是 | 是 | GPS GLO GAL BDS QZS |
三星 Galaxy S9 (Exynos)* | 8.0 | 否 | 是 | 否 | GPS GLO GAL QZS |
三星 Galaxy S9+ | 8.0 | 否 | 否 | 否 | GPS GLO GAL |
* 近年来,三星Exynos版本的Galaxy手机提供ADR功能。三星骁龙版本尚未提供ADR功能。
有关Android设备提供的原始测量字段定义的更多信息,请参阅全球导航卫星系统。
原始设备制造商 (OEM)、开发者和研究人员可以使用此页面中的工具来测试新的手机设计、验证功能、开发新算法、评估对GNSS系统实现的改进以及构建增值应用程序。
SUPL客户端示例代码
Suplclient 是一个示例代码,它访问supl.google.com以获取实时星历。SuplTester
类提供了一个关于如何使用SUPL客户端项目的示例。SuplTester
设置SUPL TCP连接规范,然后在给定的经纬度处发送LPP SUPL请求并打印SUPL服务器响应。
天线校准信息
从Android 11(API级别30)开始,您可以使用GnssAntennaInfo
类来访问天线特性,例如:相位中心偏移 (PCO) 坐标、相位中心变化 (PCV) 校正和信号增益校正。这些校正可以应用于原始测量以提高精度。
使用GnssAntennaInfo
时,请记住以下系统行为。它们旨在增强用户隐私。
- 此API提供的特性仅特定于设备型号,而非单个设备。
记录原始测量数据
您可以使用Android Studio构建一个应用程序,该应用程序可以捕获原始GNSS测量数据和其他位置数据并将其记录到文件中。例如,此类应用程序的源代码,请参见GPS测量工具。
Google GNSSLogger 是一个使用此功能开发的示例应用程序。要使用示例应用程序获取GNSS输出,您的设备必须支持原始GNSS测量数据。
使用GNSS Logger捕获GNSS日志后,您可以将日志文件从设备复制到您的计算机以进行进一步分析。在GNSS Logger中,您可以通过电子邮件将文件发送给自己或将其保存到Google云端硬盘。或者,您可以使用设备上的文件管理应用程序保存文件,也可以使用Android调试桥 (ADB),如将文件复制到/从设备中所述。
分析原始测量数据
GNSS分析应用程序读取GNSS Logger收集的GPS/GNSS原始测量数据,并使用它们来分析GNSS接收机的行为,如图1所示。
您可以下载适用于Linux、Windows和macOS系统的应用程序。
GNSS分析应用程序基于MATLAB构建,但您无需拥有MATLAB即可运行它。该应用程序编译成一个可执行文件,该文件安装MATLAB运行时的一个副本。
GNSS分析控制面板
GNSS分析控制面板(如图2所示)允许您管理应用程序功能,例如:
- 选择要显示的卫星。
- 控制用于计算测量误差的参考位置、速度和时间 (PVT)。
- 生成分析报告。
- 定义数据中起始时间和结束时间之间的时间窗口。
)
GNSS分析交互式图表
GNSS分析应用程序提供按射频 (RF)、时钟和测量列组织的交互式图表,如图3所示。
)
RF列显示以下数据:
- 对于每个星座,信号最强烈的四个卫星。
- 对于每个卫星,载噪比 (C/No) 的时间图。
- 卫星位置的天图。
时钟列显示以下数据:
- 伪距。
接收机时钟的偏移频率,使用以下参考位置之一计算:
- 自动计算的平均位置。
- 用户输入的纬度、经度和高度。
- 包含真实参考PVT的国家海洋电子协会 (NMEA) 文件。
备用时钟的偏移量,在接收机重置主振荡器的占空比时保持时间。
测量列显示以下数据:
- 从原始伪距获得的加权最小二乘位置结果。加权是使用每个测量的报告不确定度进行的,这是原始测量API规范的一部分。
- 每次测量的每个伪距的误差。
每次测量的每个伪距率的误差。
GNSS分析测试报告
GNSS分析可以生成一个测试报告(如图4所示),该报告评估API实现、接收到的信号、时钟行为和测量精度。对于每种情况,应用程序都会根据针对已知基准测量的性能报告接收机是否通过测试。该测试报告对于设备制造商非常有用,他们可以在新设备的设计和实现过程中迭代使用它。要生成测试报告,请单击**生成报告**。
**比较**选项卡提供来自多个GNSS日志文件的C/No的并排比较(如图5所示),这在比较多个设备的RF性能时非常有用。
有兴趣了解源代码吗?GPS测量工具项目提供了一个开源MATLAB示例,您可以使用它来执行以下操作(使用GPS星座信号):
- 读取使用GNSS Logger示例应用程序捕获的数据。
- 计算和可视化伪距。
- 计算加权最小二乘位置和速度。
- 查看和分析载波相位。
GNSS分析应用程序v4.6.0.1发行说明
GNSS分析应用程序版本4.6.0.1包含以下更新:
- 在Matlab R2022a上构建GnssAnalysisTool,从而可以访问新功能。
- 状态窗口自动滚动:始终可见最新的状态消息。
- 添加了按星座比较C/N0的表格,比较L1和L5。
- 添加了伪距率残差图。
- 删除了参考PVT静止或移动的单独选项卡,从而更容易查看已选择哪种类型的参考PVT。
- 将“生成报告”结果从HTML移动到状态窗口。
- 删除了任务规划器选项卡。请使用gnssmissionplanning.com/或www.gnssplanning.com/。
- 与RINEX观测文件解析相关的修复。
- 当BKG无法工作时,回退到NASA CDDIS星历源(用于GPS和GLO)。
- 从igs.bkg.bund.de迁移到igs-ftp.bkg.bund.de
- 如果GAL、QZSS或BDS星历下载失败,则不要退出分析。
- 即使芯片组不支持BaseBandCNo,也要创建天线CNo分析。
提供反馈
我们希望改进对Android上GNSS的支持。请使用GNSS问题跟踪器告知我们Android上GNSS支持的任何问题。在发布问题之前,请检查您的问题是否已在常见问题解答中得到解答。
如果您已使用GNSS分析工具,请通过回答简短调查提供反馈。如果您还有其他问题或支持请求,请参阅开发者支持资源。
您可以在GNSS分析工具常见问题解答中找到常见问题的答案。