viernes, 24 de mayo de 2013

Red Sensorial

Para esta tarea se encargo realizar una red sensorial que fuera aplicado en un área tridimensional. En mi caso busqué aplicarlo simulando un terreno natural invisible, en la cuál se tienen los nodos distribuidos en diferentes posiciones, siendo estos árboles, piedras, pozos, entre otros.

Lo que busqué aplicar es detectar a unos perros de la pradera. Explicándolo un poco tenemos un área con sensores en la que se busca saber donde se encuentra un perro de la pradera (puede ser cualquier objeto, más decidi ponerlo como ejemplo), si encontramos un perro de la pradera estando estático, que este dentro del rango de los sensores, se hace una notificación al igual que a sus sensores vecinos, Se tiene otro caso en la cual teniendo un punto central, que es la madriguera, podemos decir que pueden salir más perros de la pradera y estos se dirigen a una posición, en este otro caso, se detecta que hay un perro de la pradera y se le avisa a sus vecinos.

Herramientas:
Las herramientas usadas para la visualización fue mplot3d, que es una herramienta que ayuda a a visualización de figuras en 3d.

Código:
Para desarrollar el código se buscó realizarlo en clases en la cuál separamos nuestros sensores, nuestros intrusos, los enlaces que se tienen de éstos y la red sensorial que hace uso de los elementos ya mencionados. La idea del uso de clases es para definir objetos que éstos tienen sus atributos y ser más fácil su representación en canvas.

En el código se puede ver unas pequeñas explicaciones al igual que código comentado, donde son test de nodos estáticos que se emplearon como pruebas.

Lo importante a resaltar es el uso de arreglos donde vamos metiendo los nodos que tenemos, los nodos con las conexiones vecinos y los nodos intrusos. Haciendo esto más fácil su su detección ya que un nodo tiene como atributo su posición, así que lo que se hace es comparar en los ejes del sensor "x" "y" "z" y estando en el rango lo marca como intruso, para después guardarse en un lista.

Nodo


Nodo intruso


Arista


Red sensorial


Código completo


Notas:
El código se desarrollo en conjunto con un compañero de clase, en la cuál nos basamos en la construcción de la red sensorial, para ya después aplicarla en diferentes casos.

Resultados:
Explicando un poco de los resultados, distinguimos varios elementos los cuáles son:
  • Nodo rojo: Sensor
  • Triángulo azul: Intruso en estado estático
  • Aristas: Conexiones entre los sensores
  • Lineas en movimiento: Intruso en movimiento

En los resultados podemos ver como se detecta al intruso y es notificado a sus vecinos:




enlance: http://www.youtube.com/watch?v=sEWnaijWq_U

Referencias:
http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html
http://nbviewer.ipython.org/urls/raw.github.com/jrjohansson/scientific-python-lectures/master/Lecture-4-Matplotlib.ipynb
http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/
http://pybonacci.wordpress.com/2012/12/16/creando-una-animacion-con-matplotlib-y-ffmpeg/
https://astrowiki.physics.ox.ac.uk/pub/EaHS12/PythonPage/Matplotlib.pdf


1 comentario: