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 análisis de GNSS 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 Satélite del Instituto de Navegación y Kaggle están patrocinando el 3er Desafío de Decimetros de Smartphones en ION GNSS+. El concurso 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, es obligatorio admitir las mediciones GNSS sin procesar en todos los dispositivos Android que contengan hardware del año 2016 o posterior. 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 en función del chipset de GNSS utilizado. Entre los ejemplos de estos campos, se incluyen los siguientes:

  • 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 un 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 de GNSS con GNSS Logger, puedes copiar los archivos de registro del dispositivo a 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. De manera alternativa, puedes guardar los archivos con la app de administración de archivos en el dispositivo, o bien usar Android Debug Bridge (ADB) como se explica en Cómo copiar archivos desde o hacia un dispositivo.

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 sistemas con 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 de análisis de GNSS se basa en MATLAB, pero no necesitas MATLAB para ejecutarla. La app se compila en un ejecutable que instala una copia del entorno 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 con la incertidumbre informada de cada medición, que forma 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, de C/No de varios archivos de registro de GNSS, lo que resulta ú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 herramientas de medición de GPS proporciona un ejemplo de MATLAB de código abierto que puedes usar para realizar las siguientes acciones con indicadores 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:
  • Se desplaza automáticamente por la ventana de estado: 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 tasa de pseudorrango.
  • Se quitaron las pestañas separadas de PVT de referencia fijo o en movimiento, lo que facilita ver qué tipo de PVT 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. Utiliza gnssmissionplanning.com/ o www.gnssplanning.com/.
  • Correcciones relacionadas con el análisis del archivo 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.
  • Crear análisis de Antena CNo incluso si el chipset no es compatible con 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 a preguntas frecuentes en las Preguntas frecuentes sobre las herramientas de análisis de GNSS.