Introducción para los curiosos: Cómo funciona el GPS

Sobre todo lo que llevas en tus viajes ademas de la bicicleta
eperez
Mensajes: 8
Registrado: Jue Jun 06, 2013 9:08 pm
Ubicación: Suiza

Introducción para los curiosos: Cómo funciona el GPS

Mensaje por eperez »

Tras una temporada tirando de móvil para mis paseos, entre el engorro de no ver la pantalla con mucha luz, no poder usarlo en absoluto con lluvia, y fundirme la batería en unas pocas horas, al final decidí comprarme un receptor de GPS en condiciones, y con el que de momento estoy encantado. Tras trastear un poco con él me puse a pensar que, aunque no hace falta conocer todos los entresijos internos del GPS para usar uno, sí que hay unas cuantas cosas que creo interesantes y que parece que los manuales no suelen explicar muy bien (o nada) al usuario de a pie.

Sucede que tengo la suerte de trabajar en estos temas y que por otro lado me apasionan, así que me he puesto a escribir este post un tanto largo para explicar en términos -espero- sencillos algunas de esas historietas que aunque sean solamente "culturilla" tal vez ayuden a entender un poco mejor qué pasa dentro de estos cacharros.

- ¿Cómo obtiene el GPS mi posición?

Creo que la idea general es más o menos conocida, pero no está de más explicarlo un poquillo porque me servirá de introducción para otras cosas.

El sistema GPS usa una red de satélites que orbitan alrededor de la tierra más o menos cada 12 horas, lo que quiere decir que al contrario que por ejemplo los meteorológicos o de televisión que parecen fijos en el cielo porque giran a la vez que la tierra (por eso apuntamos las parabólicas), éstos se van "moviendo" lentamente. Hay al menos 24 de ellos funcionando a la vez, aunque típicamente en cielo abierto tendremos unos 6-8 a la vista.

Para saber dónde estamos el receptor calcula la distancia a la que están los satélites a partir del tiempo que tarda en llegar la señal. Si la velocidad de la señal es conocida (la de la luz, reducida un poco al atravesar la atmósfera), con el tiempo de recorrido podemos saber la distancia. La idea es que si por ejemplo yo sé que estoy a 140km de Madrid y a 165km de Valencia, si en un mapa pinto dos círculos de esos radios centrados en sus respectivas ciudades veré que se cortan cerca de Cuenca. Si imaginamos un mapa en tres dimensiones con tres "ciudades" o satélites podemos calcular nuestra posición no sólo sobre un plano sino averiguando también nuestra altura. Esto es lo que se conoce como "trilateración" o, menos rigurosamente, "triangulación".

En realidad la cosa se complica un poco si tenemos en cuenta que los satélites, al contrario que las ciudades, se mueven. Nuestro receptor no sabe dónde están exactamente pero tiene información de las trayectorias que siguen en el espacio (lo que se conoce como "datos de navegación", "datos orbitales" o más técnicamente "efemérides"), por lo que si sabe con precisión qué hora es puede calcularlo. El truco aquí sin embargo está en que hace falta una precisión muy alta para calcular estas distancias (estamos midiendo el tiempo que están viajando señales a la velocidad de la luz que salen de satélites que a su vez van a miles de kilómetros por hora!) por lo que saber "qué hora es" implica saberlo no al segundo sino prácticamente a la mil millonésima de segundo. Como los relojes que usan los receptores de GPS no son atómicos precisamente sino mucho más baratos, y por tanto incapaces de dar medidas tan buenas, el tiempo se considera una incógnita más, junto con la latitud, longitud y altitud. Por este motivo el GPS no puede darte la posición sin detectar al menos 4 satélites, y no solamente 3. El lado positivo es que al menos a la vez que la posición nos da la hora, claro :)

- ¿Por qué las barras de cobertura de mi GPS usan a veces varios colores?

Para detectar un satélite el receptor tiene que "buscarlo" o intentar sintonizarlo, algo así como con las emisoras de radio. En parte este proceso es necesario porque aunque la frecuencia a la que se transmite es aproximadamente conocida, ésta varía ligeramente según la velocidad con la que se mueva el satélite con respecto a nosotros, por lo que llama "efecto Doppler". No voy a entrar en detalle, pero el ejemplo típico del efecto Doppler es el de la sirena de una ambulancia que según se aleja o se acerca suena más grave o aguda. Esto es similar, y el receptor tiene que barrer las frecuencias hasta dar con los satélites. Además tiene que medir el retraso con el que llegan las señales, para lo cual tiene que "escuchar" en diferentes instantes de tiempo hasta dar con ellas. Y en principio tampoco sabe a priori qué satélites van a estar a la vista, por lo que debe intentar buscarlos a todos.

El primer paso por tanto es la "adquisición" (acquisition en inglés) o la detección de la señal de tantos satélites como sea posible.

Una vez el receptor los encuentra empieza a "seguirlos" (lo que se conoce como tracking). Con este proceso el GPS empieza a hacer medidas precisas que servirán para obtener la distancia a cada satélite.

El tercer paso es obtener los datos de navegación. Los datos de las órbitas cambian cada cierto tiempo y se van actualizando, y cada satélite transmite los suyos, así que el receptor debe "descargárselos" según los encuentra.

¿Qué son entonces los códigos de las barritas? El significado exacto lógicamente depende de cada receptor GPS, pero normalmente distinguen entre adquisición ("he detectado el satélite"), seguimiento ("estoy preparado para usar las medidas de este satélite") y efemérides ("ya tengo los datos de navegación de este satélite y lo voy a usar para calcular mi posición").

- ¿De qué depende que tarde más o menos en encontrar mi ubicación?

Cuando un GPS arranca hay tres situaciones llamadas arranque en frío (cold start), templado (warm start) y caliente (hot start).

En el arranque en frío no sabes dónde estás ni qué hora o día es en absoluto, si es medianoche del lunes o del 7 de febrero de 1987, ni tienes datos de navegación de ningún satélite. El receptor debe ir buscando satélite por satélite, detectando y descargando información, y aunque cueste creerlo el GPS es un sistema algo antiguo y extremadamente lento (¡la información viaja a 50 bits por segundo!), así que aunque un arranque en frío tarda típicamente medio minuto, si no tienes suerte o la cobertura es mala la cosa se puede alargar.

En el arranque templado el GPS sí que tiene los datos de navegación y una idea aproximada de qué hora es (el reloj del sistema no es muy preciso pero da un buen punto de partida), por lo que no tarda tanto en localizar los satélites y tan pronto los encuentra puede empezar a calcular la posición. Es habitual que un receptor almacene en memoria los últimos datos de efemérides recibidos (que cambian con el tiempo pero cada varias horas y no mucho), por lo que tras usar un receptor por primera vez el tiempo de espera suele mejorar bastante al no arrancar ya en frío, y cuanto menos tiempo haya pasado desde que lo usaste por última vez, mejor.

Por ultimo está el arranque en caliente, en el que no sólo tienes datos de navegación y la hora sino que tienes una aproximación de dónde estás. Esto es típico cuando sales de un túnel por el que acabas de perder la señal de GPS; no te has ido muy lejos, así que el GPS es capaz de "reengancharse" casi inmediatamente.

Como extra, hay una técnica que se llama "GPS asistido" o AGPS por sus siglas en inglés que usan receptores que pueden obtener información adicional por otros medios que sirven para acelerar todo esto. El caso más evidente es el de los teléfonos móviles, que pueden descargarse los datos de navegación casi inmediatamente por la red y que pueden obtener su ubicación aproximada a partir de la antena móvil a la que están enganchados, o las WiFi en alcance si las tienen registradas, por ejemplo. Más de uno habrá notado la diferencia de tiempo abismal en el GPS de un móvil con y sin acceso a internet. Es similar a un arranque en caliente, pero "haciendo trampa" porque usamos señales que no son de GPS.

- ¿Por qué a veces tengo una precisión muy mala con muchos satélites a la vista/buena señal?

El motivo más común es que los satélites que tengamos disponibles estén todos por la misma zona del cielo, lo que hace que los errores sean mayores al "triangular" nuestra posición. Volviendo a nuestro ejemplo de las ciudades estando en Cuenca, si en vez de la distancia a Madrid y Valencia nos dijeran la distancia a Madrid y Leganés, los círculos serían muy parecidos, casi uno encima de otro, y cualquier pequeño error nos daría puntos de corte en el mapa muy diferentes. Esto es lo que se conoce como "dilución o disolución de la precisión" o DOP por sus siglas en inglés, y hace que si por ejemplo viajamos por una ladera el error del GPS aumente aunque detectemos suficientes satélites con señal fuerte. Si además los satélites son pocos (imagina un desfiladero, que sólo "vemos" los que tenemos encima) el error puede llegar a ser espectacular. Algunos receptores (normalmente en teléfonos) dan medida del DOP con un numerito, que cuanto más bajo sea mejor: 1-2 es excelente y bastante fácil de conseguir al aire libre, por encima de 5 ya empieza a ser malillo y más de 10-20 olvídate de grabar una ruta en el GPS que tenga sentido.

- ¿Qué es WAAS/SBAS? ¿Debo activarlo?

Para terminar (al menos de momento, hasta que se me ocurran más cosas, si no he aburrido a las ovejas...), hay una red de satélites que se conoce como SBAS que sirve de apoyo a la de GPS y que suministra información adicional que ayuda a mejorar la precisión, como datos sobre las condiciones atmosféricas que afecten al retraso de las señales, para que el receptor pueda calcular las distancias de manera más exacta. El SBAS norteamericano se conoce como WAAS, y por ello a veces los receptores lo llaman así, pero ya hay sistemas equivalentes relativamente recientes funcionando en Europa, la India, etc.

El tipo de señal que utilizan es muy similar al de GPS por lo que activar el SBAS tiene un impacto insignificante en el consumo de la batería y puede mejorar drásticamente la precisión, así que sí, actívalo siempre para obtener los mejores resultados.