domingo, 26 de mayo de 2013

[RT] Tarea 8: Redes sensoras


El tema de esta tarea es referente a redes sensoras, el documento seleccionado para su lectura fue:

...
Distributed Control Applications
Within Sensor Networks

Bruno Sinopoli, Courtney Sharp, Luca Schenato, Shawn Schaffert, S. Shankar Sastry,
...

1. Introducción

El paper nos habla acerca dela importancia que están ganando las redes sensoras en aplicaciones de control. El uso de sensores, actuadores y controladores programados para realizar ciertas funciones específicas esta creciendo y muchas veces necesitan combinarse en redes para realizar tareas más complejas, por ejemplo, los controladores del motor de un automóvil conectados entre si.
Así mismo, los MEMS son un tipo de sensores que permiten desplegar de manera económica amplias redes sensoras.
Sin embargo, también se nos muestra el lado impráctico, al momento de mantener una red de miles de sensores  mantener todos los sensores funcionales y conectados a cada momento.
Y como ya sabemos, existen diferentes investigaciones para utilizar este tipo de redes, por ejemplo, en el monitoreo del clima, terremotos, sistemas de transportación, aplicaciones militares y de automatización.
Son importantes las investigaciones que se están realizando para desplegar grandes redes sensoras autoconfigurables, seguras e indetectables; así mismo, combinar la tecnología ad-hoc para su rápido despliegue y la implementación de otras tecnologías como servicios de tiempo, geolocalización, ruteo, etcétera.


2. PEG's


El objetivo de la investigación presentada en el paper es la de diseñar controladores confiables y robustos para sistemas distribuidos. Para su prueba se ha seleccionado una aplicación llamada pursuit-evasion game (PEG) (juego de evasión-persecusión) .

Que consiste en desplegar una red sensora en un entorno donde se desarrolla un juego  de cooperación con un equipo de perseguidores. Para un PEG, la red sensora debe ser capaz de seguir los vehículos y distinguir entre los perseguidores y evasores, y así mismo tener una dinámica de enrutamiento y estructura para ofrecer información a los perseguidores en tiempo mínimo. Dado que el juego se juega en un entorno distribuido, la detección, control y accionamiento necesitan tenerse en cuenta durante el diseño del controlador. También la red debe proporcionar características de seguridad. Por último, ya que cualquier nodo de un red sensora puede fallar, algoritmos de control deben mostrar la degradación del rendimiento esperado.


El framework PEG contiene las características fundamentales para el modelado y diseño de robotica  multiagente y cooperativa que ha sido un área activa de investigación en las últimas décadas. En esta sección.

2.2 Qué es un PEG?


Los PEG son una abstracción matemática derivada de numerosas situaciones que aborda el problema de controlar un enjambre de agentes autónomos en la persecución de uno o más evasores. Ejemplos típicos son las operaciones de búsqueda, rescate y captura, la vigilancia, la localización y el movimiento de partes en un almacén. En algunos casos, los evasores están evitando activamente la detección, como en misiones de captura, mientras que en otros casos, su movimiento es al azar, como en las operaciones de rescate.


En este tipo de juegos, el campo de juego se abstrae de ser un conjunto finito de nodos y movimientos permitidos para los perseguidores y evasores, a estar representadas por aristas que conectan los nodos. Un evasor es capturado si tanto el evasor y uno de los perseguidores ocupan el mismo nodo.

Uno de los problemas más importantes de este juego es el cálculo del número buscadores, es decir, calcular el menor número de perseguidores necesarios para capturar una evasor en un tiempo finito, independientemente de la política de escape utilizada por el evasor, se ha demostrado que este problema es NP-hard. Esta aproximación se limita sólo a los peores movimientos de los evasores, que en general, son excesivamente pesimistas.


Otra área activa de investigación trata el problema del medio ambiente donde se desarrolla el PEG cuando éste es desconocido. En este marco, se requiere una fase de reconocimiento para proceder con la búsqueda. Esta fase consume mucho tiempo y es computacionalmente intensiva, incluso cuando son ambientes simples en 2D. Por otra parte, los sensores inexactos complican a menudo este proceso que requiere un enfoque probabilístico.
Por último, un enfoque reciente de PEG se ha ocupado de combinar el cálculo de los evasores con el reconocimiento del terreno.

2.2 Las redes sensoras en PEG


El uso de un redes sensoras puede mejorar en gran medida el rendimiento de un PEG. Los perseguidores tienen una rango de detección muy pequeño y por lo general, emplean la visión computacional o por ultrasonidos, proporcionando sólo una visión local sobre la zona de interés. Esta limitación hace dificil que una red cooperativa pueda adaptarse a un algoritmo debido a la falta una visibilidad completa que sólo permite políticas de persecución subóptimas.


La comunicación entre los perseguidores puede ser díficil en una área grande. La falta de comunicación, aunque sea parcialmente, entre perseguidores es una interrupción importante en cualquier política de persecución. Con una red sensora, la visibilidad completa del campo y la comunicación en un amplio rango es posible  La búsqueda global  se pueden realizar de manera eficiente para encontrar la solución óptima independientemente del nivel de inteligencia de los evasores. Además, el número de perseguidores necesarios estaría en función exclusivamente del número de evasores y no al tamaño
del campo.
Otro punto importantes a analizar son los siguientes:

  • Tiempo: La noción de tiempo presenta dos problemas distintos, en primer lugar, la coordinación de detección y actuación en el terreno físico requiere ya sea un sentido del tiempo global o la capacidad para resolver diferentes mediciones de tiempo a una significativa representación. En segundo lugar, muchas técnicas de diseño existentes asumen que el cálculo de control y el procesamiento de detección y accionamiento se producen dentro de una cantidad insignificante de tiempo, por lo que requiere nuevas técnicas de diseño y análisis para las redes sensoras.
  • Comunicación: Se espera que una red de sensores tendrá una área espacial significativamente mayor que una sola área de comunicación máxima de un solo sensor. Para que un sensor envíe un mensaje a otro, sensores intermedios deben ser capaces de retransmitir el mensaje. Además el protocolo de comunicación debe ser robusto a cambios en la red.
  • Ubicación: La detección y actuación a eventos en el terreno físico deben estar emparejados con la posición relativa o absoluta del sensor para ser útiles por los algoritmos de control. La ubicación debe ser asumida o deducido.
  • Cooperación: Las tareas requieren el esfuerzo cooperativo de dos o más sensores, como cualquier forma de detección y computación distribuida, se  requieren protocolos y estructuras que proporcionan la negociación, coordinación, y jerarquía de los nodos.
  • Energía: La energía es un recurso valioso en una red sensora. Para garantizar el servicio y rendimiento de una red sensora, el consumo de energía debe ser equilibrado.
  • Seguridad: Para evitar posibles infiltraciones de una red sensora, se debe contar con una capa de seguridad en las comunicaciones que debe proporcionar control de acceso, integridad de mensajes y confidencialidad.
Cómo se ve el juego originalmente

Visibilidad ampliada mediante una red sensora





3. Implementación


El escenario del experimento se compone de una red sensora que se despliega en el campo de juego, los sensores comienzan en un estado de sueño.

A continuación los sensores pasan por una fase de inicialización y calibración para el arranque de sus servicios prestados. Los perseguidores y evasores entran en el campo de juego y se mantienen dentro del mismo.
El red sensora ofrece una variedad de servicios a los perseguidores tales como la sincronización de la hora, localización, identificación de entidad (perseguidor o evasor).
El objetivo de la red es producir estimaciones de las posiciones, la velocidad y la identidad de los elementos en el campo de juego.
Cuando se capturan todas las evasores (se produce una captura cuando un
perseguidor es "lo suficientemente cerca" a él), el juego termina. Una estación base se encuentra fuera del área de juego y proporciona el registro y visualización de los servicios.

3.1 Hardware

La plataforma de hardware fue desarrollada por el grupo TinyOS de la Universidad de Berkeley, y se compone de numerosos y pequeños dispositivos de red y de computación embebida. Cada dispositivo tiene una cantidad de energía limitada, así como capacidad computacional, de almacenamiento y recursos limitados.
El objetivo de cada plataforma de hardware es proporcionar computación, sensores, actuación y comunicación de los recursos integrados en un paquete pequeño.
Las plataformas están diseñados para ser modulares y flexibles, que proporciona la facilidad de reprogramarlas de nuevo y utilizarlas en aplicaciones imprevistas al tiempo que permite la reutilización de código.

Evolución de las plataformas de hardware utilizadas.



3.2 Servicios del sistema


Para el software se utiliza NesC, una nuevo lenguaje de programación de código abierto desarrollado en Berkeley. NesC extiende el lenguaje C estándar con la semántica y sintaxis para arquitecturas basadas en componentes. Los comportamientos se describen con interfaces bidireccionales que proporcionan los comandos para controlar los eventos. Los componentes están conectados entre sí estáticamente para formar un todo, que, cuando se compila permite una mayor optimización y eficiencia.
El sistema operativo proporciona los servicios básicos para la comunicación, así como un planificador de procesos simple y el acceso a los componentes de hardware y sensores; esta diseñado para dispositivos con recursos excesivamente limitados

Capas del sistema y sus relaciones




4. Metodología


4.1 Escalabilidad


Utilizando técnicas ad-hoc, el sistema debe estar preparado para crecer en caso de ser necesario. Los nodos pueden ser activados y desactivados cuando sea necesario.


4.2 Control distribuido


Los sistemas de control distribuído son muy importantes en la computación actual. Desde hace mucho tiempo existen investigaciones que van desde la biología hasta la inteligencia artificial tratando de imitar modelos de la naturaleza, por ejemplo, colonias de insectos buscando comida, bacterias, formaciones de aves, entre otros. En éste caso, los sensores están conectados a un controlador central que toma los datos y los procesa para así tomar decisiones y aplicarlas a todo el sistema.








4.3 Modelos computacionales


Se utilizan una combinación modelos computaciones, donde tal combinación captura el cambio continuo en dinámica del medio ambiente, la distribución de los recursos y la naturaleza discreta del hardware. La combinación incluye eventos discretos, continuos, dinámica de sistemas, los sistemas dinámicos de tiempo discreto, autómatas híbridos, idiomas reactivos síncronos y modelos de flujo de datos.

Los sistemas dinámicos en tiempo continuo son ​​un modelo formal cuyas propiedades clave son la estabilidad y accesibilidad que se pueden deducir mediante métodos numéricos. Sin embargo, para las aplicaciones de control distribuido en redes sensoras, el modelo no es capaz de capturar retrasos en la comunicación, el tiempo entre los relojes, o decisiones discretas. Dado que todas las variables son continuas, es difícil modelar fenómenos concretos.
La naturaleza multimodal de los sistemas se puede describir por un autómata híbrido. Estos sistemas funcionan muy bien tanto para el flujo continuo y de saltos discretos.  Los sistemas de eventos discretos funcionan bien para los cambios de modo o reprogramación de tareas y caracteriza, también permite activar el sistema por eventos.
El modelo de flujo de datos pretende describir la transmisión de datos. En particular, son útiles para la caracterización de varios procesos de comunicación.


4.4 Enfoques de diseño



El enfoque de escalabilidad para dependerá en gran medida de procesamiento distribuido de sensores con el fin de obtener buenas estimaciones de las posiciones y velocidades tanto de evasores y perseguidores. El control y dinámica de cada perseguidor se realiza dentro de la propia perseguidor basado en lecturas de la red, la coordinación de alto nivel se distribuirán entre todos los perseguidores para maximizar la robustez a los ataques adversarios.
Algunas cuestiones relacionadas con el control contribuido han sido abordadas por el sistema híbrido de control. Se combina lo mejor de la teoría de control y la teoría de máquinas de estados
Se supone que los sensores saben que su ubicación en el espacio. Un servicio de localización garantiza que los nodos en las redes desplegadas puedan calcular su ubicación con respecto a unos a otros.
En los problemas de control estándar, los sensores están físicamente unidos a la planta, por lo tanto, se tiene la seguridad de recibir una lectura del sensor en cada paso de tiempo. En el caso de la red sensora, la detección se distribuye, esto significa que puede tomar algún tiempo tener una observación y que ésta llegue a su destino, ya que los paquetes través de la red están sujetos a demoras y pérdidas.


En niveles superiores, el sistema se basa eventos. Los controles reaccionan a uno o más eventos, lo que se llama comportamiento. Los eventos son detectados por la red sensora y se transmiten a un controlador discreto que genera la reacción apropiada. Cada reacción se transmite entonces a cada nivel inferior para cambiar el objetivo de control de acuerdo con las nuevas especificaciones. Los acontecimientos se producen de manera asíncrona, lo que dificulta el análisis formal.

Diseño de los controladores de alto y bajo nivel, y su representación jerarquica.



Conclusiones y crítica

Más que la implementación de un sistema, el paper aborda una investigación sobre el control distribuído de un sistema utilizando redes sensoras. Y a partir de ello se presentan los temas relacionados, así como las plataformas de hardware y software a utilizar.
En lo personal me parece bien que se presenten éstos temas, sobre todo que se aborden los escenarios en los cuales la implementación puede fallar, se hace solamente una mención a que el sistema quedo un poco limitado en capacidad, sin embargo no se muestran los resultados del mismo.
Parece que el experimento esta muy bien diseñado, se toman en cuenta las diversas perspectivas, desde el contexto, el hardware y software, las consideraciones de los sistemas de control y los escenarios de posible fallo; solo faltaría ver la realización del experimento y los resultados para verificar que efectivamente todo el diseño fue el correcto.



Referencias

Sinopoli, B.; Sharp, C. ; Schenato, L. ; Schaffert, S. ; Sastry, S.S. (Agosto 2008). Publicado en Proceedings of the IEEE, Tomo:91, Edición 8, Páginas 1235-1246. Recuperado en Mayo 2013 desde: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1219474

[IT] Card game extra points 2

  1. Dynamic: "Dynamic dictionaries are constructed from the input and are embedded into the coded message."
  2. Exhaustive: "Write a program and perform some exhaustive tests."
  3. Parity: "The parity bits that permit detecting and correcting a single-bit error."
  4. Similarity: "Sequence similarity usually implies functional similarity."
  5. Conditional: "Choose that code word that has the highest conditional probability given the received sequence, in terms of the transition probabilities.."
  6. Lookahead: "Based on a sliding-window technique using a lookahead.."
  7. Prefix: "A prefix is an affix which is placed before the root of a word."
  8. Analysis: "A real function will now be represented by a combination of other real functions, for those that dislike complex analysis."
  9. Encoding: "The program consists in the commented source code for both encoding and decoding ASCII text."
  10. Incomplete: "If there are collisions of two or more symbols yielding the same value, this is called an incomplete MLD."
  11. Metric: "A metric or distance function is a function that defines a distance between elements of a set."
  12. Occurrence: "."Tornado occurrence by hour of day for the United States
  13. Global: "Published in some global manner so that all who encode or decode have access to them. "
  14. Tree:"Computation tree is a representation for the computation steps of a non-deterministic Turing machine on a specified input."
  15. Wavelet: This can be done as a Fourier, cosine, or sine transform, or with wavelets as we discussed in computer vision.
  16. Precomputed:"There are some precomputed mathematical tables of common logarithms."
  17. Average: "The average error probability E = 1 - R."
  18. Sequence:"Choose that code word that has the highest conditional probability given the received sequence, in terms of the transition probabilities."
  19. Distance:"R-S codes maximize the minimum distance between code words among all linear codes that use the same input/output block sizes"
  20. Access:"Published in some global manner so that all who encode or decode have access to them."
  21. Adaptive: "Invent, implement, and evaluate your own adaptive coding method."
  22. Message: "Error-correcting codes are designed to recover from one or more transmission error and allow determining what code word the message corresponds to even in the presence of errors."
  23. Frequency: "No frequency calculations are possible in the beginning."
  24. Periodic: "We can represent periodic signals as summations of complex exponential functions; this is the Fourier transform."
  25. Correction: "Error correction methods"
  26. Reliability: "Reliability is the ability of a person or system to perform and maintain its functions in routine circumstances"
  27. Fourier: "We can represent periodic signals as summations of complex exponential functions; this is the Fourier transform."
  28. Concatenate: "The concatenate function allows you to join 2 or more strings together."
  29. Transmit: "The channel is used to transmit the messages..."
  30. Quantize: "To compress, we may ignore or quantize some of the frequencies present according to some criteria."

martes, 21 de mayo de 2013

[RT] Tarea 7: Simulación redes ad-hoc

Para ésta semana se debió realizar la simulación de una red ad-hoc. La simulación debe contar con las siguientes características.
  • Llegadas y salidas de nodos utilizando procesos Poisson.
  • Por lo menos un modelo de movilidad
  • Nodos con capacidad inicial de batería
  • Envío de mensajes, el cual consume batería según el radio de transmisión
  • Modelo simplificado
    • La recepción de mensajes no consume batería
    • El radio de alcance es ajustable en cada nodo individualmente
    • Inundación con un TTL que se adapte


Redes ad-hoc

Una red ad-hoc es una red inalámbrica descentralizada, es decir, que no cuenta con un nodo central que controle las comunicaciones, sino que todos los nodos comparten privilegios.

Las redes bajo este modelo son las más simples de construir ya que no se basan en una infraestructura existente. Las tarjetas en modo ad-hoc se configuran con las opciones de fábrica.
Cada nodo participa en el enrutamiento mediante el envío de los datos para otros nodos, y la determinación de qué nodos encaminan los datos se realiza dinámicamente sobre la base de la conectividad de red.

"Se denomina ad-hoc a cualquier conjunto de redes en las que todos los dispositivos tengan el mismo estatus en una red y son libres de asociarse con cualquier otro dispositivo de red ad hoc en el rango de enlace."



El protocolo que rige este tipo de comunicaciones es el 802.11, definiendo todos los parámetros necesarios para establecer la comunicación entre dispositivo inalámbricos. EL principal inconveniente de este tipo de redes radica en el número de saltos que debe recorrer la información antes de llegar a su destino, esto debido a que los nodos pueden conectarse o desconectarse en cualquier momento.



Simulación

Como es de esperarse, la simulación fue realizada en lenguaje Python, utilizando hilos.

Básicamente el script se compone de 3 módulos:

  • Interfaz: Utilizando Tkinter, ayuda a visualizar lo que esta sucediendo en la zona de la simulación.
  • Generador de nodos: Se utiliza una simple función, la cual se corre como un hilo utilizando la librería threading. La finalidad del módulo es agregar nodos a la red emulando un proceso de Poisson, en éste caso el temporizador esta controlado por la función random.expovariate, con un valor lambda de 5.
  • Simulador: Se encarga de arrancar los nodos y movilizarlos uno por uno.

2 clases principales componen los elementos de la simulación:
  • Mensaje: Representa el mensaje que es transmitido durante una conexión entre nodos. El mensaje cuenta con 2 atributos:
    • ttl: Un valor de vida inicial el cual disminuye en 1 cada vez que el mensaje de transmite a otro nodo.
    • estado: Representa si un mensaje aun se puede transmitir. Un mensaje es descartado cuando su valor TTL llega a cero.
  • Nodo: Un nodo capaz de conectarse a la red ad-hoc, los atributos de cada nodo son:
    • id: Número identificador único de cada nodo.
    • color: Color para la visualizacion
    • coord: Coordenadas donde el nodo sera dibujado
    • radio: Radio de alcance del nodo
    • bateria: Bateria del nodo
    • costo: Costo energetico de cada paso
    • velocidad: Velocidad del movimiento
    • vecinos: Vecinos dentro del radio de alcance
    • cola: Cola de mensajes que serán transmitidos
    • estado: Estado del nodo: True=Vivo, False=Muerto
    • instancias: Para guardar temporalmente las referencias a los dibujos del nodo

Los nodos siguen un proceso muy simple en cada paso, los primeros pasos son:
  1. Se calculan los atributos del nodo, los cuales son:
    • Posición inicial (x,y)
    • Radio de alcance
    • Nivel de bateria
    • Velocidad del movimiento
  2. Se inicializa el nodo con los atributos anteriores, de manera transparente se le asignan al nodo otros atributos como:
    • Asignar el ID
    • Asignar el color
    • Consumo energético inicial (1)
    • Lista para almacenar los vecinos
    • Cola de mensajes (5 iniciales)
    • Iniciar el nodo como vivo

Una vez inicializado el nodo, por cada paso se realiza lo siguiente:
  1. Se calcula la siguiente posición del nodo.
  2. Se buscan por aquellos nodos que se encuentren dentro del radio de alcance del nodo (utilizando teorema de Pitágoras)
    • Si un nodo se encuentra a una distancia menor o igual al radio de alcance, dicho nodo entra a la lista de vecinos
    • Mientras no se encuentren 3 vecinos, el radio de alcance ira creciendo poco a poco, dicho crecimiento hace que el nodo consuma más batería por cada paso.
  3. Se transmite el mensaje a los nodos vecinos
    • El mensaje baja en uno el valor TTL
  4. Se dibuja lo que esta pasando en la interfaz
  5. Se modifica el nivel de batería del nodo
    • Si la batería llega a cero, se eliminan sus elementos del canvas, la instancia del nodo y su estado pasa a False, así la simulación lo sacará de la lista de nodos activos y el garbage collector hará el resto.

Video



Código


Referencias

Shaeffer,Elisa. Mayo 2013. Redes Ad-Hoc. Redes de Telecomunicaciones. Recuperado el 20 de mayo de 2013 desde http://elisa.dyndns-web.com/~elisa/teaching/comp/net/adhoc.pdf

[Lab CU] Actividad 14: Reflexión final

Como ya hemos mencionado antes, nuestro proyecto se trata de un automóvil cuya cerradura es abierta por medio de un dispositivo con comunicación NFC, así mismo, desarrollar un sistema que permita ofrecer una serie de servicios personalizados a un automóvil utilizando el acceso NFC como login del usuario, los servicios a implementar fueron:

  • Sistema de personalización por cuentas
  • Acceso seguro
  • Servicios de métrica
    • Medir el kilometraje
    • Promedio de las velocidades
    • GPS Tracking y Rutas
  • Abrir y cerrar puertas
  • Activar y desactivar alarmas
  • Reproducir las música preferida del usuario

Se utiliza un servidor para almacenar los datos de cada usuario y realizar los cálculos necesarios para proveer los servicios basados en GPS



¿Qué se logró?

Desde el lado del software:

  • Se logró instalar un servidor dedicado que se encarga de almacenar la información recabada por el sistema
  • Se logró implementar una base de datos que permite almacenar los datos del usuario y crear una cuenta
  • Es posible separar los datos por usuarios y almacenar la información de cada uno individualmente
  • Una vez que se han almacenado los datos del GPS, es posible realizar todos los cálculos de los servicios ofrecidos en el sistema. La información se almacena en forma de archivos *.kml
    • Calcular el kilometraje
    • Medir la velocidad del automóvil
    • Medir el consumo de combustible
    • Guardar las rutas recorridas
  • Se integro una interfaz gráfica que permite ver todos los datos ordenados por usuarios, configurar el sistema, eliminar el historial
Desde el lado del hardware:
  • Se hizo funcionar el lector RFID/NFC junto con el Arduino Uno y el shield Ethernet
  • Se logró simular la apertura de las puertas utilizando un servomotor
  • Se integró el  módulo GPS con la RaspberryPi que permite realizar el seguimiento del dispositivo en tiempo real
  • Se realizo la conexión del RaspberryPi con el servidor




¿Porqué salio bien?

Salio bien porque fueron cosas muy triviales, la mayoría de los integrantes ya cuentan con experiencia trabajando con estos componentes, así mismo, algunos módulos ya había sido desarrollados con anterioridad lo que nos permitió ahorrar una gran cantidad de tiempo de desarrollo.
Hay que tomar en cuenta que las cosas implementadas son muy simples, por ello también fueron rápidas de implementar.



¿Qué faltó?

  • La integración del módulo Arduino con el RaspberryPi
  • Integrar la comunicación bidireccional entre Arduino-Raspberry-Servidor
  • Cifrar los diferentes canales de comunicación
  • Almacenamiento en tiempo real de los datos
  • Integración de la API NFC de android, por consiguiente, falto el lector de dispositivos NFC que fue cambiado por un lector de tags RFID
  • Integración de los servicios de música y la integración de otros servicios multimedia
  • Integración de redes sociales



¿Porqué falto?

Las cosas que faltaron fueron cosas un como más complejas, hablamos de compatibilidad de protocolos , por ejemplo, para comunicar el módulo Arduino con el RaspberryPi.
Además el cifrado de las comunicaciones es algo complejo pues requiere ciertas configuraciones que no fuimos capaces de completar.
No conocer la API NFC de android nos paró en seco, pues el atractivo de nuestro proyecto iba a tener cambiado por otro módulo más común y fácil de implementar.



¿Porqué no se obtuvieron los resultados esperados?

La razón es la misma que se repite semestre tras semestre, la mala organización
La mayoría de los integrantes del equipo tienen responsabilidades adicionales, como el trabajo; a eso se le suma la carga normal de clases lo que consume una gran cantidad de tiempo.
Así también, se suele minimizar el nivel de complejidad de las tareas a realizar, lo que nos hace entrar en un umbral de confianza temporal; obviamente es de esperarse que conforme nos involucramos más en la realización del proyecto nos damos cuenta que las cosas no son tan sencillas como habíamos creído y para ese entonces gran parte del tiempo disponible para hacer el proyecto se ha ido.
Nunca se siguió en realidad la planificación, al analizarla resulta que la misma esta bien estructurada, el error radica que nunca la seguimos al pie de la letra, lo que provoca retrasos que después son difíciles de corregir.



¿Qué estuvo mal?

  • Tener demasiadas ideas y no identificar aquellas más importantes
  • El alcance del proyecto fue superior a nuestras capacidades de desarrollo
  • No tener una persona con la iniciativa suficiente para clasificar las ideas y retirar aquellas que no son útiles y solo sirven para agregar complejidad al usuario.
  • Dejarnos llevar por el entusiasmo de implementar algo innovador pero no informarnos sobre la disponibilidad de las tecnologías requeridas por nuestro proyecto.
  • No medir correctamente la complejidad del proyecto a desarrollar, y peor aún, invertir tiempo y esfuerzo en su implementación en lugar de diseñar algo alternativo con la misma funcionalidad



Lecciones aprendidas

Las lecciones aprendidas son las mismas semestre tras semestre, siempre al final hay que reconocer que se necesita tener una mejor organización.
La planificación final del proyecto no es solo un requisito más, seguirla al pie de la letra ayuda mucho.
Realizar una investigación mas exhaustiva sobre el proyecto que se va a realizar, qué módulos se requieren, verificar que existan las librerias necesarias, buscar si existe un grupo de personas que ofrezcan orientación o apoyo en el tema.
Delegar tareas y actividades a miembros del equipo que realmente se comprometan a terminar y no solo a mostrar un avance parcial, a final de cuentas, es mejor que los módulos estén terminados y hagan su trabajo a tener algunos módulos terminados y otros inconclusos.

[Lab CU] Actividad 13: Sugerencias finales


Habiendo escuchado la clase final de los compañeros se redactaran también las recomendaciones finales para los proyectos.

...

Casa segura (Rene, Raúl, Iván)


La planeación del proyecto siempre es buena, en su momento, sin embargo hay que ir filtrando las ideas para llegar a tener los resultados esperados, el módulo principal para la detección de movimiento pienso que esta bien, cabe mencionar que pudieron haber implementado un método secundario tomando como base las cámaras que estan instaladas en el sistema. Ya hemos visto en la clase de visión, por ejemplo, que existen muchos métodos para implementar el reconocimiento de movimiento utilizando técnicas de visión computacional, eso les puede ayudar a reducir la cantidad de sensores en todo el sistema.
El fuerte de la aplicación es la interfaz móvil, recomiendo comenzar con algo sencillo, posiblemente un grupo de botones que hagan funciones bastante específicas.
Y bueno, como ustedes ya lo experimentaron, para evitar problemas con el hardware y los componentes es recomendable que lean siempre las hojas de referencia y las especificaciones de cada uno, y con base en eso diseñar la manera en la que se van a comunicar los diferentes componentes.

...

Garage Inteligente (Emmanuel, Max, Carmen, Victor)


Buen logo :)
El prototipo que mostraron en la primera presentación estuvo bien, se pudo haber hecho algo muy simple como mover un servomotor o algo parecido.
En cuanto a la aplicación móvil, parece ser suficiente para lo que el sistema va a realizar, solo cuidar mucho los canales de comunicación bluetooth para evitar algún acceso no autorizado, una simple codificación hash o cifrado RSA es suficiente.
La idea de las invitaciones por código QR me parece interesante, pienso que ayuda mucho para evitar accesos no autorizados y o que el usuario pueda acceder cuando ha olvidado su dispositivo en alguna parte. Sin embargo, el rollo de la creación del lector de códigos QR me parece irrelevante tomando en cuenta que ya existen bastantes librerías que pueden resultar útiles y evitar todo es tiempo de desarrollo.
La funcionalidad general fue alcanzada, no hay que preocuparse de más, solo lograr la integración de los diferentes componentes

...

SeguriLap (Obed, Ave, Pedro, Jona)


Me pareció un buen proyecto desde el principio, algo muy útil que pienso debería integrarse en las computadoras.
En cuanto a los puntos que les faltaron  pienso que se pudo haber algún sistema alterno de  autenticación para que el usuario para que no exista ese punto en contra, les reconocimiento algo parecido al sistema implementado en Android el cual intenta detectar al usuario y si no detecta te muestra un tecladito para ingresar la contraseña.
En cuanto a la interfaz, una ventana pequeña con las opciones necesarias que ustedes consideren como sensibilidad de los sensores, activar o desactivar módulos, etcétera
Ya por último, tomar en cuenta los proyectos que hemos visto de visión, como ustedes mencionan, el proyecto de Victor o Pepe les puede servir de mucho para optimizar su proyecto.
Por todo lo demás, parece que funciona todo bien.

...

Galería Inteligente (Blanca, Vanessa, Adriana, Rodolfo)


Hasta ahora me quedo claro lo que es su proyecto, no sabía que el sistema controlará la iluminación se una vitrina. Es una buena iniciativa, sobre todo aquí en la ciudad en donde muchas veces no existen guías que te expliquen las obras de arte en los museos.
En cuanto a lo que les falta consideró que para la funcionalidad actual las gráficas no parecen ser necesarias, consideren solo contar el número de registros en una base de datos, o un contador dentro del mismo sistema para contar cuántas veces se enciende la vitrina.
El problema del arduino para retener el sonido, no es necesario, integrar incluso un reproductor mp3 que tenga almacenados los sonidos para reproducirlos cada ves que la obra se enciende podría ser de gran ayuda para emular lo que quieren lograr, consideren incluso un dispositivo Raspberry para almacenar los contenidos necesarios.

...

Alarma de automóvil (Alex, Ricardo, Sergio, Roberto)


La idea es muy buena, el utilizar la llave para activar todo el sistema de alarmas. Puede integrarse incluso a cualquier cerradura existente ya que se ve que es muy sencillo el mecanismo tal como ustedes lo explicaron.
Fue bueno que hayan implementado la solución en tamaño real, sin embargo, pienso que eso pudo haberles quitado algo de tiempo para lograr la funcionalidad requerida.
Al igual que con la casa inteligente, recomiendo remover el sensor PIR y utilizar mejor una cámara oculta y algunos de los algoritmos que utilizamos en visión computacional para lograr mejores resultados.
En cuanto a las cosas que faltaron hacer, siempre es bueno ayudarse se un dispositivo móvil para utilizar los sensores incluídos y los métodos de comunicación, ya sea WI-FI o GSM.
Recomiendo además algún tipo de base de datos que les permita llevar un mejor control sobre los datos que se almacenan del proyecto

...

Localizador bluetooth (Omar, Saúl Isaías)


La idea final es bueno, puede ser útil para verificar si los dispositivos bluetooth con los que cuentas están en tu cuarto o en tu casa.
La interfaz parece ser decente para el alcance, posiblemente algo más usable y un mejor layout para organizar mejor los contenidos ya que no tomaron en cuenta que el diseño es diferente en una tablet que en un celular.
Recuperar la idea principal e integrar un radar de dispositivos para localizarlos cuando se te pierdan o algo de ese tipo.

...

Oficina Inteligente (Lupe, Osvaldo, Triana, Esteban)


Podrían implementar una interfaz básica donde cada usuario tenga sus tags, y él mismo pueda activar o desactivar los tags que haya extraviado, implementar un acceso doble lo considero innecesario.  No me había quedado claro que cada tag serviría para situaciones diferentes, pienso que en cierto momento puede resultar muy incomodo cargar con muchos tags para realizar diferentes actividades.
Hay que implementa un servidor y una base de datos que almacene internamente toda la información recabada, además, puede ser posible automatizar algunas funciones utilizando el mismo y que el usuario configure algunas tareas utilizando su celular.
Las funciones son buenas, parece que el proyecto hace la gran mayoría de las cosas que dijeron que haría.

...

Despertador inteligente (Ramón, Cecy, Roberto)


El proyecto fue muy bueno y original, un buen concepto para implementar en un proyecto real.
Para un primer prototipo la idea de los componentes son suficientes, sin embargo, un sensor más confiable es recomendable en lugar de utilizar los push buttons, sin embargo, el diseño arquitectónico es muy bueno y funciona para demostrar la idea global del proyecto.
Pienso que todo el rollo sobre el tono utilizado es irrelevante, el usuario debería poder seleccionar su propio sonido para tener una experiencia mas personalizada, y pues lo pueden controlar desde la interfaz android, es algo trivial.
La funcionalidad básica del proyecto la tienen, eso les permite expandir su proyecto a otros productos sin mucho problema.
Por todo lo demás, los detalles faltantes son solo detalles.

...


Esas fueron mis observaciones y recomendaciones para los demás proyectos.

domingo, 19 de mayo de 2013

[Lab CU] Actividad 12: Ideas para negocios

Esta actividad consistió en pensar ideas que tengan como característica principal algo relacionado con cómputo ubicuo, realizamos una lluvia de ideas en clase y de ahí tomé algunas.
Los nombres pueden ser algo largos, falta ponerles un nombre intuitivo para vender la idea.

...

1. Códigos QR para tiendas

Mercado: Tiendas de conveniencia


Distribución:
Como un producto, instalación por tienda aproximadamente $50,000 cada una.

Problema a solucionar:
Actualmente las tiendas de conveniencia están teniendo un gran crecimiento en la ciudad. En los últimos años este tipo de tiendas han sido blanco de la delincuencia lo cual causa grandes pérdidas a las mismas. Es necesario buscar una solución a dichos problemas, que permita un mejor manejo de las entradas y salidas de productos en la tienda, así como brindar un poco mas de protección a en cuanto a los productos que ahí se ofrecen

Propuesta:
El sistema que se propone consiste en retirar de los anaqueles todos los productos y reemplazarlos por fotografías de los mismos, cada una de las fotos, en la parte de abajo, tendría un código QR que se podrá escanear desde nuestro dispositivo móvil.
El sistema se complementa con una aplicación que permitiría, al momento de capturar un código QR, ver el precio del producto en cuestión, su fecha de caducidad, si hay posibles promociones combinando su compra con la de otros productos, y por supuesto confirmar la compra del mismo y la cantidad de artículos a llevar. El cliente desde su dispositivo móvil podrá ir construyendo la lista de los artículos que desea adquirir, la lista podría pagarse de forma electrónica y enviar la lista a un servidor para que la tienda entregue los artículos en la puerta de la casa del cliente, o, descargar la lista al sistema de la tienda ya sea mediante NFC, bluetooth o WI-FI; mediante este método el usuario podrá pagar los artículos directamente en la tienda y recogerlos en ese mismo instante.
Los artículos permanecerían bajo resguardo de la tienda, en el almacén y los refrigeradores, lugares a los que no tiene acceso la gente. El sistema permitiría llevar un control de los artículos que se han comprado, cuántos salieron del almacén, cuántos existen en almacén y cuántos más hay que adquirir para recuperar el stock. Así mismo, al no estar los productos directamente al alcance de los usuarios, se disminuirían los robos y daño a los artículos.

Desarrollo:
En éste caso se necesitaría trabajar con la base de datos del sistema, posiblemente unificar las mismas de hacer falta. Posteriormente crear un sistema de códigos QR y relacionar cada uno con un producto, los QR podría ser estáticos para cada producto y que la información se baje de un servidor al instante o que  los QR se actualicen con la información de los productos según se considere necesario; se necesitaría programar éste sistema relacional.
También se necesitaría programar la aplicación móvil, que no representaría mucho reto.
Programar los web services para el envío y recepción de los pedidos.
Diseñar e implementar el sistema de comunicación seleccionado, ya sea NFC, bluetooth o WI-FI, para la recepción de los pedidos en la misma sucursal.

...

2. Códigos QR para la entrega de medicamentos

Mercado: Farmacias


Distribución:
Como un producto, instalación por tienda aproximadamente $50,000 cada una.

Problema a solucionar: 
Mantener un mejor control sobre la entrega de medicamentos a los pacientes que acuden a visitar un centro médico, evitar que las recetas médicas sean falsificadas con el fin de obtener medicamentos de forma ilícita, reducir y en el mejor de los casos, eliminar la dependencia del papel para la obtención de una receta médica. 

Propuesta:
El sistema que se propone consiste en escribir un código QR en lugar de una receta médica que contenga toda la información necesaria para la entrega de los medicamentos.
Cada código QR contendría de manera codificada la información del médico quien esta recetando los medicamentos, también contendría toda la información de los medicamentos necesarios para el tratamiento del paciente.
El código QR podría también contener alguna codificación para que el mismo sea leído solo por una o varias farmacias especificas.
Este sistema permitiría tener un control más estricto sobre la entrega e intercambio de recetas médicas.

Desarrollo:
La aplicación es muy sencilla, solo en necesario intercambiar el típico sistema de escritura de recetas, ya sea a mano o de forma impresa. Ahora el sistema imprimiría un código QR en una tarjeta pequeña la cual se intercambiaría en las farmacias en lugar de la típica receta. 

...


3. Sistema para el control de entradas y salidas en hospitales mediante RFID


Mercado: Primeramente hospitales, aunque se puede extender a otro tipo de establecimientos como asilos.


Distribución:
Como un producto, despliegue en toda la cadena de hospitales en aproximadamente $1,000,000 que ya incluye el paquete de tags necesarios, despliegue e instalación de sensores en los accesos y la instalación y configuración del sistema.


Problema: 
Muchos de los hospitales de la ciudad no cuentan con un control muy estricto sobre las entradas y salidas de personas a sus instalaciones, esto debido a que los hospitales públicos tienen cada día mas y mas pacientes. El problema principal a atacar es la entrega de recien nacidos, se intenta evitar que los recien nacidos sean entregados a las personas equivocadas.

Propuesta:
El sistema físico consiste en tarjetas o tags RFID o NFC donde cada uno contiene la información básica del recién nacido y la información de quienes son sus padres. Los tags, pulseras o tarjetas permanecen con el recién nacido hasta que un médico calificado se la retira. Será necesario proveer al hospital de sensores en los accesos para cuando un dispositivo no ha sido desactivado o retirado por un doctor autorizado.
Obviamente, si el tag no es desactivado y éste cruza algún sensor de acceso, el mismo lanzaría una alarma sonora y visual para localizar el lugar del incidente.
Así mismo, se podría implementar un dispositivo especial para las madres mediante el cual los tags de los recién nacidos cambien de color si estos se encuentran con sus madres respectivas.
Un sistema similar puede implementarse en asilos donde es necesario cuidar a los residentes para que no salgan de las instalaciones; funcionaría de forma similar al sistema para los hospitales, cada residente tendría una pulsera RFID/NFC y sensores en las puertas de las instalaciones de los asilos, los sensores se activan cuando un residente sale de las instalaciones y si dispositivo no ha sido desactivado.
También el sistema puede complementarse con un sistema de localización en interiores, registrando cada acceso de los residentes a cada habitación del edificio.

Desarrollo:
El sistema es un tanto complejo de implementar, primeramente hay que desplegar el sistema de sensores y alarmas en los accesos, se puede implementar algún tipo de sistema ya existente.
Se necesitaría desarrollar la base de datos que almacena la información de los tags RFID. También se necesitaría desarrollar la interfaz que permite activar o desactivar los tags de manera autorizada, puede ser un servicio web o un software de escritorio.
Igual de importantes son los métodos para mantener el sistema seguro, ya sea aplicar técnicas de encriptación de canales de comunicación o de la base de datos o de todo el contenido de los servidores.

...


4. Asistente de recorridos de transporte público


Mercado: Usuarios de transporte público y concesionarios de rutas de transporte


Distribución:
Como un producto para los concesionarios, despliegue del sistema en $100,000, no incluye el mobiliario de las paradas de autobus, solo la instalación y configuración del sistema. Como un servicio para los usuarios, la aplicación sería distribuida gratuitamente.


Problema: 
Se vive una problemática muy grave en el transporte público de la ciudad, por lo que ya hace falta desde una modernización hasta una re estructuración de las rutas de transporte. Es difícil para los usuarios implementar correctamente un itinerario de viaje que les permita llegar a tiempo a su destino ya que es imposible conocer los tiempos en los cuales los camiones llegarán a las paradas, es por ello que los usuarios llegan tarde a su destino.

Propuesta:
Con la modernización de la forma de pago en el transporte público actualmente la mayoría de las rutas de transporte ya cuenta con dispositivos GPS y módulos GSM instalados, se puede aprovechar ésta información para proveer a los usuarios las diferentes tablas de tiempo de las unidades para que así formen sus propios itinerarios de viaje en transporte público.
Tomando en cuenta que existe un sistema unificado para la recepción de los datos GPS de cada ruta, es posible ubicar en tipo real cada ruta y posicionarla en un mapa. Se puede desarrollar una webapp que permita visualizar el mapa y filtrar la ubicación de las unidades por ruta de transporte público.
El usuario primeramente podría visualizar las diferentes rutas que satisfacen su trayecto, una vez seleccionadas las rutas, el usuario podrá ver las unidades de cada ruta y su ubicación en tiempo real para así calcular los tiempos para abordar su primer camión y transbordar en el siguiente.
Esto permitiría que el usuario aprovechara los tiempos de espera, en el mejor de los casos para tomar un café y leer el periódico, y en el peor de los casos decidir tomar un taxi.

Desarrollo:
Tomando en cuenta que ya existe el sistema para la recolección de los datos GPS, solo se necesitaría tener acceso a dicho sistema para la obtención de dicha información.
Se tendría que implementar el sistema que ubica cada una de las rutas en tiempo real en un mapa posiblemente utilizando la API de Google Maps.
Se tendrían que diseñar los algoritmos, posiblemente de tipo heurístico, que ayudarían a buscar las rutas que satisfacen el trayecto de los usuarios. Lo demás consiste simplemente en ofrecer la información a los usuarios, ya sea mediante una aplicación móvil o instalando pantallas informativas en cada parada o incluso en cada camión.

...

5. Asistente electrónico para los árbitros en un juego de fútbol

Mercado: Federaciones y ligas de fútbol

Problema: 
La velocidad con la que se desarrollan los partidos de fútbol muchas veces hace imposible analizar cada jugada en el acto, así mismo, es imposible cambiar el estilo con la que se marcan las faltas ya que el fútbol es un juego de rapidez.

Propuesta:
Se propone la creación de un sistema que asista a los árbitros a tomar decisiones sobre cuando un balón abandona las zonas de juego, así se podrán juzgar mejor éste tipo de situaciones.
Así mismo se podría analizar cuando un balón cruza de forma dudosa las líneas de gol, por ejemplo.
Las cámaras se ubicarían en las esquinas del campo de juego


...

[Lab RT] Actividad 12: Redes Ad-hoc

Para ésta semana continuamos con los temas de lecturas científicas, ahora el tema es referente a técnicas de usabilidad en sistemas de cómputo ubicuo, el documento seleccionado fue:

 ... 
MANET POSSIBLE APPLICATIONS WITH PDA IN WIRELESS IMAGING ENVIRONMENT

 El paper aparece en: IEEE International Symposium on Personal, Indoor and Mobile Radio Communications
 Tipo de producto: Conferencia
Fecha de publicación: 2002 
Autores: M. Guarnera, M. Villari, A. Zaiaz, A. Puliafito
... 

Resumen

El paper ya tiene un poco de tiempo, menciona que los sistemas de comunicación inalámbrica se están convirtiendo en una tecnología que permite acceder, compartir y procesar datos. Los futuros usuarios tendrán acceso a internet inalámbrico a través de dispositivos tipo PDA. Las redes ad-hoc móviles o MANET son parecidas a las redes inalámbricas pero que no dependen de la presencia de una infraestructura por cable. Se identifican algunos de los posibles campos de aplicación de tales sistemas inalámbricos, analizando sus ventajas y desventajas.


Introducción

Gracias a los últimos avances tecnológicos, los dispositivos móviles están disponibles para cualquier usuario, su  potencia computacional es casi comparable con la de algunas computadoras de escritorio. Esto ha llevado a la creación de un nuevo tipo de mercado donde se ofrecen dichos dispositivos para desarrollar nuevos y sofisticados servicios con el fin de acceder a los datos en cualquier lugar y en cualquier momento. Los PDA aprovechan dichos servicios, y suelen almacenar información confidencial. Actualmente los dispositivos móviles se adaptan a cualquier situación  y las redes ad hoc permiten seguir esta dirección, ya que se pueden crear con cualquier dispositivo compatible y en cualquier tipo de ambiente ya que no necesitan ninguna infraestructura.
Los campos de aplicación de estas redes puede ser:


  • Militar: es decir, es posible equipar soldados con dispositivos en entornos enemigos para que puedan comunicarse entre sí.
  • Red de área personal, es decir, impresoras, PDA, teléfonos móviles, aplicaciónes de negocios.
  • Aplicaciones civiles, es decir, taxis, coches, aplicaciones de emergencia, dispositivos de emergencia.
  • Dispositivos de inteligencia en el hogar.


Una gran cantidad de desafíos se interponen en el desarrollo de esta tecnología inalámbrica como un ancho de banda, la falta de estándar global, el mercado, etc.
A pesar de ello, una gran cantidad de oportunidades se dan.

En el paper se demuestra cómo MANET persegue el objetivo de comunicarse en cualquier momento y en todas partes al pasar de un lugar a otro. Se presentan algunas aplicaciones posibles que pueden ser desarrolladas en un entorno MANET y se analiza un prototipo de  cómo crear un sistema de procesamiento de imágenes a distancia mediante un servicio corriendo en una red ad-hoc.


Red Ad hoc


Son ​​redes inalámbricas que se han caracterizado por la correr en ausencia de una infraestructura fija. El uso de este tipo de redes se hace en circunstancias especiales, tales como eventos desastrosos, la reducción o eliminación del cableado y el intercambio de información entre los usuarios independientemente del medio ambiente.


Los dispositivos que pertenecen a la red son capaces no sólo para transmitir y recibir datos, sino también para gestionar todas las funciones de la red en un entorno distribuido, así como implementar métodos de enrutamiento de paquetes, seguridad, QoS, etc. Los dispositivos no son sólo terminales, se trata de nodos que tienen una interfaz inalámbrica, y son por lo general sistemas móviles de varios tipos, desde los sencillos como PDA hasta computadoras portátiles. Estas redes se caracterizan por tener un ancho de banda limitado con capacidad variable, son topologías que varían en el tiempo dependiendo no solo de la posición de los nodos, sino también en función de la terminales, ya que pueden entrar y salir de la red en cualquier momento, sin embargo la conectividad de la red debe mantenerse a fin que las aplicaciones y los servicios funcionan correctamente.

La desventaja es que cuentan con una cantidad limitada cantidad de memoria y energía, la cual generalmente depende de la potencia de una batería.
La comunicación entre los nodos se puede hacer a través de caminos multi-hop. Por otra parte, para la inserción de un nodo a la red se necesita que toda la configuración necesaria sea automática.

Las topologías de red pueden ser variadas, se basan en las aplicaciones a las que se destinan las redes. Para construir redes ad hoc, es posible usar dos tecnologías: IEEE 802.11 y Bluetooth.
El estándar IEEE 802.11 representa una buena plataforma para implementar redes ad hoc, ya que es muy simple. Bluetooth representa realmente una red de área personal (WPAN) y permite la conexión de dispositivos dentro de radio de diez metros.


Aplicaciones


Se propone un sistema de adquisición de imágenes. Para ello se requiere de una cámara digital con un cable de interfaz de red, una webcam inalámbrica, el PDA va conectado a una cámara fotográfica digital, algunos teléfonos móviles y PDAs equipados con una cámara. Todos estos dispositivos se conectan con el fin de crear una red ad hoc.


a) Transferencia de archivos:
Podría se útil tener la posibilidad de descargar las imágenes adquiridas por otros dispositivos en forma de thumbnails para su pre-visualización. Para ello, es necesario establecer una conexión inicial e intercambiar información tal como las capacidades de vídeo, tipo de imágenes para descargar, tipo de pantalla en los dispositivos, la cantidad de colores en las pantallas, etc. De esta manera se es posible codificar las mismas para que sean compatibles con el máximo número de dispositivos.}

b) Mando a distancia
Podría ser útil tener la capacidad de controlar el dispositivo a distancia. Con ello sería posible tomar una foto con otros dispositivos y utilizar las herramientas de edición de imagenes individualmente, tales como el balance de blancos, el formato, dimensiones y calidad.

c) Visualización a distancia
Si algunos dispositivos conectados no cuentan con una pantalla para ver las fotos recien tomadas, a través de la pantalla de otro dispositivo sería posible ver la foto tal y como se tomó. Podría ser útil seleccionar uno de los dispositivos conectados y convertirlo en un visor. El servicio podría ser gestionado por un solo dispositivo y éste decide qué dispositivo de la red va a ver la fotografía.
El servicio tiene que tener en cuenta las características de la red en términos de la banda disponible. El paper menciona un ejemplo:
Una imágen con resolución VGA (640x480), no se puede transmitir como una secuencia VGA por una red 802.11, para transmitirla se requiere una velocidad de 15 fps, y un ancho de banda de 40Mbps.
Por lo tanto, en primer lugar, tenemos que escalar cada frame a resolución QSIF (160x120) o QCIF (176x144). Por otra parte, las imágenes a escala no pueden ser de color, ya que en este caso
tenemos tres veces la cantidad de datos del sensor. La solución podría estar en comprimir los datos con un algoritmo simple, como IGS, y luego transferir la trama codificada por la conexión inalámbrica.
Todo ello para ahorrar un 83% del ancho de banda.

d) Videoconferencias
Se espera que la configuración de la red permita que nuevos usuarios se unan al servicio y desconectar en cualquier momento. Los mecanismos de seguridad deben ser implementados a nivel de aplicación para evitar que usuarios no deseados se unan a las videoconferencias.

e) Procesamiento remoto
Podría ser útil utilizar los demás dispositivos como co-procesadores de color a partir de los datos en bruto del sensor. Obtener la imagen de un dispositivo a distancia y realizar a distancia el proceso de color.


Procesamiento de imágenes en un entorno MANET

Para el prototipo presentado en paper se utilizan algunos dispositivos PDAs inalámbricos y una LCDC (Low Cost Digital Camera) como dispositivo de adquisición de imágenes. Los dispositivos interconectados entre sí emulan cámara fotográfica digital. La conexión se realiza con un RS232 a 15Kbps. El entorno de la aplicación consiste en dos tipos de aplicaciones: un emulador en las PDAs y otro emulador de DSC. El software es capaz de determinar el número de dispositivos HLE (que han cargado el software de gestión de imágenes adecuado) y  decidir a quién enviar las imágenes adquiridas.

A través de la aplicación gráfica que se ejecuta en los PDA, es posible conocer en todo momento y en cualquier lugar, el número de dispositivos de adquisición de vídeo que están conectados a la red. Y es posible controlar alguno a distancia.

Los resultados de las pruebas realizadas han establecido un alcance máximo de red de 50 metros. 

Para mejorar el rendimiento del sistema diseñado es necesario adoptar el sistema operativo Embedded Linux ya que permite mantener toda funcionalidad descrita anteriormente y permite utilizar protocolos y arquitecturas oficiales y no oficiales para comunicación inalámbrica. Además utilizar una herramienta desarrollada por el MIT que ofrece enrutamiento, descubrimiento y mecanismos de localización geográfica. 


Conclusión
Las redes ad-hoc (MANET) pueden correr bastantes tipos de aplicaciones y sistemas inalámbricos de comunicación personal. A pesar de que se han pensado originalmente para fines militares y situaciones de emergencia, las MANET son aptas para acceder a información multimedia en diversos dispositivos. El paper ya es algo viejo, actualmente se tienen mejores métodos, más rápidos y confiables para la compartición de contenido multimedia, tal es el caso del protocolo DLNA, sin embargo, me parece una buena aproximación para la implementación de éste tipo de redes, posiblemente no es la primera investigación de este tipo pero es una buena aproximación.


Referencias


M. Guarnera, M. Villari, A. Zaiaz, A. Puliafito, 2002, MANET Possible applications with PDA in wireless imaging environment, publicado en "IEEE International Symposium on Personal, Indoor and Mobile Radio Communications" [conferencia], recuperado el 18 de mayo de 2013 desde http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1046573

jueves, 16 de mayo de 2013

[VC] Proyecto Final: Detección de señales de tráfico

Presentación




Reporte


Vídeos
Prueba en un ambiente real, sujeto al ruido. No todas las señales se detectan, solo aquellas utilizadas en el entrenamiento, como son el signo de cruce peatonal y parada de autobus


Prueba simple para detectar las señales utilizadas en el entrenamiento.

Código

martes, 14 de mayo de 2013

[Lab RT] Actividad 11: Satélites

La comunicación satelital es un tipo de radiocomunicación que sirve para transmitir diferentes tipos de señales, ya sean de audio, voz o datos, mediante el uso de algún sistema de satélites.
Un satélite artificial es un dispositivo estacionado en el espacio con el propósito de servir a telecomunicaciones usando frecuencias de radio y microondas.

Fuente de la imágen: http://concurso.cnice.mec.es/cnice2006/material121/unidad3/satelite2.htm


Los satélites orbitan la tierra a diferentes niveles según el uso que se les vaya a dar:

  • Órbitas bajas: Son satélites que se sitúan entre unos 500 a 2000 km sobre la superficie terrestre. En éste tipo de órbitas los satélites viajan a grandes velocidades y pueden dar la vuelta a la tierra en menos de 2 horas. Dado la altura a la que se encuentran, un sistema satélital en ésta orbita necesita una gran cantidad de dispositivos para cubrir grandes extensiones.
  • Órbitas medias: Su altura oscila entre los 8000 a 20000 km sobre la superficie terrestre. A ésta altura se necesitan 3 o 4 satélites para tener una cobertura global.
  • Órbitas geoestacionarias: Su altura se encuentra exactamente a los 35786 km, y se encuentran directamente sobre el Ecuador. Orbitan en sincronía con la Tierra por lo que tienen un periodo de 24 horas. A ésta altura cada satélite es capaz de cubrir un tercio del planeta.
  • Órbitas altas: Por su altura describen una órbita muy elíptica  en el perigeo se encuentran a unos 500 km de altura y en el apogeo a unos 50000 km. Su periodo oscila entre las 8 y 24 horas.

Fuente de la imágen: http://radiomen.tripod.com/satelites.htm 


Además existen dos tipos de satélites de comunicaciones

  • Satélites pasivos: Se encargan de reflejar las señales recibidas sin llevar a cabo ninguna otra tarea.
  • Satélites activos: Amplifican las señales que reciben antes de retransmitirlas hacia la Tierra. Son las más comunes.
Los satélites básicamente se encargan de transmitir señales a grandes distancias, incluso a lugares muy remotos e inaccesibles del planeta de forma rápida y barata; así por ejemplo es posible proveer servicios de televisión, radio, telefonía e internet en zonas rurales, boscosas o desérticas, o en lugares donde los sistemas cableados no son viables o difíciles de instalar.

Aplicaciones de las comunicaciones satelitales


Existen diferentes usos para las comunicaciones satelitales, entre ellos se encuentran:

1. Telecomunicaciones

Televisión y radio

Posiblemente es la principal aplicación de los satélites de comunicaciones es la transmisión de contenidos de televisión o radio.
Las empresas de televisión y de radio transmiten desde sus estaciones terrestres a los satélites los cuales las retransmiten a diferentes zonas sobre la Tierra o directamente al domicilio del usuario.
Un único satélite puede dar servicio a varias cadenas de televisión en un país e incluso a todo un continente. La digitalización de la transmisión de las señales ha elevado enormemente el potencial de los satélites en términos de cantidad de cadenas, lo que ha abierto la puerta a nuevos servicios vía satélite. Las emisiones las pueden recibir tanto los usuarios privados como los públicos mediante claves que dan acceso a la conexión satélite. En la actualidad, gracias a los satélites, todos los hogares poseen acceso a las mismas cadenas, tanto si son de calidad estándar o de alta definición.
Los sistemas que hacen uso de ésta tecnología se conocen con el nombre de DBS (Direct Broadcast Satellite) y en ésta clasificación encontramos a las constelaciones de satélites HotBird, Astra y SatMex.

Telefonía satelital

Gracias a las comunicaciones satelitales es posible contar con un pequeño dispositivo móvil que permite estar comunicado en tiempo real en cualquier parte del planeta.

Éste tipo de dispositivos hace posible contar con un sistema de comunicación en áreas muy remotas del planeta.
Las constelaciones de satélites Sirius, Inmarsat y XM Satellite Radio Holdings ofrecen este tipo de servicios.

Internet de banda ancha

Este tipo de satélites hacen posible proporcionar el beneficio del internet a lugares lejanos del planeta.
En años recientes se han desarrollado satélites que permiten alcanzar tasas de transferencia de hasta 70 Gbps, lo cual permite un acceso a internet en tiempo real, de super alta velocidad y de alta capacidad de usuarios.
En ésta clasificación encontramos a los satélites Hylas y Ka-Sat.

Comunicaciones de alta seguridad

Son utilizados principalmente por agencias militares.Las comunicaciones militares consisten en enlaces protegidos con una gran flexibilidad de cobertura.

Independientemente del ambiente hostil y de la situación, las comunicaciones deben estar garantizadas y aseguradas por lo que los requerimientos de las agencias militares son muy especificos en comparación con otras redes terrestres. Además necesitam mayor flexibilidad en cuanto a cobertura, potencia, frecuencias, ancho de banda, etcétera.
En esta clasificación encontramos a la constelacion Skynet.


2. Navegación 

Se tratan de satélites geoestacionarios que sirven para proporcionar información sobre la ubicación, velocidad y tiempo a personas que cuenten con el equipo necesario sobre la tierra.

Éste tipo de satélites cuentan con una excelente precisión y proporcionan la ubicación exacta de un individuo o dispositivo que se encuentre en la superficie del planeta.
Actualmente existen dos constelaciones de satélites que proporcionan éste servicio, la constelación GPS (Global Positioning System) y GLONASS, más la constelación GALILEO que está en construcción por la Unión Europea.
La navegación por satélite hace uso de un concepto llamado trilateración para ubicar un objeto en tiempo real sobre la tierra.


3. Clima

Sirven para monitorear los cambios en la atmósfera terrestre y analizar su composición a lo largo de los años.
Fue entre 1970 y 1980 cuando se comenzarón a utilizar éste tipo de satélites lanzados en una gran variedad de misiones espaciales.
Dichos satélites cuentan con diferentes tipos de instrumentos que les permiten medir la humedad y estimar la velocidad del viento, también realizan mediciones de la radiación infraroja y ultravioleta que llega al planeta .
En ésta clasificación entran las constelaciones satelitales GOES y METEOSAT


4. Cartografía y observación planetaria

Son necesarios para llevar un control sobre las condiciones ambientales en distintos puntos del planeta. Su objetivo es medir la calidad del medio ambiente. Se utilizan para medir y monitorear los recursos naturales del planeta mediante la recolección de datos que permiten entender los diferentes procesos e interacciones entre las masas de tierra, los océanos y la atmósfera. La información recolectada es de mucha utilidad para la agricultura, geología, cartografia, defensa del medio ambiente, entre otras.

Profundizando un poco en la cartografía,  los satélites han permitido mejorar de una manera impresionante la precisión de los mapas y a su vez ha permitido disminuir los precios.
En éste aspecto los satélites han permitido crear todo tipo de mapas, desde medir las elevaciones de las montañas, contabilizar y ubicar rios, mejorar los mapas carreteros y de las ciudades, y muchas aplicaciones mas.


Mecanismos para interceptar las comunicaciones satelitales.

Los riesgos al interceptar una transmisión satelital son muchos y puede comprometer la seguridad de una nación. La preocupación reside en que al interceptarse una señal se puede hacer mal uso del enlace y de la información recolectada.

Mecanismo de acción preventiva y ofensiva

La acción preventiva consiste en colocar obstáculos para que un mensaje no pueda continuar a su destino. Típicamente, estas medidas sólo se emplean durante los tiempos de hostilidades abiertas y con la intención de eliminar los recursos de los enemigos. Un método para llevar a cabo este fin es bloqueo de la señal vía satélite utilizando interferencia, ésto implica la transmisión señal modulada a la terminal de recepción de un objetivo en la misma frecuencia de la señal de los remitentes. Las llamadas "inundaciones" consisten en desbordar el receptor con una señal de ruido y la prevención de la interpretación de cualquier señal original. Esto puede ser combatido utilizando señales moduladas y secuenciadas, y es un medio eficaz para prevenir que cualquier señal sea recibida. 
Otro método utilizado es la acción ofensiva abierta. Con el fin de evitar cualquier intercambio de comunicaciones, una fuerza hostil podría destruir una estación en tierra o un satélite fundamental para una operación.

Mal uso de las señales

Éste mecanismo suele ser pasivo e indetectable. Muchas veces consiste en robar los códigos de acceso a las constelaciones satelitales para tener acceso "oficial" a las transmisiones y con ello la mayoria de las veces obtener el control de una estación transmisora y los satelites.
Otro método más simple es interceptar las señales en tierra, lo que es muy simple si se sabe donde la posición de la transmisión y el tiempo. Para ello se necesita una estación modificada en tierra que permite escuchar las transmisiones.

Existe un caso llamado "Privateer" que consiste en la "piratear" las comunicaciones satelitales utilizando objetos comunes.
Los componentes fueron, como en todo sistema satelital, un receptor y un decodificador. El equipo completo contenía una antena, un preamplificador, un radio-escaner. Todos estos componentes se consiguen fácilmente hoy en día. Diversos dibujos y esquemas fueron encontrados en internet mediante los cuales fue posible ensamblar todo y construir los componentes faltantes, la mayoria con materiales como PVC, tubos de cobre, etcétera. Por último, se consiguio un programa freeware en internet el cual se instaló en el decodificador el cual era una copia 100% operable que servía para decodificar las señales de la constelación NOAA (satélites meteorológicos). Todos los componentes se conectaron a una computadora de bajo rendimiento, el cual pudo traducir en imágenes de mapa bits los datos recolectados por el receptor.
Éste caso demostro lo sencillo que es interceptar las señales con componentes simples que toda la gente tiene a su alcance.


Mecanismos para la protección de las señales satelitales


En las épocas tempranas de las telecomunicaciones, los mecanismos de protección de las señales satelitales consistían en eludir las amenazas temporalmente, sin embargo esto resulto insuficiente con el paso del tiempo. Ahora existen 4 mecanismos, cada uno con sus deficiencias, para proteger las comunicaciones satelitales contra ataques:

  • Evasión: Consiste en la capacidad de las naves espaciales para modificar su curso para evitar cualquier interrupción en su funcionamiento. Por lo general, el curso de un satélite es predecible, pues es definido desde la planeación de la misión. Esto aumenta la vulnerabilidad de los satélites. Existen problemas en este mecanismo, ya que un satélite puede quedar inoperable. Es necesario implementar sistemas de computo capaces de operar aun cuando la comunicación con las estaciones terrestres esté perdida y así poder volver a rectificar su rumbo y volver a operar correctamente. Además, los sistemas de propulsión están diseñados para un cierto ciclo de vuelo, utilizar el combustible en éste tipo de eventos puede reducir el tiempo útil del satélite al agotar sus reservas más rápidamente.
  • Preparación táctica: Consiste en preparar al satélite para que sea capaz de protegerse contra ataques, que pueden ir desde dispositivos de escucha y transmisión pasiva hasta armas montadas en el cuerpo del satélite (dependiendo de su aplicación).
  • Alteración del haz de comunicaciones: Posiblemente el método más simple para evitar los ataques a las telecomunicaciones. Consiste en minimizar el espacio de cobertura de tal forma que no de lugar a la interceptación  de las señales satelitales. Por lo general se logra concentrando la señal en un haz que solo es posible escuchar en un ancho muy reducido y que por lo general es dirigido directamente a las antenas receptoras oficiales. El método requiere una sincronización perfecta entre el satélite y la estación receptora, así como una gran potencia de transmisión basada en rayos láser que permite dirigir el haz de comunicaciones de forma muy precisa.
  • Cifrado: Posiblemente el método más empleado en las telecomunicaciones. No es necesario afectar de forma física ninguno de los dispositivos terrestres, ni el transmisor ni la antena. Consiste simplemente en cifrar los datos mediante cualquier método y descifrarlos en las estaciones destino. El principal problema es que las capacidades computacionales actuales permiten romper los mecanismos de cifrado en cuestión de segundos.

Conclusiones

Debido a la masificación de las telecomunicaciones y a la variedad de servicios prestados a través de las mismas, algunos bastante comunes y otros bastante delicados, es necesario proteger las comunicaciones satelites contra ataques de cualquier tipo.
Ya sea para proteger los intereses monetarios de una empresa de televisión de paga o la seguridad de una nación, las señales satelitales cuentan con distintos mecanismos que aseguran las telecomunicaciones de cierta forma, sin embargo, aún asi es posible que con materiales bastante comunes se puedan interceptar las señales de un satélite y con las capacidades computacionales actuales descifrar los datos transmitidos a través de ellas.
Cabe mencionar que los métodos para vulnerar las telecomunicaciones satélites están penados en todo el mundo y se clasifican delitos federales, por lo que hay que tener mucho cuidado al intentar implementarlos, fue complicado encontrar un documento que hablara abiertamente del tema y parece que hasta con una simple búsqueda en internet ya me han clasificado como un posible terrorista (de no ser porque estoy en México).



Referencias