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.