Фреймворк Android предоставляет доступ к необработанным данным GNSS на некоторых устройствах Android.
Инструменты можно найти в репозитории GPS Measurement Tools на GitHub. Там же вы найдете исходный код предварительной версии GnssLogger и исполняемые файлы для компьютерного приложения GNSS Analysis для Linux, Windows и macOS. Руководство по установке и использованию.
Google Smartphone Decimeter Challenge
Google, спутниковое подразделение Института навигации и Kaggle спонсируют третий конкурс Smartphone Decimeter Challenge на конференции ION GNSS+. Конкурс начнется 12 сентября 2023 года и закончится 23 мая 2024 года. В открытом доступе появится более 150 новых трассировок, содержащих необработанные измерения GNSS, данные датчиков и точные контрольные данные. Участвовать в конкурсе могут все желающие. Участникам предлагается отправить тезисы для сессии Smartphone Decimeter Challenge, которая пройдет в рамках ION GNSS+ 2024.
Дополнительную информацию, в том числе правила и регламент, можно найти на странице конкурса на Kaggle, которая станет доступна 12 сентября 2023 г. в 15:30 по горному летнему времени.
Устройства Android, поддерживающие необработанные измерения GNSS
Поддержка необработанных измерений ГНСС обязательна на устройствах с Android 10 (уровень API 29) или более поздней версии. На устройствах Android с Android 9 (уровень API 28) и более ранними версиями поддержка необработанных измерений ГНСС обязательна, если аппаратное обеспечение выпущено в 2016 году или позже. В настоящее время более 90% телефонов Android поддерживают необработанные измерения.
Поддержка некоторых полей необработанных измерений GNSS не является обязательной и зависит от используемого чипсета GNSS. Примеры таких полей:
- Псевдодальность и скорость изменения псевдодальности.
- Навигационное сообщение.
- Значение автоматической регулировки усиления (AGC).
- Накопленная разность дальностей (ADR) или фаза несущей.
- Поддержка нескольких частот
Большинство флагманских телефонов от Pixel, Motorola, Samsung, Xiaomi, OnePlus и других крупных производителей уже поддерживают частоты L1 и L5. Флагманские телефоны Pixel и других крупных производителей, в которых не используются чипсеты Qualcomm Snapdragon, предоставляют ADR (фазу несущей) в составе необработанных измерений.
База данных о возможностях GNSS на разных устройствах Android, собранная сообществом, приведена в статье Краудсорсинг функций GNSS на устройствах Android.
Подробную информацию об определениях полей необработанных измерений, предоставляемых устройствами Android, можно найти в статье Глобальные навигационные спутниковые системы.
Производители оригинального оборудования, разработчики и исследователи могут использовать инструменты на этой странице, чтобы тестировать новые модели телефонов, проверять функциональность, разрабатывать новые алгоритмы, оценивать улучшения в реализации системы GNSS, а также создавать приложения с добавленной стоимостью.
Пример кода клиента SUPL
Suplclient – это образец кода, который обращается к supl.google.com, чтобы получить эфемериды в реальном времени. Класс SuplTester показывает, как использовать проект SUPL Client. SuplTester настраивает спецификации TCP-подключения SUPL, а затем отправляет запрос LPP SUPL для заданной широты и долготы и выводит ответ сервера SUPL.
Информация о калибровке антенны
Начиная с Android 11 (уровень API 30) вы можете использовать класс GnssAntennaInfo, чтобы получать доступ к характеристикам антенны, таким как координаты смещения фазового центра, корректировки изменения фазового центра и корректировки усиления сигнала. Эти поправки можно применять к необработанным измерениям, чтобы повысить точность.
При использовании GnssAntennaInfo учитывайте следующие особенности системы. Они предназначены для повышения конфиденциальности пользователей.
- Характеристики, предоставляемые этим API, относятся только к модели устройства, а не к отдельному устройству.
Запись необработанных измерений
Вы можете использовать Android Studio для создания приложения, которое собирает необработанные измерения GNSS и другие данные о местоположении и записывает их в файл. Пример исходного кода такого приложения можно найти в разделе Инструменты измерения GPS.
Пример приложения с такой функцией – GNSSLogger от Google. Чтобы получить выходные данные GNSS с помощью примера приложения, ваше устройство должно поддерживать необработанные измерения GNSS.
После того как вы записали журнал GNSS с помощью GNSS Logger, вы можете скопировать файлы журнала с устройства на компьютер для дальнейшего анализа. Из приложения GNSS Logger вы можете отправить файлы себе по электронной почте или сохранить их на Google Диске. Вы также можете сохранить файлы с помощью приложения для управления файлами на устройстве или использовать Android Debug Bridge (ADB), как описано в статье Копирование файлов на устройство и с него.
Анализ необработанных измерений
Приложение GNSS Analysis считывает необработанные данные GPS/GNSS, собранные GNSS Logger, и использует их для анализа поведения приемника GNSS, как показано на рисунке 1.
Вы можете скачать приложение для систем Linux, Windows и macOS.

Рисунок 1. GNSS Logger собирает данные, которые можно использовать для анализа GNSS.
Приложение GNSS Analysis создано на базе MATLAB, но для его работы MATLAB не требуется. Приложение компилируется в исполняемый файл, который устанавливает копию MATLAB Runtime.
Панель управления GNSS Analysis
Панель управления GNSS Analysis, показанная на рисунке 2, позволяет управлять функциями приложения, такими как:
- Выберите, какие спутники будут показываться.
- Управлять контрольным положением, скоростью и временем, которые используются для расчета ошибок измерения.
- Создание аналитических отчетов.
- Определите окно в данных между временем начала и окончания.
)
Рисунок 2. Панель управления GNSS Analysis
Интерактивные графики GNSS Analysis
В приложении GNSS Analysis есть интерактивные графики, упорядоченные по столбцам: радиочастота, часы и измерения (см. рисунок 3).
)
Рисунок 3. Интерактивные графики в приложении GNSS Analysis.
В столбце "Радиочастота" представлены следующие данные:
- Для каждого созвездия – четыре спутника с самыми сильными сигналами.
- Для каждого спутника – график зависимости плотности отношения несущей к шуму (C/No) от времени.
- Небесная диаграмма положения спутников.
В столбце с часами показаны следующие данные:
- Псевдодальности.
Частота смещения часов приемника, которая рассчитывается с использованием одной из следующих опорных позиций:
- Автоматически вычисленная средняя позиция.
- Широта, долгота и высота, введенные пользователем.
- Файл Национальной ассоциации морской электроники (NMEA) с эталонными данными PVT.
Смещение резервных часов, которые отсчитывают время, когда приемник сбрасывает рабочий цикл основного генератора.
В столбце измерений представлены следующие данные:
- Результаты определения местоположения по методу взвешенных наименьших квадратов, полученные на основе необработанных псевдодальностей. Взвешивание выполняется с использованием сообщаемой погрешности каждого измерения, которая является частью спецификации API необработанных измерений.
- Ошибки каждой псевдодальности для каждого измерения.
Погрешности скорости изменения псевдодальности для каждого измерения.
Отчет о тестировании GNSS Analysis
GNSS Analysis может создать отчет о тестировании, как показано на рисунке 4, в котором оценивается реализация API, полученный сигнал, поведение часов и точность измерений. В каждом случае приложение сообщает, прошел ли приемник тест, основываясь на сравнении производительности с известными контрольными показателями. Отчет о тестировании полезен для производителей устройств, которые могут использовать его при разработке и внедрении новых устройств. Чтобы создать отчет о тестировании, нажмите Создать отчет.

Рисунок 4. Отчет о тестировании GNSS Analysis
На вкладке Compare (Сравнение) можно сопоставить значения 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 Observation.
- Резервный источник эфемерид NASA CDDIS для GPS и GLO, когда BKG не работает.
- Переход с igs.bkg.bund.de на igs-ftp.bkg.bund.de
- Не выходите из анализа, если не удалось скачать эфемериды GAL, QZSS или BDS.
- Создавать анализ CNo антенны, даже если чипсет не поддерживает BaseBandCNo
Руководство по установке и использованию.
Отправить отзыв
Мы хотим улучшить поддержку GNSS на Android. Если у вас возникли проблемы с поддержкой GNSS на Android, сообщите нам об этом через систему отслеживания ошибок GNSS. Прежде чем задавать вопрос, проверьте, нет ли ответа на него в разделе часто задаваемых вопросов.
Если вы пользовались инструментами GNSS Analysis, пройдите короткий опрос. Если у вас есть другие вопросы или вам нужна помощь, ознакомьтесь с ресурсами поддержки разработчиков.
Ответы на часто задаваемые вопросы вы найдете в разделе часто задаваемых вопросов по инструментам анализа ГНСС.