Вы находитесь на странице: 1из 6

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 Callejas
1
, Juan David Pieros
1
, Juan Rocha
1
, Ferney Hernndez
1
y Fabio Delgado
1

1
Programa Profesional de Ingeniera Electrnica
GPM&C, Universidad INCCA de Colombia
11001000 Bogot (Colombia)
Telef:+571 470 3947,
e-mail:
icallejass@uincca.edu.co, jpinerose@uincca.edu.co, jrochan@uincca.edu.co, whernandezo@uincca.edu.co,
ingfaderi@gmail.com



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.

Вам также может понравиться