domingo, 11 de diciembre de 2011

APLICACIÓN DE LA PLANIFICACIÓN ABSTRACTA EN LOS SISTEMAS DE ROBOTS AUTÓNOMOS


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 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. 


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.

Usando la sintaxis PDDL el archivo Domain tiene la siguiente forma.











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