- El cálculo de posición por GPS es un problema que requiere resolver en conjunto la pseudodistancia (pseudorange) hasta los satélites, la efeméride y el error del reloj del receptor, e implementa la estimación de la posición real procesando datos sin procesar en Matlab
- Para los cálculos, el sistema de coordenadas WGS 84 ECEF es más adecuado que latitud y longitud, y para el análisis del acimut, la elevación y los errores respecto al usuario también se usa el sistema de coordenadas local ENU
- La posición de los satélites se obtiene a partir del procedimiento de la GPS Interface Specification y de los parámetros orbitales, y como la Tierra rota mientras la señal viaja, las coordenadas del instante de transmisión deben corregirse para ajustarlas al marco ECEF del instante de recepción
- La posición del usuario y el sesgo del reloj del receptor se estiman realizando mínimos cuadrados iterativos con las pseudodistancias corregidas de al menos 4 satélites, y en el análisis de ejemplo se excluyen los retrasos ionosféricos y troposféricos
- En un experimento con receptor estático usando u-blox NEO-M8T/6T, RTKLib STRSVR, RTCM 1002/1019 y goGPS, la desviación estándar de la posición fue East 14.00m, North 39.88m, Up 47.35m, y el sesgo del reloj presentó una deriva lineal de 4.27e-7sec/sec
El problema básico del cálculo de posición GPS
- La tarea central del GPS es calcular la posición del usuario
- La latitud, longitud y altitud son familiares para expresar una ubicación sobre la superficie terrestre, pero resultan incómodas para el cálculo matemático porque una diferencia de 1 grado de latitud o longitud no siempre representa la misma distancia física
- La distancia correspondiente a 1 grado de longitud es máxima en el ecuador y se acerca a 0 en las zonas polares
- Para calcular se necesita un sistema de coordenadas ortogonal en el que una diferencia unitaria de coordenadas represente una distancia física constante
- El GPS obtiene la posición del usuario usando la distancia a varios satélites y la posición de esos satélites
- Primero hay que calcular la distancia hasta los satélites y la posición de cada uno
Sistemas de coordenadas: ECEF, WGS 84, ENU
- El sistema de coordenadas ortogonal fijo a la Tierra y que rota junto con ella se llama ECEF (Earth Centered, Earth Fixed)
- Como las coordenadas de un usuario estacionario sobre la superficie permanecen constantes en el tiempo, es adecuado para representar la posición del usuario
- El sistema ECEF más usado es WGS 84, desarrollado por el Departamento de Defensa de EE. UU.
- El origen está en el centro de masa de la Tierra
- El eje z pasa por el CTP (Conventional Terrestrial Pole)
- El CTP es el promedio de la posición del polo terrestre entre 1900 y 1905, y la posición real del polo se mueve dentro de un círculo de radio aproximado de 15 m
- El eje x pasa por la intersección entre el plano ecuatorial del CTP y el meridiano de referencia Mean Greenwich Meridian
- El movimiento de los satélites naturalmente se trata en un sistema de coordenadas inercial de acuerdo con la mecánica newtoniana, pero la GPS Interface Specification proporciona un procedimiento para calcular la posición de un satélite en un instante dado dentro del marco ECEF
- En aplicaciones locales, es conveniente el sistema de coordenadas ENU (East-North-Up) con origen en la posición del usuario
- Las coordenadas ECEF pueden transformarse a ENU mediante multiplicación matricial usando la latitud y longitud del usuario
- La transformación a ENU se usa para calcular el acimut y la elevación de los satélites
Definición de altitud: elipsoide de referencia y geoide
- Antes de hablar de altitud, primero hay que definir “respecto de qué”
- El elipsoide de referencia (reference ellipsoid) es un modelo abstracto que representa a la Tierra como un elipsoide achatado
- Está ubicado en el centro de la Tierra y su eje de rotación coincide con el eje z de ECEF
- El radio de 6371 km que suele usarse al aproximar la Tierra como una esfera es un valor entre el semieje mayor y el semieje menor
- Un punto real sobre la superficie terrestre puede estar por encima o por debajo del elipsoide de referencia
- El geoide (geoid) es el conjunto de puntos con el mismo potencial gravitacional, una superficie con significado físico
- La altitud respecto al geoide se conoce como altitud ortométrica o altura sobre el nivel medio del mar (MSL)
- El geoide suele especificarse como un conjunto de valores de altura sobre el elipsoide de referencia
- Latitud, longitud y altitud se definen como coordenadas elipsoidales
- La latitud geodésica es el ángulo entre la línea perpendicular a la superficie del elipsoide en el punto P y el plano ecuatorial
- El ángulo de la línea que une el centro de la Tierra con el punto P es la latitud geocéntrica, y coinciden si la Tierra fuera una esfera perfecta
- La conversión de coordenadas elipsoidales a coordenadas ortogonales puede hacerse en un solo paso, pero la conversión de ECEF a coordenadas elipsoidales requiere un procedimiento iterativo de convergencia rápida
Cálculo de la posición del satélite
- La órbita ideal de un satélite es una órbita elíptica descrita por 6 elementos orbitales keplerianos
- Cinco elementos determinan el tamaño y la forma de la elipse, así como la orientación del plano orbital
- El sexto elemento determina la posición del satélite en un epoch específico
- La órbita real de un satélite no es una elipse perfecta debido a la no uniformidad de la composición terrestre y a la influencia gravitacional del Sol y la Luna
- GPS transmite 16 parámetros orbitales para corregir esas perturbaciones
- La tabla 20-IV de la GPS Interface Specification contiene el procedimiento para calcular la posición del satélite con correcciones orbitales incluidas
- La posición del usuario se calcula en el instante de recepción t, pero la señal GPS salió del satélite en el instante t-τ
- La posición del satélite se calcula en el instante de transmisión de la señal t-τ
- Como la Tierra rota durante el tiempo τ que tarda en propagarse la señal, el vector de posición del satélite debe rotarse según esa cantidad para ajustarlo al marco ECEF del usuario en el instante de recepción t
- Esto no equivale a calcular simplemente la posición del satélite en el instante t
Pseudodistancia y sesgo del reloj
- El receptor GPS compara la marca de tiempo de transmisión incluida en la señal del satélite con el tiempo del receptor, y multiplica la diferencia por la velocidad de la luz para calcular aproximadamente la distancia hasta el satélite
- Esa medición es la pseudodistancia (pseudorange)
- Si el reloj del satélite y el del receptor estuvieran perfectamente sincronizados y la señal viajara en línea recta por el vacío a la velocidad de la luz, sería igual a la distancia real
- En la práctica difiere de la distancia real debido a desfases de reloj y retrasos atmosféricos
- El sesgo del reloj del satélite debe corregirse necesariamente porque puede causar errores de posición de miles de metros
- Se calcula con un polinomio basado en coeficientes del mensaje de efeméride GPS y un término relativista
- El polinomio aporta la mayor parte de la corrección, y el efecto relativista contribuye alrededor de 1 a 10 m según la posición del satélite
- El sesgo del reloj del receptor es una incógnita que debe estimarse junto con la posición del usuario
- En el algoritmo, el sesgo del reloj se maneja en unidades de distancia al multiplicarlo por la velocidad de la luz
- Los retrasos atmosféricos se dividen en componentes ionosférica y troposférica
- El retraso ionosférico normalmente provoca un error de posición de unos 25 m
- El retraso troposférico normalmente provoca un error de posición de unos 2 m
- En el análisis experimental del artículo se ignoran estos retrasos
Algoritmo para estimar la posición del usuario y el sesgo del reloj
- Las mediciones de pseudodistancia corregidas se expresan como la suma de la distancia real usuario-satélite, el sesgo del reloj del receptor y errores no modelados
- La posición del usuario y el sesgo del reloj se buscan como los valores que minimizan la diferencia entre las pseudodistancias medidas y las predichas
- La solución es un procedimiento de mínimos cuadrados iterativos
- El valor inicial de la posición del usuario es
[0 0 0] - El valor inicial del sesgo del reloj del usuario es
0 - En cada iteración se construye la matriz G apilando los vectores unitarios en dirección a los satélites según la estimación actual de la posición
- Se resuelven la corrección de posición y la corrección del sesgo del reloj, y se repite hasta que el cambio sea menor que un umbral
- El valor inicial de la posición del usuario es
- Si hay exactamente 4 satélites y la geometría no es degenerada, puede obtenerse una solución directa
- Si el cielo no está obstruido, normalmente se observan más satélites y por lo general se usa una solución de mínimos cuadrados
- La implementación sigue el siguiente flujo
- Recibe como entrada la pseudodistancia sin procesar y la efeméride del satélite
- Calcula el sesgo del reloj de cada satélite y corrige la pseudodistancia
- Aplica correcciones ionosféricas y troposféricas cuando es posible
- Corrige la pseudodistancia con el sesgo actual del reloj del receptor
- Divide la pseudodistancia entre la velocidad de la luz para obtener el tiempo de propagación de la señal τ
- Calcula la posición del satélite en el instante t-τ
- Ajusta la posición del satélite al marco ECEF del usuario reflejando la rotación de la Tierra durante τ
- Construye la matriz G y la diferencia de pseudodistancias, y calcula las correcciones de posición y sesgo del reloj
Detalles de implementación en Matlab
- La mayor parte del código Matlab evalúa de una vez las incógnitas del lado izquierdo a partir de los valores conocidos del lado derecho
- Algunos cálculos requieren un solver porque no existe una solución analítica cerrada
- Un ejemplo es la etapa de cálculo de la posición del satélite en la que se obtiene la anomalía excéntrica E a partir de la anomalía media M
- La relación
E - e*sin(E) == Mno puede resolverse en forma cerrada, así que se usavpasolve
- El código del apéndice incluye las siguientes funciones
- cálculo de la posición del usuario y del sesgo del reloj
- cálculo de la posición del satélite
- solución por mínimos cuadrados de la posición del usuario y del sesgo del reloj
- cálculo del sesgo del reloj del satélite
- conversión de coordenadas ECEF WGS84 a coordenadas elipsoidales
- conversión del formato de datos de efeméride
Configuración para recolectar datos GPS sin procesar
- Para obtener datos GPS sin procesar, no basta un dispositivo GPS común que calcule internamente la posición y solo la entregue; se necesita un receptor que emita información de timing como pseudodistancias sin procesar y efemérides de satélite
- Los chips u-blox NEO-M8T y 6T cumplen con esos requisitos
- En Amazon se puede comprar por unos 40 dólares un conjunto de hardware con unidad GPS, antena y puerto de salida serial
- Para recibir y guardar la señal GPS sin procesar se usa la utilidad STRSVR de RTKLib
- RTKLib es un paquete de software open source que soporta posicionamiento GNSS estándar y de alta precisión para GPS, Glonass, Galileo, Baidu y otros
- STRSVR convierte la salida en formato personalizado del receptor u-blox al formato estándar RTCM
- La información necesaria está en los mensajes RTCM 1002 y 1019
- 1002 contiene la información de pseudodistancia sin procesar
- 1019 contiene la información de efeméride del satélite
- STRSVR se configura para recibir datos por puerto serial a 9600 Baud y guardarlos en un archivo con formato RTCM 3
- La recolección de datos se realizó en la azotea de un edificio de departamentos
- El receptor GPS se colocó en un lugar con vista despejada al cielo
- Se verificó con el software u-center de u-blox que hubiera suficientes satélites visibles y que fuera posible obtener un buen position fix
- Se recolectó aproximadamente 1 hora de datos GPS sin procesar
Procesamiento RTCM y uso de goGPS
- STRSVR guarda los datos GPS sin procesar en formato binario RTCM3
- Para procesarlos en Matlab, es necesario decodificar los datos RTCM3 y convertirlos en una estructura de datos de Matlab
- En lugar de escribir un decodificador RTCM propio, se usa la función
load_streamde la librería Matlab goGPS- Lee archivos en formato RTCM y extrae los mensajes RTCM
- Guarda los datos extraídos en un archivo
.matpara usarlos como entrada del algoritmo de cálculo de posición
- También se proporciona el archivo
rtcm_data- Debido a restricciones de seguridad de WordPress, se ofrece con extensión
.txten lugar de.mat - Después de descargarlo, hay que volver a cambiarle el nombre a
.mat
- Debido a restricciones de seguridad de WordPress, se ofrece con extensión
Resultados experimentales: variación de posición y deriva del reloj
- Como el receptor permaneció estático durante la recolección de datos, la variación temporal de la posición calculada muestra el desempeño real del algoritmo de cálculo de posición
- En el marco ENU centrado en el usuario, la desviación estándar de los componentes de posición fue la siguiente
- East: 14.00m
- North: 39.88m
- Up: 47.35m
- La variación de la posición fue de alrededor de 30 m en las direcciones East y North, y mayor en la dirección Up
- El sesgo del reloj del receptor no es constante, sino que deriva linealmente con el tiempo
- En el algoritmo, el sesgo del reloj se maneja en unidades de distancia
- En la gráfica de resultados, se convierte a unidades de tiempo al dividirlo entre la velocidad de la luz
- La magnitud de la deriva es 4.27e-7sec/sec
Cálculo del acimut y la elevación de los satélites
- El acimut y la elevación de los satélites se definen desde la perspectiva del usuario, por lo que se calculan en el marco ENU centrado en el usuario
- El procedimiento de cálculo es el siguiente
- Se calcula en el marco ECEF el vector de posición desde el usuario hacia el satélite
- Se convierte la posición del usuario a coordenadas elipsoidales de latitud y longitud
- Se rota ese vector de posición al marco ENU centrado en el usuario
- A partir de las coordenadas ENU se calculan el acimut y la elevación
- En el epoch de ejemplo, las elevaciones calculadas de los 8 satélites son todas positivas
- El acimut puede tomar valores tanto positivos como negativos
- Como el usuario no puede ver satélites por debajo del horizonte, es natural que la elevación sea positiva
- Si se calcula la posición de los satélites en varios epochs con el mismo procedimiento, puede construirse el satellite track chart que muestran los programas de procesamiento GPS
DOP: el factor geométrico en la calidad de la estimación de posición
- DOP (Dilution of Precision) es una métrica para evaluar qué tan buena es la estimación de posición
- El error de posición depende no solo del ruido de medición, sino también de la geometría usuario-satélite
- Cuanto más ruidosas sean las pseudodistancias y las mediciones de posición de los satélites, mayor será el error de posición
- Cuanto más dispersos estén los satélites en acimut y elevación, más favorable será la geometría y menor será el DOP
- La covarianza del error de posición y del sesgo del reloj se descompone como función del error de distancia del usuario y de la matriz G
- La matriz G está compuesta por los vectores unitarios dirigidos desde el usuario hacia los satélites
- La matriz G en el marco ECEF se rota al marco ENU para facilitar el cálculo del DOP
- Los componentes del DOP se definen en las direcciones East, North y Up
- HDOP es el DOP horizontal que combina los componentes East y North
- VDOP es el DOP vertical del componente Up
- En los datos reales, HDOP y VDOP son en general menores que 2.5
- Ese valor se considera suficiente
- VDOP es mayor que HDOP
- Como un usuario sobre la superficie no puede observar satélites bajo el horizonte, y además las señales de satélites por debajo de 10 grados sobre el horizonte suelen ser demasiado ruidosas para usarse, el VDOP tiende a ser mayor
La escala de la infraestructura GPS
- Construir la constelación GPS costó aproximadamente 30 mil millones de dólares, y el gobierno de EE. UU. gasta cerca de 1 mil millones de dólares al año en su mantenimiento
- Se menciona que Uber, que no habría podido existir sin GPS, tiene un valor de más de 70 mil millones de dólares
- Si se incluyen las múltiples aplicaciones que GPS hizo posibles, la inversión pública en GPS puede verse como un caso de enorme impacto económico y tecnológico
1 comentarios
Opiniones de Hacker News
Android ofrece acceso al enfoque de fase de portadora (carrier phase) desde hace bastante tiempo, y con eso se puede obtener la posición relativa entre dispositivos que estén más o menos en el mismo barrio con una precisión tal que hay que preocuparse por dónde está escondida la antena GNSS dentro del dispositivo.
Por sí solo no es algo espectacular, pero mejora si se combina también con el acelerómetro y el giroscopio de cada dispositivo.
Como los cambios en las mediciones de pseudodistancia GNSS son predecibles incluso cuando no se está detenido, puede funcionar en tiempo real con poca degradación del rendimiento.
Por ejemplo, permitiría hacer aterrizar automáticamente un avión a escala sin ruedas en la caja de una camioneta, evitando raspones o depender de una pista de césped.
Si el consumo de energía no es extremadamente importante, tampoco hace falta que un receptor GNSS bastante decente sea caro; no entiendo por qué no se puede comprar simplemente un par por 100 dólares.
Aquí hay un receptor GNSS de 30 dólares. Aunque viene con algo de chatarra innecesaria incluida.
Para quienes quieran construir su propio receptor GPS, hay un proyecto completamente open source que también explica mucha teoría: http://www.aholme.co.uk/GPS/Main.htm
https://lea.hamradio.si/~s53mv/navsats/theory.html
Un artículo que aparece seguido en los comentarios sobre GPS, pero con buena razón: https://ciechanow.ski/gps/
Otra explicación, y probablemente más interactiva:
https://ciechanow.ski/gps/
También hay otra buena implementación open source:
https://m.youtube.com/watch?v=dVD1Yws__v0
Alguna vez vi a investigadores que recopilan datos GPS de animales acuáticos que salen a la superficie solo de vez en cuando, y por muy poco tiempo.
Si registran los datos crudos y luego los posprocesan, se reducen mucho tanto el consumo de energía como el tiempo mínimo en que deben estar expuestos a las señales satelitales; el tiempo de exposición baja incluso a menos de 1 segundo.
Al ver la parte que dice “la siguiente figura muestra cómo la geometría usuario-fuente afecta la incertidumbre de la posición del usuario”, pensé que sería bueno que en las apps de mapas del teléfono hubiera una opción para cambiar la forma de la incertidumbre de ubicación de un círculo a esta forma de intersección de arcos.
Escuché que el GPS es una de las pocas aplicaciones de la vida cotidiana en las que hay que tener en cuenta los efectos relativistas. Entonces, ¿los datos generados ya tienen eliminados esos efectos relativistas?
Si hablas de la salida de un dispositivo GPS comercial, sí. En el procesamiento posterior a la adquisición que se hace para generar la salida se corrigen todo tipo de efectos que inducen errores.
Este artículo trata sobre datos GPS crudos transmitidos por varios satélites; para obtener valores de salida a partir de ellos hace falta procesamiento, y muchas veces se incorporan entradas adicionales, como estaciones terrestres o correcciones marítimas, para mejorar la precisión.
Varios proveedores de equipos GPS hacen más o menos lo mismo, pero los detalles son lo importante.
También vale la pena leer https://ciechanow.ski/gps/, enlazado en otros comentarios.
En los objetos que se mueven más rápido que el observador, el tiempo también fluye más lento, y los satélites se mueven bastante rápido.
Como el GPS necesita que el tiempo entre el observador y los satélites esté sincronizado, se corrige el paso del tiempo para reflejar los efectos de la relatividad especial y general.
Por eso la relatividad es importante, pero no hace falta saber mucha relatividad para resolver tu propia posición.
Dicho eso, varias formas de RTK de línea base larga/red pueden requerir un modelado más sofisticado.
El siguiente paso es PPP o RTK. GNSS es una madriguera de posibilidades muy divertida.
Ejercicio para terraplanistas: explicar cómo funcionan los mapas GPS del celular sin satélites orbitando una Tierra esférica. Mostrar el desarrollo.
Primero habría que hacer una argumentación bastante compleja de por qué el teléfono no puede hacerlo sin satélites.
Un ejemplo algo más fácil y difícil de eludir para un terraplanista es que la ISS casi puede verse a simple vista y definitivamente se ve con un telescopio de patio. Los satélites Starlink son parecidos.
El terraplanismo no es una postura a la que se llegue por la razón; casi siempre surge de la confusión o como consecuencia inevitable de una creencia central inamovible. Por lo general proviene de una lectura extremadamente literal de la Biblia o de un delirio paranoide de que “todo lo oficial es falso”.