martes, 14 de mayo de 2013

[RT] Tarea 6: Geolocalización

Para ésta entrada se pidió realizar un código de geolocalización utilizando triangulación de antenas detectando la potencia de las señales de las señales.

Triangulación

Como su nombre lo dice, el método de triangulación hace uso de trigonometría para determinar la posición de objetos relevantes sobre un área determinada.

Mediante triangulación, se pueden obtener las coordenadas de un punto, por ejemplo, el barco de la imágen.
[1]

Primero, se calcula la distancia existente b entre dos puntos conocidos: A y C.
Se miden los ángulos de los vértices A y C, y aplicando trigonometría, es posible obtener las distancias AB y CB, y por tanto, las coordenadas del punto B.


Trilateración

La trilateración es un método que ha venido supliendo a la triangulación, consiste en conocer de antemano las ubicaciones de los puntos de referencia que se utilizarán para detectar la posición de un objeto en un área.

[2]

Sobreponiendo 3 esferas las cuales pueden representar el alcance de una torre transmisora, por ejemplo, el radio de las esferas representa las distancias de las torres transmisoras al punto que se desea localizar.
Medir los 3 radios puede proporcionar la distancia relativa de las torres al punto seleccionado.


Simulación

Realicé una script en Python que permite simular la localización de un punto mediante trilateración, conociendo de antemano la ubicación de 3 torres transmisoras.

Utilicé como referencia las fórmulas halladas en Wikipedia, se programaron en Python y utilizando la libreria Numpy para facilitar algunos cálculos de álgebra lineal, además basándome en un post el cual se encuentra en las referencias.
Lo demás fue agregar una sencilla interfaz gráfica para ilustrar los resultados.

Se necesita conocer el alcance de la señal de cada transmisor, en éste caso, en pixeles; las coordenadas de los transmisores.
A pesar que el programa sabe la ubicación del receptor, se etiquetará el mismo con las coordenadas obtenidas mediante las ecuaciones de trilateración.

Código
Video


Referencias

2 comentarios:

  1. al ejeutarlo me manda el siguiente error

    Traceback (most recent call last):
    File "C:\Python27\Trilatelacion\gui.py", line 149, in
    app = App(root) # Creamos la instancia de la aplicacion ERROR
    File "C:\Python27\Trilatelacion\gui.py", line 70, in __init__
    self.buildGUI() #Line 70 ERROR
    File "C:\Python27\Trilatelacion\gui.py", line 79, in buildGUI
    self.menubar.add_command(label="Start", command=start) # Line 79 ERROR
    NameError: global name 'start' is not defined

    Me gustaria que me ayudaras, gracias.

    ResponderEliminar