Está en la página 1de 10

APLICACIÓN DE UN SISTEMA DE haciendo uso del driver L293 para

CONTROL DE NAVEGACIÓN PARA UN controlar los motores y el sistema


ROBOT MOVIL USANDO UNA RED
microcontrolador de Basic Micro, ATOM
NEURAL ENTRENADA POR EL SISTEMA
DE ADIESTRAMIENTO SUPERVISADO para programar la red neural,
CASO: REDES DE RETROPROPAGACION obteniéndose un robot móvil de
comportamiento optimo en el sorteo de
Realizado por : Ing. Msc. Ricardo J. Alonso C. obstáculos en diversos laberintos.
Profesor Universidad Tecnológica del Centro
(ralonso@unitec.edu.ve , Palabras clave : Robot
ricardo_alonso@yahoo.com )
Neural, Redes Neurales, R obots
Resumen móviles.

El presente trabajo tiene la finalidad de


presentar los resultados de un robot móvil MOBIL ROBOT NAVIGATION
cuyo sistema de navegación fue realizado CONTROL USING SUPE RVISED
TRAINED NEURAL NET
haciendo uso de redes neurales de
( BACKPROPAGATION CASE)
retropropagación ( adiestramiento
supervisado ). Dicha red neural consistió this work relative to an application of
en una capa de cuatro neuronas de Neural Nets of the supervised trained type
entrada, una para cada variable aportada as the navigational control of a mobile
por los dos únicos sensores del robot ( robot. The neural net consist of a input
interruptores de posición o bumpers ) y layer of 4 neurons, each one for input the
las dos restantes, sus lecturas 1 segundo conditions of the two bumpers of robot (
antes de las lecturas actuales. C ada only sensory organ ) and the others for
neurona de entrada prepara la the states of both sensors 1 seconds
alimentación para cuatro neuronas before the present reading. Each pair of
ocultas, cada una de las cuales representa neurons controls one motor ( right and
la posición binaria para activar cada uno left). One neuron is for forward
de los dos motores eléctricos del robot en movement and the other for backwards
giro de avance o retroceso. A fin de evitar movement. In order to avoid conflict with
posibles conflictos a la hora de accionar the motor driver ( both neurons on, for
el driver del motor ( un integrado ex ample), each pair outlet is processed
L293M), se somete las salidas de las dos using a “Winner Takes All” transfer
neuronas que representan la posición de function.
avance o retroceso de cada motor a una
For simulation purposes, using the
función de transferencia del tipo “Winner
simrobot simulator, the outlet of each pair
Takes All” . Para los propósitos de
of neuron is sent to an outlet neuron that
simulación en el paquete simrobot la
feed the motor driver on the simulated
salida de las neuronas son enviadas a una
robot.
capa de dos neuronas de salida, cada una
de las cuales tiene una salida binaria que The simulation and the real robot ( using
controla cada motor, siendo los posibles a L293 driver and the ATOM
valores 1 y –1. realizada fue comprobada
Las simulación development package for programming
con un modelo a escala de operación real, the net ) show a robot skillful for sorting
obstacles on a labyrinth of various
shapes. Es por esto que dicho campo ha originado
el máximo de esfuerzos para buscar
Keywords : Neural Robot, Neural soluciones al problema de control
Nets, and Mobil Robots inteligente de dichos vehículos.

1. Introducción A diferencia de los robots manipuladores,


los cuales están fijos ellos, además de su
Uno de los campos más fructífero de la blanco de trabajo, los robots móviles se
Inteligencia Artificial y la Mecatrónica es enfrentan a situaciones muy variables,
el de los Robots del tipo móvil. Nuestra muchas de ellas no previsibles por sus
era ha sido testigo de la aparición de diseñadores humanos. Por ello, esquemas
vehículos aéreos, marítimos, submarinos de programación simple tales como la de
y terrestres los cuales no son tripulados y elaboración de mapas de navegación se
deben ser controlados por telepresencia o ven limitadas por:
por sistemas automáticos embarcados en
los vehículos. • Restricciones de aplicación del
sistema de navegación : debe
Especial mención merecen los vehículos haber un conocimiento previo de
terrestres embarcados en misiones de todas las situaciones operacionales
ex ploración planetaria tales como el que enfrentara el robot en función
a la topografía del area a recorrer
Sojourney, el Spirit y Oportunity, los por el mismo.
cuales son usados para la exploración del • Restricciones de capacidad de
planeta Marte, previo a su visita por seres procesamiento dada las
limitaciones que impondría a la
humanos. Aquí los sistemas inteligentes plataforma móvil un sistema de
son de importancia vital, dado que la computo de grandes dimensiones
telepresencia se ve afectada por las o que use cables de transmisión de
señales o de transmisión en el
grandes distancias que separa al espectro radioeléctrico.
controlador remoto ( conductor ) del
vehículo ( centenares de millones de La experiencia de un operador humano
consiste en que hacer con los motores del
kilómetros). Dichas distancias hacen robot ante diversos escenarios
imposible un control cercano al tiempo situacionales planteados por los sensores
real dado la demora de transporte de las del robot. Así, este operador sabe que
hacer en determinadas situaciones, las
señales
En de ida
otros casos y vuelta
menos al robot
extremos, la originadas
cuales evitan el daño de la maquinaria al
presencia de sistemas de
por la limitación inteligentes a bordode laevitar
la velocidad luz ciertas y determinadas situaciones
de los vehículos libera al ser humano de
( son casi
labores del orden
rutinarias de media
y agobiantes de hora o mas
peligrosas de su entorno ( en nuestro
caso, la presencia de obstáculos).
).
vigilancia perimetral o de navegación en
medios con mucha turbulencia o factores De esta manera, es posible crear una tabla
que afecten la percepción completa y de decisión para un operador humano tal
cabal de la realidad remota por parte del y como se muestra en la tabla siguiente :
operador humano.
L e ct ura L ec t ur a L ec t u ra L e c t ura Bande r a B ande ra B ande ra Band er a de adiestramiento no supervisado ( robots
p asada a c t ua l pas ada
s en so r de l d el
a ct u a l avanc e
de l
avanc e de
m o t o r remt orot co er so m o t o r r et r o c eso que aprenden de la ex periencia).
d er ec ho se nso r se nso r s en so r de re ch o d er ec ho i z qui e rdo m o t o r
de re ch oi zq ui er doi z qui e rd o iz qu ie r do
00001010
2. Las Redes Neurales
01000101

10001001

00010101
Las redes neurales son estructuras
00100110 topológicas constituidas por elementos de
Esta tabla, la cual representa la
01010101 cómputos denominados neuronas. Por su
ex periencia de un operador humano de un
10101001 nombre, es de deducir que estas
robot con dos motores eléctricos con estructuras son símiles matemáticos de
control del avance / retroceso y dos las estructuras que constituyen el tejido
sensores del tipo bumper ( derecho / nervioso del cerebro humano, mientras
izquierdo ), es una guía para cualquier que la neurona es un símil de la neurona
otro operador sin ex periencia en el humana.
control de este robot. Es en si un Sistema En cierta medida, la similitud es valida,
Ex perto cuyo conocimiento esta solo que el mecanismo de operación de la
estructurado en una tabla de búsqueda. De neurona humana aun no ha sido
acuerdo al estatus de ambos sensores ( en completamente entendido. Lo único que
tiempo real y 1 segundo antes ), el mismo se sabe que consiste en un fenómeno de
sabe como debe manipular los motores disparos de picos de potencial
del robot. electroquímico interno de la célula, las
Esta tabla puede servir como base para la cuales ocurren con una frecuencia
elaboración de un circuito basado en aparentemente al azar, pero que en
álgebra booleana, cuya representación realidad tienen algún significado interno
son circuitos integrados con compuertas codificado en la frecuencia de ocurrencia
NAND, AND, NOR, OR y NOT. Sin del fenómeno o el tiempo de demora de la
embargo, este esquema, aunque muy respuesta de la célula a un estimulo
factible, adolece de un defecto ex terno.
fundamental : su pobre flexibilidad en En lo que si es similar, es que,
caso de replantearse la tabla y la dependiendo de la intensidad de los
imposibilidad de incorporar esquemas de
estímulos alimentados a la neurona en sus
autoadiestramiento del sistema en caso de
conexiones de entrada, se produce un
plantearse situaciones operacionales
nuevas o cambio en las condiciones de los efecto acumulativo el cual, en caso de
sensores y los motores eléctricos del superar cierto umbral de salida, produce
robot. una respuesta en la salida de la neurona.
Es por esta razón que se decidió ex plorar De esta manera, una neurona artificial se
la incorporación de la tecnología de redes convierte en un dispositivo binario que
neurales para darle a un robot prototipo, puede dar una salida o no, dependiendo
•de:La intensidad de las señales de
llamado HUGO, un sistema de control
entrada ( o bien la presencia o no de
basado en dicha tecnología, el cual fuera
señal en dichas neuronas).
la base de sistemas mas avanzados tales
• El peso o intensidad que tiene cada
como robots que hagan uso de esquemas conexión con la entrada de la neurona.
• El valor de umbral para la respuesta Existen dos mecanismos de
de la neurona. adiestramiento o entrenamiento de una
red neural:
Adaptando dichos parámetros, así como
haciendo combinaciones de neuronas • Adiestramiento supervisado : en el
artificiales, se puede crear una topología cual se le proporciona a la red
denominada red neural, la cual puede ejemplos de vectores de entrada
hacer diversas funciones, todas ellas con sus respectivas salidas y los
orientadas a reproducir patrones de pesos son ajustados para lograr
respuesta deseadas en muchas que la red neural reproduzca en lo
aplicaciones practicas. mas posible dichos patrones de
ejemplo. A este respecto, debe
decirse que la red neural se
convierte en una especie de
sistema experto. Existen dos tipos
de redes de este
o Redes tipo:
de retropropagación
:enelcualelajustedelos
pesos se obtiene por un
mecanismo de
retroalimentación el cual
cambia los pesos en
función directa lineal o no
de la velocidad de
variación del error de
ajuste de la prediccion de
la red vs. los valor
deseados de salida de la
red.
o Redes de Hamming : en el
cual los pesos se obtienen
directamente de la
operación de los vectores
de entrada con los vectores
de salida deseados de la
2.1. Entrenamiento Supervisado de red. La red es capaz de
Neuronas procesar patrones de
entrada a la red, buscando
De los puntos mencionados arriba, los patrones de salida lo mas
pesos de conexión y el umbral de disparo similar posible a los
de la salida de los mismos, así como la patrones usados para el
forma en que dicho disparo sucede, son calculo de estos pesos.
• Adiestramiento no Supervisado :
parámetros de algo denominado en el cual no se tienen patrones de
entrenamiento de una Red Neuronal. ejemplo para adriestar a la red.
Estas rede, cuyo ejemplo típico es
el de las redes de Hebbianas,
hacen uso del reforzamiento de • función de transferencia “Winner
aquellos pesos que favorezcan Takes All”. En ella, la salida de
comportamientos deseables de la dos o mas neuronas son
salida de la red, mientras que evaluadas, de forma tal que las
desfavorece los pesos neuronas con salida mas alta son
responsables de comportamientos las que sobreviven. En este caso,
no deseables. Un tipo particular de la neurona con mayor valor de
estas redes son las del tipo de salida toma el valor 1, mientras
adiestramiento no supervisado con sus vecinas toman el valor 0. Esta
reforzamiento. función es muy usada cuando se
desea evitar conflictos en salidas
En este trabajo haremos uso del modelo
de dos neuronas que de otra
de adiestramiento supervisado por el
forma darían salida 1 con las dos
método de retropropagación .
primeras funciones de
2.2. Funciones de Transferencia transferencia descritas.
3. La Red Neural de HUGO
En las redes neuronales, el valor de las
entradas se multiplica por un peso, el cual Haciendo uso de la facilidad de
es un valor que pertenece al campo de los MATLAB para el adiestramiento por el
números reales. Esto implica que la salida modelo de backpropagation de redes
de una neurona es un valor real, el cual neurales, se determinan los pesos de la
puede ser útil en algunos casos, pero siguiente topología de la red neural del
inútil en la mayoría de ellos. A fin de dar robot móvil HUGO:
aplicabilidad a dicho valor, se aplica a la
salida de la neurona una función de X1R YRF
transferencia, la cual puede ser de muchos
tipos. Algunos de los mas comunes son X2R WTA
YRB
las siguientes:
• función de transferencia umbral : X1L YLF
por debajo de cierto valor ,
denominado umbral, la salida de X2L YRB
la neurona es cero. Cuando la WTA
salida es igual o mayor a ella, la
salida es 1.

• función de transferencia logística:


En ella, la salida de la neurona En esta red, las siguientes son las
debe pasar por una curva variables:
denominada sigmoide, la cual
representa la función de densidad • Entradas :
de probabilidad acumulativa de la o X1R : Es el valor que toma
distribución normal. la posición del bumper
derecho 1 segundo antes (
1 = contacto 0 = no
contacto).
o X2R : Es el valor actual 4. Simulación efectuada en Matlab
que toma la posición del
bumper derecho (ídem). Con el propósito de confirmar la
o X1L : Es el valor que toma factibilidad de la red neural elaborada, se
la posición del bumper hizo uso del programa SIMROBOT
izquierdo 1 segundo antes desarrollado para Matlab. El programa
(ídem). requiere de la configuración de un
o X2L : Es el valor actual escenario, un robot ( lo mas parecido al
que toma la posición del prototipo HUGO ) y de un programa
bumper izquierdo (ídem). escrito en lenguaje M de Matlab.
• Salidas :
o YRF : salida que activa el
avance del motor derecho
(1 = activo 0 = inactivo).
o YRB : salida que activa el
retroceso del motor
derecho (ídem).
o YLF : salida que activa el
avance del motor izquierdo
(ídem).
o YLB : salida que activa el
retroceso del motor
izquierdo (ídem).
Figura 4.1 Pantalla del Ambiente
La función de transferencia WTA Simrobot
(“Winner Takes All”) compara las salidas
de las neuronas de la capa oculta y hace 1
alamasaltay0alamasbaja.

Las ecuaciones que dan las salidas de las


4 neuronas son las siguientes:

YRF = 2*X1R - X2R -


X1L - X2L + 10
YRB = -2*X1R + X2R +
X1L + X2L + 9
YLF = -2*X1R – X2R Figura 4.2 Dimensiones del Robot HUGO simulado (
– X2L + 10 todo en centímetros)
YLB = 2*X1R + X2R function new = Hugo(simrobot,matrix,step)
+X2L+ 9
global X;
La función WTA compara YRF con YRB global Y;
global motor_derecho motor_izquierdo
y hace 1 a la mayor y 0 a la menor. Lo
mismo hace con YLF y YLB.
% sensor reading
[dist_left,num] =
readusonic(simrobot,'sens1',matrix);
[dist_right,num] = La presente figura presenta el recorrido
readusonic(simrobot,'sens2',matrix); del robot HUGO por el escenario
preparado para su prueba. Se ve que el
% Calculo red neuronal mismo sortea con éxito muchos
W = [2 -1 -1 -1; obstáculos de dicho mundo. Sin embargo,
-2 1 1 1; se detiene en un portal el cual tiene un
-2 -1 0 -1;
2 2 0 1];
ancho ligeramente mayor al del robot.
B= [0 -1 0 -1]';
Es de hacer notar que dicho obstáculo a
Y = hardlim(W*X + B); afectado a muchos otros modelos de
motor_derecho = sign(Y(1,1) - Y(2,1));
robots móviles en las pruebas de la
motor_izquierdo = sign(Y(3,1) - Y(4,1)); DARPA. Sin embargo, es de creer que el
problema se debe básicamente a la
% Estatus de los dos sensores de proximidad
carencia de una regla que permita
X(1,1) = X(2,1); manejar la situación planteada,
X(3,1) = X(4,1) ; combinada con la carencia de sensores de
pause(0.5 + random('unif',1,1)) menor alcance para evitar el conflicto que
se le plantea al robot, el cual es de que
if dist_left < 3
X(4,1) = 1; sensa en ambos sensores ( derecho e
else izquierdo) obstáculos. De ser menor el
X(4,1) = 0; alcance del sensor, es factible que dicho
end
obstáculo sea fácilmente sorteable.
if dist_right < 3
X(2,1) = 1;
else
X(2,1) = 0;
end

simrobot = setvel(simrobot,[0.5*motor_izquierdo
,0.5*motor_derecho]);

new = simrobot;
Figura 4.3 Listado del programa de
control del Robot simulado

global X;
global Y;
global motor_derecho motor_izquierdo
X = [0 0 0 0]' Figura 5.1 Recorrido típico del robot
Y = [1 0 1 0]'
motor_derecho = 1
simulado HUGO
motor_izquierdo =1
simview
6. Construcción del prototipo real

Figura 4.4 Listado del programa de A fin de constatar el comportamiento del


inicialización del robot HUGO robot HUGO, se fabrico un prototipo con
desechos de otros robots. El Cerebro del
5. Resultados de la Simulación robot fue un microprocesador de
Microchip, el ATOM 28 (16PIC876),
desarrollado por la empresa Micro Basic.
Dicho microcontrolador tiene una YRF var byte 'Salida motor derecho
hacia adelante
memoria RAM de casi 20K y dispone de YRB var byte 'Salida motor derecho
una plataforma de desarrollo que facilita hacia atras
YLF var byte 'Salida motor izquierdo
no solamente la operación del chip, si no hacia adelante
la comunicación del mismo con una PC. YLB var byte 'Salida motor izquierdo
Esos dos factores son de gran peso para el hacia atras
proyecto, el cual no solo llegara a HUGO, ' Inicializa las variables
si no a otros prototipos tales como LUIGI
clear
y MARIO, los cuales incorporan
tecnología de redes con ciclo:
autoadiestramiento ( robots que aprenden gosub vigilancia
de sus errores).
YRF = 2*X1R - X2R - X1L - X2L +10
El siguiente inserto es un listado del
programa, elaborado en el idioma BASIC YRB = X2R + X1L + X2L - 2*X1R +9
del ATOM 28 YLF = -2*X1R - X2R - X2L + 10

YLB = 2*X1R + X2R + X2L +9


' Programa de Robot controlado por redes
If (YRF > 10) or (YRF = 10) then
neurales
high 4
' El Robot solo tendra como sensores los dos Else
interruptores de posicion delan low 4
' teros Endif
' ubicados a la derecha e izquierda de la
linea central del robot. If (YRB > 10) or (YRB = 10 ) then
' La logica controlara el encendido en high 5
Else
directo o reversa de los motores dere low 5
' chos e izquierdo del robot Endif
' PROGRAMA PRINCIPAL

input 2 ' P2 es la If (YLF > 10 ) or (YLF = 10 ) then


entrada del interruptor derecho high 6
input 3 ' P3 es la Else
entrada del interruptor izquierdo low 6
Endif
' Configuramos las salidas de los motores para ir
If (YLB > 10 ) or (YLB = 10 ) then
hacia adelante high 7
high 4 'S alida avance motor derecho Else
low 7
Low 5 'Salida retroceso motor derecho Endif
high 6 'S alida avance motor izquierdo
Low 7 'Salida retroceso motor izquierdo goto ciclo ' Retorno al
' Declaramos las variables de calculo de la inicio para otra consulta
red
vigilancia:
X1R var B YTE 'Valor pasado del estado
del bumper derecho X1R = X2R
X2R var byte 'Valor presente del X1L = X2L
estado del bumper derecho
X1L var byte 'Valor pasado del estado pause 450
del bumper izquierdo
X2L var byte 'Valor presente del If IN2 Then
estado del bumper izquierdo X2R = 1
observarElseque en el caso de conseguir un http://www.uamt.feec.vutbr.cz/rob
paso ligeramente X2Rmayor
=0 que la amplitud otics/simulations/amrt/simguide_e
Endif
de los sensores de posición del robot, el n.html.
robot real puede
If IN3 then sortear con éxito el 3. Provecho, Martines, Rodriguez.
X2L = 1 “Autoguiado de Robots móviles
obstáculo,
Else cosa que no sucedió en el robot
simulado. EstoX2L es atribuible
=0 a que es mediante redes neuronales”. XXV
Endif
factible que la simulación no permita jornadas de Automática, Ciudad
definir con exactitud las escalas físicas
return
Real del 8 al 10 de Septiembre del
del robot real. 2004.
4. Cembrano & Wells.
8. Conclusiones y Recomendaciones “Aplicaciones del Aprendizaje
Las siguientes fotos muestran el interior Neuronal al control de robots”.
En
del base
robotaHUGO,
lo anterior, puede concluirse
mostrando el PIC Inteligencia Artificial Nº1,
que un robot con una red neuronal
ATOM 28, el circuito del protoboard quepara Invierno de 1997. Asociación
simule los comportamientos
interactuar con los bumpers del deseados
robot yenel Española de Inteligencia
un robot
L293 quemóvil , es los
controla unados
realidad factible.
motores del Artificial. http://aepia.dsic.upv.es/
robot
En ese sentido se procederá a explorar las
siguientes líneas de investigación,
evolución natural del robot HUGO:

• Robot con red neuronal que


simule un procedimiento de
aprendizaje no supervisado con
refuerzo.
• Robot con una red neuronal del
tipo retropropagación o memoria
asociativa que plasme recorridos
de prueba realizados con el robot
guiado por teleoperación por un
operador humano. Es de esperarse
que dicho esquema enriquezca
aun mas el performance del robot
HUGO.
9. Bibliografía Consultada 7. Discusión de los resultados
obtenidos
Para la realización del presente trabajo,
fue consultada la siguiente bibliografía : En las pruebas realizadas con el robot
1. Delgado, Alberto. “Inteligencia
HUGO se ha observado un
Artificial y Minirobots”, Edición
comportamiento similar al obtenido en las
2da. Ecoe Ediciones.
simulaciones efectuadas, por lo que se
http://www.monografias.com/trab
puede decir que el comportamiento
ajos14/inteligenciartif/inteligencia
observado en el robot, tanto en las
rtif.shtml.
2. Autonomous Mobile Robotics simulaciones como en la realidad son
Toolbox. satisfactorias. Sin embargo, se pudo

También podría gustarte