12
ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010 1DYHJDFLyQ,QWHOLJHQWHGHXQ5RERW0yYLOPHGLDQWH/yJLFD ’LIXVD $1DYDUUR -+HUUHUD 5$UDQJR (1) Docente del programa de Tecnología en Electrónica Carrera 15 Calle 12N. [email protected] (2) Estudiante del programa de Tecnología en Electrónica, miembro del grupo GIDET Carrera 15 Calle 12N. [email protected] (1) Docente del programa de Tecnología en Electrónica, Carrera 15 Calle 12N. [email protected] 5HVXPHQ En este trabajo se presenta la implementación de un algoritmo inteligente basado en lógica difusa sobre la plataforma robótica Pololu para la navegación en entornos interiores. La implementación 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 configuración tipo diferencial manejada por dos micromotorreductores de alta velocidad. La locomoción es manejada por un circuito de potencia especializado. La percepción 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. 3DODEUDVFODYHVEstación robot, navegación, motores, sensores, algoritmos inteligentes. ,QWURGXFFLyQ A través de los años la ciencia y la tecnología 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 aplicación y en la robótica no ha sido la excepción. Hoy en día existen muchas estrategias de control que permiten a los robots móviles tener un control más preciso de su rendimiento en cualquier ambiente; aquellas estrategias están enfocadas hacia los algoritmos inteligentes donde han demostrado tener una mayor confiablidad. Los robots móviles deben ser capaces de desenvolverse en un entorno real, construir su propio mapa y navegar de manera autónoma lo que para ellos se requiere la implementación de estrategias de control inteligente, que puedan manejar la incertidumbre presentada por el entorno de trabajo, al mismo tiempo que se desempeña en tiempo real con una relativa baja carga computacional [1].

Articulo Robot Navegación

Embed Size (px)

Citation preview

ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

1DYHJDFLyQ�,QWHOLJHQWH�GH�XQ�5RERW�0yYLO�PHGLDQWH�/yJLFD�'LIXVD��$��1DYDUUR����� -��+HUUHUD����� 5��$UDQJR�������

(1) Docente del programa de Tecnología en Electrónica Carrera 15 Calle 12N. [email protected]

(2) Estudiante del programa de Tecnología en Electrónica, miembro del grupo GIDET

Carrera 15 Calle 12N. [email protected]

(1) Docente del programa de Tecnología en Electrónica, Carrera 15 Calle 12N. [email protected]

5HVXPHQ� En este trabajo se presenta la implementación de un algoritmo inteligente basado en lógica difusa sobre la plataforma robótica Pololu para la navegación en entornos interiores. La implementación 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 configuración tipo diferencial manejada por dos micromotorreductores de alta velocidad. La locomoción es manejada por un circuito de potencia especializado. La percepción 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��Estación robot, navegación, motores, sensores, algoritmos inteligentes. �

���,QWURGXFFLyQ� A través de los años la ciencia y la tecnología 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 aplicación y en la robótica no ha sido la excepción. Hoy en día existen muchas estrategias de control que permiten a los robots móviles tener un control más preciso de su rendimiento en cualquier ambiente; aquellas estrategias están enfocadas hacia los algoritmos inteligentes donde han demostrado tener una mayor confiablidad.�Los robots móviles deben ser capaces de desenvolverse en un entorno real, construir su propio mapa y navegar de manera autónoma lo que para ellos se requiere la implementación de estrategias de control inteligente, que puedan manejar la incertidumbre presentada por el entorno de trabajo, al mismo tiempo que se desempeña en tiempo real con una relativa baja carga computacional [1].

ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

Muchos son las técnicas y algoritmos de control para este tipo de robots, todas con características propias en la cual cada una ofrece ventajas y desventajas que permiten a los científicos utilizar el que mejor se acomode a la necesidad. Dada la especialización de los nuevos mecanismos, se exigen también técnicas de control capaces de ofrecer un trabajo satisfactorio en la realización de las tareas. Una de las técnicas es llamada Lógica Difusa dominada por una base de reglas del tipo if $QWHFHGHQWH then &RQVHFXHQWH�[2]����/yJLFD�GLIXVD��La lógica difusa se fundamenta en la teoría 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 están expresados en lenguaje común, debido a esto es necesario trasladar el conocimiento inicial, es decir, los datos a un lenguaje que sea entendido por el sistema difuso (Fusificación). Al terminar el proceso los datos son llevados nuevamente a su forma original a través de la defuzificación. Las reglas creadas por el usuario describen el comportamiento del sistema. El esquema básico de un sistema difuso se muestra en la (Fig.1).

Fig.1. Esquema básico de un sistema difuso La definición matemática 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 membresía). Un conjunto difuso únicamente se especifica por su función de membresía. Una función de membresía es una función que define como cada punto en un espacio de entradas es mapeado en un grado de membresía entre 0 y 1. El espacio de entradas a veces es referenciado como el universo de discurso.

ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

Las funciones de membresía más 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 membresía anteriores hace referencia a su forma y cada una de ellas tiene diferentes variaciones. Algunas de las funciones de membresía más utilizadas son mostradas en la (Fig. 2).

Fig. 2. Funciones de membresía. (a) Membresía triangular, (b) Membresía trapezoidal, (c) Membresía gaussiana, (d) Membresía campana

El detalle y la descripción matemática 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 lingüístico, es decir, el conjunto de variables de entradas al sistema difuso son traducidas en un conjunto de variables lingüísticas. Una función de pertenencia asociada a cualquier variable lingüística (altura) mostrándose a su vez

el universo de discurso se muestra en la (Fig. 3).

Fig. 3 Parámetros importantes en una función de pertenencia

ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

El proceso de combinación de las diferentes reglas se realiza a partir de las operaciones con conjuntos difusos tales como: La unión, intersección y complemento definidos así: Intersección (AND):

(2) Unión (OR):

(3) Complemento (NOT):

(4) En la (Fig. 4) se muestra la comparación entre operadores clásicos y operadores difusos. La Fuzificación es el proceso en el cual se toman las entradas y se determina el grado de membresía perteneciente a cada uno de los conjuntos difusos apropiados, determinado por las funciones de membresía. La entrada es siempre un valor numérico limitado al universo de discurso de la variable de entrada y la salida es un grado de membresía difuso en el conjunto lingüístico calificativo (intervalo entre 0 y 1). La defuzificación es el método para obtener el valor numérico o real, que mejor represente un resultado lingüístico dado por un conjunto difuso en la variable lingüística de salida. La estrategia de defuzificación más utilizada es el &HQWUR�GH�*UDYHGDG. El defuzificador por centro de gravedad esta dado por:

(5)

Fig. 4 Operadores clásicos (Lógica de dos valores) vs. Operadores Difusos (Lógica multivaluada)

ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

���'HVFULSFLyQ�GHO�VLVWHPD� El robot Pololu es un robot seguidor de línea diseñado por la empresa Pololu 3Pi [3]. Este robot posee una configuración tipo diferencial para manejar su locomoción. Para tener mejor rendimiento en su etapa de potencia, el robot posee un circuito elevador de voltaje. Para realizar su percepción sobre una línea negra, el robot cuenta con 5 sensores infrarrojos de alta resolución. Posee una pantalla de cristal líquido OFG para realizar la calibración 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 módulo de percepción o etapa sensorial para detectar algún obstáculo durante su recorrido. Un módulo de control quien es el encargado de leer los sensores, aplicar el algoritmo de navegación y dar la orden a la etapa de potencia para efectuar el respectivo movimiento. Un módulo de locomoción dedicada a recibir la información de la etapa de control y ejecutar los movimientos pertinentes.

Fig.6 Diagrama general del sistema ����0yGXOR�GH�SHUFHSFLyQ�

El módulo de percepción 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 función es detectar la presencia de algún obstáculo en frente que pueda causar que el robot choque.

ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

Fig. 7 Ubicación de los sensores en la plataforma El sensor de infrarrojo es un sensor compacto auto contenido que incorpora un sistema de medición de infrarrojo transmisor y receptor, filtros y circuitos de amplificación. La unidad es altamente resistente a la luz ambiente, a las variaciones en la reflexión de la superficie del terreno. El GP2D12 entrega un voltaje analógico según la distancia a la que se encuentre un obstáculo según la (Fig. 8). El voltaje es digitalizado por la acción del conversor analógico – 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 pequeño con el único objetivo que el robot evite chocarse contra cualquier obstáculo.

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 Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, 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 función de esta etapa es realizar la constante lectura de todos los sensores que posee el robot, ejecutar el procesamiento adecuado de la información y enviarla a la etapa de locomoción. ���,PSOHPHQWDFLyQ��Para implementar el sistema, el robot ha sido sometido a un entorno no conocido con varios obstáculos presentes en el medio (Fig. 9). Se definieron las variables de entrada, variables de salida con sus respectivos conjuntos y valores lingüísticos.

Fig. 9 Entorno donde fue sometido el robot ����9DULDEOHV�GH�HQWUDGD�Corresponde la distancia del robot hacia el obstáculo. ����9DULDEOH�GH�VDOLGD���Corresponde al sentido de giro que el robot debe realizar una vez haya terminado de procesar el cálculo difuso.

Los valores lingüísticos 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 Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

Tabla 1. Variables lingüísticas Variable de

entrada Variable de salida

Cerca - C Rápido Atrás - RR

Medio - M Lento Atrás - RL

Lejos - L Lento Adelante - FL

Rápido Adelante - FR

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

El rango o universo de discurso para la variable de salida se encuentra limitada por los valores máximos y mínimos asignados al sentido de giro implementado en el microcontrolador. Los valores son: -100 (máximo giro hacia atrás) y 100 (máximo giro hacia adelante) por cada motor. Se encuentra segmentado de la siguiente manera: Rápido Adelante: 33 � [������ Lento Adelante: 0 � [����� Lento Atrás: -66 � [���� Rápido Atrás: -100 � [���-33

Los movimientos de robot están manejados según la (Fig. 10), teniendo en cuenta que dependiendo de la distancia al obstáculo el robot dará los giros más 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 selección se ha realizado debido a la facilidad de expresar

ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

estas funciones a través de un modelo matemático o conjunto de ecuaciones. Estas funciones de pertenencia representan de manera adecuada la naturaleza de los datos. 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 según el entorno donde el robot está explorando, teniendo en cuenta que el principal objetivo es una navegación por un entorno interior sin que choque contra ningún obstáculo 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 están observando un obstáculo cercano (según el rango mencionado anteriormente), la respuesta del robot sería un giro lento hacia la derecha.

ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

Tabla 1. Base de Reglas

Variables de Entrada

Variables de Salida

Variables de Entrada

Variables de Salida

1 C C C RL FL 15 M M L FR FR

2 C C M FL RL 16 M L C RR FR

3 C C L FL RL 17 M L M FR FR

4 C M C FR RR 18 M L L FR RR

5 C M M FR RR 19 L C C RL FL

6 C M L FR RR 20 L C M RL FL

7 C L C FL FL 21 L C L RL FL

8 C L M FL FL 22 L M C FR FR

9 C L L FR FR 23 L M M RR FR

10 M C C RL FL 24 L M L FR FR

11 M C M RL FL 25 L L C RL FL

12 M C L FL RL 26 L L M RR FR

13 M M C RL FL 27 L L L FR FR

14 M M M FR FR

���'HVDUUROOR��Para la simulación del sistema se utilizó la herramienta UnFuzzy diseñada 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 código en lenguaje C listo para ser implementado. El código 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 analógicos obteniendo

valores cuantizados según (6).

(6) Posterior, se accede a una función que calcula la distancia según los valores cuantizados encontrados anteriormente. Debido a que la curva de respuesta de los sensores analógicos es no lineal (fig8), y para facilidad de cálculo en el microcontrolador, se recurrió a una interpolación realizada en Matlab en punto flotante, dando el siguiente resultado [8]:

(7)

ETCC 2010 – III Simposio Nacional de Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

Donde corresponde al valor cuantizado por el conversor analógico digital $'&� del microcontrolador a una resolución de 10 bits. A continuación, el sistema verifica si las tres entradas tienen pertenencia sobre cada regla completa analizando la pertenencia del antecedente según (8)

(8)

Donde , , corresponden a las pertenencias para variable de entrada en los conjuntos difusos. 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 implicación.

(9)

(10)

Donde es la pertenencia para las variables de salida. Con la pertenencia de la implicación, 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 obstáculo, aunque debido a la inercia que trae producto de la velocidad, el cambio de giro lo realiza muy próximo al obstáculo. 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 obstáculos. El tiempo que consume el microcontrolador en encontrar el valor de salida para cada motor en función 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 Electrónica, Telecomunicaciones y Ciencias de la Computación Medellín, Noviembre 4 y 5 de 2010

���&RQFOXVLRQHV��Se ha mostrado la implementación de un algoritmo de mucha aplicación en un robot móvil para trabajos de navegación en ambientes no conocidos interiores. Se pierde un poco de rendimiento a nivel de software debido a que el código 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 operación. La lógica difusa es una técnica que presenta muy buenos resultados si se fusiona con otras técnicas de navegación inteligente. Para ambientes más complejos el algoritmo implementado en el microcontrolador puede presentar fallas en buscar soluciones con los mínimos locales propios de la navegación. $JUDGHFLPLHQWRV� Un especial agradecimiento a los integrantes del grupo GIDET del Programa de Tecnología en Electrónica de la Universidad del Quindío por sus continuos aportes y contribuciones en la implementación de este trabajo y de otros que redundan en el desarrollo de la robótica en nuestra Universidad. �5HIHUHQFLDV��[1] Ríos. L., Parra. H., Bueno. M. Navegación de robots móviles mediante comportamientos utilizando

lógica difusa. Scientia et Technica Año XIII. Universidad Tecnológica de Pereira. Mayo de 2007�.[2] Caballero. M., Cruz. L. Navegador Difuso de un Robot Móvil. Instituto Tecnológico de Queretaro

Departamento de Sistemas Computacionales. Santiago de Queretano. [3] Pololu 3pi Robot. Pololu Robotics and Electronics. Las Vegas, NV 89120. USA. Disponible en

www.pololu.com [4] Atmel Corporation. 8 bit AVR Microcontroller with 32 Kbyte In System Programmable Flash

ATmega328 2005. [5] Sensor Infrarrojo GP2DX. Sharp. Disponible en www.sharp.com. [6] T. Vidal. Introducción a la lógica difusa. 2009 [7] Duarte. O. Sistema de Lógica Difusa. Fundamentos (UNFUZZY). Universidad Nacional de Colombia.

1998. [8] Parrado. A., Buitrago. J. Tareas en ejecutivo cíclico. Control de Posición de un Servomecanismo. Diseño

de sistema en tiempo real. Universidad del Valle. 2008. [9] Herrera. R., Gonzales. S. Principios de Robótica: Aplicación al Guiado de Vehículos. Introducción y

Sensores de Exploración. Canales de Mecánica y Electricidad, Mayo – Junio de 2003. [10] Zamora. M., Barberá. H. Navegación planificada de un Robot Móvil en Entornos Interiores

Desconocidos. Grupo de Visón, Robótica y el Departamento de Inteligencia Artificial. Universidad del Murcia. España.

[11] Siaffotti. A., Ruspini. E. Using Fuzzy Logic for Mobil Robot Contro. Chapter 5 of the International Handbook of Fuzzy Sets.1999.

[12] Baena. J., Vallejo. M., Aedo. J. FuzzyComp. Una herramienta para la construcción de prototipos de sistemas difusos en microcontroladores de 8 bits. Grupo de Microelectrónica. Facultad de Ingeniería. Universidad de Antioquia.2002.