Implementación del Algoritmo de Control Lógica Difusa en robot detector de obstáculo utilizando la robótica con tecnología ARDUINO

Lógica Difusa en robot detector de obstáculo utilizando la Robótica

Castañeda Barbarán Milagros del Carmen

https://orcid.org/0000-0002-7130-9131

 


 

Fecha Recepción: 02 DIC 2020

Fecha Aceptación: 04 DIC2020

Resumen

Este documento de la presente investigación, constituye la Implementación del Algoritmo Lógica Difusa, aplicados al ámbito de tecnología educativa (robótica) en la creación de un robot detector de obstáculos con tecnología Arduino. Los robots móviles, desarrollan sistemas de control básico, por lo que solamente se está limitando en el área de robótica, el uso de algoritmos de control básico presenta dificultades en el funcionamiento de sus tareas. Al evaluar el Algoritmo de Control Robótico Lógica Difusa muestra un mejor desempeño en la enseñanza de la robótica.

Palabras clave: Algortimos de Lógica Difusa, Tecnología Educativa, Robótica y la Inteligencia Artificial, Electrónica Digital, Programación de Robots en Arduino.

 

1.         INTRODUCCION

En este tiempo se ha vuelto indispensable la creación de Kits Robóticos que permite el aprendizaje de Robótica de forma simple e intuitiva con poca o ninguna intimidad con el área tecnológica. ¿Cómo hacemos que los robots realizan tareas inteligentes?, con los robots ayudan a enseñar y aprender en robótica, como el hardware (mecánica, electrónica), software (programas de programación) y los Algoritmos de Control a aplicar en el desarrollo.

En clase de robótica plantea situaciones problemáticas que deberá resolver el Robot, esto implica la implementación de Algoritmos de Control. Para que el método sea aplicable, los Robots deben poseer ciertas características especiales, como versatilidad, confiabilidad, dimensiones acotadas, facilidad en su programación y de bajo coste para que todos tengan la posibilidad de usarlo. Este método se considera apropiado, teniendo en cuenta el contenido a enseñar y la necesidad de incluir en la enseñanza de la programación, basados en la tecnología. [1]

No obstante, de los notables esfuerzos de los investigadores científicos de algoritmos de control robótico cumplan los requerimientos aplicado a la Inteligencia Artificial en distintas áreas, por lo que esta investigación se encargará desarrollar la “Implementación de Algoritmos de Control Lógica Difusa para la creación de robots”, donde se evaluará su funcionamiento en un robot detector de obstáculos. Interiorizan diversos conceptos tecnológicos, tales como: diseño y construcción de prototipos propios o modelos que simulan objetos ya creados por el hombre, aplicación de sensores, estrategias de programación, control y sincronización de procesos.

2.        TRABAJOS RELACIONADOS

Se ha llevado a cabo varias investigaciones donde se utilizaron Algoritmos Control Robóticos. [2] Aplicaron Algoritmo Lógica Difusa, en la implementación de un control de fuzzy para el control cinemático directo en un robot manipulador, se muestra el desarrollo e implementación de la lógica difusa como herramienta de control de posición para cada una de las articulaciones de un robot tipo Puma (manipulador universal programable para tareas de ensamblaje). Este algoritmo puede ser descrito en los siguientes pasos: leer el desplazamiento deseado para la primera articulación (set point), así como el recorrido realizado en esta dirección (valor actual), calcular el error instantáneo existente, utilizar las reglas del controlador fuzzy para determinar el grado de pertenencia a cada una de las funciones de membresía, calcular los centroides de las áreas, así como su promedio, obteniendo un valor de salida para el actuador. El diseño de un controlador fuzzy puede ser dividido en gran medida de complejidad del controlador y se facilita la detección y correcciones de errores.

[3] Muestran en su investigación un Algoritmo Difuso de Locomoción Libre para un Robot Caminante de Seis Patas, que permiten a un robot caminante de seis patas realizar su desplazamiento mediante acciones no establecidas ni periódicas. Este modo de caminar es conocido como: locomoción libre. Nos dice que el movimiento de estos algoritmos utiliza técnicas de lógica difusa para la toma de decisiones. Los algoritmos de locomoción, la investigación de la locomoción libre para los robots caminantes, es un desarrollo que aspira a realizar los desplazamientos necesarios por el robot cuando éste camina en diferentes tipos de superficie. Así como también se pretende lograr un entendimiento sobre la forma caminar que tienen algunos insectos. Para aplicar el diseño de los algoritmos de locomoción libre aplicados a un robots hexápodo, primeramente se propone una división en siete áreas de trabajo, las cuales son formadas por las intersecciones de la líneas que van entre cada una de las patas, cada área es etiquetada por una letra. El algoritmo Difuso, para el desarrollo de este algoritmo de decisión, se tienen dos posibilidades de realiza, una de ellas es, utilizar un algoritmo de lógica difusa denominado FUZZY y la otra es utilizar un algoritmo con la combinación de lógica difusa conjuntamente con redes neuronales denominado por el término NEUROFUZZY, presentando un esquema de un sistema difuso, se puede observar que se tiene una primera etapa conocida FUZZIFICATION, término utilizado para la conversión de las variables de entrada en variables difusas, el segundo bloque es el que se conoce como inferencia o reglas FUZZY, y el tercer bloque conocido como DEFUZZIFICATION. Es en éste el último bloque donde se determinan los resultados que serán las salidas del sistema.

 

3.        METODOLOGIA

Según la tecnología educativa, ciertas sesiones de aprendizaje son con el uso de la Robótica, se tomó un caso.

Se ha tomado a trabajar de ejemplo de robot, los cuales comprueba la efectividad de la aplicación del algoritmo de control utilizado. Se percibe un buen grado atracción para los niños en el estudio de robótica. El robot elegido para esta investigación: Carrito detector de obstáculos.

CONSTRUCCIÓN DEL MODELO ROBÓTICO

Carrito detector de obstáculos, este robot móvil posee la habilidad de detectar la distancia del obstáculo en centímetros que se encuentren dentro del rango que tiene el sensor ultrasónico, se mueve de forma autónoma y tomaría la dirección donde tenga camino libre. Fig. 1 y 2.

Fig. 1- Circuito electrónico - Carrito detector de obstáculos.

 

Fig. 2- Construcción Carrito detector de obstáculos

 

APLICACIÓN DE ALGORITMOS DE CONTROL BÁSICO

Donde son usados en la robótica educativa, para ver su funcionamiento e implementar luego los algoritmos de control robótico: Algoritmo de control básico de Carrito detector de obstáculos, se trabajó con dos condiciones, donde se detecta una distancia mayor a la requerida el robot avanza, sino pasa eso entonces en robot retrocede.

Se aplicó el algoritmo pertinente para el modelo el cual está representado en el “Carrito detector de obstáculos” con LÓGICA DIFUSA.

Modelo: Carrito detector de obstáculos

ALGORITMO CONTROL LÓGICA DIFUSA

[4] La Lógica Difusa es una herramienta moderna y una de sus aplicaciones más importantes es el Control de Procesos Industriales. Se sale del tradicional esquema de control de lazo realimentado y del rígido modo de pensar de los programas de una microcomputadora para comenzar a emplear variables lingüísticas muchas veces consideradas imprecisas. Aun cuando parece ser sinónimo de imprecisión, la Lógica Difusa está basada en una disciplina fuertemente rigurosa que permite describir exactamente un Sistema de Control sin utilizar complicadas expresiones matemáticas.

A esta nueva rama del Control Automático es a la que se le llama Inteligencia Artificial o simplemente Control Inteligente, dentro del cual se destaca la Lógica Fuzzy o Difusa el cual es un algoritmo muy utilizado en la actualidad.

Asimismo, el control borroso, originado a partir de una lógica de conceptos vagos e imprecisos, se utiliza en la mayoría de los casos para la aproximación de funciones precisas, deterministas, contradiciendo con ello el espíritu inicial de la Lógica Difusa en control de procesos.

Una de las principales metas en control inteligente de procesos  industriales es la construcción de sistemas borrosos que controlen con garantía sistemas complejos de alta dimensionalidad, mediante implementaciones generales, robustas y fácilmente entendibles por el usuario.

La Lógica Difusa es una rama de la inteligencia artificial que se funda en el concepto “Todo es cuestión de grado”, lo cual permite manejar información vaga o de difícil especificación si quisiéramos hacer cambiar con esta información el funcionamiento o el estado de un sistema específico. En cierto nivel, puede ser vista como un lenguaje que permite trasladar sentencias sofisticadas en lenguaje natural a un lenguaje matemático formal. Con la Lógica Difusa, es entonces posible gobernar un sistema por medio de reglas de “sentido común”, las cuales se refieren a cantidades indefinidas. Establecen una frontera gradual entre la no-pertenencia y la pertenencia, y por tanto conforman una herramienta para el modelado de la imprecisión o la incertidumbre.

 

Aplicación en Robótica: Lógica Difusa

Cualquier intento para controlar un sistema dinámico necesita utilizar algún conocimiento o modelo del sistema a controlar. En el caso de la robótica el sistema está formado por el propio robot y el entorno en que éste opera. Aunque normalmente se puede obtener el modelo del robot, no ocurre lo mismo cuando se considera al robot situado en un entorno no estructurado. Los entornos están caracterizados por una fuerte presencia de incertidumbre debida, por ejemplo, a la existencia de personas que se desplazan, objetos que pueden cambiar de posición, nuevos obstáculos, etc.

Además, existen numerosos factores que pueden conducir a un sistema de robótica a un estado erróneo durante la ejecución de una secuencia de tareas: errores sensoriales, factores debidos al ambiente de trabajo, información imprecisa del proceso, información errónea, etc. En este sentido, la Lógica Difusa incorpora al sistema la capacidad para recuperarse de los posibles errores, presentando así a la vez robustez en la detección y recuperación de estos estados erróneos.

     Una de las aplicaciones más extendidas de las técnicas borrosas es el diseño de comportamientos. Los comportamientos son tareas como: evitar obstáculos fijos, seguir un contorno, evitar obstáculos móviles, cruzar puertas, seguir una trayectoria, empujar o cargar un objeto, etc. Estas son tareas de muy diferente complejidad. Los controladores borrosos incorporan conocimiento heurístico en forma de reglas del tipo si-entonces, y son una alternativa adecuada en el caso de que no se pueda obtener un modelo preciso del sistema a controlar.

 

     [5] Realizó una revisión sobre los conceptos más importantes en el desarrollo de la lógica difusa aplicada al campo del control. En las primeras tres secciones se introducen los conjuntos difusos, las operaciones entre éstos, las reglas difusas; se describe la estructura de un controlador difuso.

Características de la lógica difusa:

1. Soporta datos imprecisos, 2. Es conceptualmente fácil de entender, 3. Es flexible, 4. Se basa en el lenguaje humano, 5. Se basa en la experiencia de expertos conocedores del problema en cuestión, 6. Puede modelar funciones no lineales de alguna complejidad, 7. Combina en forma unificada expresiones lingüística con datos numéricos.

Conjuntos borrosos       

Los conjuntos borrosos son una extensión de los clásicos, donde se añade una función de pertenencia, definida esta como un número real entre 0 y 1. Por cada conjunto se define una función de pertenencia o membresía denomina μA(x) indica el grado en que la variable x está incluida en el concepto representado por la etiqueta A (0≤μA(x)1), si esta función toma el valor 0 significa que tal valor de x no está incluido en A y si toma el valor 1 el correspondiente valor de x está absolutamente incluido en A.

Definición se X una colección de objetos, expresados en forma genérica por x. entonces, un conjunto difuso A en X, se define como un conjunto de pares ordenados.

A = {(x, μA(x))/xX}

Donde μA(x) es una función de pertenencia cuya etiqueta es A y su dominio es x.

 

Funciones de membresía:

Las funciones de membresía representan el grado de pertenencia de un elemento a un subconjunto definido por una etiqueta. Existe una gran variedad de formas para las funciones de membresía, las más comunes son del tipo trapezoidal, triangular, singleton, S.

En esta investigación se usó la forma triangular para mostrar los datos difusos:

Forma Triangular

                         0              si     x≤a

                  (x-a)/(m-a)  si  x(a,m)

       A(x)= (b-x)/(b-m)  si  x(m,b)

                          1            si    x≥b

                                   

 

Bases de reglas difusas Mamdani

IF x1 is A AND x2 is B AND x3 is C THEN u1 is D, u2 is E

 

CONTROLADOR DIFUSO

La lógica difusa se aplica principalmente en sistemas de control difuso que utilizan expresiones ambiguas para formular reglas que controlen el sistema. Un sistema de control difuso trabaja de manera muy diferente a los sistemas de control convencionales. Estos usan el conocimiento experto para generar una base de conocimiento que dará al sistema la capacidad de tomar decisiones sobre ciertas acciones que se presentan en su funcionamiento. Los sistemas de control difuso permiten describir un conjunto de reglas que utilizará una persona para controlar un proceso y a partir de estas reglas generar acciones de control. El control difuso puede aplicarse tanto en sistemas muy sencillos como en sistemas cuyos modelos matemáticos sean muy complejos. [6]

 

 

 

 

 

 

 

 


Fig. 3- Estructura de un modelo Difuso

 

ALGORITMO LÓGICO DIFUSO APLICADO A CARRITO DETECTOR DE OBSTÁCULOS

Sistema Difuso

Para la aceleración de la base de reglas se consideraron las siguientes condiciones:

Distancias del Sistema (Antecedente)

Como entrada del sistema se consideró la distancia (25 a 30 cm) medida del sistema con respecto a un objeto frente a éste producto de las mediciones realizadas por el sensor ultrasónico. Se definió lo siguiente, estableciendo el rango en centímetros: muy alejado, poco alejado, centrado, poco cercano, muy cercano.

Velocidad lineal (Consecuente)

Se estableció como salida el control de la velocidad del motor de corriente directa del carrito móvil de manera que reaccione a la diferencia de distancia y corrija el error entre la distancia deseada y la distancia medida con una velocidad directamente proporcional al error. Se estableció lo siguiente: retroceso rápido, retroceso poro rápido, cero movimiento, avance poco rápido, avance rápido.

Base de Reglas

Se establecieron las siguientes condiciones: IF distancia es muy cercano THEN velocidad es retroceso rápido, IF distancia es poco cercano THEN velocidad es retroceso poco rápido, IF distancia es centrado THEN velocidad es cero, IF distancia es poco alejado THEN velocidad es avance poco rápido, IF distancia es muy alejado THEN velocidad es avance rápido.

 


Funciones de pertenencia provistas

La Liberia es capaz de emplear funciones de pertenencia triangulares, rampa, trapezoidales y unitarias dependiendo la declaración del objeto de la base de reglas.

 

Algoritmo Difuso

En la primera etapa controla su recorrido en la velocidad y la distancia que muestra el sensor ultrasónico cuando lo reconoce.

En la segunda etapa se realiza la declaración de las librerías difusas necesarias para el control y se definen las entradas y salidas del sensor que envía la señal al microcontrolador y las salidas por el PWM que son dirigidas hacia el integrado L293D para el movimiento.

Posteriormente se declaran las variables de entrada y salida del sistema que en este caso son considerados distancia y velocidad, se establecen los antecedentes, consecuentes y las bases de reglas.

Se inicializa el ciclo de ejecución y se recibe la señal del sensor ultrasónico. Se fuzzifica la entrada y se realiza la toma de decisiones para el movimiento del sistema. Finalmente se emplea la función de defuzzify para obtener la velocidad deseada y finalmente se envía la señal por medio del PWM a los pines 14 y 15 del Arduino Nano.

 

4.        eXPEriments and results

Se utilizó una Placa Arduino Nano para la programación del robot, [7] Arduino es una placa electrónica que contiene un microcontrolador. [8] Arduino se programa en el lenguaje de alto nivel C/C++ y generalmente tiene los siguientes componentes para elaborar el algoritmo: estructuras, variables, operadores matemáticos: lógicos y booleanos, estructuras de control (condicionales y ciclos), funciones.

Recolección de datos, Se recopila la información de las pruebas de los experimentos haciendo pruebas de validación:

     Se usó hojas de validación de pruebas para los robots, calificando un puntaje según los criterios establecidos.

     Uso del dispositivo Bluetooth, para la comunicación del robot hacia la Pc mostrando en pantalla el funcionamiento que tienen cada robot.

PRUEBAS DE VALIDACIÓN

CARRITO DETECTOR DE OBSTÁCULOS

     El robot carrito detector de obstáculos, cuando recorre con el Algoritmo de Lógica Difusa.

Fig. 4- Recorrido del carrito detector de obstáculos

     Se observa que el robot detecta el obstáculo (pared de casa) donde reconoce el obstáculo y retrocede buscando una distancia aprox. 30 cm. Fig. 4

     Se presenta las pruebas en pantalla conectando al robot en Bluetooth, donde se probó la lectura del sensor ultrasónico, el sensor detecta solo la distancia, conforme avanza al detectar un obstáculo en frente, cambiando sus valores. Fig. 5.

Fig. 5- Distancia y velocidad del sensor ultrasónico - Plataforma HyperTerminal

 

RESULTADOS

Se utilizó técnicas de análisis estadísticos para obtener los resultados en el uso de los algoritmos propuestos (Lógica Difusa), con la herramienta de Matlab se valió los resultados en forma gráfica.

 

Comportamiento DIFUSO:

  Se observa en la Fig. 6, de manera general la información acerca de un sistema difuso aplicando al funcionamiento del robot. En la parte izquierda se indican las variables difusas de entrada (distancia) y en la parte derecha se muestra la variable de salida (velocidad) en el método inferencia (Mamdani o Sugeno).

Fig. 6- Interfaz gráfica del sistema de inferencia (FIS) – herramienta de Matlab

  Se muestra la función de membresía correspondiente al ciclo de trabajo. Se compone de cinco clusters: muy alejado, poco alejado, centrado, poco cercano, muy cercano.

Fig. 7- Interfaz de Membresía de la variable distancia – herramienta de Matlab

  Se muestra la función de membresía correspondiente al ciclo de trabajo. Se compone de cinco clusters: muy retroceso rápido, retroceso poco rápido, cero movimiento, avanza poco rápido, avance rápido.

Fig. 8- Interfaz de Membresía de la variable velocidad – herramienta de Matlab

Reglas Difusas IF-THEN

  Una vez que la matriz de la base de conocimiento difusa: (a) si la distancia es muy cercano entonces velocidad es retroceso rápido, (b) si la distancia es poco cercano entonces velocidad es retroceso poco rápido, (c) si la distancia es centrado entonces velocidad es cero, (d) si la distancia es poco alejado entonces velocidad es avance poco rápido, (e) si la distancia es muy alejado entonces velocidad es avance rápido. Fig. 9.

Fig. 9- Visualizador de las reglas difusas – herramienta de Matlab

Después de que algoritmo ha sido desarrollado, el visualizado de superficie permitirá observar la relación entre las variables de entrada (distancia) y salida (velocidad). Fig.10

Fig. 10- Visualizador de superficie difusa – herramienta de Matlab

 

5.        CONCLUSIONES

En esta investigación describe el diseño de un sistema de CONTROL DIFUSO basado en comportamiento, para el uso de un robot móvil. El sistema de control difuso provee un mecanismo que combina los datos provenientes por los sensores del sistema de alejamiento luego de percibir un obstáculo a una fija distancia. El comportamiento de alto nivel consiste en la evasión de obstáculos y el sistema de bajo nivel consiste en un comportamiento de rechazo. Cada comportamiento constituye una estrategia de control autónoma basada en la “arquitectura de máquinas inteligentes”. Los controladores difusos pueden ser considerados como una solución factible y robusta a problemas de control de complejidad media a elevada debido a la factibilidad y rapidez con que éstos pueden ser implementados en una aplicación de control determinada. Sin embargo, también pueden llegar a resultar tedioso si la cantidad de bases de reglas se incrementan debido a la complejidad del problema y por tanto requiera una capacidad de procesamiento por parte del dispositivo encargado de implementar el control mucho mayor que la que se requiera.

 
REFERENCIAS

 

[1]

A. C. Daniel, J. R. Osio y M. D. Martín, «Metodología para el estudio de desarrollo de software por medio de Robots Móviles,» Universidad Nacional Arturo Jauretche-Instituto de Ingenieria-Ingenieria Informática, Argentina, 2006.

[2]

D.A. Tibaduiza; I.Amaya; S. Rodríguez; N. Mejía; M. Flórez, «Implementación de un control Fuzzy para el control cienmático directo en un robot manipulador,» Ingeniería, Revista Chilena de Ingeniería, pp. vol. 19 N° 03, 2011,pp. 312-322, 2011.

[3]

E. Gorrostieta y E. V. Soto, «Algoritmo Difuso de Locomoción Libre para un robots caminante de seis patas,» Computación y Sistemas, Vols. %1 de %2Vol. 11 No. 3, 2008, pp 260-287, 2008.

[4]

Ailén Sabadí Hernández, «La lógica difusa, características y aplicaciones,» Cuba.

[5]

Héctor Pomares Cintas, «Nueva Merodología para el Diseño Automático de Sistemas Difusos,» Universidad de Granada, Isla del Caribe, 1999.

[6]

Lotfi Zadeh, «ABC.es Tecnología,» 16 Enero 2013. [En línea]. Available: http://www.abc.es/tecnologia/20130115/abci-lotfi-zadeh-bbva-201301151419.html.

[7]

Á. M. Ballesteros y M. d. R. Carbajo, «Control de posición de un balancín con arduino,» Valladolid, 2013.

[8]

Y. Torroja, I. Gonzáles y A. Ramos, «Taller de electrónica para usos creativos: practicando con Arduino,» Open lab, 2008.

[9]

Msc. Marvin Lemos, AJ Alves, Douglas S. Kridi, Kannya Leal, «https://github.com/zerokol/,» 2015. [En línea]. Available: https://github.com/zerokol/eFLL.