Mediciones GNSS sin procesar

El framework de Android proporciona acceso a mediciones GNSS sin procesar en varios dispositivos Android.

Puedes encontrar las herramientas en el repositorio de herramientas de medición de GPS en GitHub, que incluye el código fuente de una versión preliminar de GnssLogger y ejecutables para la app de GNSS Analysis para computadoras de escritorio para Linux, Windows y macOS. Instrucciones de instalación y manual del usuario.

Desafío de Google Smartphone Decimeter

Google, la División de Satélites del Instituto de Navegación y Kaggle patrocinan el 3er Desafío de Decímetros para Smartphones en ION GNSS+. La competencia comienza el 12 de septiembre de 2023 y finaliza el 23 de mayo de 2024. Más de 150 registros nuevos que contienen mediciones GNSS sin procesar, datos de sensores y una verdad fundamental precisa estarán disponibles para el público. La participación en la competencia está abierta para todo el mundo. Se recomienda a los participantes que envíen un resumen a la sesión titulada "Smartphone Decimeter Challenge", que se llevará a cabo en ION GNSS+ 2024.

Para obtener más información, incluidas las reglas y reglamentaciones, visita la página de la competencia en Kaggle, que se publicará el 12 de septiembre de 2023 a las 3:30 p.m. (MDT).

Dispositivos Android que admiten mediciones GNSS sin procesar

La compatibilidad con las mediciones de GNSS sin procesar es obligatoria en dispositivos que ejecutan Android 10 (nivel de API 29) o versiones posteriores. En Android 9 (nivel de API 28) y versiones anteriores, la compatibilidad con mediciones GNSS sin procesar es obligatoria en todos los dispositivos Android que contengan hardware del año 2016 o versiones posteriores. Actualmente, más del 90% de los teléfonos Android existentes tienen mediciones sin procesar.

La compatibilidad con algunos de los campos de medición de GNSS sin procesar es opcional y puede variar según el chipset de GNSS que se use. Estos son algunos ejemplos de estos campos:

  • Pseudorrango y velocidad de pseudorrango
  • Mensaje de navegación.
  • Es el valor del controlador de ganancia automática (AGC).
  • Rango delta acumulado (ADR) o fase del operador

En la siguiente tabla, se enumeran algunos ejemplos de dispositivos con Android y se muestra su nivel de compatibilidad con las mediciones GNSS sin procesar:

Modelo Versión de Android AGC ADR (fase del proveedor) L5 Sistemas globales
Google Pixel 4, 5, 6 y 7 12 GPS
GLO
GAL
BDS
QZS
Xiaomi Mi 9 9 no GPS
GLO
GAL
BDS
QZS
Xiaomi Mi 8 8.1 no GPS
GLO
GAL
BDS
QZS
Huawei P30 Pro 9 no GPS
GLO
GAL
BDS
Huawei Mate 20 9 no GPS
GLO
GAL
BDS
One Plus 7 Pro 9 no GPS
GLO
GAL
One Plus 7 9 no GPS
GLO
GAL
Samsung Galaxy S20/S21 Ultra (Exynos)* 12 GPS
GLO
GAL
BDS
QZS
Samsung Galaxy S9 (Exynos)* 8.0 no no GPS
GLO
GAL
QZS
Samsung Galaxy S9+ 8.0 no no no GPS
GLO
GAL

* La versión de Samsung Galaxy Exynos proporciona ADR en los últimos años. La versión de Samsung Snapdragon aún no proporciona ADR.

Para obtener más información sobre las definiciones de los campos de mediciones sin procesar que proporcionan los dispositivos Android, consulta Sistemas de navegación global por satélite.

Los fabricantes de equipos originales (OEM), los desarrolladores y los investigadores pueden usar las herramientas de esta página para probar nuevos diseños de teléfonos, validar la funcionalidad, desarrollar nuevos algoritmos, evaluar mejoras en la implementación del sistema GNSS y compilar apps de valor agregado.

Código de muestra del cliente de SUPL

Suplclient es un código de muestra que accede a supl.google.com para obtener efemérides en tiempo real. La clase SuplTester proporciona un ejemplo sobre cómo usar el proyecto de cliente SUPL. SuplTester establece las especificaciones de conexión TCP SUPL; luego, en una latitud y una longitud determinadas, envía una solicitud LPP SUPL e imprime la respuesta del servidor SUPL.

Información sobre la calibración de la antena

A partir de Android 11 (nivel de API 30), puedes usar la clase GnssAntennaInfo para acceder a las características de la antena, como las coordenadas de variación del centro de fase (PCO), las correcciones de variación del centro de fase (PCV) y las correcciones de ganancia de señal. Estas correcciones se pueden aplicar a las mediciones sin procesar para mejorar la precisión.

Cuando uses GnssAntennaInfo, ten en cuenta los siguientes comportamientos del sistema. Se diseñaron para mejorar la privacidad del usuario.

  • Las características que proporciona esta API solo son específicas del modelo del dispositivo, no de un dispositivo individual.

Cómo registrar mediciones sin procesar

Puedes usar Android Studio para compilar una app que capture mediciones GNSS sin procesar y otros datos de ubicación, y los registre en un archivo. Para ver un ejemplo de código fuente de una app de este tipo, consulta Herramientas de medición de GPS.

GNSSLogger de Google es una app de ejemplo que se desarrolló con esta funcionalidad. Para obtener una salida GNSS con la app de ejemplo, el dispositivo debe admitir mediciones GNSS sin procesar.

Una vez que hayas capturado el registro GNSS con GNSS Logger, podrás copiar los archivos de registro del dispositivo en tu computadora para realizar un análisis más detallado. Desde GNSS Logger, puedes enviarte los archivos por correo electrónico o guardarlos en Google Drive. También puedes guardar los archivos usando la app de administración de archivos en el dispositivo o puedes usar Android Debug Bridge (ADB) como se explica en Cómo copiar archivos a un dispositivo o desde este.

Cómo analizar mediciones sin procesar

La app de análisis de GNSS lee las mediciones de GPS/GNSS sin procesar recopiladas por GNSS Logger y las utiliza para analizar el comportamiento del receptor GNSS, como se muestra en la figura 1.

Puedes descargar la app para los sistemas Linux, Windows y macOS.

GNSS Logger y análisis de GNSS

Figura 1: GNSS Logger recopila las mediciones que puede consumir el análisis de GNSS.

La app GNSS Analysis está integrada en MATLAB, pero no necesitas MATLAB para ejecutarla. La app se compila en un ejecutable que instala una copia del tiempo de ejecución de MATLAB.

Panel de control de análisis de GNSS

El panel de control de análisis de GNSS, que se muestra en la figura 2, te permite administrar las siguientes funciones de la app:

  • Selecciona los satélites que se mostrarán.
  • Controla la posición de referencia, la velocidad y el tiempo (PVT) utilizados para calcular los errores de medición.
  • Genera informes de análisis.
  • Define una ventana en los datos entre las horas de inicio y finalización.

Panel de control de análisis de GNSS)

Figura 2: Panel de control de análisis de GNSS

Representaciones interactivas del análisis de GNSS

La app de análisis de GNSS proporciona representaciones interactivas organizadas en radiofrecuencia (RF), relojes y columnas de medidas, como se muestra en la figura 3.

Representaciones interactivas del análisis de GNSS)

Figura 3: App de análisis de GNSS que muestra representaciones interactivas.

En la columna RF, se muestran los siguientes datos:

  • Para cada constelación, los cuatro satélites con las señales más potentes.
  • Para cada satélite, la representación de tiempo del proveedor en relación con la densidad de ruido (C/No).
  • La representación de las posiciones satelitales.

En la columna de reloj, se muestran los siguientes datos:

  • Los pseudorrangos
  • La frecuencia de desplazamiento del reloj del receptor, que se calcula mediante una de las siguientes posiciones de referencia:

    • Posición media calculada automáticamente
    • Latitud, longitud y altitud ingresadas por el usuario
    • Archivo de la Asociación Nacional de Electrónica Marina (NMEA) con referencia de verdad PVT
  • Es el desplazamiento del reloj en espera que conserva el tiempo cuando el receptor restablece el ciclo de trabajo del oscilador primario.

La columna de mediciones muestra los siguientes datos:

  • Los resultados de posición ponderada de mínimos cuadrados obtenidos a partir de los pseudorrangos sin procesar La ponderación se realiza sobre la base de la incertidumbre informada de cada medición, que es parte de la especificación de la API de medición sin procesar.
  • Los errores de cada pseudorrango para cada medición.
  • Los errores de cada tasa de pseudorrango para cada medición.

Informe de prueba de análisis de GNSS

El análisis de GNSS puede generar un informe de prueba, como se muestra en la figura 4, que evalúa la implementación de la API, la señal recibida, el comportamiento del reloj y la precisión de la medición. Para cada caso, la app informa si el receptor aprobó o no la prueba en función del rendimiento medido en comparación con comparativas conocidas. El informe de prueba es útil para los fabricantes de dispositivos, que pueden usarlo a medida que iteran en el diseño y la implementación de nuevos dispositivos. Para generar el informe de prueba, haz clic en Crear informe.

Informe de prueba de análisis de GNSS

Figura 4: Informe de prueba de análisis de GNSS

La pestaña Compare proporciona una comparación en paralelo, que se muestra en la figura 5, con C/No de varios archivos de registro GNSS, lo cual es útil cuando se compara el rendimiento de RF de varios dispositivos.

Comparación de datos C/No

Figura 5: Comparación de datos C/No de varios archivos de registro

¿Te interesa el código fuente? El Proyecto de la herramienta de medición de GPS proporciona un ejemplo de código abierto MATLAB que puedes usar para realizar las siguientes acciones con señales de constelación de GPS:

  • Consulta los datos capturados con la app de muestra de GNSS Logger.
  • Computa y visualiza pseudorrangos.
  • Calcula la posición y la velocidad de los mínimos cuadrados ponderados.
  • Visualiza y analiza la fase del proveedor.

Notas de la versión de la app de análisis de GNSS v4.6.0.1

La versión 4.6.0.1 de la app de GNSS Analysis incluye las siguientes actualizaciones:

  • Se compiló GnssAnalysisTool en Matlab R2022a, lo que brinda acceso a nuevas funciones:
  • La ventana de estado se desplaza automáticamente: el mensaje de estado más reciente siempre está visible.
  • Se agregó una tabla de comparaciones de C/N0, por constelación, y se compara L1 con L5.
  • Se agregó el gráfico residual de la velocidad de pseudorrango.
  • Se quitaron las pestañas independientes para la estación de referencia o en movimiento, lo que facilita ver qué tipo de estación de referencia se seleccionó.
  • Se movieron los resultados de "Make Report" de HTML a la ventana de estado.
  • Se quitó la pestaña Planificador de misiones. Usa gnssmissionplanning.com/ o www.gnssplanning.com/.
  • Se corrigieron errores relacionados con el análisis de archivos de observación RINEX.
  • Se recurre a la fuente de efemérides del CDDIS de la NASA para GPS y GLO cuando BKG no funciona.
  • Se trasladó de igs.bkg.bund.de a igs-ftp.bkg.bund.de
  • No salgas del análisis si falla la descarga de las efemérides de GAL, QZSS o BDS.
  • Crea un análisis de CNo de antena, incluso si el chipset no admite BaseBandCNo.

Instrucciones de instalación y manual del usuario.

Envía comentarios

Queremos mejorar la compatibilidad con GNSS en Android. Infórmanos sobre cualquier problema de compatibilidad de GNSS en Android mediante el seguimiento de problemas de GNSS. Comprueba si tu problema ya se menciona en las Preguntas frecuentes antes de publicarlo.

Si usaste las herramientas de análisis GNSS, envía tus comentarios respondiendo una breve encuesta. Si tienes otras preguntas o una solicitud de asistencia, consulta Recursos de asistencia para desarrolladores.

Puedes encontrar respuestas en Preguntas frecuentes sobre las herramientas de análisis de GNSS.