Cada satélite de la constelación GPS envía señales periódicas junto con una señal horaria. Estas señales son recibidas por los receptores GPS, el cual calcula la distancia entre el sensor y cada satélite como una función del retardo entre el tiempo de transmisión y el momento de la recepción. Aunque las señales (tipo de ondas de radio) viajan a la velocidad de la luz, siempre hay una demora debido a que los satélites están a decenas de miles de kilómetros sobre la Tierra.
Una vez que el GPS ha calculado las distancias a lo menos tres satélites, puede realizar los cálculos. Triangulación vuelve a afirmar su posición en un mapa con dos compases saber la distancia exacta desde tres lugares diferentes. El área de superposición de tres círculos centrados en cada lugar corresponde a su sitio ya que el radio de cada círculo corresponde a la distancia entre su lugar y cada lugar.
En la versión GPS de los cálculos se realizan en tres dimensiones con un conjunto imaginario de la brújula 3D, por lo que su posición corresponde a la superposición de los tres círculos cuyo radio viene dado por la distancia entre su posición y cada satélite. Si el receptor GPS puede recibir datos de un cuarto satélite, las mediciones se pueden verificar de nuevo.
El proceso de cálculo es extremadamente rápido, que permite que el receptor GPS para indicar su posición, altitud (aire), la velocidad y el destino.
Para hacer la Triangulación es necesario realizar un plano cartesiano de manera que el centro de nuestro plano sea 0,0, esto para poder asegurar que vamos a tener una intersección entre los circulos, es por eso que la creación de las antenas, cuyo radio es la intensidad de la señal, se crean uno, en el centro del plano catesiano, otro sobre el eje y y otro más, debajo de los dos circulos anteriores, esta manera es mucho más facil calcular lo que es la i y la j, por lo tanto tener una buena ubicación.
Para crear la interfaz para la observación del comportamiento de la trigonalización, utilicé la libreria tk de python en donde primero generé una ventana de 500 pixeles x 500 pixeles, programé un script en el cual pudiéramos obtener valores de -1:1 y tenerlos en sus planos correspondientes, por lo que dividí la ventana de manera que tuviéramos un plano de cuatro partes, en donde en la parte superior derecha tengamos los valores positivos de estos números, luego en la parte superior izquierda los valores negativos respecto al eje x y los valores positivos respecto al eje y, la parte inferior derecha los valores prositivos respecto al eje x y los valores negativos respecto al eje y, y en la parte inferior izquierda los valores negativos respecto a ambos ejes, por lo que por medio de la fórmula (1-x)*250, donde x es el número de que queremos graficar entre -1:1 y el menos uno para controlar la posición de pixeles, por lo que de esta manera podemos posicionar los elementos de manera correcta.
Luego de tener los valores de las fuerzas de los circulos, podemos calcular donde está posicionado según las matemáticas de la triangulación, en base a Wikipedia, se saca la derivación de los puntos a calcular y obtenemos.
X = (ar**2 - br**2 + d**2)/float((2*d))
Y = ((ar**2-br**2+i**2+j**2)/(2*j))-((float(i/j))*X)
En donde:
ar = radio antena A
br = radio antena B
d = distancia entre antena A y antena B
i = distancia del origen a antena C
j = la distancia entre el punto de encuentro y la ubicación de la antena C
Tomada de wikipedia |
Para entenderlo, primero hice un dibujo.
Ahora les muestro el código.
Este es un video que tomo sobre la animación del mismo ejercicio que dibuje.
Referencias.
NA, (2012). Qu'est-ce que la trilatération?. Mio web. Recuperado de http://eu.mio.com/fr_fr/systeme-positionnement-global_4991.htm
Se me hace algo limitada esta implementación. 7 pts.
ResponderEliminar