Post on 29-Sep-2018
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 197
Determinación de trayectorias de un robot móvil con
lógica borrosa Palomino, Pilar, ppalominos@gmail.com
Garmendia, Luis, lgarmend@fdi.ucm.es, DISIA Universidad Complutense de Madrid
RESUMEN
El objeto de este trabajo es la realización de un simulador de robot móvil capaz de
llegar a un punto fijo o meta sorteando los obstáculos fijos que se encuentre a su paso. Para ello
se usa un simulador de robot móvil con varios sensores que nos va a indicar si chocamos con un
obstáculo o no y la distancia a la que nos encontramos de los mismos. El movimiento del robot
será posible indicándole una velocidad y un ángulo de giro. Para la implementación del robot se
usan predicados borrosos que nos permiten una mayor aproximación al comportamiento
humano: muy cerca de un obstáculo, cerca de un obstáculo, lejos de un obstáculo, muy cerca del
objetivo, cerca del objetivo, lejos del objetivo, muy lejos. En función del conjunto borroso en el
que se encuentre el robot realizará una u otra acción.
Palabras claves:
Lógica borrosa, robotica, razonamiento aproximado, trayectoria
Determinación de trayectorias de un robot móvil con lógica borrosa
198 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
1. INTRODUCCIÓN
Desde que comenzó a existir, el ser humano ha sentido la necesidad de crear
máquinas que le permitieran realizar logros que él sólo no puede conseguir, sin duda el
mayor desafío al que se ha enfrentado la humanidad hasta el momento es la creación de
máquinas que simulen nuestros propios comportamientos para los fines más diversos:
termostatos que gradúen la temperatura, robots que preparan comidas, mecanismos que
reconozcan personas... y, a veces, que incluso superen nuestras mentes: máquinas que
jueguen al ajedrez, bases de datos informáticas que “recuerdan” cantidades
incalculables de información por un humano….
La Inteligencia Artificial es la ciencia que pretende construir inteligencia similar
a la humana y tiene su origen en los deseos más ancestrales del ser humano. ¿Cómo
crear la inteligencia? ¿Pueden ser creativas las máquinas o este sólo es una aptitud del
ser humano? ¿Pueden llegar a sentir las máquinas o de nuevo es sólo una aptitud del ser
humano? Indudablemente existen numerosas dudas al respecto que aún no han sido
resueltas, a pesar de todos los esfuerzos que se han realizado. Por ello, la Inteligencia
Artificial no se centra únicamente en el estudio de la inteligencia humana, sino que se
ha abierto en crear simplemente inteligencia a partir de ciertos algoritmos o técnicas.
El robot aquí presentado posee cualidades humanas como son la percepción de
obstáculos a través de un conjunto de sensores y la posibilidad de moverse libremente
dentro de un entorno creado para él. Además será movido por el deseo de alcanzar un
objetivo, representado por un punto del entorno, evitando los obstáculos mediante su
percepción. Sin embargo el ciclo que realiza este robot no es el típico del aprendizaje:
percepción-acción-valoración, sino que se limita a percepción-acción. De otra forma,
actúa según los estímulos que percibe.
El robot es capaz de alcanzar un objetivo elegido dentro del entorno, eludiendo
la presencia de obstáculos. El robot aquí presentado posee cualidades humanas como
son la percepción de obstáculos a través de un conjunto de sensores y la posibilidad de
moverse libremente dentro de un entorno creado para él. Además será movido por el
deseo de alcanzar un objetivo, representado por un punto del entorno, evitando los
obstáculos mediante sensores.
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 199
Los requisitos que se tratan de satisfacer por parte de la aplicación de control
del simulador, son básicamente los siguientes:
El robot debe ser capaz de seguir la trayectoria de las paredes a ambos lados.
El robot debe ser capaz de alcanzar un punto del entorno sin chocar con ningún
obstáculo.
2. DISEÑO DEL SIMULADOR
Para realizar este robot se parte de un simulador de robot móvil que cuenta con
dos tipos de sensores:
Sensores de contacto (20): Se modelizan como abierto o cerrado (contacto con
objeto).
Sensores de largo alcance (16): Situados alrededor cada 22’5 grados. (miden de
5 a 110 pulgadas)
El movimiento del robot se realiza mediante comandos de movimiento en el que
se especifican las velocidades de avance y de giro del robot. Una velocidad con signo
positivo hace que el robot avance y una con signo negativo hace que el robot retroceda.
Un ángulo con signo positivo hace que el robot gire a la derecha y un con signo
negativo hace que el robot gire a la izquierda.
Para el manejo del simulador se ha creado una interfaz que se muestra a
continuación:
2.1 Interfaz del sistema
Determinación de trayectorias de un robot móvil con lógica borrosa
200 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
El interfaz del sistema es muy sencillo, cuenta únicamente con dos ventanas con
las que poder interactuar.
Los botones creados que se observan en la imagen inician todas las tareas que es
capaz de realizar el robot. Estas han sido agrupadas en varias categorías:
Los movimientos básicos que se han definido son los siguientes:
Avanzar (AV): se trata simplemente de que el robot se mueva “de frente”,
siguiendo la línea que marca su dirección 0.
Retroceder (RET): se trata de que el robot se mueva “hacia atrás”, de forma
exactamente opuesta que en el caso anterior y con la misma velocidad.
Parar (STOP): detiene el robot.
Derecha (DER): hace que el robot efectúe un giro en movimiento hacia su
derecha con un determinado ángulo.
Izquierda (IZQ): hace que el robot efectúe un giro en movimiento hacia su
izquierda con un determinado ángulo.
Con respecto a los comportamientos reactivos básicos se han definido las
siguientes opciones, que se activan al activar el “checkbox”:
Colisión
Evitación Frontal
Evitación Lateral Izquierda
Evitación Lateral Derecha
Seguimiento Paredes Izquierda
Seguimiento Paredes Derecha
Para alcanzar la meta es necesario introducir las coordenadas pulsando el botón
de Objetivo, y automáticamente se comenzará la tarea de llegar a dicho objetivo
teniendo en cuenta las elecciones hechas en los comportamientos básicos.
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 201
Objetivo: Este botón nos lleva al cuadro de diálogo Objetivo para establecer las
coordenadas del objetivo a alcanzar por el simulador.
El resto de botones que se han creado responden a las siguientes funciones de
control del simulador:
Comenzar: Al pulsar sobre este botón el robot comenzará a moverse sin rumbo
fijo sorteando los obstáculos.
Terminar: El efecto de la desaparición del temporizador es que no se evalúan ya
los comportamientos reactivos básicos, a pesar de estar marcados, por lo que, como
después detiene el robot, éste se detiene hasta que se pulse Comenzar.
Conectar: la ventana de aplicación realiza una conexión local con el simulador.
Supone el punto de partida de todas las demás opciones y el simulador se encarga de
avisarnos cuando se ha producido la conexión.
Desconectar: la ventana de aplicación se desconecta del simulador. Cualquier
otra petición será ignorada por tanto hasta que se vuelva a producir la conexión y el
simulador queda liberado.
Cerrar: cierra la ventana de aplicación para controlar el simulador.
2.2 Comportamientos del simulador
Los comportamientos que ofrece el simulador los podemos dividir en
comportamientos básicos y comportamientos reactivos basados en el campo de
potencial:
Comportamientos básicos:
Todos los comportamientos básicos se tienen en cuenta tanto para la opción de
seguir un objetivo o meta fija, como para la opción de vagar por el mundo.
Determinación de trayectorias de un robot móvil con lógica borrosa
202 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
Al activar el temporizador mediante el botón Comenzar, se crea un temporizador
que se activará cada cierto tiempo y se evaluarán los comportamientos reactivos básicos
marcados.
Se ha optado porque este número de unidades de tiempo del temporizador sea
bastante pequeño ya que la aplicación apenas consume recursos del sistema donde se
ejecute y para obtener una mayor eficiencia en los comportamientos deseados. Estos
comportamientos presentan las siguientes prioridades: evitar colisión, evitar colisión
frontal, evitar colisión lateral derecha y evitar colisión izquierda, seguimiento de
paredes por la derecha y seguimiento de paredes por la izquierda y avanzar a una
velocidad variable.
Colisión
En caso de que se detecte una colisión mediante el uso del método GetBumper,
este comportamiento anulará cualquier otro y se atenderá primero. Se trata del
comportamiento más prioritario sin duda, ya que de no atenderlo inmediatamente
podríamos “atravesar” alguna pared, situación totalmente impensable.
Las tareas que realiza este comportamiento son las siguientes:
Obtenemos el sensor que detectó el choque
Comprobamos para dónde nos conviene girar: El robot comprobará mediante sus
sensores laterales dónde hay mayor espacio. De esta forma giraremos hacia donde haya
menos probabilidad a priori de encontrar un obstáculo.
Damos marcha atrás hasta la distancia de seguridad
Giramos 95º hacia el lado que más nos convenga
No existe ninguna razón especial para dar el valor de 95º al giro del robot,
aunque evidentemente, el giro debe ser mayor de 90º y menor de 180º. El único motivo
es el de evitar un giro menor de 90º debido a la poca precisión del robot y la de
aumentar la probabilidad de salir de una habitación utilizando sólo este
comportamiento.
Evitación Frontal
Se han elegido a continuación los tres comportamientos de evitación de
obstáculos como más prioritarios, ya que ante todo debemos evitar chocar contra una
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 203
pared, situación que debemos evitar. Dentro de las tres, el choque frontal es la más
prioritaria, ya que de haber otro choque posible, este último se produciría más tarde que
el frontal.
Este comportamiento se activa cuando el robot detecta la presencia de un
obstáculo por debajo de su distancia de seguridad a través de sus sensores frontales (14,
15, 0, 1 y 2).
Las tareas que realiza este comportamiento son las siguientes:
Obtenemos el sensor que detectó el choque
Comprobamos para dónde nos conviene girar: El robot comprobará mediante sus
sensores frontales dónde está situado exactamente el obstáculo. De esta forma
giraremos hacia el otro lado de donde se detectó.
Giramos 15º hacia el lado que más nos convenga
Aquí sí existe razón para dar el valor de 15º al giro del robot y es que este valor
nos permite hacer un giro suave. De esta forma, el robot girará 15º cada vez que el
temporizador se active hasta que eluda el obstáculo, por lo que realizará prácticamente
el mínimo giro que necesite.
Evitación Lateral Derecha
Da lo mismo elegir este o el siguiente, son igual de prioritarios.
Este comportamiento se activa cuando el robot detecta la presencia de un
obstáculo por debajo de su distancia de seguridad a través de sus sensores laterales de
la derecha (2, 3, 4, 5 y 6).
Las tareas que realiza este comportamiento son las siguientes:
Obtenemos el sensor que detectó el choque
Giramos 15º hacia la izquierda
Aquí sí existe razón para dar el valor de 15º al giro del robot y es que este valor
nos permite hacer un giro suave. De esta forma, el robot girará 15º cada vez que el
temporizador se active hasta que eluda el obstáculo, por lo que realizará prácticamente
el mínimo giro que necesite.
Determinación de trayectorias de un robot móvil con lógica borrosa
204 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
Evitación Lateral Izquierda
Este comportamiento se activa cuando el robot detecta la presencia de un
obstáculo por debajo de su distancia de seguridad a través de sus sensores laterales de la
izquierda (10, 11, 12, 13 y 14).
Las tareas que realiza este comportamiento son las siguientes:
Obtenemos el sensor que detectó el choque
Giramos 15º hacia la derecha
Aquí sí existe razón para dar el valor de 15º al giro del robot y es que este valor
nos permite hacer un giro suave. De esta forma, el robot girará 15º cada vez que el
temporizador se active hasta que eluda el obstáculo, por lo que realizará prácticamente
el mínimo giro que necesite.
Seguimiento de paredes por la derecha
Da lo mismo elegir este o el siguiente, son igual de prioritarios.
Se selecciona después de los de choque ya que el cumplimiento de este
comportamiento no implica ningún peligro para nuestro robot. Además se apoya en el
comportamiento de evitación frontal.
Este comportamiento entra en acción en cuanto el usuario lo solicita y mientras
el robot no se mueva paralelo a la pared.
Las tareas que realiza este comportamiento son las siguientes:
Comprobamos dónde se encuentra la pared más cercana, mediante el uso de los
sensores laterales derechos (1, 2, 3, 4, 5, 6 y 7) comprobamos dónde se encuentra la
pared más cercana y que está situada a la derecha del robot, obteniendo para ello el
sensor más cercano a ella.
Giramos hacia la derecha para orientarnos a la pare. Gracias al sensor tomado
como referencia, realizamos un giro que nos sitúe “de cara” al obstáculo.
3. Nos aproximamos a la pared y nos situamos paralelos a ella
4. Mantenemos al robot paralelo a la pared
En esta ocasión, comprobamos en todo momento que los sensores laterales están
a la misma distancia de la pared, girando a la derecha o izquierda dependiendo de que la
distancia sea mayor en algún momento por la parte delantera o trasera. En caso de
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 205
detectar el fin de la pared, giramos a la derecha hasta que la encontremos. En caso de
que la pared tuerza a la izquierda, entra en funcionamiento la evitación frontal, que
evitará el choque, y después la posición se corregirá mediante este comportamiento de
seguimiento de pared.
Seguimiento de paredes por la izquierda
Se selecciona después de los de choque ya que el cumplimiento de este
comportamiento no implica ningún peligro para nuestro robot. Además se apoya en el
comportamiento de evitación frontal.
Este comportamiento entra en acción en cuanto el usuario lo solicita y mientras
el robot no se mueva paralelo a la pared.
Las tareas que realiza este comportamiento son las siguientes:
1. Comprobamos dónde se encuentra la pared más cercana. Mediante el uso de
los sensores laterales izquierdos (9, 10, 11, 12, 13, 14 y 15) comprobamos dónde se
encuentra la pared más cercana y que está situada a la izquierda del robot, obteniendo
para ello el sensor más cercano a ella.
2. Giramos hacia la izquierda para orientarnos a la pared. Gracias al sensor
tomado como referencia, realizamos un giro que nos sitúe “de cara” al obstáculo.
3. Nos aproximamos a la pared y nos situamos paralelos a ella.
4. Mantenemos al robot paralelo a la pared.
En esta ocasión, comprobamos en todo momento que los sensores laterales están
a la misma distancia de la pared, girando a la derecha o izquierda dependiendo de que la
distancia sea mayor en algún momento por la parte delantera o trasera. En caso de
detectar el fin de la pared, giramos a la izquierda hasta que la encontremos. En caso de
que la pared tuerza a la derecha, entra en funcionamiento la evitación frontal, que
evitará el choque, y después la posición se corregirá mediante este comportamiento de
seguimiento de pared.
Avanzar a velocidad variable
Avanzar es el comportamiento por defecto, por lo que ni siquiera aparece como
optativo en una “checkbox”. Sin embargo, es el menos prioritario, ya que para avanzar
debemos comprobar que cumplimos todos los demás comportamientos que se nos piden
en las “checkbox”.
La tarea que realiza este comportamiento son las siguientes:
Determinación de trayectorias de un robot móvil con lógica borrosa
206 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
El robot se desplaza en línea recta. En caso de que se detecte que ninguna pared
está en el rango de alcance de los sensores, el robot avanzará con mayor velocidad. En
cualquier caso, el giro será nulo.
2.3 Comportamientos reactivos basados en campos de potencial
Estos comportamientos son originados por las fuerzas que ejercen el objetivo y
los obstáculos. En esta parte de la aplicación, el robot perseguirá un punto objetivo o
meta, atraído por la fuerza que este genera sobre él y será repelido por la fuerza que los
obstáculos generan sobre él, evitando de este modo la colisión. Es importante advertir
que la búsqueda de una meta resulta una tarea independiente de los comportamientos
reactivos básicos vistos hasta ahora. Sin embargo en algún caso veremos que se apoya
en alguno de ellos para seguir alguna estrategia que le permita al robot llegar al destino,
evitando así situaciones indeseadas en las que puede quedar atrapado y que no le
permitan alcanzar el objetivo. Estas situaciones no deseadas son los mínimos locales; al
generarse fuerza atractivas y repulsivas, pueden existir zonas en las que unas fuerzas se
contrarresten con las otras y hagan detenerse al robot o simplemente le hagan repetir
infinitamente el mismo proceso (fue bastante frecuente observar en las pruebas cómo el
robot puede no decidirse sobre si girar hacia un lado u otro y quede oscilando entre un
rango de valores de ángulo indefinidamente).
La funcionalidad del robot para este comportamiento es la siguiente:
El robot es atraído por la meta, y para alcanzarla deberá evitar los obstáculos que
existe en el entorno. Estos obstáculos generarán fuerza repulsiva, esta fuerza será
tangencial:
Fuerza tangente: es la fuerza que hace desplazarse al robot paralelo al obstáculo.
Esta fuerza hace que el robot rodee el obstáculo. De esta forma el robot no girará de
forma brusca al llegar a un obstáculo sino que lo rodeará.
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 207
A continuación se detallan estos comportamientos y sus variantes, en el caso de
la meta sensorial con obstáculos.
Alcanzar la meta sorteando los obstáculos
Para seguir este comportamiento simplemente se debe introducir en la ventana
de objetivo unas coordenadas, que serán la meta del robot. En este caso se han simulado
dos tipos de fuerzas: la atractiva de la meta y la repulsiva de los obstáculos. De acuerdo
con la distancia a la que se encuentre el robot de la meta y de los obstáculos, estas
fuerzas se harán mayores o menores, siempre de forma proporcional a esa distancia. Sin
embargo también tenemos que tener en cuenta que si el robot está muy cerca del
obstáculo debemos de dar mayor importancia a la fuerza repulsiva del propio obstáculo
que a la atractiva que genera el objetivo; esto se verá reflejado en la creación de unos
coeficientes.
El robot se desplazará de acuerdo a la fuerza atractiva de la meta. Esta fuerza
atractiva ha sido simulada atendiendo a los siguientes principios:
La velocidad lineal del robot será inversamente proporcional a la distancia que
se encuentre del objetivo. Este principio se debe a que la fuerza de atracción que ejerce
el objetivo es mayor cuanto más cerca se esté de él.
La velocidad de giro para que el sentido de avance del robot se oriente
adecuadamente con respecto al objetivo es directamente proporcional a la distancia que
se encuentre el robot del objetivo. Este principio se debe a que la precisión con la que se
orienta el robot debe ser más precisa cuanto más cerca esté del objetivo.
A medida que el robot se encuentre más cerca del objetivo y no esté bien
orientado hacia él, la velocidad lineal disminuirá y la velocidad de giro aumentará. Este
Determinación de trayectorias de un robot móvil con lógica borrosa
208 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
principio tendrá prioridad con respecto a los dos anteriores y nos asegura que el robot se
orientará adecuadamente aunque parta de un punto muy cercano al objetivo y
totalmente desorientado.
Las cuatro zonas de atracción que se han creado alrededor del objetivo son las
siguientes:
Robot a menos de 20 unidades de distancia. Aquí si el robot no está bien
orientado, se detendrá por completo para orientarse correctamente. Si ya lo está, la
velocidad que toma es muy alta.
Robot entre 20 y 100 unidades de distancia. Si el robot no está bien orientado, no
se detendrá, pero su velocidad será muy baja. Por el contrario, si está bien orientado, su
velocidad será alta.
Robot entre 100 y 200 unidades de distancia. Si el robot no está bien orientado,
avanza y gira a la vez a velocidades medias.
Robot a más de 200 unidades. La fuerza de atracción es muy pequeña, por lo que
el robot avanza lentamente. Aunque no esté bien orientado, su giro es alto.
Por otro lado se ha simulado la fuerza repulsiva mediante la obtención del seno y
el coseno del ángulo que forma el sentido de avance del robot y el obstáculo. La fuerza
tangencial o paralela utiliza las fórmulas:
velocidad= intensidad_fuerza_repulsiva*cos(angulo)
giro=intensidad_fuerza_repulsiva*sen(angulo)
donde intensidad_fuerza_repulsiva es la intensidad de la fuerza que ejerce el
obstáculo sobre el robot y que inversamente proporcional a la distancia entre ambos y
angulo es el ángulo que existe entre el sentido de avance del robot y la trayectoria de la
pared (de ahí que si el robot avanza paralelo a la pared, la fuerza tangente no le haga
girar más).
La composición de las fuerzas responde a las reglas siguientes:
Si el robot se encuentra más cerca de la distancia de seguridad del obstáculo,
sólo se toma la fuerza repulsiva.
Si el robot se encuentra más lejos que el 150% de la distancia de seguridad del
obstáculo, sólo se toma la fuerza atractiva.
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 209
Si el robot se encuentra entre la distancia de seguridad y el 150% de su valor del
obstáculo, la fórmula para el coeficiente de la fuerza repulsiva tangente es la siguiente:
coef_tangente=1-(distancia-distancia_seguridad/2)/distancia_seguridad
Si el robot se encuentra entre la distancia de seguridad y el 150% de su valor del
obstáculo, la fórmula para el coeficiente de la fuerza atractiva es la siguiente:
coef_atractivo=1-coef_repulsivo
Por tanto, se observa que la fuerza atractiva crece linealmente a partir de la
distancia de seguridad, mientras que la repulsiva decrece linealmente.
Estas fuerzas tienen el problema de hacer caer al robot en mínimos locales. En
efecto, pueden existir puntos en los que las fuerzas atractivas y repulsivas se anulen; o
simplemente existir zonas de las que el robot no pueda salir por quedarse atrapado a
causa de estas dos fuerzas, como si estuviera en una especie de remolino.
Se ha diseñado una estrategia que le haga evitar esos mínimos locales: se trata de
seguir la pared que se encuentre a su izquierda o su derecha. En efecto, se vio que si el
objetivo se encuentra justo al otro lado de una pared que se necesita bordear el robot
caía en mínimos locales, por lo que se decidió que debía seguir la pared. La tarea que
realiza el robot es la de seguir la pared que se encuentre a su izquierda o su derecha,
hasta el momento en que detecte que hacia la zona que se encuentra el objetivo no
existe ya obstáculo. Esto se ha realizado comprobando en todo momento el ángulo que
forma el robot con el objetivo y atendiendo a los sensores que se encuentran rodeando
ese ángulo; si en algún momento estos sensores nos informan que no existe ningún
obstáculo por medio, entonces el robot dejará de seguir la pared y se dirigirá al
obstáculo, ya que consiguió bordear el obstáculo o simplemente este ya no se encuentra
en su camino a la meta. Nótese que esta estrategia es una solución válida para la
mayoría de los casos, pero no si el entorno presenta dos obstáculos entre el robot y el
objetivo y estos obstáculos no se encuentran lo suficientemente distanciados, en cuyo
caso el robot quedará rodeando continuamente el primer obstáculo.
Los pasos que se realizan en la búsqueda de meta sensorial con obstáculos son
los siguientes:
En caso de no haber alcanzado la meta
En caso de no estar paralelo a pared izquierda o derecha
Se calcula la fuerza atractiva de la meta
Determinación de trayectorias de un robot móvil con lógica borrosa
210 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
Se calcula la fuerzas repulsivas de los obstáculos
Se componen ambas fuerzas y se le aplican al robot
En caso de estar paralelo a pared derecha o izquierda
En caso de no haber obstáculos entre el robot y la meta el robot se dirige hacia
ella
En caso de existir obstáculos entra en acción el actuador de pared del lado que
corresponda
En caso de haber alcanzado la meta se notifica al usuario y se detiene la
simulación.
Finalmente, al alcanzar el objetivo, la aplicación genera un mensaje indicando
que llegó.
Vagar por el entorno
Se trata de otro comportamiento sensorial donde existen obstáculos pero en el
que no se especifica ninguna meta. Por tanto, el robot deberá desplazarse por el entorno
sin chocar con los obstáculos; en otras palabras, deberá dejarse llevar por su propia
inercia y las fuerzas repulsivas procedentes de los obstáculos.
Las acciones que se realizan en este comportamiento son las siguientes:
Se calcula la velocidad de avance del robot, dependiendo de la existencia o no de
obstáculos al alcance de sus sensores.
En caso de que existan obstáculos cerca que ejerzan una fuerza sobre el robot:
Se calcula la fuerza normal que ejerce el obstáculo sobre el robot
Se compone la fuerza normal repulsiva con la de avance del robot
Se establece la velocidad de avance y el giro al robot.
Este comportamiento no se detendrá hasta que el usuario pulse el botón Detener,
que para el temporizador y detiene al robot.
Ejemplos gráficos de funcionamiento:
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 211
Prueba Evitación Frontal
Objetivo Comprueba si el robot evita chocar por la parte
delantera contra un obstáculo y si lo hace de forma suave
Posición
inicial
(444,210)
Resultado Correcto
Comentarios Se observa en el gráfico que el robot corrige
ligeramente la dirección para evitar el obstáculo.
Determinación de trayectorias de un robot móvil con lógica borrosa
212 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
Prueba Alcanzar un objetivo evitando colisión y choque
frontal
Objetivo Comprueba que el robot llega a su objetivo sorteando
los obstáculos.
Posición
inicial
(128,360)
Resultado Correcto
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 213
Comentarios Se observa en el gráfico que el robot corrige en un
principio la trayectoria para no chocar de frente de forma un
poco brusca para evitar el choque pero el segundo giro
(esquina) , es un giro menos brusco, orientando su trayectoria
final hacía el objetivo.
Prueba Alcanzar un objetivo evitando colisión y choque
frontal
Determinación de trayectorias de un robot móvil con lógica borrosa
214 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
Objetivo Comprueba que el robot llega a su objetivo
sorteando los obstáculos.
Posición inicial (90,16)
Resultado Correcto
Comentarios Se observa en el gráfico que el robot corrige en un
principio la trayectoria para no chocar de frente de forma un
poco brusca para evitar el choque pero el segundo giro
(esquina) , es un giro menos brusco, orientando su
trayectoria final hacía el objetivo.
Prueba Alcanzar un objetivo evitando colisión y choque
frontal
Objetivo Comprueba que el robot llega a su objetivo sorteando
los obstáculos.
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 215
Posición
inicial
(90,16)
Resultado Correcto
Comentarios Se observa en el gráfico que el robot corrige en un
principio la trayectoria para no chocar de frente de forma un
poco brusca para evitar el choque pero el segundo giro
(esquina) , es un giro menos brusco, orientando su trayectoria
final hacía el objetivo.
Prueba Alcanzar un objetivo evitando colisión y choque
Determinación de trayectorias de un robot móvil con lógica borrosa
216 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
frontal
Objetivo Comprueba que el robot llega a su objetivo sorteando
los obstáculos.
Posición
inicial
(150,50)
Resultado Correcto
Comentarios Se observa en el gráfico que el robot corrige en un
principio la trayectoria para no chocar de frente de forma un
poco brusca para evitar el choque pero el segundo giro
(esquina) , es un giro menos brusco, orientando su trayectoria
final hacía el objetivo.
Determinación de trayectorias de un robot móvil con lógica borrosa
Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura 217
Prueba Alcanzar un objetivo evitando colisión y choque
frontal
Objetivo Comprueba que el robot llega a su objetivo
sorteando los obstáculos.
Posición inicial (238,189)
Resultado Correcto
Comentarios Se observa en el gráfico que el robot corrige en un
principio la trayectoria para no chocar de frente de forma un
poco brusca para evitar el choque pero el segundo giro
(esquina) , es un giro menos brusco, orientando su
trayectoria final hacía el objetivo.
3. CONCLUSIONES
La lógica Fuzzy es adecuada para sistemas de este tipo en los que es conveniente tener un comportamiento más similar al de los humanos. Sin la lógica fuzzy no podríamos modelizar comportamientos más inteligentes que los ofrecidos por la lógica clásica o de Cantor, que no recoge aquellos fenómenos reales cuyas características son imprecisas, inciertas. En el campo de la robótica las medidas tomadas por sensores son imprecisas, inciertas, y gracias a la lógica fuzzy podemos ampliar las posibilidades de la lógica clásica y aplicar una probabilidad o un grado de intensidad para las acciones que realiza el robot; por ejemplo, esto se refleja en la variación de velocidad del robot según la distancia a los obstáculos y al objetivo, creando movimientos más suaves y simulando así el comportamiento humano.
Para modelizar el comportamiento se han utilizado cuantificadores borrosos
para crear predicados borrosos y con ellos construir reglas como las siguientes: Si robot muy cerca de pared => girar con mayor ángulo Si robot cerca de pared => girar con ángulo pequeño Si robot lejos de obstáculos => aumentar su velocidad
En el campo de la robótica, se sabe que no existe el simulador perfecto; a la hora de tomar decisiones de diseño, cada una de ellas favorecerá determinadas situaciones, pero entorpecerá otras. Por ejemplo, en nuestro caso para la elección de una distancia de seguridad, si tomamos una distancia pequeña corremos el riesgo de chocar contra un obstáculo si los
Determinación de trayectorias de un robot móvil con lógica borrosa
218 Segundo Congreso Internacional de Matemáticas en la Ingeniería y la Arquitectura
movimientos no son del todo precisos, pero si tomamos una distancia de seguridad grande corremos el riesgo de no poder pasar entre dos paredes paralelas.
En el campo de la Robótica la precisión es muy importante. Sin embargo, como
este simulador muestra, existen pequeñas imprecisiones en los sensores que pueden llevar a comportamientos no deseados. Por ejemplo, en el momento de alcanzar un objetivo; es prácticamente imposible alcanzar el punto exacto, por lo que decimos que el robot alcanza un objetivo cuando está dentro de un pequeño área creada alrededor de ese punto. Este fenómeno es realmente incómodo en situaciones como descubrir si el robot se encuentra paralelo a una pared o cuál es el sensor que se encuentra más cercano a ella.
Una posible ampliación para este robot sería la posibilidad de que los
obstáculos pudiesen ser móviles, lo cual nos llevaría a una aproximación más cercana a la realidad.
4. REFERENCIAS BIBLIOGRÁFICAS
Simulador del robot se ha obtenido de la siguiente web:
http://jdlope.tripod.com/mrs.html
[1] KLIR, J., YUAN, B. Fuzzy Sets and Fuzzy Logic. Theory and Applications, Prentice
Hall, New Jersey, 1995.
[2] PAJARES, G. SANTOS, M. Inteligencia Artificial e Ingeniería del Conocimiento; RA-
MA, 2005;
[3] SKLAR A. SCHWEIZER, B. Probabilistic Metric Spaces. Dover Publications, 1984.
[4] TRILLAS, E, ALSINA, C., TERRICABRAS, J.M. Introducción a la Lógica Borrosa.
Editorial Ariel. 1995.
[5] ZADEH, L. A. Fuzzy sets, Inform. and Control 8 (1965) 338–353.