GNSS 原始测量数据

Android 框架支持在多款 Android 设备上访问 GNSS 原始测量数据

您可以在 GitHub 上的 GPS 测量工具代码库中找到这些工具,其中包括 GnssLogger 初始版本的源代码,以及适用于 LinuxWindowsmacOS 的桌面 GNSS Analysis 应用的可执行文件。安装和用户手册

Google 智能手机分表挑战

Google、导航研究所卫星分部和 Kaggle 将赞助 ION GNSS+ 举办的第三届智能手机分表挑战赛。比赛将于 2023 年 9 月 12 日至 2024 年 5 月 23 日结束。我们将公开发布超过 150 条包含原始 GNSS 测量数据、传感器数据和精确真实数据的新跟踪记录。任何人都可以参与比赛。我们鼓励参与者提交标题为“智能手机分表挑战”的会议摘要,该会议将于 2024 年 ION GNSS+ 举行。

如需了解详情(包括规则和法规),请访问 Kaggle 上的比赛页面,该竞赛将于美国中部夏令时间 2023 年 9 月 12 日下午 3:30 上线。

支持 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
One Plus 7 Pro 9 GPS
GLO
GAL
One Plus 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

* Samsung 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 测量工具

Google GNSSLogger 是一款利用此功能开发的示例应用。如需通过示例应用获取 GNSS 输出,您的设备必须支持 GNSS 原始测量数据。

使用 GNSS 日志记录器捕获 GNSS 日志后,您可以将设备上的日志文件复制到您的计算机,以供进一步分析。在 GNSS 日志记录器中,您可以通过电子邮件向自己发送文件,或将文件保存到 Google 云端硬盘。或者,您也可以使用设备上的文件管理应用保存文件,也可以使用 Android 调试桥 (ADB),如将文件复制到设备/从设备复制文件中所述。

分析原始测量数据

GNSS Analysis 应用会读取 GNSS 日志记录器收集的 GPS/GNSS 原始测量数据,并利用这些数据来分析 GNSS 接收器行为,如图 1 所示。

您可以下载适用于 LinuxWindowsmacOS 系统的应用。

GNSS 日志记录器和 GNSS Analysis

图 1. GNSS 日志记录器会收集可供 GNSS 分析使用的测量数据。

GNSS Analysis 应用是基于 MATLAB 构建的,但您无需安装 MATLAB 即可运行该应用。该应用会被编译成可执行文件,该可执行文件会安装 MATLAB 运行时的副本。

GNSS Analysis 控制台

您可以通过 GNSS Analysis 控制台(如图 2 所示)管理如下应用功能:

  • 选择显示哪些卫星。
  • 控制用于计算测量误差的参考位置、速度和时间 (PVT)。
  • 生成分析报告。
  • 定义开始到结束的数据测量时间窗口。

GNSS Analysis 控制台

图 2. GNSS Analysis 控制台

GNSS Analysis 互动图

GNSS Analysis 应用提供按射频 (RF)、时钟和测量数据列整理的互动式图,如图 3 所示。

GNSS Analysis 互动图

图 3. 显示互动图的 GNSS Analysis 应用。

RF 列显示以下数据:

  • 每个卫星群中信号最强的 4 颗卫星。
  • 每颗卫星的载波噪声密度比 (C/No) 时间图。
  • 卫星分布天空图。

时钟列显示以下数据:

  • 伪距。
  • 接收器时钟的偏移频率,使用以下参考位置之一计算:

    • 自动计算的平均位置。
    • 用户输入的纬度、经度和海拔。
    • 包含真实参考 PVT 的美国国家海洋电子协会 (NMEA) 文件。
  • 当接收器重置主振荡器的占空比时用于保持时间的待机时钟的偏移量。

测量数据列显示以下数据:

  • 从原始伪距获得的加权最小二乘法位置结果。加权是根据所报告的每项测量结果的不确定性(原始衡量 API 规范的一部分)完成的。
  • 每次测量的每个伪距的误差。
  • 每次测量的每个伪距率的误差。

GNSS Analysis 测试报告

GNSS Analysis 可生成如图 4 所示的测试报告,用于评估 API 实现、收到的信号、时钟行为和测量准确性。对于每种情况,应用都会根据已知基准测试下的性能来报告接收器测试是通过还是失败。测试报告对设备制造商来说非常有用,他们可以在迭代新设备的设计和实现时使用。如需生成测试报告,请点击 Make Report

GNSS Analysis 测试报告

图 4. GNSS Analysis 测试报告

图 5 中的比较标签页提供了多个 GNSS 日志文件中的 C/否 的并排比较,这在比较多个设备的射频性能时非常有用。

C/No 数据的并行比较

图 5. 多个日志文件中的 C/No 数据的并排比较

对源代码感兴趣?GPS 测量工具项目提供了一个开源 MATLAB 示例,您可以通过该示例使用 GPS 星群信号执行以下操作:

  • 读取通过 GNSS 日志记录器示例应用捕获的数据。
  • 计算并以可视方式呈现伪距。
  • 计算加权最小二乘法位置和速度。
  • 查看和分析载波相位。

GNSS Analysis 应用 v4.6.0.1 版本说明

GNSS Analysis 应用版本 4.6.0.1 包含以下更新:

  • 在 Matlab R2022a 上构建了 GnssAnalysisTool,并且可以使用以下新功能:
  • 状态窗口自动滚动:始终显示最新的状态消息。
  • 添加了按星座划分的 C/N0 比较表格,并将 L1 与 L5 进行比较。
  • 添加了伪距率残差图。
  • 移除了“参考 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 支持。如果您在 Android 平台上对 GNSS 支持有任何问题,请通过 GNSS 问题跟踪器告知我们。在提交您的问题之前,请先检查问题是否已在常见问题解答中解决。

如果您使用过 GNSS 分析工具,请通过回答一份简短的调查问卷来提供反馈。如果您有其他问题或需要支持请求,请参阅开发者支持资源

您可以在 GNSS 分析工具常见问题解答中找到常见问题解答。