Платформа Android Framework обеспечивает доступ к необработанным данным измерений GNSS на различных устройствах Android.
Инструменты можно найти в репозитории GPS Measurement Tools на GitHub, который включает исходный код предварительной версии GnssLogger и исполняемые файлы для настольного приложения GNSS Analysis для Linux , Windows и macOS . Руководство по установке и эксплуатации .
Google Smartphone Decimeter Challenge
Google, the Institute of Navigation's Satellite Division, and Kaggle are sponsoring the 3rd Smartphone Decimeter Challenge at ION GNSS+. The competition begins Sep 12, 2023, and ends May 23, 2024. Over 150 new traces containing raw GNSS measurements, sensor data, and precise ground truth will be publicly available. Participation in the competition is open to everyone. Participants are encouraged to submit an abstract to the session titled "Smartphone Decimeter Challenge" which will take place at ION GNSS+ 2024.
Для получения более подробной информации, включая правила и условия, посетите страницу конкурса на Kaggle , которая станет доступна 12 сентября 2023 года в 15:30 по времени MDT.
Устройства Android, поддерживающие необработанные измерения GNSS.
Поддержка необработанных измерений GNSS обязательна на устройствах под управлением Android 10 (уровень API 29) или выше. На Android 9 (уровень API 28) и ниже поддержка необработанных измерений GNSS обязательна на всех устройствах Android, аппаратное обеспечение которых выпущено в 2016 году или позже. В настоящее время более 90% существующих телефонов Android поддерживают необработанные измерения.
Поддержка некоторых необработанных полей измерений GNSS является необязательной и может различаться в зависимости от используемого чипсета GNSS. Примеры таких полей включают следующее:
- Псевдодальность и скорость генерации псевдодальности.
- Навигационное сообщение.
- Значение автоматического регулятора усиления (AGC).
- Накопленный дельта-диапазон (ADR) или фаза несущей.
- Многочастотная поддержка
Большинство флагманских телефонов от Pixel, Motorola, Samsung, Xiaomi, OnePlus и других крупных производителей уже поддерживают частоты L1 и L5. Флагманские телефоны Pixel, а также другие флагманские телефоны от крупных производителей, не использующие чипсеты Qualcomm Snapdragon, предоставляют ADR (фазу несущей) в качестве части необработанных измерений.
В статье "Краудсорсинг функций GNSS для устройств Android" приводится ссылка на базу данных, содержащую информацию о возможностях GNSS различных устройств Android, предоставленную сообществом пользователей.
Для получения дополнительной информации об определениях полей необработанных измерений, предоставляемых устройствами Android, см. раздел «Глобальные навигационные спутниковые системы» .
Производители оригинального оборудования (OEM), разработчики и исследователи могут использовать инструменты, представленные на этой странице, для тестирования новых конструкций телефонов, проверки функциональности, разработки новых алгоритмов, оценки улучшений в реализации системы GNSS, а также для создания приложений с добавленной стоимостью.
Пример кода клиента SUPL
Suplclient — это пример кода, который обращается к supl.google.com для получения эфемерид в реальном времени. Класс SuplTester предоставляет пример использования проекта SUPL Client. SuplTester устанавливает спецификации TCP-соединения SUPL, затем на заданной широте и долготе отправляет LPP-запрос SUPL и выводит ответ сервера SUPL.
Информация о калибровке антенны
Начиная с Android 11 (уровень API 30), вы можете использовать класс GnssAntennaInfo для доступа к характеристикам антенны, таким как: координаты смещения фазового центра (PCO), поправки на изменение фазового центра (PCV) и поправки на усиление сигнала. Эти поправки могут быть применены к исходным измерениям для повышения точности.
При использовании GnssAntennaInfo следует учитывать следующие особенности работы системы. Они разработаны для повышения конфиденциальности пользователей.
- Характеристики, предоставляемые этим API, относятся только к конкретной модели устройства, а не к отдельному устройству.
Запись необработанных измерений
С помощью Android Studio можно создать приложение, которое будет получать необработанные данные GNSS и другие данные о местоположении и записывать их в файл. Пример исходного кода такого приложения можно найти в разделе «Инструменты для измерения GPS» .
Google GNSSLogger — это демонстрационное приложение, разработанное с учетом этой функциональности. Для получения данных GNSS с помощью демонстрационного приложения ваше устройство должно поддерживать необработанные измерения GNSS.
Once you have captured the GNSS log using the GNSS Logger, you can copy the log files from the device to your computer for further analysis. From within the GNSS Logger you can send the files to yourself via email or save them to Google Drive. Alternatively, you can save the files using the file management app on the device, or you can use the Android Debug Bridge (ADB) as explained in Copy files to/from a device .
Анализ исходных измерений
Приложение GNSS Analysis считывает необработанные измерения GPS/GNSS, собранные регистратором GNSS, и использует их для анализа поведения приемника GNSS, как показано на рисунке 1.
Приложение можно скачать для систем Linux , Windows и macOS .

Рисунок 1. GNSS-регистратор собирает измерения, которые могут быть использованы для GNSS-анализа.
Приложение GNSS Analysis создано на MATLAB , но для его запуска вам не обязательно иметь MATLAB. Приложение скомпилировано в исполняемый файл, который устанавливает копию среды выполнения MATLAB.
Панель управления анализом GNSS
Панель управления анализом GNSS, показанная на рисунке 2, позволяет управлять функциями приложения, такими как:
- Выберите, какие спутники отображаются.
- Контролируйте опорное положение, скорость и время (PVT), используемые для расчета погрешностей измерений.
- Сгенерировать аналитические отчеты.
- Определите временной интервал в данных между временем начала и временем окончания.
)
Рисунок 2. Панель управления анализом GNSS.
Интерактивные графики анализа GNSS
Приложение GNSS Analysis предоставляет интерактивные графики, организованные по столбцам радиочастоты (РЧ), часов и измерений, как показано на рисунке 3.
)
Рисунок 3. Приложение GNSS Analysis, отображающее интерактивные графики.
В столбце RF отображаются следующие данные:
- Для каждой группировки указаны четыре спутника с наиболее сильными сигналами.
- Для каждого спутника представлен график зависимости плотности несущей частоты от плотности шума (C/No) от времени.
- Диаграмма положения спутников на небе.
В столбце «Часы» отображаются следующие данные:
- Псевдодальности.
Частота смещения тактового сигнала приемника, вычисляемая с использованием одного из следующих опорных положений:
- Автоматически вычисленное среднее положение.
- Широта, долгота и высота вводятся пользователем.
- Файл Национальной ассоциации морской электроники (NMEA) с эталонным значением PVT.
Смещение тактового генератора в режиме ожидания, которое поддерживает отсчет времени, когда приемник сбрасывает коэффициент заполнения основного генератора.
В столбце «Измерения» отображаются следующие данные:
- Результаты определения положения методом взвешенных наименьших квадратов получены из исходных псевдодальностей. Взвешивание выполняется с использованием заявленной неопределенности каждого измерения, которая является частью спецификации API для исходных измерений.
- Погрешности каждого псевдодальности для каждого измерения.
Погрешности каждой скорости псевдодальности для каждого измерения.
Отчет о результатах анализа GNSS
GNSS Analysis can generate a test report, as shown in figure 4, that evaluates the API implementation, received signal, clock behavior, and measurement accuracy. For each case, the app reports whether the receiver passed or failed the test based on the performance measured against known benchmarks. The test report is useful for device manufacturers, who can use it as they iterate through the design and implementation of new devices. To generate the test report, click Make Report .

Рисунок 4. Отчет о результатах теста анализа GNSS.
Вкладка «Сравнение» позволяет сравнить значения C/No из нескольких файлов журналов GNSS, как показано на рисунке 5, что полезно при сравнении радиочастотных характеристик нескольких устройств.

Рисунок 5. Сравнительный анализ данных C/No из нескольких файлов журналов.
Интересуетесь исходным кодом? Проект GPS Measurement Tool предоставляет пример с открытым исходным кодом на MATLAB , который можно использовать для выполнения следующих действий с использованием сигналов спутниковой группировки GPS:
- Прочитайте данные, полученные с помощью демонстрационного приложения GNSS Logger.
- Вычислить и визуализировать псевдодальности.
- Вычислите положение и скорость методом взвешенных наименьших квадратов.
- Просмотр и анализ фазы несущей.
Примечания к выпуску приложения GNSS Analysis версии 4.6.0.1
В версию 4.6.0.1 приложения GNSS Analysis включены следующие обновления:
- Создан инструмент GnssAnalysisTool на Matlab R2022a, что обеспечивает доступ к новым функциям:
- Окно состояния автоматически прокручивается: последнее сообщение о состоянии всегда отображается.
- Добавлена таблица сравнений 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 не удалась.
- Создайте анализ CNo антенны, даже если чипсет не поддерживает BaseBandCNo.
Инструкция по установке и эксплуатации .
Оставьте отзыв
Мы хотим улучшить поддержку GNSS на Android. Сообщайте нам о любых проблемах с поддержкой GNSS на Android, используя систему отслеживания ошибок GNSS . Прежде чем публиковать свой вопрос, пожалуйста, проверьте, не был ли он уже рассмотрен в разделе часто задаваемых вопросов (FAQ) .
Если вы использовали инструменты анализа GNSS, пожалуйста, оставьте отзыв, ответив на короткий опрос . Если у вас есть другие вопросы или запрос на поддержку, см. раздел «Ресурсы поддержки разработчиков» .
Ответы на часто задаваемые вопросы можно найти в разделе «Часто задаваемые вопросы» (FAQ) по инструментам анализа GNSS .