El sistema de navegación autónoma de un Vehículo Aéreo no Tripulado (UAV, por sus siglas en inglés), se compone de tres algoritmos principales: a) generación de una representación del entorno, b) prevención de colisiones y c) planificación y seguimiento de trayectorias. Los UAVs capaces de navegar con autonomía son grandes y cuentan con plataformas computacionales y sensores sofisticados que les permiten procesar grandes cantidades de información en poco tiempo. Sus aplicaciones se enfocan en espacios abiertos, por ejemplo, en tareas de vigilancia y agricultura. En trabajos donde los espacios son estrechos, por ejemplo, búsqueda y rescate o inspección de estructuras industriales, este tipo de UAVs no puede ser utilizado y se debe optar por el uso de Micro-Vehículos Aéreos no tripulados (MAVs, por sus siglas en inglés).
Por su tamaño reducido, las plataformas computacionales con las que cuenta un MAV son de bajo desempeño, pero sus necesidades de navegación autónoma siguen siendo las mismas que las de los UAVs, por lo que estos sistemas requieren del diseño de otros algoritmos que controlen sus sistemas de navegación.
Para dotar a los MAVs con navegación autónoma, se propone un sistema de navegación donde sus componentes han sido rediseñados para ejecutarlos en plataformas de bajo rendimiento. Estos algoritmos permiten alcanzar e incluso mejorar el desempeño de los que actualmente se utilizan en los UAVs. El nuevo algoritmo de generación de una representación del entorno, se basa en la obtención de una partición volumétrica heterogénea del espacio para representarlo en la memoria mediante una estructura de tipo árbol octal (octree, por denominación en inglés), que permite almacenarlo en tamaños reducidos, dotado con una novedosa función de acceso directo al árbol (hash) que posibilita de manera muy eficiente determinar si una región del espacio está libre. El siguiente algoritmo genera las trayectorias resolviendo colisiones y tomando en cuenta las restricciones físicas del MAV y su dinámica, evitando el uso de algoritmos de optimización que son computacionalmente costosos. Adicionalmente, la propuesta se extiende para tomar en cuenta sistemas con muchos MAVs, permitiendo asignar prioridades.
El resultado es una propuesta de un sistema de navegación muy eficiente. Los experimentos muestran que se obtiene una alta tasa de éxito, es decir, que se genera una trayectoria desde la posición actual del MAV hasta su posición final. Para mostrar la efectividad de nuestra propuesta, comparamos el sistema sugerido contra otros reportados en textos publicados, usando ambientes simulados y reales (benchmarks), diseñados para evaluar a estos algoritmos. Los resultados, tanto en simulación como con MAVs reales, muestran que la propuesta mejora a las ya reportadas y que la propuesta instrumenta un sistema de navegación autónoma que se puede ejecutar en plataformas con sensores y cómputo limitados y en entornos desconocidos. Los videos de los experimentos que demuestran la implementación del sistema de navegación autónoma propuesto en este trabajo pueden ser vistos en:
Las instrucciones para replicar los resultados, además del código fuente, se encuentran en https://github.com/IntelLabs/autonomousmavs.
Leobardo Emmanuel Campos Macías es egresado del programa de Doctorado en Ciencias de la Ingeniería Eléctrica del CINVESTAV Unidad Guadalajara. Inicia sus estudios como Ingeniero Mecatrónico en el CETI y posteriormente ingresa a la maestría en Ciencias de la Ingeniería Eléctrica en CINVESTAV Unidad Guadalajara bajo la dirección del Dr. Eduardo Bayro. En diciembre de 2021, recibe el título de Doctor en Ciencias con la dirección del Dr. Antonio Ramírez Treviño y Dr. David Gómez Gutiérrez, proponiendo un método para la navegación autónoma de drones en ambientes desconocidos.