17
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

Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

Embed Size (px)

Citation preview

Page 1: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 2: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 3: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 4: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 5: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 6: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 7: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 8: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 9: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 10: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 11: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 12: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 13: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 14: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 15: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 16: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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

Page 17: Capítulo 7: Núcleo del proyecto - bibing.us.esbibing.us.es/proyectos/abreproy/5009/fichero/7_NucleoProyecto.pdf · PFC Juan Manuel Medel García: Desarrollo de una plataforma de

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