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))/x∈X}
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.
[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. |