1.
Introducción
Los robots móviles
autónomos se han estado desarrollando con el objetivo de llevar
a cabo tareas complejas en diferentes ambientes, tanto en hábitats humanos como lugares
menos amigables, tales como planetas distantes y
regiones bajo el agua.
Para entornos interiores, se
proyecta la posibilidad de crear robots móviles autónomos que lleven a cabo
tareas solicitadas por los residentes de un edificio o los trabajadores de una
planta, tales como: la entrega de correo, guiar visitantes, ir a
buscar café, recoger una impresión, o simplemente entregar un mensaje u
objeto de un lugar a otro.
En este trabajo se presenta una
primera aproximación a la situación planteada donde se centrará la atención en
la planificación de tareas, como el nivel superior de abstracción del sistema. Esta
abstracción se hace necesaria dado que el uso de planes de muy bajo nivel
implicaría ejecutar varios cientos de pasos para resolver cierto problema de
navegación donde el espacio de planes de esta magnitud sería tan grande que aun
las técnicas de planificación más sofisticadas probablemente no llegarían a una
solución en una cantidad razonable de tiempo.
Se presenta a
continuación la arquitectura del sistema que integra una capa de
planificación de tareas, una capa de planificación de movimientos y por último el
ejecutor, que para este caso es un robot lego NXT.
A grandes rasgos el
funcionamiento se resume en 4 pasos:
·
El usuario ingresa la descripción del mundo
accediendo a la interfaz gráfica
El usuario especifica los objetivos que debe llevar a cabo el robot
El usuario especifica los objetivos que debe llevar a cabo el robot
·
El programa genera los archivos Domain.PDDL y
Problem.PDDL
·
El planificador arroja una solución, para
cumplir los objetivos minimizando la distancia recorrida
·
El programa captura dicha solución y se comunica
con la aplicación AppCells para que esta se encargue de ejecutar cada uno de
los pasos planteados en el plan.
2. Descripción del mundo
Se implemento una sección en la que el usuario pueda describir el entorno
en el cual trabajará el robot, para ello se consideraron tres aspectos
principales:
La inclusión de las áreas.
La inclusión de puntos de conexión entre áreas
La inclusión de los obstáculos al interior de las áreas.
La inclusión de las áreas.
La inclusión de puntos de conexión entre áreas
La inclusión de los obstáculos al interior de las áreas.
Un área queda completamente determinada especificando:
• el punto del extremo superior izquierdo y el extremo inferior derecho, en un plano coordenado (x,y)
Para la especificación de los puntos de conexión entre áreas se requiere de:
• la dupla de áreas conectadas
• la ubicación del punto de conexión, en el mismo plano coordenado (x,y)
La inclusión de los obstáculos hace parte de la última etapa, donde se hace necesario especificar:
• El área donde está ubicado
• Los nodos, es decir puntos (x,y) que determinan el obstáculo.
3.Creación del Domain.PDDL y Problem.PDDL
A esta instancia el robot
tiene conocimiento del entorno de trabajo pero aún no se asignan las tareas para empezar un proceso de planificación.
El estandar para llevar a cabo dicho procedimiento es dividir la
información en dos
archivos que recibe el planificador LPG como entradas, que consisten de un dominio y un problema, en el dominio
se establece el conjunto de estados y el conjunto de acciones, por lo que es
estático, es decir, no varía con un problema u otro.
Por otro lado el problema hace referencia a un caso
específico y en él está contenida toda la información correspondiente al estado
inicial y el estado final.
Con el fin de ilustrar la aplicabilidad de la
planificación de tareas a un problema de navegación cotidiano se presenta un
mapa que puede corresponder a la distribución de un espacio de trabajo,
posteriormente la especificación del dominio y el problema representarán dicho espacio.
Suponga un espacio distribuido como el de la figura, en él
se encuentran 6 áreas, con conexiones definidas solo entre algunas de ellas,
además de la inclusión de obstáculos en las áreas 1, 3, 5 y 6.
El proceso de composición del dominio no requiere
mayores esfuerzos, se definirán los tipos de objetos que se pueden crear que
son: sitio y robot, las funciones recorrido, para almacenar la distancia
recorrida por el robot y la función distancia, para almacenar el costo del
viaje de un área a otra.
Se crearán además predicados para denotar la ubicación
actual del robot, marcar un área como visitada y puntualizar la existencia de una conexión entre áreas.
Por último se creará la acción viajar, que le permitirá al robot desplazarse,
siempre y cuando se cumplan la restricciones planteadas.
Por otro lado la composición del Problem se convierte
en la traducción de la información ingresada por el usuario a la sintaxis PDDL,
se puede notar que se crearon 6 objetos de tipo sitio y un objeto de tipo
robot.
Se procede a definir los términos en los que se
encuentra el estado inicial, definiendo: ubicación inicial, conexiones entre
áreas y distancia entre las mismas.
Consecuentemente son agregadas las condiciones del
estado final, es decir los objetivos, que consisten para este caso en visitar
las 6 áreas definidas y por último se establece una métrica, la cual tiene la
finalidad de determinar la calidad de un plan respecto a la minimización del
recorrido.
Usando la sintaxis PDDL el archivo Problem tiene la forma
expuesta en el siguiente codigo
5. Proceso de planificación Abstracta
El problema descrito anteriormente solo contiene seis salas dado que
por cuestiones de espacio tener un problema más grande supone un archivo muy
extenso para presentar en este artículo, en la práctica, la utilidad de este
proceso muestra sus bondades con una situación de quince áreas o más, donde no
es siquiera apreciable una solución observando un mapa o la descripción del
mundo.
La ejecución del planificador bajo el Domain y Problem descrito
anteriormente presenta una solución como se muestra en la siguiente imagen:
6. Proceso de planificación de movimientos
Para la ejecución del plan se procede a leer el archivo
generado por el planificador, extrayendo la información necesaria para componer
un archivo .txt que sea interpretable por la aplicación appcells.
El archivo generado deberá estar compuesto por:
è
El punto inicial y el punto final
è
Dos puntos que determinan la margen del entorno
de trabajo
è
Cantidad de obstáculos
è
Nodos por cada obstáculo
è
Nodos del obstáculo
Como se muestra en la siguiente imagen:
AppCells comprenderá cada uno de estos archivos como una
instrucción y procederá a encontrar la ruta al interior de la sala que le
permita viajar del punto inicial al punto final evitando los obstáculos, en la
siguiente imagen se presenta el mapa generado, incluidos los obstáculos y los
puntos inicial y final.
El programa para cumplir el objetivo, tal y como se plantea
en el dibujo es enviado al robot lego NXT usando el protocolo Bluetooth.
Para este propósito, el procedimiento fue crear un “NXT
Project” y el main se corre como : “LeJOS NXT program”.
7. Conclusiones
Los resultados de la planificación para estos entornos ha resultado ser
satisfactoria en el sentido de que siempre retornará una solución si esta
existe, y el proceso asegura entregar la mejor de ellas para la ejecución.
Dado que el proceso de planificación será ejecutado por un computador y
luego son enviadas instrucciones específicas
al robot, el costo computacional puede elevarse conforme crezcan las
dimensiones del problema disponiendo solo de las capacidades del computador,
que para estas aplicaciones es bastante aceptable.
Aunque la planificación abstracta propone un modelo muy ideal, el
planificador de movimientos AppCells debe lidiar con aspectos del entorno que
afectan el desempeño, estos son debidamente tomados en consideración por un módulo
de corrección de errores, pero su exactitud absoluta no se puede asegurar, por
lo que asignarle al robot un plan extenso, supone acumulación de errores y una
diferencia considerable entre la trayectoria teórica y la real.
Los avances en el campo de la visión artificial serian de gran utilidad
en un sistema autónomo como el que aquí se expone, dado que puede dotar al
robot de una visualización del entorno en tiempo real, haciéndolo tolerante a
ambientes dinámicos.
Escrito por: Andrés Felipe Gutiérrez Salazar. Grupo SINTELWEB. Universidad Nacional de Colombia Sede Medellín.
No hay comentarios:
Publicar un comentario