diseño e implementación de un sistema de control, basado en redes neuronales artificiales

Upload: adam-bailey

Post on 14-Oct-2015

29 views

Category:

Documents


0 download

TRANSCRIPT

  • Diseo e implementacin de un sistema de control, basado en Redes Neuronales

    Artificiales no supervisadas y Arreglo De Compuertas Reconfigurable (FPGA),

    para la resolucin de trayectorias tipo laberinto por parte de un robot mvil

    Ivn Callejas1, Juan David Pieros1, Juan Rocha1, Ferney Hernndez1 y Fabio Delgado1

    1 Programa Profesional de Ingeniera Electrnica

    GPM&C, Universidad INCCA de Colombia

    11001000 Bogot (Colombia)

    Telef:+571 470 3947,

    e-mail:

    [email protected], [email protected], [email protected], [email protected],

    [email protected]

    Resumen. Este articulo presenta el diseo y la implementacin de un sistema de control mediante la

    utilizacin 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 propsito

    de determinar los efectos que tiene dicho sistema en el

    comportamiento de un robot mvil en la resolucin de trayectorias tipo laberinto. Para ello, fue necesario realizar una

    etapa de exploracin, en la cual el robot recopila la informacin

    del entorno a travs de sus sensores, enviando los datos

    adquiridos a un computador mediante comunicacin inalmbrica (mdulos de comunicaciones XBEE), con el fin de

    efectuar el entrenamiento de la RNA, obteniendo los pesos

    sinpticos necesarios para que el mvil pueda cumplir con su

    objetivo. Estos procesos son controlados y visualizados por una interfaz grfica de usuario o GUI desarrollada en Matlab,

    denominada ZiggyLab Interface, permitiendo al usuario

    supervisar el mvil 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 efecto en su comportamiento, debido a la

    implementacin del sistema.

    Palabras llave

    Red Neuronal Artificial (RNA), Arreglo de Compuertas

    Reprogramable (FPGA), Robot mvil, Mapa Auto-

    Organizativo (SOM), Comunicacin inalmbrica

    (XBEE).

    1. Introduccin En el campo de la robtica mvil, en lo que hace

    referencia a la navegacin y ejecucin de tareas

    especficas, se observa que actividades tan simples para

    una persona normal como: evadir obstculos, seguir una

    trayectoria sin problema, o un poco ms complicadas

    como salir de un laberinto lo ms rpido posible, se

    convierten en un desafo para la robtica al querer

    imitarlas de manera ptima. Es por ello, que algunas

    universidades, grupos de investigacin, empresas, entre

    otros [1] , han diseado sistemas de control para robots

    mviles que tratan de realizar las labores mencionadas,

    partiendo generalmente de la implementacin de sistemas

    de control secuencial basados en microcontroladores

    (tipo PIC, Atmel, dsPIC, entre otros), evolucionando a

    sistemas que usan algoritmos genticos, lgica 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 integracin con las tcnicas de control mencionadas,

    especialmente con la RNA debido a su caracterstica de

    paralelismo, algo que con otras tecnologas

    (procesamiento secuencial) no se podra aplicar de una

    manera eficiente, prueba de ello se evidencia en el trabajo

    titulado Reconfigurable Self-Organizing Neural Network

    Design and it's FPGA Implementation [3], donde se

    realiza una comparacin en el tratamiento de imgenes

    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.

    Por otro lado, al utilizar RNA para el control de

    navegacin de robots mviles, es muy comn observar

    trabajos en los cuales sobresale el uso de RNA

    supervisadas, algunas implementadas en FPGA y otras

    en microcontroladores como es el caso [4] y [5]

    respectivamente, pero es poco comn el uso de RNA no

    supervisadas implementadas en dispositivos

    reprogramables para el control de la navegacin de un

    robot mvil, especialmente en Colombia.

    Por consiguiente, la investigacin realizada se orient a

    la utilizacin de redes no supervisadas tipo SOM

    implementadas en una FPGA como sistema de control,

    con el propsito de encontrar los efectos que tiene en el

    comportamiento de un robot mvil 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 segua en cada etapa.

    2. Metodologa

    De acuerdo con lo anterior, en la Fig. 1, se presentan las

    diferentes partes y etapas del diseo general del proyecto

  • Fig. 1. Diagrama de bloques del sistema desarrollado

    A continuacin, se realiza una descripcin de cada uno de

    los bloques de la figura anterior:

    A. ZiggyLab (GUI)

    Es la interfaz grfica de usuario desarrollada en Matlab

    2010b (ver figura 2) que contiene las principales partes

    del proyecto, y la cual mediante comunicacin

    inalmbrica permite el control y monitoreo de los

    procesos realizados por el robot mvil para la resolucin

    de trayectorias tipo laberinto, principalmente el

    desarrollo y evaluacin de su aprendizaje a medida que

    se va entrenando.

    Fig. 2. ZiggyLab Interface

    La interfaz grfica est dividida de la siguiente forma:

    1) Recoleccin de datos. Se realiza mediante la recepcin de datos del entorno, transmitidos por

    el robot inalmbricamente de acuerdo a la

    lectura de los sensores, para esto se utilizan dos

    mdulos XBEE. Adems, 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 visualizacin en 2D y 3D del entorno por donde

    se moviliza el robot, con el propsito de

    observar la posicin en la cual se encuentra y

    determinar el trayecto realizado, para monitorear

    la evolucin de su aprendizaje.

    3) Entrenamiento de la red SOM. Se presentan los parmetros que pueden ser modificados para

    realizar el proceso de aprendizaje de la red

    neuronal: funcin distancia, topologa de la red,

    radio de vecindad y nmero de iteraciones.

    Igualmente, almacena y visualiza los pesos

    sinapticos de la RNA que posteriormente son

    enviados al robot.

    4) Bloque de modelamiento de entornos basado en acciones (AEM, por sus siglas en ingles Action-

    based Environmental Modeling). Su funcin

    principal es traducir las seales de salida de la

    RNA en tres acciones que el robot mvil debe

    realizar para la resolucin de trayectorias tipo

    laberinto, las cuales son: giro a la izquierda, giro

    a la derecha, y adelante.

    5) Control o mando inalmbrico. Permite controlar el movimiento del robot mvil por medio del

    teclado del PC.

    B. Robot Mvil

    El robot mvil (ver Fig. 3) consta de las siguientes

    especificaciones: un peso de 500 gr; unas dimensiones de

    20cm*20cm*8cm; un sistema de alimentacin

    conformado por un arreglo de bateras 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 mecnico de

    traccin diferencial (locomocin) 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. 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

    comunicacin est conformada por un mdulo XBEE que

    permite interactuar con la interfaz grfica.

    En Fig. 4, se aprecia el diagrama de bloques

    correspondiente al robot mvil descrito anteriormente.

    Fig. 4. Diagrama de bloques del robot mvil.

  • C. Exploracin

    Es la etapa de recoleccin de informacin del entorno a

    partir de los sensores que tiene el robot, enviando los

    datos adquiridos a un computador mediante

    comunicacin inalmbrica (mdulos 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

    exploracin desea realizar, ya que el robot mvil 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 prelacin en

    realizar el giro a la izquierda o derecha segn el caso

    escogido.

    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,

    reflejndolas como grupos de elementos con

    caractersticas 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 sinpticos de m dimensiones

    permitiendo de esta forma la conexin entre cada uno de

    ellos con la entrada, como se aprecia en Fig. 5.

    Fig. 5. Red Neuronal SOM de 1X4 Neuronas

    Para el diseo de la RNA SOM, se utilizo una capa de

    salida de 4 neuronas, esto con el propsito de obtener una

    neurona ganadora por cada una de las acciones que puede

    ejecutar el mvil (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 ms cercanas al patrn

    de entrada, de acuerdo a los parmetros seleccionados en

    la interfaz grfica 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

    tiene mayor relacion con los datos de entrada.

    Se han trabajado diferentes formas para

    encontrar estas similitudes atendiendo criterios

    de distancia, algunas comnmente utilizadas se

    presentan en la tabla I.

    TABLA I.- Funciones de similitud

    Funcin Distancia

    Expresin Matemtica

    Distancia Euclidiana

    Linkdist

    Distancia

    Manhattan

    2) Topologia de la vecindad. O el tipo de relacin de vecindad, la cual es fundamental para

    observar como afectara la neurona ganadora a

    sus vecinas, en otras palabras, es la geometra de

    tomar este vecindario. Las principales

    topologas son la cuadrada y hexagonal como se

    observan en Fig. 6, obviando la aleatoria.

    Fig. 6. Topologa de la vecindad

    3) Radio de vecindad. Es la amplitud del alcance de las neuronas vecinas, el cual se modifica de

    acuerdo al nmero de iteraciones, manteniendo

    una relacin inversamente proporcional, en otras

    palabras, el radio disminuye a medida que las

    iteraciones aumentan.

    4) Nmero de iteraciones. Es el nmero de veces que el algoritmo de entrenamiento se va a

    ejecutar.

    Una vez diseada 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 exploracin,

    presentndolos a la red como entradas para que de esta

    forma encuentre similitudes entre los datos de entrada, a

    travs de un proceso de aprendizaje que permite la

    variacin de los pesos sinpticos que determinan el

    comportamiento del robot mvil en la trayectoria tipo

    N

    Out N

    Out

    N

    Out

    N

    Out

    N

    In N

    In

    N

    In

  • laberinto, sin necesidad de patrones predefinidos por el

    programador, lo cual define el aprendizaje no

    supervisado.

    E. Resolucin de trayectorias tipo laberinto

    Para la resolucin 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 sinpticos 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 cul es la distancia

    mnima 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.

    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

    comparacin. Se puede apreciar en Fig. 8, la simulacin

    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

    sinpticos mostrados en la Tabla II.

    Fig. 8. Comportamiento de RNA en la FPGA

    Adems se observa como la seal winner (identificada

    en la figura con color rojo), cambia su estado de acuerdo

    a las variaciones en la seal input (color azul). La seal

    winner representa cul de las cuatro neuronas de la red

    neuronal SOM es la ganadora, siendo la variacin de esta

    seal entre 0 y 3.

    TABLA II. -Pesos Sinpticos enviados a la FPGA.

    Neurona 1 0 100 0

    Neurona 2 0 35 71

    Neurona 3 100 100 18

    Neurona 4 100 0 50

    Para lograr que el robot mvil pueda realizar la

    trayectoria es necesario traducir las seales de la RNA a

    seales 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 concatenacin de los nuevos datos con los ya

    obtenidos en el recorrido anterior.

    3. Anlisis de Resultados

    La Fig. 9, se observa el entorno tipo laberinto utilizado

    para el entrenamiento del robot mvil. Para ello se realizo

    la etapa de exploracin con el propsito de recolectar

    informacin del entorno.

    Fig. 9. Entorno tipo laberinto No.1.

    Una vez recolectada la informacin del entorno, se

    realiza el procesamiento de esta informacin en la

    Interfaz Grafica de Usuario ZiggyLab Inteface (ver Fig.

    10), para poder representar grficamente la trayectoria

    que efecto el robot en la etapa de exploracin,

    consecuentemente se entrena la RNA con dicha

    informacin, obteniendo los pesos sinpticos que sern

    transmitidos al robot mvil. Asimismo, se selecciona

    automticamente el bloque AEM que se utilizara durante

    la etapa de aprendizaje.

  • Fig. 10. Resultados obtenidos de la etapa de Exploracin,

    entorno No.1

    Obtenidos estos resultados y transmitida la informacin

    necesaria al robot mvil, se inicia nuevamente el

    recorrido con el robot entrenado, con el fin de observar

    grficamente en 2D o 3D la trayectoria seguida por el

    robot mvil y determinar los avances en su aprendizaje.

    En Fig. 11, se puede apreciar como el robot realizo un

    trayecto menor comparndolo con la etapa de

    exploracin y realizndolo en menor tiempo.

    Adicionalmente se obtiene una evidencia del 99% debido

    a que el mvil llega al final de la trayectoria propuesta.

    Fig. 11. Resultados obtenidos con el primer

    entrenamiento, entorno No.1

    Se realizaron pruebas modificando el entorno de Fig. 8,

    identificndolo como entorno No.2, obteniendo en la

    etapa de exploracin diferentes resultados a los obtenidos

    en el entorno anterior (ver Fig. 12), resaltando la

    variacin en los pesos, las neuronas ganadoras para cada

    estado de los sensores y la configuracin del bloque

    AEM.

    Fig.12. Resultados obtenidos de la etapa de Exploracin,

    entorno No.2.

    Con los datos obtenidos en la exploracin del entorno

    No.2, el robot mvil realiza el recorrido que se aprecia en

    Fig. 13, obteniendo el mismo trayecto que realizo en la

    etapa de exploracin, las mismas neuronas ganadoras,

    aunque una leve variacin en los pesos sinpticos.

    Fig. 13. Resultados obtenidos con el primer

    entrenamiento, entorno No.2

    Se observo que si se entrena la RNA con los resultados

    obtenidos con el primer entrenamiento, se obtiene una

    leve variacin en los pesos sinpticos y el robot mvil

    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 mvil

    desenvolvindose en el entorno No.1 y No.2

    respectivamente, luego de realizar el proceso de

    aprendizaje (exploracin y entrenamiento).

    Fig. 14. Robot mvil, luego del proceso de aprendizaje en

    el entorno No. 1.

    Fig. 15. Robot mvil, luego del proceso de aprendizaje en

    el entorno No. 2.

    4. Conclusiones

    Se obtiene un robot mvil con las siguientes

    caractersticas: unas dimensiones de 20 cm x 20 cm x 8

    cm con un peso de 500gr, con una geometra circular la

  • cual es una de las ms recomendadas para trayectorias

    tipo laberinto, tres (3) sensores de proximidad

    GP2Y0D810ZOF, un sensor de deteccin de lnea QTR-

    8A, dos motorreductores de 300 rpm, una rueda libre, un

    sistema de alimentacin basado en bateras recargables

    tipo ion-litio de 12v a 2 A y un sistema de control

    implementado en una FPGA Spartan 6.

    El sistema de control est basado en un Mapa Auto-

    organizativo de Kohonen (SOM) con aprendizaje no

    supervisado, el cual al ser entrenado mediante Matlab

    permite obtener los pesos sinpticos que determinan el

    comportamiento del robot para la resolucin de una

    trayectoria tipo laberinto.

    Igualmente, se puede ver que el comportamiento del

    robot mvil al resolver la trayectoria tipo laberinto, tiene

    variaciones notables dependiendo del entrenamiento

    realizado, es decir, de los pesos sinpticos utilizados que

    van cambiando a medida que el robot aprende.

    Demostrando la evolucin de su aprendizaje en cada uno

    de los entrenamientos realizados por el robot mvil y su

    capacidad en la toma de decisiones.

    Finalmente, la interfaz grfica ZiggyLab Interface facilita

    un control y monitoreo de los procesos que requiere el

    robot mvil para su adecuado desempeo en la resolucin

    de trayectorias tipo laberinto. Estos procesos son:

    recoleccin de datos, entrenamiento de la red SOM y un

    control de movimientos del robot mvil.

    Referencias

    [1] P. Atapuma, J. Bernal, N. Moheisen, Diseo y construccin de un robot limpiavidrios, Trabajo de grado Ingeniera Electrnica. Bogot: Universidad

    INCCA de Colombia. Facultad de Ingeniera,

    Administracin y Ciencias Bsicas, p. 15, 2010.

    [2] H. Guerrero, J. Delgado, Evolucin de chip ADN emulado con algoritmo gentico en FPGA para

    control de navegacin de un robot mvil, Unillanos, Vol. 12, pp 117-129, 2008.

    [3] Y. Basma, M. Basil, A. Fakhraldeen,

    Reconfigurable Self-Organizing Neural Network Design and it's FPGA Implementation, Al- Rafidain Engineering, Vol. 17, June 2009.

    [4] M. Muoz, G. Rodrguez, J. Garcia, Sistema de desarrollo de redes neuronales sobre FPGA, 2001.

    [5] C. Guzman, J. Neira, J. Villamizar, V. Castro,

    Diseo E Implementacin De Una Red Neuronal En Un Dspic Para El Control De Trayectoria De

    Un Robot Detector De Obstculos, Revista Tecnologas de Avanzada, Vol. 2, 2008.

    [6] T. Kohonen, The Self-Organizing Map, Proceedings of the IEEE,

    Vol. 17, pp 1464- 1480, June 2009.