Cálculo de posición usando datos GPS sin procesar
Importancia del sistema GPS
- El GPS es el Sistema de Posicionamiento Global y se usa en diversas aplicaciones, desde la navegación en Google Maps hasta las apps de transporte.
- El GPS es muy preciso y también se usa para medir la tectónica de placas y el desplazamiento continental.
- El GPS es propiedad del gobierno de EE. UU., y el acceso para otros países puede restringirse por razones geopolíticas.
- Por ello, se desarrollaron otros sistemas similares al GPS en distintos países, como GLONASS de Rusia, Galileo de la Unión Europea y BeiDou de China.
Sistemas de coordenadas
- Para representar una ubicación se usan diversos sistemas de coordenadas.
- La latitud/longitud de uso general no es adecuada para los cálculos matemáticos.
- El sistema de coordenadas ECEF (Earth Centered, Earth Fixed) representa posiciones tomando como origen el centro de la Tierra.
- El sistema WGS 1984 es el sistema ECEF más usado.
Definición de altura
- Para definir la altura, primero hay que definir la superficie de referencia.
- Se usan el elipsoide de referencia y el modelo de geoide.
- El elipsoide de referencia no tiene significado físico, mientras que el geoide se define como el conjunto de puntos con el mismo potencial gravitatorio.
Latitud y longitud
- La latitud geodésica es el ángulo entre la línea normal a la superficie del elipsoide y el plano del ecuador.
- La longitud geodésica es el ángulo entre el meridiano de referencia y un meridiano específico.
- La altura geodésica es la altura medida con respecto al elipsoide.
Conversión entre coordenadas geodésicas y cartesianas
- Convertir coordenadas geodésicas a coordenadas cartesianas es sencillo.
- Convertir coordenadas cartesianas a coordenadas geodésicas requiere un procedimiento iterativo.
Sistema de coordenadas local
- El sistema de coordenadas local es el sistema ENU (East-North-Up), centrado en la ubicación del usuario.
- Existe un método para convertir coordenadas ECEF a coordenadas ENU.
Cálculo de la posición del usuario usando GPS
Determinación de la posición de los satélites
- La órbita de un satélite es elíptica y queda completamente definida por 6 parámetros de Kepler.
- La posición del satélite se calcula según el documento de especificación de la interfaz GPS.
Cálculo de la distancia entre el usuario y el satélite
- El receptor GPS calcula la distancia al satélite usando las marcas de tiempo de la señal satelital.
- Esta distancia se llama pseudodistancia (
pseudorange).
- Para calcular una posición precisa, hay que modelar el desfase del reloj del usuario y del satélite, así como los retrasos atmosféricos.
Estimación del desfase del reloj del usuario
- El desfase del reloj del usuario se estima junto con la posición del usuario.
Algoritmo para estimar la posición del usuario y el desfase del reloj
- Se establece una posición inicial del usuario y un desfase inicial del reloj, y luego se corrigen de forma iterativa.
- Para cada satélite, se corrige la pseudodistancia, se calcula el tiempo de transmisión de la señal y se calcula la posición del satélite.
- Se usa álgebra lineal para encontrar una solución por mínimos cuadrados.
Observaciones sobre el código Matlab
- Algunas ecuaciones requieren llamar a un solver.
- Por ejemplo, calcular la anomalía excéntrica (E) a partir de la anomalía media (M) requiere un solver.
Configuración experimental
- Se necesita una unidad GPS especial para recopilar datos GPS sin procesar.
- Los chips NEO-M8T y 6T de u-blox son adecuados.
- Se usa la utilidad STRSVR de RTKLib para recibir y guardar señales GPS sin procesar.
Procesamiento de datos GPS sin procesar
- STRSVR guarda los datos GPS sin procesar en formato RTCM3.
- Se usa la librería de Matlab goGPS para decodificar los datos RTCM y convertirlos en estructuras de datos de Matlab.
Análisis de resultados
- Se analizan los cambios en la posición y en el desfase del reloj.
- Se analizan las variaciones de los componentes este/norte/arriba (E/N/U) de la posición.
- Se analizan a lo largo del tiempo las variaciones del desfase del reloj.
Cálculo de azimut/elevación de los satélites
- Se calculan el azimut y la elevación de los satélites en el marco ENU centrado en el usuario.
Resumen de GN⁺
- Este artículo explica cómo funciona el sistema GPS y cómo se calcula la posición.
- Se usan diversos métodos de corrección para mejorar la precisión de los datos GPS.
- Muestra cómo procesar y analizar datos reales mediante código Matlab.
- Es útil para entender la infraestructura técnica del sistema GPS.
- Proyectos con funciones similares incluyen RTKLib y goGPS.
1 comentarios
Comentarios de Hacker News
Android ya ofrece acceso a la fase de la portadora, y con eso se puede medir con mucha precisión la posición relativa entre dispositivos dentro de la misma zona
Hay un proyecto de código abierto para quienes quieran construir su propio receptor GPS
Es un enlace que aparece seguido en los comentarios sobre GPS, pero por una buena razón
También hay un enlace alternativo que ofrece una explicación más interactiva
Una vez conocí a un investigador que recolectaba datos GPS de organismos acuáticos que solo salen brevemente a la superficie en raras ocasiones
El siguiente paso es PPP o RTK
Hay otra buena implementación de código abierto
Hay una ilustración que muestra cómo la geometría usuario-fuente afecta la incertidumbre de la posición del usuario
Escuché que GPS es una de las pocas aplicaciones de la vida cotidiana en las que hay que tener en cuenta efectos relativistas
Ejercicio para terraplanistas: expliquen cómo funciona el mapeo GPS de sus teléfonos si los satélites no orbitan una Tierra esférica.