Hacia la exploración eficiente de ambientes no estructurados
Introducción
Cuando pensamos en un escenario de desastre natural, las horas y los días iniciales son los más importantes para rescatar sobrevivientes , por lo que es importante contar con un procedimiento de contingencia. El uso de robots en colaboración con los equipos de rescate, puede mejorar la posibilidad de supervivencia para las personas atrapadas. Con la ayuda de múltiples robots, el área puede ser explorarada más rápido, dando un tiempo valioso a los equipos médicos para atender a las víctimas. Como podemos ver, existe una clara necesidad de robots de búsqueda y rescate que puedan ser liberados inmediatamente después de un desastre, en el que las condiciones sean demasiado peligrosas y demasiado abarrotadas para que personas y perros inicien la búsqueda de víctimas.
Los robots, a diferencia de trabajadores y perros de búsqueda y rescate entrenados, tienen ciertas ventajas, entre las cuales podemos numerar:
- Un robot de rescate no sufrirá de estrés ni fatiga
- Es posible desplegar robots de rescate en grandes cantidades. Mientras que los profesionales de rescate con experiencia y perros de rescate entrenados son recursos escasos.
- En el caso necesario, es posible prescindir de un robot, pero no sucede lo mismo con el personal de rescate. Si un robot sufre daños, puede ser reparado o reemplazado fácilmente. En cambio, la pérdida de trabajadores de rescate es muy difícil debido a su relación dentro de la sociedad.
Exploración robótica
Podemos considerar al proceso de exploración como aquel que, dado un robot móvil en un entorno desconocido, guía al mismo para construir un modelo del medio ambiente que lo rodea. Podemos considerar la exploración como la respuesta a la pregunta: ¿A qué lugar tengo que desplazarme para mejorar mi representación del entorno?
Queremos determinar la mejor posición a la cual tenemos que desplazarnos, para incrementar de manera eficiente nuestro conocimiento del mapa. Podemos considerar eficiente como:
- En el menor tiempo
- Con el menor desplazamiento
- Con la menor energía consumida
Los problemas asociados a la navegación son muy diversos, y varían dependiendo la aplicación, el entorno y el tipo de robot entre otras cosas.
Un algoritmo de exploración puede ser considerado como un procedimiento iterativo que consiste en una selección de un nuevo objetivo y una navegación hacia este objetivo. El algoritmo finaliza cuando se cumple una condición definida (objetivo de la misión). La estrategia de exploración es la encargada de determinar el próximo objetivo del robot. En cada iteración, se utiliza la posición actual del robot, el conocimiento sobre el entorno y un criterio de optimización seleccionado.
Mapas métricos
La identificación de las regiones no exploradas del entorno, puede ser realizada de diferentes maneras, dependiendo de la representación del espacio que utiliza el robot. Uno de los más populares es el uso de mapas utilizando una cuadrícula de ocupación. Éstos mapas representan la probabilidad de ocupación de cada zona del entorno dentro de una cuadrícula.
Según la probabilidad de ocupación, las celdas se pueden clasificar como libres (blancas), ocupadas (negras) o desconocidas (grises). Usando esta representación, un robot puede alcanzar una zona desconocida mediante la navegación hacia las celdas de frontera. Las mismas separan las celdas libres de las celdas desconocidas, concepto introducido por Yamauchi en 1997.
Mapas métricos en juegos de computadora
Este concepto es utilizado en numerosos y diversos ambientes.
Por ejemplo, en la siguiente imagen, las zonas de frontera corresponden a la sección delimitada por las líneas celestes. Esta es una captura del juego Age of Empire 2, en la cual el jugador tiene que ampliar el conocimiento del mapa, desplazando unidades (equivalente al robot).
Hay una presentación dictada para la Rama Estudiantil del IEEE UTN - frc, en la cual explico algunos conceptos de exploración empleados en el juego AOE2. Los slides de la presentación están aquí
En los últimos años la robótica, se ha demostrado un gran interés por la reproducción de resultados que se publican. Esto es debido a que, en ciertas ocasiones, para recrear un experimento desarrollado en otro laboratorio, es necesario contar con los mismos robots y sensores. Sin embargo, pese a que se avanza hacia el uso de herramientas de programación que permiten a los investigadores tener una base común de desarrollo, como ROS y Gazebo, los sistemas son cada vez más complejos y difíciles de reproducir. Por otro lado, no siempre se indican todas las herramientas o dependencias utilizadas en el proceso de investigación para lograr su reproducción.
ROS en contenedores Docker
En un trabajo de 2019 se utilizaron contenedores Docker, para realizar pruebas con diferente algoritmos de exploración. Los algoritmos fueron implementados en ROS, y evaluados mediante el simulador Gazebo dentro del mismo contenedor.
Utilizar contenedores presenta ciertas ventajas:
- Aislamiento entre entorno de trabajo y el local
- Utilizar contenedores Docker en Linux, no afecta al flujo de trabajo normal por lo que tiene una rápida adaptación a su uso.
En la siguiente imagen podemos ver un ejemplo de simulación disponible dentro del contenedor, la cual consta de un ambiente similar a oficinas. En la esquina superior izquierda podemos ver uno de los robots simulados, y en la esquina opuesta el mapa generado por el mismo.