Diseño e implementación de un sistema de control, basado en Redes Neuronales Artificiales no supervisadas y Arreglo De Compuertas Reconfigurable (FPGA), para la resolución de trayectorias tipo laberinto por parte de un robot móvil Iván Callejas1, Juan David Piñeros 1, Juan Rocha1, Ferney Hernández 1 y Fabio Delgado 1 1
Programa Profesional de Ingeniería Electrónica GPM&C, Universidad INCCA de Co lombia 11001000 Bogotá (Colombia) Telef:+571 470 3947, e-mail:
[email protected],, jpinerose@u
[email protected] [email protected] incca.edu.co,, jrochan@uinc
[email protected] ca.edu.co,,
[email protected] ,
[email protected]
Resumen.
Este articulo presenta el diseño y la implementación de un sistema de control mediante la utilización de Redes Neuronales Artificiales (RNA) con aprendizaje no supervisado tipo SOM (Self-Organizing Maps) o Mapas Auto-Organizados de Kohonen, en una Arreglo de Compuertas Reprogramable (FPGA) Spartan 6, con el propósito de determinar los efectos que tiene dicho sistema en el comportamiento de un robot móvil en la resolución de trayectorias tipo laberinto. Para ello, fue necesario realizar una etapa de exploración, en la cual el robot recopila la información del entorno a través de sus sensores, enviando los datos adquiridos a un computador mediante comunicación inalámbrica (módulos de comunicaciones XBEE), con el fin de efectuar el entrenamiento de la RNA, obteniendo los pesos sinápticos necesarios para que el móvil pueda cumplir con su objetivo. Estos procesos son controlados y visualizados por una interfaz gráfica de usuario o GUI desarrollada en Matlab, denominada ZiggyLab Interface, permitiendo al usuario supervisar el móvil a medida que evoluciona su aprendizaje en los diferentes entornos en los que se moviliza. Finalmente, los resultados obtenidos evidencian el aprendizaje del robot al momento de resolver una trayectoria tipo laberinto como principal principal efecto en su comportamiento, comportamiento, debido a la implementación del sistema.
Palabras llave Red Neuronal Artificial (RNA), Arreglo de Compuertas Reprogramable (FPGA), Robot móvil, Mapa AutoOrganizativo (SOM), Comunicación inalámbrica (XBEE).
1. Introducción En el campo de la la robótica móvil, en lo que hace referencia a la navegación navegación y ejecución de tareas específicas, se observa que actividades tan simples para una persona normal como: evadir obstáculos, seguir una trayectoria sin problema, o un poco más complicadas como salir de un laberinto lo más rápido posible, se convierten en un desafío para la robótica al querer imitarlas de manera óptima. Es por ello, que algunas universidades, grupos de investigación, empresas, entre otros [1] , han diseñado sistemas de control para robots móviles que tratan de realizar las labores mencionadas, partiendo generalmente de la implementación implementación de sistemas
de control secuencial basados en microcontroladores (tipo PIC, Atmel, dsPIC, entre otros), evolucionando a sistemas que usan algoritmos genéticos, lógica difusa y Redes Neuronales Artificiales (RNA) [2] , que permiten emular al cerebro humano en algunas tareas. En este punto juegan un papel importante las FPGA como uno de los dispositivos que permiten un alto grado de integración con las técnicas de control mencionadas, especialmente con la RNA debido a su característica de paralelismo, algo que con otras tecnologías (procesamiento secuencial) no se podría aplicar de una manera eficiente, prueba de ello se evidencia en el trabajo titulado Reconfigurable Self-Organizing Neural Network Design and it's it's FPGA Implementation [3], donde donde se realiza una comparación en el tratamiento de imágenes entre un computador (Pentium4, 2.26GHz, 248MB RAM) y una FPGA (Spartan-3) que concluye con la eficiencia en el tiempo de respuesta del procesamiento paralelo frente al secuencial. secuencial. Por otro lado, al utilizar RNA para el control de navegación de robots móviles, es muy común observar trabajos en los cuales sobresale el uso de RNA supervisadas, algunas algunas implementadas implementadas en FPGA y otras en microcontroladores como es el caso [4] y [5] respectivamente, pero es poco común el uso de RNA no supervisadas implementadas en dispositivos reprogramables para el control de la navegación de un robot móvil, especialmente en Colombia. Por consiguiente, la investigación realizada se orientó a la utilización de redes no supervisadas tipo SOM implementadas en una FPGA como sistema de control, con el propósito de encontrar los efectos que tiene en el comportamiento de un robot móvil que resuelve trayectorias tipo laberinto. Para ello, se realizó una serie de pruebas del robot frente al entorno (laberinto), observando y analizando las variaciones de las trayectorias que este seguía en cada etapa.
2. Metodología De acuerdo con lo anterior, en la Fig. 1, se presentan las diferentes partes y etapas del diseño general del proyecto
4) Bloque de modelamiento de entornos basado en acciones (AEM, por sus siglas en ingles Actionbased Environmental Modeling). Su función principal es traducir las señales de salida de la RNA en tres acciones que el robot móvil debe realizar para la resolución de trayectorias tipo laberinto, las cuales son: giro a la izquierda, giro a la derecha, y adelante. Fig. 1. Diagrama de bloques del sistema desarrollado 5) A continuación, se realiza una descr ipción de cada uno de los bloques de la figura anterior:
Control o mando inalámbrico. Permite controlar el movimiento del robot móvil por medio del teclado del PC.
A. ZiggyLab (GUI)
B. Robot Móvil
Es la interfaz gráfica de usuario desarrollada en Matlab 2010b (ver figura 2) que contiene las principales partes del proyecto, y la cual mediante comunicación inalámbrica permite el control y monitoreo de los procesos realizados por el robot móvil para la reso lución de trayectorias tipo laberinto, principalmente el desarrollo y evaluación de su aprendizaje a medida que se va entrenando.
El robot móvil (ver Fig. 3) consta de las siguientes especificaciones: un peso de 500 gr; unas dimensiones de 20cm*20cm*8cm; un sistema de alimentación conformado por un arreglo de baterías de ion litio que suministra un voltaje de 12V y una corriente 2.2Ah, para la etapa de potencia donde se encuentran dos (2) reguladores LM7805, uno para el puente H (L293D) que es el encargado de accionar el sistema mecánico de tracción diferencial (locomoción) que tiene dos motorreductores de 300 rpm con sus respectivas ruedas y dos Ball Casters, y el otro para suministrar el voltaje requerido para el sistema de control, basado en una tarjeta de desarrollo Nexys 3 conformada por una FPGA Spartan 6.
Fig. 2. ZiggyLab Interface
La interfaz gráfica está dividida de la siguiente forma: 1) Recolección de datos. Se realiza mediante la recepción de datos del entorno, transmitidos por el robot inalámbricamente de acuerdo a la lectura de los sensores, para esto se utilizan dos módulos XBEE. Además, en esta parte se permite cargar datos recolectados anteriormente los cuales fueron guardados como variables .mat con el fin de realizar simulaciones. 2) Grafico del recorrido. Se permite realizar una visualización en 2D y 3D del entorno por donde se moviliza el robot, con el propósito de observar la posición en la cual se encuentra y determinar el trayecto realizado, para monitorear la evolución de su aprendizaje. 3) Entrenamiento de la red SOM. Se presentan los parámetros que pueden ser modificados para realizar el proceso de aprendizaje de la red neuronal: función distancia, topología de la red, radio de vecindad y número de iteraciones. Igualmente, almacena y visualiza los pesos sinapticos de la RNA que posteriormente son enviados al robot.
Fig. 3. ZiggyLab
Prosiguiendo, se encuentra la etapa sensorica que consta de un arreglo de sensores QTR-8 y tres (3) sensores de proximidad GP2Y0D810ZOF alimentados con un voltaje de 3.3v provenientes de la FPGA. Finalmente, la etapa de comunicación está conformada por un módulo XBEE que permite interactuar con la interfaz gráfica. En Fig. 4, se aprecia el diagrama de bloques correspondiente al robot móvil descrito anteriormente.
Fig. 4. Diagrama de bloques del robot móvil.
C. Exploración Es la etapa de recolección de información del entorno a partir de los sensores que tiene el robot, enviando los datos adquiridos a un computador mediante comunicación inalámbrica (módulos de comunicaciones XBEE), con el fin de efectuar el entrenamiento de la RNA y de generar el mapa del recorrido efectuado (visualizado en 2D o 3D). Para esto, es necesario que el usuario seleccione entre dos opciones, que tipo de exploración desea realizar, ya que el robot móvil debe realizar la trayectoria paralelamente a una de las paredes izquierda o derecha del entorno, es decir, que de acuerdo a la lectura de los sensores siempre tenga prelación en realizar el giro a la izquierda o derecha según el caso escogido.
tiene mayor relacion con los datos de entrada. Se han trabajado diferentes formas para encontrar estas similitudes atendiendo criterios de distancia, algunas comúnmente utilizadas se presentan en la tabla I. TABLA I.- Funciones de similitud
Función Distancia Distancia Euclidiana
Linkdist
D. Entrenamiento Las redes neuronales artificiales SOM, son un modelo de redes neuronales auto-organizativas propuestas por Teuvo Kohonen en 1984 [6], este tipo de red preserva las similitudes que tienen los datos de entrada entre sí, reflejándolas como grupos de elementos con características similares (Clustering). Estas redes neuronales constan de una capa de m nodos de entrada y una capa de n nodos de salida, cada uno de estos nodos tiene un vector de pesos sinápticos de m dimensiones permitiendo de esta forma la conexión entre cada uno de ellos con la entrada, como se aprecia en Fig. 5.
N Out
N In
N Out
N Out
N In
Distancia Manhattan
2)
Expresión Matemática
Topologia de la vecindad. O el tipo de relación de vecindad, la cual es fundamental para observar como afectara la neurona ganadora a sus vecinas, en otras palabras, es la geometría de tomar este vecindario. Las principales topologías son la cuadrada y hexagonal como se observan en Fig. 6, obviando la aleatoria.
N Out
N In
Fig. 5. Red Neuronal SOM de 1X4 Neuronas Para el diseño de la RNA SOM, se utilizo una capa de salida de 4 neuronas, esto con el propósito de obtener una neurona ganadora por cada una de las acciones qu e puede ejecutar el móvil (Adelante, giro a la izquierda, giro a la derecha y giro 180°). Con el fin, de determinar las neuronas que presentan mayor actividad, es decir, aquellas más cercanas al patrón de entrada, de acuerdo a los parámetros seleccionados en la interfaz gráfica de usuario: 1) Funcion distancia. Influye en el proceso en el cual la red neuronal da una salida de acuerdo a un patron de entrada, permitiendo encontrar similitudes entre el vector presentado y cada uno de los pesos de las neuronas de salida con el fin de hallar la neurona ganadora que es aquella que
Fig. 6. Topología de la vecindad 3) Radio de vecindad. Es la amplitud del alcance de las neuronas vecinas, el cual se modifica de acuerdo al número de iteraciones, manteniendo una relación inversamente proporcional, en otras palabras, el radio disminuye a medida que las iteraciones aumentan. 4) Número de iteraciones. Es el número de veces que el algoritmo de entrenamiento se va a ejecutar. Una vez diseñada la red neuronal se procede a realizar el entrenamiento mediante el ToolBox de RNA de Matlab 2010b con los datos obtenidos en la etapa de exploración, presentándolos a la red como entradas para que de esta forma encuentre similitudes entre los datos de entrada, a través de un proceso de aprendizaje que permite la variación de los pesos sinápticos que determinan el comportamiento del robot móvil en la trayectoria tipo
laberinto, sin necesidad de patrones predefinidos por el programador, lo cual define el aprendizaje no supervisado. E. Resolución de trayectorias tipo laberinto Para la resolución de trayectorias tipo laberinto, se implemento en la FPGA Spartan-6 la RNA tipo SOM descrita. Para ello, fue necesario desarrollar en VHDL una memoria RAM, capaz de almacenar el vector de pesos sinápticos recibidos del entrenamiento. De esta forma se tiene entrenada la RNA en la FPGA, con el fin de determinar la distancia entre el dato de entrada y el vector de pesos. Para determinar esta distancia se utilizo la distancia Manhattan (ver Tabla I).Una vez obtenida esta distancia se procede a determinar cuál es la distancia mínima entre el dato de entrada y las neuronas comparando la sumatoria de los pesos de cada neurona, para así obtener la neurona ganadora, como se aprecia en Fig. 7.
Además se observa como la señal winner (identificada en la figura con color rojo), cambia su estado de acuerdo a las variaciones en la señal input (color azul). La señal winner representa cuál de las cuatro neuronas de la red neuronal SOM es la ganadora, siendo la variación de esta señal entre 0 y 3. TABLA II. -Pesos Sinápticos enviados a la FPGA.
Neurona 1 Neurona 2 Neurona 3 Neurona 4
0 0 100 100
100 35 100 0
0 71 18 50
Para lograr que el robot móvil pueda realizar la trayectoria es necesario traducir las señales de la RNA a señales que permitan el movimiento de los motores, esto es posible mediante el bloque AEM. En caso de no obtener los resultados esperados es necesario volver a la etapa de entrenamiento hasta que perfeccione su aprendizaje. Para ello, es necesario hacer la concatenación de los nuevos datos con los ya obtenidos en el recorrido anterior.
3. Análisis de Resultados La Fig. 9, se observa el entorno tipo laberinto utilizado para el entrenamiento del robot móvil. Para ello se realizo la etapa de exploración con el propósito de recolectar información del entorno.
Fig. 7. Esquema de la RNA tipo SOM implementada en la FPGA. El bloque denominado SOM, internamente contiene la memoria RAM y el algoritmo capaz de determinar la distancia Manhattan, generando la sumatoria de los pesos de cada neurona para su posterior proceso de comparación. Se puede apreciar en Fig. 8, la simulación en ISE 13.4 de Xilinx de la respuesta de la RNA a diferentes patrones de entrada, que son datos de tres bits, este comportamiento se logra al recibir los pesos sinápticos mostrados en la Tabla II.
Fig. 9. Entorno tipo laberinto No.1.
Fig. 8. Comportamiento de RNA en la FPGA
Una vez recolectada la información del entorno, se realiza el procesamiento de esta información en la Interfaz Grafica de Usuario ZiggyLab Inteface (ver Fig. 10), para poder representar gráficamente la trayectoria que efectúo el robot en la etapa de exploración, consecuentemente se entrena la RNA con dicha información, obteniendo los pesos sinápticos que serán transmitidos al robot móvil. Asimismo, se selecciona automáticamente el bloque AEM que se utilizara durante la etapa de aprendizaje.
Fig. 13, obteniendo el mismo trayecto que realizo en la etapa de exploración, las mismas neuronas ganadoras, aunque una leve variación en los pesos sinápticos.
Fig. 10. Resultados obtenidos de la etapa de Exploración, entorno No.1 Obtenidos estos resultados y transmitida la información necesaria al robot móvil, se inicia nuevamente el recorrido con el robot entrenado, con el fin de observar gráficamente en 2D o 3D la trayectoria seguida por el robot móvil y determinar los avances en su aprendizaje. En Fig. 11, se puede apreciar como el robot realizo un trayecto menor comparándolo con la etapa de exploración y realizándolo en menor tiempo. Adicionalmente se obtiene una evidencia del 99% debido a que el móvil llega al final de la trayectoria propuesta.
Fig. 13. Resultados obtenidos entrenamiento, entorno No.2
con
el
primer
Se observo que si se entrena la RNA con los resultados obtenidos con el primer entrenamiento, se obtiene una leve variación en los pesos sinápticos y el robot móvil realiza el mismo recorrido, igualmente sucede si se sigue entrenando con los datos obtenidos del siguiente entrenamiento. En Fig. 14 y Fig. 15, se observa el robot móvil desenvolviéndose en el entorno No.1 y No.2 respectivamente, luego de realizar el proceso de aprendizaje (exploración y entrenamiento).
Fig. 11. Resultados obtenidos entrenamiento, entorno No.1
con
el
primer
Se realizaron pruebas modificando el entorno de Fig. 8, identificándolo como entorno No.2, obteniendo en la etapa de exploración diferentes resultados a los obtenidos en el entorno anterior (ver Fig. 12), resaltando la variación en los pesos, las neuronas ganadoras para cada estado de los sensores y la configuración del bloque AEM.
Fig. 14. Robot móvil, luego del proceso de aprendizaje en el entorno No. 1.
Fig. 15. Robot móvil, luego del proceso de aprendizaje en el entorno No. 2. Fig.12. Resultados obtenidos de la etapa de Exploración, entorno No.2. Con los datos obtenidos en la exploración del entorno No.2, el robot móvil realiza el recorrido que se aprecia en
4. Conclusiones Se obtiene un robot móvil con las siguientes características: unas dimensiones de 20 cm x 20 cm x 8 cm con un peso de 500gr, con una geometría circular la
cual es una de las más recomendadas para trayectorias tipo laberinto, tres (3) sensores de proximidad GP2Y0D810ZOF, un sensor de detección de línea QTR8A, dos motorreductores de 300 rpm, una rueda libre, un sistema de alimentación basado en baterías recargables tipo ion-litio de 12v a 2 A y un sistema de control implementado en una FPGA Spartan 6.
Referencias
El sistema de control está basado en un Mapa Autoorganizativo de Kohonen (SOM) con aprendizaje no supervisado, el cual al ser entrenado mediante Matlab permite obtener los pesos sinápticos que determinan el comportamiento del robot para la resolución de una trayectoria tipo laberinto.
[2] H. Guerrero, J. Delgado, “Evolución de chip ADN emulado con algoritmo genético en FPGA para control de navegación de un robot móvil ”, Unillanos, Vol. 12, pp 117-129, 2008.
Igualmente, se puede ver que el comportamiento del robot móvil al resolver la trayectoria tipo laberinto, tiene variaciones notables dependiendo del entrenamiento realizado, es decir, de los pesos sinápticos utilizados que van cambiando a medida que el robot aprende. Demostrando la evolución de su aprendizaje en cada uno de los entrenamientos realizados por el robot móvil y su capacidad en la toma de decisiones. Finalmente, la interfaz gráfica ZiggyLab Interface facilita un control y monitoreo de los procesos que requiere el robot móvil para su adecuado desempeño en la resolución de trayectorias tipo laberinto. Estos procesos son: recolección de datos, entrenamiento de la red SOM y un control de movimientos del robot móvil.
[1] P. Atapuma, J. Bernal, N. Moheisen, “Diseño y construcción de un robot limpiavidrios”, Trabajo de grado Ingeniería Electrónica. Bogotá: Universidad INCCA de Colombia. Facultad de Ingeniería, Administración y Ciencias Básicas, p. 15, 2010.
[3]
Y. Basma, M. Basil, A. Fakhraldeen, “Reconfigurable Self-Organizing Neural Network Design and it's FPGA Implementation”, AlRafidain Engineering, Vol. 17, June 2009.
[4]
M. Muñoz, G. Rodríguez, J. Garcia, “Sistema de desarrollo de redes neuronales sobre FPGA”, 2001.
[5]
C. Guzman, J. Neira, J. Villamizar, V. Castro, “Diseño E Implementación De Una Red Neuronal En Un Dspic Para El Control De Trayectoria De Un Robot Detector De Obstáculos”, Revista Tecnologías de Avanzada, Vol. 2, 2008.
[6]
T. Kohonen, “The Self-Organizing Proceedings of the Vol. 17, pp 1464- 1480, June 2009.
Map”, IEEE,