You are on page 1of 4

Line Follower Simulator with Fuzzy Control

Vı́ctor Proaño Rosero Marco Gualsaqui


Departamento de Eléctrica y Electrónica Departamento de Eléctrica y Electrónica
Universidad de Fuerzas Armadas ESPE Universidad de Fuerzas Armadas ESPE
Sangolquı́, Ecuador Sangolquı́, Ecuador
Email: vgproanio@espe.edu.ec Email: mvgualsaqui@espe.edu.ec

Abstract—A Matlab program to simulate the Line Following máquina de inferencia y la defusificación. El texto desarrolla
Robot was developed as a didactic tool to learn the theory of fuzzy en detalle el diseño de un control difuso de un péndulo
control. The Simulink environment is used to model the dynamics invertido. El modelamiento de un robot diferencial se describe
of mobile and the fuzzy controller, and a Script is used to model
the line form and the deviation of the mobile from line. The en [2], donde la cinemática del robot se expresa mediante tres
Simulator allows to evaluate the performance of Proportional estados, dos estados para la posición x, y y un tercer estado
Derivative Fuzzy Control by tuning the parameters of the para el ángulo de dirección θ. En [4] se realiza la simulación
controller and the speed of mobile. Each wheel of the mobile de un control con lógica difusa definiendo varios puntos de
is modeled as a first order dynamic system. The parameters of prueba de posibles condiciones para verificar el desempeño
mobile as distance between wheels, position of sensor can be
modified easily. del controlador. En [5] se desarrolla un sistema de control con
lógica difusa que acepta la entrada de dos sensores de luz
I. I NTRODUCCI ÓN que entregan valores analógicos al controlador y produce una
Los robots seguidores de lı́nea son los más comunes en señal de control para el motor de cada rueda. El desarrollo
las competencias de robots móviles. El problema consiste en de un sistema de control con lógica difusa educacional de
lograr que el robot realice una tarea y alcance el objetivo bajo costo para un robot seguidor de lı́nea se indica en [3].
mediante pistas predefinidas en ambientes interiores. En la En este artı́culo la dos sensores permiten detectar el nivel de
industria son usados para transportar bienes mediante una sombra para obtener valores de la desviación del móvil. Los
trayectoria predefinida. Estos robots son de fácil obtención autores indican que con este sistema se puede implementar
y de bajo costo y por ello son una primera opción para el varios algoritmos de control en un lenguaje de alto nivel.
estudio de los algoritmos de control. El robot que se ha
III. M ODELAMIENTO DEL ROBOT M ÓVIL CON CONTROL
simulado es diferencial, las ruedas derecha e izquierda giran
DIFUSO
a velocidades diferentes para tomar las curvas hacia un lado
o el otro. Las técnicas de control convencional requieren el El simulador se realiza mediante la interacción de un Script
modelo matemático del robot para diseñar el controlador y y un diagrama de bloques en Simulink. En el Script se inicial-
funcionan bien en ambientes para los cuales son diseñados izan los valores de los parámetros del móvil, los parámetros
pero fallan en ambientes con ruido que son difı́ciles de del controlador y la ubicación inicial de móvil tanto en
modelar. La evolución de métodos de control basados en posición x y y como en dirección θ. Los parámetros del móvil
inteligencia artificial permiten diseñar controladores para ası́ como del controlador ingresan al diagrama de Simulink
ambientes complejos sin necesidad de desarrollar el modelo ya sea como bloques del tipo Constant ó como parámetros
matemático del sistema. Uno de estos métodos es la lógica de condiciones iniciales en los bloques de Integración. El
difusa que ofrece una prometedora solución para manejar las Script provoca el inicio y determina la duración de intervalos
incertidumbres del ambiente. de simulación mediante el comando sim(0 movilf uzzy 0 , ts)
En este artı́culo se realiza el modelamiento del robot seguidor donde movilf uzzy es el nombre asignado al diagrama de
de lı́nea y se implementa un simulador que permite determinar Simulink y ts es el tiempo de duración de cada intervalo
las caracterı́sticas de desempeño de un control difuso que simulado. Durante cada intervalo simulado se actualizan las
actúa sobre el móvil. Las entradas al controlador son la entradas del controlador, y al final del intervalo de simulación
desviación del robot respecto a la lı́nea y la rapidez de se obtienen los nuevos estados del móvil que se regresan al
cambio de esa desviación mientras la salida es una diferencia Script mediante bloques del tipo simout.
de velocidad entre las ruedas del móvil. Para la simulación del móvil se utilizan como entradas la
menor velocidad de las ruedas y la diferencia de velocidades
angulares de las ruedas que corresponde a la velocidad de
II. T RABAJOS RELACIONADOS giro del móvil. Se modelan los estados que son la posición
La terminologı́a del control difuso se presenta con claridad x y y junto con la dirección θ. El diagrama se muestra en
en la referencia [1]. Allı́ se enseñan los cuatro bloques de la figura 1 donde se indican las ecuaciones en el espacio de
un controlador difuso: la fusificación, la base de reglas, la estado ωg es la velocidad de giro del móvil que es causado
por la diferente velocidad de las ruedas. ωmovil es la menor
de las velocidades angulares de los motores que mueven las
ruedas. vd y vi son las velocidades lineales de las ruedas
derecha e izquierda.

ωmovil = min(vd , vi )/(2πr) (1)


ωg = (vd − vi )/(2πa) (2)
r es el radio de las ruedas y a es la distancia entre las ruedas. Fig. 3. Diagrama en Siulink de Simulador
El sistema a simularse se basa en el kit seguidor de lı́nea de

B. Simulación del móvil


El diagrama de simulación de los estados del móvil se
realiza en Simulink y se muestra en la figura 4. La primera

Fig. 1. Modelo matemático del móvil seguidor de linea

2 ruedas de tracción y una rueda volante de la figura 2 que es


de fácil adquisición en las tiendas de dispositivos electrónicos.
Para la implementación se complementará el kit con un sensor Fig. 4. Simulación de dinámica del móvil seguidor de linea
de posición Polulu Qtr8A que permite medir la desviación en
un rango de + − 38 mm. entrada representa la velocidad angular del móvil y se obtiene
como la menor velocidad de las dos ruedas. El bloque de
ganancia realiza la conversión de velocidad angular a ve-
locidad lineal. La velocidad de giro resulta de la diferencia
de la velocidad entre las ruedas. Los bloques de integración
permiten configurar los estados inciales de la posición y
dirección para la simulación en cada intervalo de tiempo.
C. Simulación de motores
El diagrama de simulación de los motores se muestra en la
figura 5. La primera entrada representa la velocidad referencial
del móvil que se ingresa como un valor de ciclo de trabajo
en el rango [0, 1]. La segunda entrada es la señal de salida
del controlador que corresponde a una diferencia de velocidad
entre las ruedas que se ingresa también como un valor de ciclo
Fig. 2. Kit Seguidor de lı́nea de trabajo entre 0 y 1. Cada motor se simula como un sistema
de primer orden que tiene como parámetro la ganancia Km que
representa la relación en estado estable de la velocidad angular
IV. S IMULACI ÓN
con el ciclo de trabajo y τm que coresponde a la constante de
A. Diagrama en Simulink del simulador tiempo del motor.
El diagrama de Simulink 3 se compone de tres bloques. Uno El bloque entrega como salida la velocidad angular del móvil
de los bloques realiza la simulación dinámica del móvil, un que se obtiene como la menor de la velocidad de las ruedas y
segundo bloque realiza la simulación dinámica de los motores. la velocidad angular de giro que se calcula como la resta de
El tercer bloque realiza la simulación del controlador. las dos velocidades angulares de los motores.
Fig. 5. Simulación de dinámica de los motores del móvil

D. Simulación del Controlador difuso


El controlador difuso acepta como entradas la desviación
del móvil como señal de error y el cambio de la desviación
Fig. 7. Lı́nea circular generada para seguimiento
como cambio de error. La salida del controlador es la señal
de control. El diagrama que se presenta en la figura 6 muestra
las entradas y salidas. El bloque de control difuso se configura
con una variable que almacena la estructura del control difuso. F. Script principal
La estructura del control difuso contiene la definición de las El programa simulador del móvil seguidor de lı́nea em-
funciones de pertenencia de las entradas y salidas, la base de pieza definiendo los parámetros del controlador Kp y Kd y
reglas y la definición del tipo de inferencia difusa mamdani. los parámetros del móvil como constante de tiempo de los
Las funciones de pertenencia para las entradas y salidas se motores, radio de las ruedas, voltaje aplicado a los motores,
han definido en forma normalizada, es decir que el universo distancia entre ruedas, distancia del centro de eje de ruedas al
de discurso para cada variable está en el rango [−1, 1]. La centro del sensor.
base de reglas contiene las mismas 25 reglas que se indican Luego se carga la lı́nea que se desea seguir y el tiempo de
en [1]. duración de cada intervalo simulado. Se define la posición
inicial del móvil mediante la definicón del punto central del
sensor y el ángulo de dirección θ. Otro parámetro que se define
es la velocidad deseada del móvil en términos de ciclo de
trabajo de la onda PWM que se genera para controlar los
motores.
El lazo del programa realiza la actualización de las condiciones
iniciales del próximo intervalo y el cálculo de la desviación
del móvil respecto de la lı́nea que es la entrada al controlador.
Las condiciones iniciales que se actualizan corresponden a los
Fig. 6. Simulación del Control PD difuso estados del móvil x, y y θ y las velocidades angulares de los
motores izquierdo wizq y derecho wder del móvil.
%
1 Programa p r i n c i p a l p a r a s i m u l a r un m o v i l en una
pista
E. Script de simulación de la Pista (lı́nea) 2 Kd = 2 0 0 ; %Kd= 200 p a r a a j u s t a r u n i v e r s o de
d i s c u r s o de cambio de p o s i c i o n a +−5mm/ s
La lı́nea a seguir se ha generado mediante una matriz de 3 Kp=26 % Kp=26 p a r a a j u s t a r u n i v e r s o de p o s i c i o n
dos columnas donde cada fila representa el par ordenado x a +−38mm
4 d = 0 . 1 3 ; taum =10 e −3; r = 0 . 0 2 5 ;V= 1 8 ; a = 0 . 2 5 ; r s = . 0 7 6 ;
y y que corresponde a un punto de la lı́nea. El código para Km=V/ 9 ∗ 7 . 1 4 ∗ 2 ∗ p i ;
generar una pista (lı́nea) que se muestra en la figura 7 se indica %
5 d es la d i s t a n c i a desde e l j e a sensor
a continuación: %
6 taum e s c o n s t a n t e de t i e m p o d e l m o t o r en s e g u n d o s
%
7 r e s e l r a d i o de l a s r u e d a s
1 paso =0.01; %
8 V es e l v o l t a j e a p l i c a d o a l motor l a v e l o c i d a d d e l
2 t =0: paso :2 m o t o r e s 7 . 1 4 r p s con 9 v o l t i o
3 xp = . 5 ∗ c o s ( p i ∗ ( t ) + p i / 2 ) ; yp = . 5 ∗ s i n ( p i ∗ ( t ) + p i / 2 ) %
9 a es la d i s t a n c i a entre ruedas
4 p l o t ( xp , yp ) % r s es e l rango d e l s e n s o r
10

5 t i t l e ( ’ Linea c i r c u l a r para movil ’ ) % Km e s l a r e l a c i o n de v e l o c i d a d a n g u l a r r a d / s a


11

6 axis equal v o l t a j e V d e l motor


12 p i s t a 4 ; % carga la l i n e a a s e g u i r
13 t s =10 e −3;% t i e m p o r e t a r d o de l a a c c i o n de
control 60 d d i s t = ( d i s t + d i s t a n t ) / 2 ∗ t s ; c d i s t = ( d i s t −d i s t a n t
14 f i g u r e ( 1 ) ; s u b p l o t ( 2 2 1 ) ; p l o t ( xp , yp , ’ r ’ ) ; a x i s ) / ts ;
e q u a l ; h o l d on 61 dist ant=dist ;
% valores iniciales
15 62 end
16 d i s t =0; d i s t a n t =0; c d i s t =0; i n t d i s t =0; %
d i s t a n c i a a n t e r i o r a p i s t a y cambio i n i c i a l
de d i s t a n c i a , v a l o r i n t e g r a l i n i c i a l V. R ESULTADOS
17 x i n i = . 0 ; y i n i = −0.5 % v a l o r e s de p o s i c i o n i n i c i a l
d e l c e n t r o de s e n s o r La figura 8 muestra los resultados obtenidos con los
18 t e t a 0 = 0 ; % l o s v a l o r e s de p o s i c i o n y d i r e c c i o n parámetros definidos en el Script principal
i n i c i a l de m o v i l
19 x0= x i n i −d∗ c o s ( t e t a 0 ) ; y0= y i n i −d∗ s i n ( t e t a 0 ) ;%
p o s i c i o n i n i c i a l de c e n t r o de e j e de r u e d a s
20 xv = [ ] ; yv = [ ] ; t e t a v = [ ] ; % v e c t o r e s que a l m a c e n a n
l a e v o l u c i o n de l o s e s t a d o s d e l m o v i l
21 d i s t v = [ ] ; % v e c t o r que a l m a c e n a e l e r r o r de
s e g u i m i e n t o de l i n e a
22 c o n t r o l v = [ ] ;%p a r a a c u m u l a r c o n t r o l
23 wder0 = 0 ; wizq0 = 0 ;% i n i c i a l i z a c i o n de v e l o c i d a d e s
de m o t o r e s
24 pwmr = 1 ;
25 for i =1:1:200
26 sim ( ’ m o v i l f u z z y ’ , t s )
27 x1=x+d∗ c o s ( t e t a ) ; y1=y+d∗ s i n ( t e t a ) ;
28 x s i =x1−r s / 2 ∗ s i n ( t e t a ) ; y s i =y1+ r s / 2 ∗ c o s ( t e t a ) ; %
p o s i c i o n de e x t r e m o s de s e n s o r
29 x s d =x1+ r s / 2 ∗ s i n ( t e t a ) ; y s d =y1−r s / 2 ∗ c o s ( t e t a ) ;
30 x i =x−a / 2 ∗ s i n ( t e t a ) ; y i =y+a / 2 ∗ c o s ( t e t a ) ;% p o s i c i o n
de r u e d a i z q u i e r d a
31 xd=x+a / 2 ∗ s i n ( t e t a ) ; yd=y−a / 2 ∗ c o s ( t e t a ) ;% p o s i c i o n
de r u e d a d e r e c h a
32 t e t a v = [ t e t a v t e t a ] ; c o n t r o l v = [ c o n t r o l v c o n t r o l ] ;%
para g r a f i c a r t e t a y c o n t r o l
33 wiz0 = wizq ; wder0 =wder ;% s e a c t u a l i z a l a c o n d i c i o n
i n i c i a l de v e l o c i d a d e s a n g u l a r e s
34 t e t a 0 = t e t a ;% s e a c t u a l i z a l a c o n d i c i o n i n i c i a l Fig. 8. Resultados del programa
para s i g u i e n t e s i m u l a c i o n
35 xv = [ xv x1 ] ;% x v e s un v e c t o r p a r a m o s t r a r l a
e v o l u c i o n d e l p u n t o c e n t r a l d e l s e n s o r en x
36 x0=x ; % s e a c t u a l i z a l a c o n d i c i o n i n i c i a l de VI. C ONCLUSION
p o s i c i o n x para s i g u i e n t e s i m u l a c i o n La funcionalidad del simulador se ha comprobado con dos
37 yv = [ yv y1 ] ;% y v e s un v e c t o r p a r a m o s t r a r l a
e v o l u c i o n d e l p u n t o c e n t r a l d e l s e n s o r en y tipos de pista y para distintas configuraciones de contro-
38 y0=y ;% s e a c t u a l i z a l a c o n d i c i o n i n i c i a l p a r a lador. El simulador permite observar el comportamiento del
siguiente simulacion seguidor de lı́nea. El simulador tiene mucha flexibilidad para
39 s u b p l o t ( 2 2 1 ) ; p l o t ( xp , yp , ’ r ’ ) ; a x i s e q u a l ; h o l d on
40 p l o t ( x1 , y1 , ’ ∗ r ’ ) ; p l o t ( x i , y i , ’ o r ’ ) ; p l o t ( xd , yd , ’ o r la definición de los parámetros del móvil, de la pista y del
’) controlador. Para el móvil se puede modificar el tamaño de
41 l i n e ( [ x x1 ] , [ y y1 ] ) ; l i n e ( [ x s i x s d ] , [ y s i y s d ] ) las ruedas, la distancia entre ruedas, la ubicación del sensor,
42 l i n e ( [ x i xd ] , [ y i yd ] )
43 t i t l e ( ’ L i n e a a s e g u i r y T r a y e c t o r i a de m o v i l ’ ) la longitud del sensor. Para el controlador se puede cambiar
44 p l o t ( xv , yv ) ; h o l d o f f las constantes de ganancia proporcional y derivativa, ası́ como
45 x s i v = x s i ∗ o n e s ( 1 , l e n g t h ( xp ) ) ; y s i v = y s i ∗ o n e s ( 1 , la ganancia a la salida del controlador. La forma de la pista
l e n g t h ( xp ) ) ;
46 x s d v = x s d ∗ o n e s ( 1 , l e n g t h ( xp ) ) ; y s d v = y s d ∗ o n e s ( 1 , puede definirse fácilmente mediante una secuencia de puntos.
l e n g t h ( xp ) ) ;
47 [ d i s t i z , i i z ] = min ( ( x s i v −xp ) . ˆ 2 + ( y s i v −yp ) . ˆ 2 ) ;% R EFERENCES
c a l c u l a d i s t a n c i a de l i n e a a e x t r e m o [1] K EVIN PASSINO , S TEPHEN Y URKOVICH Fuzzy Control,Addison-
i z q u i e r d o de s e n s o r Wesley, 1998
48 [ d i s t d e r , i d e r ] = min ( ( xsdv−xp ) . ˆ 2 + ( ysdv−yp ) . ˆ 2 ) ; [2] H ÉCTOR C RUZ, E LVIS L UZ , D IEGO AL C ÁNTARA Robot de tracción
49 i f x s d v ( i d e r ) ˆ 2 + y s d v ( i d e r ) ˆ 2 > xp ( i d e r ) ˆ 2 + yp ( diferencial con navegación mediante seguidor de lı́nea y posicionamiento
i d e r ) ˆ 2 && x s i v ( i i z ) ˆ 2 + y s i v ( i d e r ) ˆ 2 < xp ( i i z GPS, Instituto Politécnico Nacional, México D.F. 2013
) ˆ 2 + yp ( i i z ) ˆ 2 [3] D OGAN I BRAHIM , TAYSEER A LSHANABLEH An Undergraduate Fuzzy
50 d i s t = r s /2− r s ∗ d i s t i z / ( d i s t i z + d i s t d e r ) Logic Control Lab Using a Line Following Robot,Wiley InterScience,
51 else 2009
52 d i s p l a y ( ’ S e n s o r f u e r a de l i n e a ’ ) [4] S COTT PAWLIKOWSKI Development of a Fuzzy Logic Speed and Steering
53 break Control System for an autonomous vehicle, 1999
54 end [5] U MAR FAROOQ , M UHAMMAD A MR , M UHAMMAD U SMAN A SAD,
55 d i s t v = [ d i s t v d i s t ] ; %p a r a g r a f i c a r d e s v i a c i o n G HULAM A BBAS y ATHAR H ANIF Fuzzy Logic Reasoning System for
56 s u b p l o t ( 2 2 2 ) ; p l o t ( d i s t v ) ; t i t l e ( ’ D e s v i a c i o n m’ ) Line Following Robot, IACSIT International Journal of Engineering and
57 s u b p l o t ( 2 2 3 ) ; p l o t ( t e t a v ) ; t i t l e ( ’ D i r e c c i o n de technology,2014
movil rad ’ )
58 subplot (224) ; plot ( controlv ) ; t i t l e ( ’ Control ’ )
59 drawnow

You might also like