Upload
trinhxuyen
View
214
Download
1
Embed Size (px)
Citation preview
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
Capítulo 7: Núcleo del proyecto
1. Descripción general:
A lo largo de este capítulo se describirán las características relevantes del escenario
desarrollado, su funcionalidad y como interactuar con él a través de una interfaz usuario
desarrollada con Guide de Matlab.
2. Interfaz de usuario:
Para comunicarnos con el sistema robot y red moteada de una forma sencilla e intuitiva y
evitando así trabajar a nivel de código y de consola de comandos se ha desarrollado una
interfaz con ayuda del toolbox de matlab llamado Guide.
Utilizando esta interfaz podemos cambiar el modo de comportamiento del robot frente a la
red moteada y consultar los datos recibidos en la red.
2.1. Menú “Pantalla principal”:Al ejecutar el Guide de Matlab aparece la pantalla siguiente:
72
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
Para empezar a interaccionar con ella será necesario indicarle la dirección que el PC
establece al puerto serie con la finalidad de poder establecer un puente de información
entre el ordenador y el WaspMote coordinador. Una vez indicada la dirección se pulsa
sobre el botón “Iniciar Comunicación” y comprobamos que se ha encendido el indicador
“Ok” que muestra que ambas plataformas están conectadas enviando y recibiendo datos
correctamente; en caso contrario, deberemos verificar que la dirección del puerto USB
del coordinador es la adecuada ya que si no es posible la comunicación y el tag “Ok” no
está activo el programa no dejará continuar.
En esta pantalla tenemos cuatro posibles modos de funcionamiento del robot que se
detallarán a continuación. Existe también a la derecha de la pantalla un menú donde
podemos consultar el histórico de datos recibidos y almacenados con la información que
se ha programado como relevante y que por tanto se almacenará en el sistema, para
acceder a ésta, tan solo tenemos que seleccionar la variable de interés y pulsar el botón
73
Ilustración 35: Pantalla principal de la interfaz de usuario
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
mostrar.
2.2. Menú “Consigna de velocidad a los motores”:Dentro de este menú se puede establecer una consigna de velocidad a los motores del
robot utilizando para ello el siguiente menú:
Completando la caja de dialogo con un valor entre -100% y 100% podemos asignar una
velocidad al robot. Se considera que un valor positivo haría moverse al robot hacia
delante y un valor negativo hacia atrás. Una vez establecidas las consignas que se
esperan poner en el robot pulsamos el botón “enviar consigna” y cuando la casilla de
verificación “ACK” está seleccionada indica que la consigna ha sido modificada y el
74
Ilustración 36: Pantalla consigna motores de la interfaz de usuario
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
robot ya se encuentra moviéndose con la consigna de velocidad impuesta.
En esta ventana también se puede visualizar el histórico de los últimos quince segundos
de velocidades en ambos motores.
2.3. Menú “Consigna de Posición al robot”:Utilizando el modelo cinemático inverso del robot y su lazo de control podemos imponer
al robot que se mueva hasta una posición indicada.
Para llevar a cabo esta funcionalidad se utiliza el menú de “Consigna de Posición al
robot” al que se tiene acceso desde el menú principal. El aspecto de este menú es el
siguiente:
75
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
En está pantalla se indica la posición según un sistema el sistema de referencia del robot
al que lo queremos desplazar. Una vez rellenos los cuadros de dialogo con la posición
pulsamos el botón enviar consigna, a partir de ese momento el programa calcula cual
debe ser la tensión apropiada a la que se deben alimentar los motores y el robot empieza
a moverse. Apoyándonos en la medida de aceleración proporcionada por el acelerómetro
de la placa WaspMote se refresca la posición del robot en el gráfico.
Una vez que el robot ha llegado al destino indicado, la casilla de verificación ACK se
activa y los motores del robot se detienen.
2.4. Menú “Consigna de Trayectoria al robot”:Utilizando el modelo cinemático inverso del robot y su lazo de control podemos imponer
al robot que se mueva hasta posiciones concatenadas obligando al robot a describir una
76
Ilustración 37: Pantalla consigna posición de la interfaz de usuario
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
trayectoria.
Para llevar a cabo esta funcionalidad se utiliza el menú de “Consigna de Trayectoria al
robot” al que se tiene acceso desde el menú principal. El aspecto de este menú es el
siguiente:
En este menú se introducen en primera instancia las posiciones por las que se pretende
que el robot pase. Una vez introducido este vector pulsamos el botón de “Enviar
Trayectoria”. El programa hace los cálculos pertinentes y envía envía la consignas
apropiadas al robot para iniciar su movimiento, una vez que el robot ha llegado a un
punto establecido pasa a moverse hasta el siguiente y al finalizar la trayectoria indicada
se marca la casilla de verificación “ACK” indicando que el robot se encuentra en el
destino indicado esperando una nueva trayectoria.
77
Ilustración 38: Pantalla trayectorias de la interfaz de usuario
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
2.5. Menú “Comportamiento autónomo”:Utilizando este menú podemos hacer que el robot se mueva dentro de la red sensorial
utilizando información de los propios nodos de la red para tomar decisiones sobre su
movimiento. En esta demo se ha programado la funcionalidad de mover el robot al nodo
que alcance un valor de temperatura más alto, para medir los valores de temperatura
utilizaremos el sensor interno del modulo RTC de los WaspMote.
Para ejecutar esta utilidad se utiliza el menú de “Comportamiento Autónomo” al que se
tiene acceso desde el menú principal. El aspecto de este menú es el siguiente:
78
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
En esta ventana se han de introducir la posiciones de los nodos end-device para permitir
el desplazamiento hasta los mismos, nos obstante, es posible no introducir su posición e
iniciar la persecución de forma que el robot al desplazarse por la red detectará un valor
de RSSI mayor o menor en función de la distancia hasta el ZigBee end-device y de está
forma podrá localizarlo.
El valor de la temperatura de los nodos se irá actualizando en sus cuadros de dialogo
79
Ilustración 39: Pantalla persecución de la interfaz de usuario
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
informando al usuario de la temperatura de cada uno de los nodos.
Al pulsar el botón perseguir el sistema detecta cual es el nodo con mayor temperatura, lo
selecciona y comienza a desplazarse hasta el mismo. Si durante la persecución el valor
de la temperatura es superior en otro nodo, se modifica el nodo seleccionado y por tanto
la trayectoria a seguir. El comportamiento del sistema sería similar al siguiente:
El nodo a mayor temperatura es el 1 por lo que comienza a desplazarse en esa dirección.
80
Ilustración 40: Ejemplo persecución 1/3
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
Durante el desplazamiento el sistema detecta que ha cambiado el nodo con mayor
temperatura y por tanto se modifica la trayectoria para perseguir al nuevo nodo.
81
Ilustración 41: Ejemplo de persecución 2/3
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
Una vez que ha llegado al nodo con mayor temperatura el robot se detiene a la espera de
un nuevo cambio.
2.6. Menú “Mostrar”:Utilizando este menú podemos consultar los históricos de información almacenada desde
que se estableció el puente de comunicación entre el ordenador y el ZigBee coordinador.
82
Ilustración 42: Ejemplo de persecución 3/3
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
La información se presenta de forma gráfica o en forma de tabla de excel.
3. Muestra de datos por LCD in situ
Durante el funcionamiento del sistema se pueden leer algunos datos que puedan resultar
de interés en la pantalla LCD instalada en el robot. Los datos de relevancia mostrados
varían en función del programa seleccionado:
· Arranque: Durante el arranque y mientras los dispositivos están siendo configurados la pantalla permanece apagada:
· Inicial: Cuando el robot se encuentra listo pero aun no ha sido seleccionado ningún comportamiento, es decir se encuentra el nodo configurado como Router dentro de la red, configurados todos los dispositivos I²C y los programas se encuentran en el hilo de espera a la recepción de ordenes. En la pantalla se muestra un mensaje de bienvenida de Qfix y Mote con la fecha a la que esté configurado el sistema:
83
Ilustración 43: Pantalla LCD durante el arranque
Ilustración 44: Pantalla LCD durante el inicio
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
· Modo “Consigna de Velocidad”: Además de la fecha y hora, se muestra la consigna de velocidad que está establecida para cada uno de los motores:
· Modo “Consigna de Posición”: Se muestra la posición a la que se quiere llegar, la posición y orientación actual del robot y la distancia que le falta por recorrer:
· Modo “Consigna de Trayectoria”: En una linea se muestra la posición actual y la siguiente posición objetivo. En la ultima linea se muestran cuantas posiciones objetivo faltan por alcanzarse y la distancia total a recorrer:
84
Ilustración 45: Pantalla LCD durante el modo velocidad de motores
Ilustración 46: Pantalla LCD durante modo consigna de posición
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
· Modo “Comportamiento autónomo”: Se muestra el valor del RSSI del nodo al que se persigue y la distancia a éste en caso de que se disponga:
4. Protocolo entre el nodos de la red: coordinador y el robot:
85
Ilustración 47: Pantalla LCD durante modo consigna de trayectoria
Ilustración 48: Pantalla LCD durante modo persecución 1/2
Ilustración 49: Pantalla LCD durante modo persecución 2/2
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
4.1 Ordenador – Coordinador:Debido a la construcción física de la plataforma WaspMote nos encontramos con
distintas dificultades para la comunicación entre el ordenador y el coordinador.
Los dos elementos que Libelium proporciona son los WaspMote y los GateWay. Ambos
están diseñados para realizar labores concretas y su flexibilidad para ser modificada es
nula. La problemática asociada al uso de cada uno de estos dispositivos se detalla a
continuación:
· GateWay: La funcionalidad de este dispositivo es monitorizar la red. Acomete esta tarea, extrayendo la información dentro del campo datos de la estructura asociada al paquete para posteriormente volcarla vía terminal serie. Esto quiere decir que la comunicación desde el GateWay hasta el ordenador es trivial, sin embargo, para comunicar el ordenador con el modulo ZigBee integrado en el GateWay es necesario utilizar comandos AT lo que hace muy difícil la comunicación en ese sentido.· WaspMote: A pesar de que este dispositivo tiene dispone de chip de comunicación por puerto serie y de que existen bibliotecas creadas por el fabricante que nos permiten mostrar mensajes volcándolos sobre el puerto serie, no es la función principal del dispositivo que está diseñado para formar parte de una red de sensores inalámbrica y por tanto no para estar conectado a un ordenador. Concretando para nuestro caso, la problemática aparece cuando pretendemos conectar el modulo ZigBee y además recibir mensajes de entrada desde el terminal del PC hasta el WaspMote. Puesto que tanto el modulo ZigBee como el puerto USB utilizan la UART0 de la placa para sus comunicaciones, cuando el ZigBee está conectado tiene prioridad sobre la gestión de la UART siendo solo posible enviar mensajes por puerto serie desde el WaspMote hasta el ordenador pero no desde el ordenador al WaspMote ya que son interceptados por el ZigBee y desechados al no ser comandos AT.
Debido a la funcionalidad de ambos elementos la comunicación desde el ordenador hasta
el modulo WaspMote o GateWay es compleja o imposible por lo que se ha optado en
utilizar un modulo WaspMote como coordinador de la red de forma que la solución
adoptada para enviar alguna información desde el ordenador hasta el módulo es, por
medio de un script, modificar los valores en el programa y cargar el programa en el
módulo. Esta opción es sin duda lenta e ineficiente pero al menos posibilita la
transacción de información en el sentido no contemplado por los desarrolladores de
Libelium.
86
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
4.2. Coordinador – Robot:La comunicación entre el coordinador y el robot MiniBot se realiza a través de un
WaspMote intermediario que selecciona la información que ha de ir al robot y hace de
pasarela entre el protocolo ZigBee e I²C. Cuando se quiere enviar una consigna, el
coordinador crea un paquete ZigBee y en el campo datos de la estructura del paquete
inserta una etiqueta, que indicará al WaspMote router que el mensaje es para el MiniBot,
junto con las ordenes que quiere transmitirle.
A la recepción de un paquete clasificado como información para el robot por la etiqueta
distintiva, el WaspMote router enviará por puerto I²C las ordenes y esperará que la placa
de MiniBot de su consentimiento de información recibida y procesada. En este momento
se creara un paquete hacia el WaspMote coordinador indicando la ejecución correcta de
la orden y en caso de ser necesario se generara un evento en el puerto I²C hacia la
pantalla actualizando los valores mostrados.
4.3. Robot – SensoresEl WaspMote router actualizará los valores recibidos por los WaspMote end-device cada
intervalo de tiempo prefijado y que en para este escenario se ha impuesto en dos minutos
pudiendo ser modificable. Por otra parte, también tiene acceso a datos del sensor de
distancia por ultrasonidos que serán actualizados cada medio segundo.
En condiciones normales esta información se incluye en un paquete estructurado de
ZigBee que será enviado hacia el coordinador con la misma periodicidad que el refresco
de datos de los módulos end-device. No obstante, es de especial interés poder gestionar
rápidamente la información obtenida por el sensor de distancia en caso de encontrarse
por debajo de un umbral mínimo crítico; en este caso, se creará un paquete con la
información del valor de distancia y el coordinador tomará medidas para evitar el
choque, bien calculando una ruta de alternativa o bien deteniendo el robot.
4.4. Sensores – Coordinador
87
PFC Juan Manuel Medel García:Desarrollo de una plataforma de monitorización y control de un minirobot móvil basada en redes de
sensores inalámbricos
A pesar de que en condiciones normales no habrá información que se envíe directamente
desde los dispositivos end-device hasta el coordinador de la red sin pasar por el router,
es posible que en casos de emergencia si pudiera ser de interés Un ejemplo de
comunicación de este tipo podría ser un aviso de batería baja del WaspMote end-device
o traspasar el valor umbral para alguna de las magnitudes medidas. En estos casos, y
solo en ellos, se enviará esta información directamente al coordinador, el cual por medio
de la interfaz de usuario lanzará un mensaje de advertencia alertando al usuario de la
batería baja.
88