Está en la página 1de 12

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin

Medelln, Noviembre 4 y 5 de 2010

1DYHJDFLyQ ,QWHOLJHQWH GH XQ 5RERW 0yYLO PHGLDQWH /yJLFD 'LIXVD


$ 1DYDUUR  - +HUUHUD  5 $UDQJR
  

(1)

Docente del programa de Tecnologa en Electrnica Carrera 15 Calle 12N. alvaro_navarro@ieee.org

(2)

Estudiante del programa de Tecnologa en Electrnica, miembro del grupo GIDET Carrera 15 Calle 12N. sadjulian@hotmail.com
(1)

Docente del programa de Tecnologa en Electrnica, Carrera 15 Calle 12N. ramy@uniquindio.edu.co

5HVXPHQ En este trabajo se presenta la implementacin de un algoritmo inteligente basado en lgica difusa sobre la plataforma robtica Pololu para la navegacin en entornos interiores. La implementacin del algoritmo fue realizado en lenguaje C por intermedio de la herramienta AVRStudio de la empresa Atmel. Para el sistema difuso se definieron 27 reglas basadas en el conocimiento del experto hacia el entorno que el robot fue sometido. Pololu posee una configuracin tipo diferencial manejada por dos micromotorreductores de alta velocidad. La locomocin es manejada por un circuito de potencia especializado. La percepcin del robot es controlada por intermedio de tres sensores de infrarrojos ubicados en la parte delantera. El control del robot fue implementado en un microcontrolador AVR. Al final se mencionan los resultados obtenidos. 3DODEUDV FODYHV Estacin robot, navegacin, motores, sensores, algoritmos inteligentes.

 ,QWURGXFFLyQ A travs de los aos la ciencia y la tecnologa avanzan a pasos agigantados. A veces con mucha rapidez a veces con menos pero siempre se muestra un avance. Y con estos avances surgen nuevas ramas y espacios de aplicacin y en la robtica no ha sido la excepcin. Hoy en da existen muchas estrategias de control que permiten a los robots mviles tener un control ms preciso de su rendimiento en cualquier ambiente; aquellas estrategias estn enfocadas hacia los algoritmos inteligentes donde han demostrado tener una mayor confiablidad. Los robots mviles deben ser capaces de desenvolverse en un entorno real, construir su propio mapa y navegar de manera autnoma lo que para ellos se requiere la implementacin de estrategias de control inteligente, que puedan manejar la incertidumbre presentada por el entorno de trabajo, al mismo tiempo que se desempea en tiempo real con una relativa baja carga computacional [1].

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

Muchos son las tcnicas y algoritmos de control para este tipo de robots, todas con caractersticas propias en la cual cada una ofrece ventajas y desventajas que permiten a los cientficos utilizar el que mejor se acomode a la necesidad. Dada la especializacin de los nuevos mecanismos, se exigen tambin tcnicas de control capaces de ofrecer un trabajo satisfactorio en la realizacin de las tareas. Una de las tcnicas es llamada Lgica Difusa dominada por una base de reglas del tipo if $QWHFHGHQWH then &RQVHFXHQWH [2]  /yJLFD GLIXVD

La lgica difusa se fundamenta en la teora de conjuntos difusos y se implementa ampliamente en procesos que utilicen el razonamiento basado en reglas. Los procesos de razonamiento parten del conocimiento de un experto, dicho conocimiento se introduce en la base de reglas en forma de sentencias si-entonces (if-then) Los datos que entran al sistema difuso estn expresados en lenguaje comn, debido a esto es necesario trasladar el conocimiento inicial, es decir, los datos a un lenguaje que sea entendido por el sistema difuso (Fusificacin). Al terminar el proceso los datos son llevados nuevamente a su forma original a travs de la defuzificacin. Las reglas creadas por el usuario describen el comportamiento del sistema. El esquema bsico de un sistema difuso se muestra en la (Fig.1).

Fig.1. Esquema bsico de un sistema difuso

La definicin matemtica de un conjunto difuso A se expresa como: (1) Donde X es el universo de discurso o simplemente el universo y sus elementos se denotan como x, entonces el conjunto difuso A en X es definido como un conjunto de pares ordenados. Dicho universo consiste de objetos discretos (singleton) ordenados o no ordenados y espacios continuos (funciones de membresa). Un conjunto difuso nicamente se especifica por su funcin de membresa. Una funcin de membresa es una funcin que define como cada punto en un espacio de entradas es mapeado en un grado de membresa entre 0 y 1. El espacio de entradas a veces es referenciado como el universo de discurso.

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

Las funciones de membresa ms conocidas son: singleton, triangular (L o Lambda), trapezoidal (P o Pi), gaussiana, campana generalizada (generalized bell), sigmoidal, Z y S. Cada nombre de las funciones de membresa anteriores hace referencia a su forma y cada una de ellas tiene diferentes variaciones. Algunas de las funciones de membresa ms utilizadas son mostradas en la (Fig. 2).

Fig. 2. Funciones de membresa. (a) Membresa triangular, (b) Membresa trapezoidal, (c) Membresa gaussiana, (d) Membresa campana

El detalle y la descripcin matemtica precisa no siempre son necesarios para el funcionamiento ptimo de un proceso. En otras palabras, los operadores humanos son a menudo capaces de manejar situaciones complejas. Su conocimiento est disponible en un formulario lingstico, es decir, el conjunto de variables de entradas al sistema difuso son traducidas en un conjunto de variables lingsticas. Una funcin de pertenencia asociada a cualquier variable lingstica (altura) mostrndose a su vez el universo de discurso se muestra en la (Fig. 3).

Fig. 3 Parmetros importantes en una funcin de pertenencia

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

El proceso de combinacin de las diferentes reglas se realiza a partir de las operaciones con conjuntos difusos tales como: La unin, interseccin y complemento definidos as: Interseccin (AND): (2) Unin (OR): (3) Complemento (NOT): (4) En la (Fig. 4) se muestra la comparacin entre operadores clsicos y operadores difusos. La Fuzificacin es el proceso en el cual se toman las entradas y se determina el grado de membresa perteneciente a cada uno de los conjuntos difusos apropiados, determinado por las funciones de membresa. La entrada es siempre un valor numrico limitado al universo de discurso de la variable de entrada y la salida es un grado de membresa difuso en el conjunto lingstico calificativo (intervalo entre 0 y 1). La defuzificacin es el mtodo para obtener el valor numrico o real, que mejor represente un resultado lingstico dado por un conjunto difuso en la variable lingstica de salida. La estrategia de defuzificacin ms utilizada es el &HQWUR GH *UDYHGDG. El defuzificador por centro de gravedad esta dado por:

(5)

Fig. 4 Operadores clsicos (Lgica de dos valores) vs. Operadores Difusos (Lgica multivaluada)

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

 'HVFULSFLyQ GHO VLVWHPD El robot Pololu es un robot seguidor de lnea diseado por la empresa Pololu 3Pi [3]. Este robot posee una configuracin tipo diferencial para manejar su locomocin. Para tener mejor rendimiento en su etapa de potencia, el robot posee un circuito elevador de voltaje. Para realizar su percepcin sobre una lnea negra, el robot cuenta con 5 sensores infrarrojos de alta resolucin. Posee una pantalla de cristal lquido OFG para realizar la calibracin de los sensores. El sistema de control est implementado sobre un microcontrolador ATmega328 de la empresa ATMEL [4]. En la (Fig. 5) se muestra una foto del robot Pololu.

Fig. 5 Robot Pololu

El sistema est conformado por los bloques mostrados en la Fig6. Un mdulo de percepcin o etapa sensorial para detectar algn obstculo durante su recorrido. Un mdulo de control quien es el encargado de leer los sensores, aplicar el algoritmo de navegacin y dar la orden a la etapa de potencia para efectuar el respectivo movimiento. Un mdulo de locomocin dedicada a recibir la informacin de la etapa de control y ejecutar los movimientos pertinentes.

Fig.6 Diagrama general del sistema

 0yGXOR GH SHUFHSFLyQ El mdulo de percepcin est compuesto por tres sensores de infrarrojo GP2D12 de la empresa Sharp [5] ubicado en el frente de la parte delantera a una distancia de 30 grados entre cada uno (Fig. 7). Su funcin es detectar la presencia de algn obstculo en frente que pueda causar que el robot choque.

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

Fig. 7 Ubicacin de los sensores en la plataforma

El sensor de infrarrojo es un sensor compacto auto contenido que incorpora un sistema de medicin de infrarrojo transmisor y receptor, filtros y circuitos de amplificacin. La unidad es altamente resistente a la luz ambiente, a las variaciones en la reflexin de la superficie del terreno. El GP2D12 entrega un voltaje analgico segn la distancia a la que se encuentre un obstculo segn la (Fig. 8). El voltaje es digitalizado por la accin del conversor analgico digital (ADC) que posee internamente el microcontrolador. De acuerdo al rango de medida del sensor, el entorno en donde se desenvuelve el robot es un entorno pequeo con el nico objetivo que el robot evite chocarse contra cualquier obstculo.

Fig.8 Curva de respuesta del sensor infrarrojo GP2D12

 0yGXOR GH ORFRPRFLyQ Para realizar los movimientos en cualquier superficie, el robot posee dos micromotorreductores de alta velocidad perfectamente sincronizados.

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

 0yGXOR GH FRQWURO Para el manejo de la etapa de control, el robot posee un microcontrolador AVR de 8 bits de la empresa Atmel. La funcin de esta etapa es realizar la constante lectura de todos los sensores que posee el robot, ejecutar el procesamiento adecuado de la informacin y enviarla a la etapa de locomocin.  ,PSOHPHQWDFLyQ

Para implementar el sistema, el robot ha sido sometido a un entorno no conocido con varios obstculos presentes en el medio (Fig. 9). Se definieron las variables de entrada, variables de salida con sus respectivos conjuntos y valores lingsticos.

Fig. 9 Entorno donde fue sometido el robot

 9DULDEOHV GH HQWUDGD Corresponde la distancia del robot hacia el obstculo.  9DULDEOH GH VDOLGD Corresponde al sentido de giro que el robot debe realizar una vez haya terminado de procesar el clculo difuso. Los valores lingsticos definidos para la distancia al robot son y para el sentido de giro se muestra en la tabla 1:

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

Tabla 1. Variables lingsticas Variable de Variable de salida entrada Cerca - C Medio - M Lejos - L Rpido Atrs - RR Lento Atrs - RL Lento Adelante - FL Rpido Adelante - FR

El rango o universo de discurso para la variable de entrada se encuentra limitada entre los valores mnimos y mximos manejados por el sensor (10 80cm). Se encuentra segmentado de la siguiente manera: Lejos: Medio: Cerca: 45 [  20 [  10 [ 

El rango o universo de discurso para la variable de salida se encuentra limitada por los valores mximos y mnimos asignados al sentido de giro implementado en el microcontrolador. Los valores son: -100 (mximo giro hacia atrs) y 100 (mximo giro hacia adelante) por cada motor. Se encuentra segmentado de la siguiente manera: Rpido Adelante: 33 [  Lento Adelante: 0 [  Lento Atrs: -66 [  Rpido Atrs: -100 [ -33 Los movimientos de robot estn manejados segn la (Fig. 10), teniendo en cuenta que dependiendo de la distancia al obstculo el robot dar los giros ms y menos forzada.

Fig. 10 Movimientos del robot

Para implementar los conjuntos difusos se definen las funciones de pertenencia de tipo triangular, tipo Z, tipo S [6]. Esta seleccin se ha realizado debido a la facilidad de expresar

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

estas funciones a travs de un modelo matemtico o conjunto de ecuaciones. funciones de pertenencia representan de manera adecuada la naturaleza de los datos.

Estas

La (Fig. 11) muestra las funciones de pertenencia para la variable de entrada y en la (Fig. 12) se muestra las funciones de pertenencia para la variable de salida.

Fig. 11 Funciones de pertenencia para la variable de entrada

Fig. 12 Funciones de pertenencia para la variable de salida

 %DVH GH UHJODV Se definieron 27 reglas basadas en el conocimiento del experto segn el entorno donde el robot est explorando, teniendo en cuenta que el principal objetivo es una navegacin por un entorno interior sin que choque contra ningn obstculo en su recorrido. La base de reglas se muestra en la Tabla 2. Por ejemplo, en la regla 1 se plantea que si todos los sensores estn observando un obstculo cercano (segn el rango mencionado anteriormente), la respuesta del robot sera un giro lento hacia la derecha.

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

Tabla 1. Base de Reglas


Variables de Entrada 1 2 3 4 5 6 7 8 9 10 11 12 13 14 C C C C C C C C C M M M M M C C C M M M L L L C C C M M C M L C M L C M L C M L C M Variables de Salida RL FL FL FR FR FR FL FL FR RL RL FL RL FR FL RL RL RR RR RR FL FL FR FL FL RL FL FR 15 16 17 18 19 20 21 22 23 24 25 26 27 Variables de Entrada M M M M L L L L L L L L L M L L L C C C M M M L L L L C M L C M L C M L C M L Variables de Salida FR RR FR FR RL RL RL FR RR FR RL RR FR FR FR FR RR FL FL FL FR FR FR FL FR FR

 'HVDUUROOR Para la simulacin del sistema se utiliz la herramienta UnFuzzy diseada en la universidad Nacional de Colombia [7]. Esta herramienta permite definir las variables de entradas, las variables de salida, los tipos de conjuntos, la base de reglas y las distintas formas para encontrar la respuesta de salida de una manera muy amigable. Esta herramienta genera un cdigo en lenguaje C listo para ser implementado. El cdigo ha sido acoplado a la arquitectura de los microcontroladores AVR de punto fijo. Una vez el robot inicia, el sistema hace lectura de los sensores analgicos obteniendo valores cuantizados segn (6).

(6) Posterior, se accede a una funcin que calcula la distancia segn los valores cuantizados encontrados anteriormente. Debido a que la curva de respuesta de los sensores analgicos es no lineal (fig8), y para facilidad de clculo en el microcontrolador, se recurri a una interpolacin realizada en Matlab en punto flotante, dando el siguiente resultado [8]:

(7)

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

Donde corresponde al valor cuantizado por el conversor analgico digital $'& del microcontrolador a una resolucin de 10 bits. A continuacin, el sistema verifica si las tres entradas tienen pertenencia sobre cada regla completa analizando la pertenencia del antecedente segn (8) (8) Donde , , los conjuntos difusos. corresponden a las pertenencias para variable de entrada en

Se realiza ahora el proceso de hallar la pertenencia del consecuente partiendo de un centro de altura definido a cada conjunto de salida para finalmente hallar la pertenencia de la implicacin. (9) (10) Donde es la pertenencia para las variables de salida.

Con la pertenencia de la implicacin, el sistema traduce estos valores a los valores correspondientes de salida a cada motor y ejecutar su objetivo de movimiento.  5HVXOWDGRV El robot responde de forma efectiva cuando alguno de los sensores detecta obstculo, aunque debido a la inercia que trae producto de la velocidad, el cambio de giro lo realiza muy prximo al obstculo. Los valores de distancia analizados para los conjuntos difusos presentaron muy buena respuesta en distancia superiores a 50cm. A distancias menores el algoritmo obliga a realizar giros redundantes para sortear los obstculos. El tiempo que consume el microcontrolador en encontrar el valor de salida para cada motor en funcin de los valores de entrada provenientes de los sensores fue de aproximadamente 300ms a una frecuencia de reloj de 20Mhz, lo cual es un tiempo prudente para tomar las respectivas decisiones.

ETCC 2010 III Simposio Nacional de Electrnica, Telecomunicaciones y Ciencias de la Computacin


Medelln, Noviembre 4 y 5 de 2010

 &RQFOXVLRQHV Se ha mostrado la implementacin de un algoritmo de mucha aplicacin en un robot mvil para trabajos de navegacin en ambientes no conocidos interiores. Se pierde un poco de rendimiento a nivel de software debido a que el cdigo generado por UnFuzzy contiene variables en punto flotante y el microcontrolador Atmega328 es un microcontrolador a punto fijo y tarda mucho tiempo en realizar una operacin. La lgica difusa es una tcnica que presenta muy buenos resultados si se fusiona con otras tcnicas de navegacin inteligente. Para ambientes ms complejos el algoritmo implementado en el microcontrolador puede presentar fallas en buscar soluciones con los mnimos locales propios de la navegacin. $JUDGHFLPLHQWRV

Un especial agradecimiento a los integrantes del grupo GIDET del Programa de Tecnologa en Electrnica de la Universidad del Quindo por sus continuos aportes y contribuciones en la implementacin de este trabajo y de otros que redundan en el desarrollo de la robtica en nuestra Universidad.
5HIHUHQFLDV
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

[11] [12]

Ros. L., Parra. H., Bueno. M. Navegacin de robots mviles mediante comportamientos utilizando lgica difusa. Scientia et Technica Ao XIII. Universidad Tecnolgica de Pereira. Mayo de 2007. Caballero. M., Cruz. L. Navegador Difuso de un Robot Mvil. Instituto Tecnolgico de Queretaro Departamento de Sistemas Computacionales. Santiago de Queretano. Pololu 3pi Robot. Pololu Robotics and Electronics. Las Vegas, NV 89120. USA. Disponible en www.pololu.com Atmel Corporation. 8 bit AVR Microcontroller with 32 Kbyte In System Programmable Flash ATmega328 2005. Sensor Infrarrojo GP2DX. Sharp. Disponible en www.sharp.com. T. Vidal. Introduccin a la lgica difusa. 2009 Duarte. O. Sistema de Lgica Difusa. Fundamentos (UNFUZZY). Universidad Nacional de Colombia. 1998. Parrado. A., Buitrago. J. Tareas en ejecutivo cclico. Control de Posicin de un Servomecanismo. Diseo de sistema en tiempo real. Universidad del Valle. 2008. Herrera. R., Gonzales. S. Principios de Robtica: Aplicacin al Guiado de Vehculos. Introduccin y Sensores de Exploracin. Canales de Mecnica y Electricidad, Mayo Junio de 2003. Zamora. M., Barber. H. Navegacin planificada de un Robot Mvil en Entornos Interiores Desconocidos. Grupo de Visn, Robtica y el Departamento de Inteligencia Artificial. Universidad del Murcia. Espaa. Siaffotti. A., Ruspini. E. Using Fuzzy Logic for Mobil Robot Contro. Chapter 5 of the International Handbook of Fuzzy Sets.1999. Baena. J., Vallejo. M., Aedo. J. FuzzyComp. Una herramienta para la construccin de prototipos de sistemas difusos en microcontroladores de 8 bits. Grupo de Microelectrnica. Facultad de Ingeniera. Universidad de Antioquia.2002.

También podría gustarte