Android 框架在多种 Android 设备上提供了访问原始 GNSS 测量值的权限。
您可以在 GitHub 上的 GPS Measurement Tools 代码库中找到这些工具,其中包括 GnssLogger 初步版本的源代码,以及适用于 Linux、Windows 和 macOS 桌面版 GNSS Analysis 应用的可执行文件。安装和用户手册。
Google 智能手机分米级挑战赛
Google、美国导航研究所卫星部门和 Kaggle 正在赞助 ION GNSS+ 上的第三届智能手机分米级挑战赛。比赛于 2023 年 9 月 12 日开始,并于 2024 年 5 月 23 日结束。包含原始 GNSS 测量值、传感器数据和精确地面真值(ground truth)的 150 多个新轨迹将公开可用。比赛向所有人开放。鼓励参赛者向 ION GNSS+ 2024 上名为“智能手机分米级挑战赛”的会议提交摘要。
如需了解更多信息,包括规则和规定,请访问 Kaggle 上的比赛页面,该页面将于 2023 年 9 月 12 日下午 3:30 MDT(山地夏令时)上线。
支持原始 GNSS 测量值的 Android 设备
原始 GNSS 测量值支持是 Android 10(API 级别 29)或更高版本设备上的强制要求。在 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 |
* 三星 Galaxy Exynos 版本近年来提供 ADR。三星 Snapdragon 版本尚未提供 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 Measurement Tools。
Google GNSSLogger 是一个具备此功能的示例应用。要使用此示例应用获取 GNSS 输出,您的设备必须支持原始 GNSS 测量值。
使用 GNSS Logger 捕获 GNSS 日志后,您可以将日志文件从设备复制到计算机进行进一步分析。在 GNSS Logger 中,您可以通过电子邮件将文件发送给自己,或将其保存到 Google 云端硬盘。或者,您可以使用设备上的文件管理应用保存文件,或者使用 Android 调试桥 (ADB),如在设备之间复制文件中所述。
分析原始测量值
GNSS Analysis 应用读取 GNSS Logger 收集的 GPS/GNSS 原始测量值,并使用它们分析 GNSS 接收器的行为,如图 1 所示。
您可以下载适用于 Linux、Windows 和 macOS 系统的应用。
图 1. GNSS Logger 收集可供 GNSS Analysis 使用的测量值。
GNSS Analysis 应用基于 MATLAB 构建,但您无需安装 MATLAB 即可运行它。该应用被编译成可执行文件,可安装 MATLAB Runtime 的副本。
GNSS Analysis 控制面板
GNSS Analysis 控制面板(如图 2 所示)允许您管理应用功能,例如:
- 选择要显示的卫星。
- 控制用于计算测量误差的参考位置、速度和时间 (PVT)。
- 生成分析报告。
- 定义数据中起始时间和结束时间之间的窗口。
)
图 2. GNSS Analysis 控制面板
GNSS Analysis 交互式图表
GNSS Analysis 应用提供按射频 (RF)、时钟和测量值列组织的交互式图表,如图 3 所示。
)
图 3. GNSS Analysis 应用显示交互式图表。
射频列显示以下数据:
- 对于每个星座,显示信号最强的四颗卫星。
- 对于每颗卫星,显示载噪比 (C/No) 的时间图。
- 卫星位置的天空图。
时钟列显示以下数据:
- 伪距。
接收器时钟的偏移频率,使用以下参考位置之一计算:
- 自动计算的平均位置。
- 用户输入的经度、纬度和高度。
- 包含真值参考 PVT 的美国国家海洋电子协会 (NMEA) 文件。
备用时钟的偏移,该时钟在接收器重置主振荡器的占空比时保持时间。
测量值列显示以下数据:
- 从原始伪距获得的加权最小二乘位置结果。权重使用每个测量值的报告不确定性进行,这是原始测量 API 规范的一部分。
- 每次测量的每个伪距的误差。
每次测量的每个伪距率的误差。
GNSS Analysis 测试报告
GNSS Analysis 可以生成一个测试报告,如图 4 所示,该报告评估 API 实现、接收信号、时钟行为和测量精度。对于每种情况,应用根据对照已知基准测量的性能报告接收器是通过测试还是未通过。测试报告对于设备制造商很有用,他们可以在迭代新设备的设计和实现时使用它。要生成测试报告,请点击生成报告。
图 4. GNSS Analysis 测试报告
比较选项卡提供来自多个 GNSS 日志文件的 C/No 并排比较(如图 5 所示),这在比较多个设备的 RF 性能时很有用。
图 5. 多个日志文件中 C/No 数据的并排比较
对源代码感兴趣吗?GPS Measurement Tool Project 提供了一个开源 MATLAB 示例,您可以使用它通过 GPS 星座信号执行以下操作:
- 读取使用 GNSS Logger 示例应用捕获的数据。
- 计算和可视化伪距。
- 计算加权最小二乘位置和速度。
- 查看和分析载波相位。
GNSS Analysis app v4.6.0.1 发布说明
GNSS Analysis app 版本 4.6.0.1 包含以下更新:
- 在 Matlab R2022a 上构建 GnssAnalysisTool,提供对新功能的访问
- 状态窗口自动滚动:最新状态消息始终可见。
- 添加了按星座分类并比较 L1 与 L5 的 C/N0 比较表。
- 添加了伪距率残差图。
- 移除了“参考 PVT 静止”或“移动”的独立选项卡,从而更容易查看选择了哪种类型的参考 PVT。
- 将“生成报告”结果从 HTML 移至状态窗口。
- 移除了任务规划器选项卡。请使用 gnssmissionplanning.com/ 或 www.gnssplanning.com/。
- 与 RINEX Observation 文件解析相关的修复。
- 当 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 Analysis 工具,请通过回答一份简短调查来提供反馈。如果您有其他问题或需要支持,请参阅开发者支持资源。
您可以在 GNSS Analysis Tools 常见问题解答中找到常见问题的答案。