Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PRESENTA
AL INGENIERO
CARLOS VERA
Introducción
Entrorno. Se realizará uno o varios mapas, que será por donde se moverá el
móvil, y en el o los cuales se realizarán las adquisiciones de información, para
posteriormente entrenar la red neuronal que implementará el control.
Modelo del móvil. Se analizará la cinemática del robot para el cual se desea
realizar el controlador, para posteriormente implementar su modelo y poder
simular su comportamiento en distintos entornos. Además es necesario modelar
los sensores que se utilizarán para el guiado e integrarlos con el modelo
cinemático.
Adquisición de información para entrenamiento. Se realizará una simulación,
en la que el móvil se mueva por un entorno de la forma deseada. El guiado se
realizará de forma supervisada o semi-automática, es decir, es nuestra la
responsabilidad del guiado. Durante el tiempo que dure la simulación, se
registrará toda la información disponible, velocidades (lineal y angular), y
lectura de los sensores.
Diseño y entrenamiento del controlador (red neuronal). Partiendo de la
información que utilizaremos y las variables de salida necesarias, se diseñará la
red neuronal, la cual será entrenada con los datos registrados en una simulación
supervisada.
Prueba, validación y optimización del controlador. Con la red ya entrenada, se
realizarán simulaciones donde el guiado lo haga la red neuronal, y se probará en
distintos entornos, para comprobar que ha adquirido conocimiento suficiente, y
se tratará de optimizar el tamaño de la red para reducir en la medida de lo
posible, la carga computacional a la hora de implementarlo en una plataforma
real.
2
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 3 de 16
SISTEMAS AVANZADOS DE CONTROL
Objetivos
3
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 4 de 16
SISTEMAS AVANZADOS DE CONTROL
En esta arquitectura, se sitúa un motor conectado a cada una de las ruedas tractoras, de
forma que variando la velocidad de cada uno de los motores se consigue que el motor
vaya recto, girando más o menos rápido. Por ejemplo, si la velocidad de las ruedas es
igual entonces el robot va recto. En cambio si se deja parada una rueda y se mueve la
otra el robot gira entorno al eje de giro situado en la rueda que está quieta.
Una de las grandes ventajas de esta cinemática es que el robot puede girar sobre sí
mismo, haciendo que las ruedas vayan a la misma velocidad pero en sentido contrario.
4
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 5 de 16
SISTEMAS AVANZADOS DE CONTROL
5
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 6 de 16
SISTEMAS AVANZADOS DE CONTROL
Para acondicionar una zona de trabajo, previamente hay que definir unas
características, como pueden ser las dimensiones, la resolución, el tipo de obstáculos,
ancho de pasillos, curvaturas, entre otras con el fin de que se asemeje lo más posible a
lo que será el entorno real.
Se adjunta entorno.bmp, que será el punto de partida para posteriores diseños:
El siguiente paso, es implementar las ecuaciones del modelo. Para ello se creará
un archivo , que será llamado MoverMovil.m, que tendrá la siguiente estructura:
6
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 7 de 16
SISTEMAS AVANZADOS DE CONTROL
Nota: el origen de coordenadas en una imagen es el punto superior izquierdo, por tanto,
el eje de coordenadas X, se corresponderá con el modelo visto, pero el eje de
coordenadas Y, será de sentido contrario, por tanto las sumas serán restas y viceversa.
7
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 8 de 16
SISTEMAS AVANZADOS DE CONTROL
Inicialización
global h h1 px py t Ts Xmovil Ymovil Angle escala mapa pxsen pysen hs1 hs2 hd Figura
Vmovil Wmovil;
%Inicializacion del movil.
Xmovil=300;
Ymovil=200;
Angle=-pi/2;
Vmovil=25; % milimetros * segundo
Wmovil=-pi/5000;
Ts=0.001;
escala=4; % escala bmp -> 1 pixel = 4mm
Figura=figure('KeyPressFcn',@ControlTeclado); %Crea la figura y asocia una funcion si se
pulsa una tecla
axis equal;
mapa=imread('mapa3.bmp','bmp'); % Fichero que contiene el mapa
imshow(mapa,'truesize');
hold on;
set(gcf,'doublebuffer','on');
t=0:pi/8:2*pi;
h=line(t,t,'LineWidth',4);
px=[-55 -55 55 -55];
py=[-25 25 0 -25];
h1=line(px,py,'LineWidth',4);
pxsen(1,:)=[80*cos(pi/4) 800*cos(pi/4)];
pysen(1,:)=[-80*sin(pi/4) -800*sin(pi/4)];
pxsen(2,:)=[80*cos(-pi/4) 800*cos(-pi/4)];
pysen(2,:)=[-80*sin(-pi/4) -800*sin(-pi/4)];
hs1=line(pxsen(1)/escala,pysen(1)/escala,'LineWidth',2);
hs2=line(pxsen(2)/escala,pysen(2)/escala,'LineWidth',2);
hd(1)=line([1 1],[1 1],'Marker','+','Color','r');
hd(2)=line([1 1],[1 1],'Marker','+','Color','r');
tex = text(300,260,'texto');
set(tex,'BackgroundColor',[1 1 .6])
tex1 = text(300,280,'texto1');
set(tex1,'BackgroundColor',[1 1 .6])
DibujaMovil
Este código fuente, reubica las entidades gráficas en sus lugares correspondientes.
function movil=DibujaMovil(X,Y,Angle)
global h h1 px py t escala;
set(h,'XData',(X+80*cos(t))/escala);
set(h,'YData',(Y+80*sin(t))/escala);
%Rotacion
Pxr=px(1:4)*cos(-1*Angle)-py(1:4)*sin(-1*Angle);
Pyr=px(1:4)*sin(-1*Angle)+py(1:4)*cos(-1*Angle);
set(h1,'XData',(X+Pxr)/escala);
set(h1,'YData',(Y+Pyr)/escala);
movil=0;
8
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 9 de 16
SISTEMAS AVANZADOS DE CONTROL
ControlTeclado
Sensores
9
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 10 de 16
SISTEMAS AVANZADOS DE CONTROL
Principal
Este archivo, es el bloque principal, se encarga de ir llamando a las
correspondientes funciones, con el fin de realizar el guiado supervisado y registrar el
valor de las variables.
close all;
clear all;
global h h1 px py t Ts Xmovil Ymovil Angle escala mapa pxsen pysen hs1 hs2 hd Figura
Vmovil Wmovil;
Inicializacion;
for i=0:200000
MueveMovil(Vmovil, Wmovil);
if mod(i,200)==0 %solo se ejecuta una vez cada 200 iteraciones (5 veces por seg.
para TS=1ms)
sense=Sensores; %lectura sensores
if i>0
Rsense=[Rsense; sense];
RVmovil=[RVmovil; Vmovil];
RWmovil=[RWmovil; Wmovil];
else
Rsense=[sense];
RVmovil=[Vmovil];
RWmovil=[Wmovil];
end
DibujaMovil(Xmovil, Ymovil, Angle); %Actualiza animacion
drawnow;
set(tex,'String',num2str(i)); %visualiza en pantalla iteracion y sensores
set(tex1,'String',num2str(sense));
%Como ayuda al guiado se puede llamar a SemiControl
%if mod(i,400)==0
%Wmovil=SemiControl(sense); %se ejecuta cada 1000 iteraciones (1 vez/seg
para Ts=1ms)
%end
end
end
save 'registro.mat' Rsense RVmovil RWmovil;
Principal_2
10
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 11 de 16
SISTEMAS AVANZADOS DE CONTROL
Superficies
11
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 12 de 16
SISTEMAS AVANZADOS DE CONTROL
close all;
clear all;
global IW B1 B2 W;
load 'Registro.mat'
P=Rsense';
T=[RVmovil RWmovil]';
%Entrenamiento
eg =100; % error cuadratico medio deseado
sc = 200; % varianza de las funciones RBF (defecto 1.0)
MN=30; %maximo numero de neuronas
net=newrb(P,T,eg,sc,MN,1);
IW= net.iw{1};
B1=net.b{1};
B2=net.b{2};
W=net.lw{2,1};
save 'Entrenamiento.mat' IW B1 B2 W;
12
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 13 de 16
SISTEMAS AVANZADOS DE CONTROL
function Y=RedNeuronal(S1,S2)
global IW W B1 B2;
%%%%% ECUACIONES QUE IMPLEMENTAN LA RED DE BASE RADIAL
%%%%% DONDE IW, W, B1, B2, SON LOS AJUSTES
%%%%% S1, S2, SON LAS ENTRADAS
%%%%% LA SALIDA SE DEVOLVERA EN Y
Y=W*a1'+B2;
13
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 14 de 16
SISTEMAS AVANZADOS DE CONTROL
14
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 15 de 16
SISTEMAS AVANZADOS DE CONTROL
Anexo No I.
Tipo de Neurona
La función radbas implementa la función de transferencia de una neurona RBF.
El argumento de la función radbas no es el mismo que en las neuronas de otros tipos de
redes, sino que en este tipo de neuronas, el argumento es la distancia entre el vector de
pesos w y el vector de entrada p, multiplicada por la bia b.
En el gráfico de la izquierda, se ve que la función de base radial tiene su máximo
en 0. En el de la derecha se puede observar la función de base radial con w y b. Si la
distancia entre w y p decrece, la salida de la neurona crece. Así pues la neurona de base
radial puede actuar como un detector de vectores, ya que si w=p la salida de la neurona
es 1, y en caso contrario, nunca es 1.
La bias b muestra la sensibilidad de la neurona para ser ajustada, por ejemplo, si
una neurona tiene bia con valor de 0.1, su salida será 0.5 para un vector de entrada p
cuya distancia a w sea 8.326 (0.8326/b).
Arquitectura de Redes RBF
Una red de base radial consta de dos capas; una oculta de neuronas radbas con
S1 neuronas, y una de salida purelin, con S2 neuronas.
Nota: Esta función realiza el ajuste de los pesos y de los centroides de las
gaussianas, pero la varianza de todas ellas es la misma, que además debe
introducirla el usuario.
15
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA Fecha:
ESCUELA DE CIENCIAS BASICAS E INGENIERIAS Junio de 2010
PROGRAMA DE INGENIERIA ELECTRÓNICA Pág. 16 de 16
SISTEMAS AVANZADOS DE CONTROL
Conclusiones
Fue interesante realizar este proyecto debido a que gracias a el adquirimos destreza en
cuanto al manejo de simulación de redes Neuronales.
Para la realización de proyectoi fue necesario crear una libreria en Matlab para conseguir
el conjunto de datos de entrenamiento. Esta tarea resulto ser una de las mas complejas e
importantes del trabajo, ya que los ejemplos de entrenamiento son claves para el correcto
aprendizaje de la red.
BIBLIOGRAFIA
Brooks,R. “A Robust Layered Control System for a Mobile Robot”, IEEE Journal
or Robotics and Automation, Vol. RA-2,No1,pp 14-23.
Chronis,G. Skubic, M.;”Training a Neural Network for Navigation
Behaviors”. Dept. or Computer Engineering and Computer
Science. University of Missouri-Columbia.
Marcos Provecho, M.C. “Autoguiado de Robots Móviles mediante
Redes Neuronales”. PFC . Escuela de Ingenierias Industrial e
Informatica. Universidad de Leon.
MathWoks “Neural network Toolbox”.
Mitchell, R.J. , Keating,D.A.; “Neural Network
Control of Simple Mobile Robot”. Department of
http://fcqi.tij.uabc.mx/docentes/esqueda/guide.pdf
16