lunes, 9 de enero de 2012


Identificación de un Área Desconocida e Implementación de un Grafo de Visibilidad para el Cambio de Configuración de un Robot



En la robótica algunos de los desafíos más significativos frente a la robótica autónoma están en el área de planificación automática de movimientos. En esta se busca poder llevar instrucciones generadas en un lenguaje de alto nivel a un robot convirtiéndolas automáticamente a comandos de movimiento de bajo nivel de tal forma que se realice la tarea asignada. Esta tarea consiste típicamente en generar un cambio de configuración del robot de un lugar a otro, mientras se evaden los obstáculos presentes en el ambiente desconocido. Sin embargo, en la mayoría de la literatura se asume que el robot tiene un modelo preciso del ambiente antes de comenzar a desplazarse; menos atención se le ha prestado al problema de los ambientes no conocidos o aquellos parcialmente identificados. Es necesario entonces para resolver este ultimo problema la utilización de sensores capaz de tomar medidas del ambiente a medida que el robot esta en desplazamiento, de tal forma que se pueda generar un modelo del ambiente en el cual basar todas las futuras decisiones que el robot deba tomar; tal modelo, en esta propuesta, es el encargado de generar las principales características de lo que se conoce como grafo de visibilidad, y sobre el cual se planifican todas las posibles trayectorias que se pueden realizar en el ambiente de trabajo del robot. Adicional al uso de lo sensores para la identificación de los diferentes obstáculos presentes en el ambiente, también es fundamental considerar que en todo momento el robot debe conocer su localización en el mundo desconocido, de tal forma que el robot pueda identificar constantemente su ubicación, y la disposición geométrica de los obstáculos dentro del ambiente. Adicional a lo anterior también es de gran relevancia considerar que el robot tiene volumen específico, y por lo tanto no debe ser considerado como un punto en el espacio. Esto permite generar rutas que realmente pueden ser navegadas por el robot sin generar colisión alguna con los obstáculos en el ambiente.

Robot Lego Mindstorm NXT

La aplicación propone implementar el algoritmo de visibilidad sobre un robot Lego Mindstorms NXT 2.0 fabricado por Lego®, el cual es un kit de robótica programable lanzado al mercado en julio del 2006. Este remplazó a la primera generación del kit lego Mindstorm, el cual fue llamado kit de invención de robótica. 
El componente principal en el kit es un computador en forma de ladrillo llamado ladrillo inteligente NXT. En él se pueden conectar y controlar hasta tres motores en los puertos A, B y C y hasta cuatro de los diferentes sensores en los puertos 1, 2,3 y 4. El ladrillo también tiene una pantalla LCD de 100x64 pixeles y cuatro botones que pueden ser utilizados para navegar en los diferentes menús. Además ofrece la opción de conexiones por medio de USB y Bluetooth.  

Sistema sensorial

En esta propuesta se implementa el uso de varios sensores tanto con el fin de identificar el ambiente en el cual el robot esta interactuando como con el  de permitir el mejor posicionamiento posible del robot en el mundo. Los sensores utilizados son:

-          Sensor de ultrasonido: utilizado con el fin de identificar los diferentes obstáculos presentes en el ambiente desconocido, y mediante el posicionamiento del robot identificar las coordenadas de cada obstáculo.

-          Compás magnético: mediante el uso de este sensor se busca que cada vez que el robot haga un giro, este pueda ser realizado con una mayor precisión, y que factores externos como el suelo o las llantas no influyan demasiado en la realización correcta del giro. 
-          Tacómetro: este sensor ubicado en cada uno de los motores, son utilizados para proporcionar las coordenadas del robot en todo momento.   

Reconocimiento de obstáculos

Como fue mencionado antes, en este proyecto se utiliza el sensor de ultrasonido con la intención de identificar los diferentes obstáculos ubicados en el espacio desconocido. Este proceso inicia con un reconocimiento parcial del mundo, recorriendo el área total de trabajo. Por lo tanto es necesario ingresar el punto inicial, final y el área que se debe analizar.
                        
                                         

Luego del ingreso de los datos el robot analiza el área de trabajo y luego identifica los vértices con el fin de generar el grafo de visibilidad. Mediante el uso del sensor de ultrasonido se genera el mapa de un obstaculo mostrado en la parte derecha de la siguiente imagen.


Con dos obstáculos se genera el siguiente mapa



Vídeo de identificación de un obstáculo



Generación de Grafos de Visibilidad y ruta más corta


Luego del reconocimiento de los obstáculos y de la construcción del mapa, se puede realizar el grafo de visibilidad y luego partiendo de este y mediante el algoritmo de Dijkstra se encuentra la ruta mas corta, la cual es recorrida finalmente por el robot. En la siguiente imagen se muestra el grafo de visibilidad generado por el robot al identificar el are con un obstáculo. 




En la siguiente imagen se muestra el grafo de visibilidad generado por el robot al identificar el are con dos obstáculos.