Navegar de forma autónoma por un entorno con obstáculos es uno de los problemas más desafiantes en el mundo de la robótica. Siendo más desafiante en el caso de los UAVs ya que una colisión provocaría que el UAV se estrellara contra el suelo. El problema se resuelve mediante el uso de algoritmos de planificación de ruta eficientes que calculan una trayectoria eficiente para llegar de un punto a otro mientras se evitan los obstáculos. Por lo tanto, a lo largo de los años, se han realizado muchas investigaciones para desarrollar formas nuevas y más eficientes de detección de obstáculos.
Métodos diferentes de detección de obstáculos
En los UAVs se emplean varias técnicas para la detección de obstáculos. Algunas de ellas se enumeran a continuación:
- Ultrasónico
- Infrarrojo
- LiDAR
- Visión monocular
- Visión estereoscópica
En los primeros tres métodos, la detección de obstáculos se realiza emitiendo desde el UAV un pulso de sonido, onda infrarroja o pulso de láser, respectivamente. Después se observa el tiempo que tarda la onda emitida en reflejarse y volver al receptor del UAV. En la visión monocular, se usa una sola cámara para obtener la imagen, y la estimación de la profundidad se realiza a partir de las claves de profundidad en la imagen. Y con la visión estereoscópica, se utilizan dos cámaras para capturar imágenes simultáneamente, se ubica un mismo punto en las dos imágenes y la distancia se estima por triangulación.
En el artículo extenderemos las dos últimas técnicas en detalle. La detección de obstáculos basada en la visión consiste en dos pasos principales. El primer paso es identificar el objeto y su forma y el segundo paso consiste en estimar la distancia absoluta o relativa al obstáculo.
Identificación de obstáculos con cámara de Visión
Si uno muestra una fotografía a un humano y le pide que identifique varios objetos, lo haría sin mucha dificultad. Lo puede hacer debido a su familiaridad con los objetos y su conocimiento de cómo se verían los objetos desde diferentes ángulos. Para una máquina, la información disponible está limitada al valor RGB o al valor de Escala de grises en cada píxel, por lo que la identificación de objetos es difícil para una máquina y sigue siendo un área activa de investigación.
Un método para la detección de obstáculos con UAVs sería usar el detector de bordes Canny, que ayuda a segmentar las imágenes en los casos en que existe una clara distinción entre el entorno y los obstáculos.
En caso de una escena abarrotada, el detector de bordes Canny ofrece muchos segmentos. En esos casos, se puede usar un algoritmo de sustracción de fondo para filtrar los objetos en primer plano de la escena. Esta técnica es efectiva para identificar objetos en movimiento en una escena abarrotada.
Si los objetos de la escena se conocen de antemano, se podría entrenar a una Red Neuronal Convolucional en imágenes semejantes con valores de profundidad conocidos. Por lo que cuando el UAV encuentre los objetos podrá estimar la distancia a estos. En la mayoría de los casos, una sola técnica de detección de obstáculos no es suficiente y se puede requerir que se use una combinación de ellos. Como sería implementar el detector de bordes Canny después de filtrar el fondo.
Detección de profundidad utilizando cámaras de visión
Las cámaras estereoscópicas y las cámaras monoculares usan varias técnicas para la detección de profundidad.
1. Cámaras estereoscópicas
Con la ayuda de las cámaras estereoscópicas se puede estimar la profundidad de la escena, pero el principal desafío al que hay que enfrentarse para implementar la detección de obstáculos basada en la visión estereoscópica es la intensidad computacional de los algoritmos y la calibración de las cámaras. Para estimar la profundidad, el primer paso es ubicar el mismo punto en cada imagen. Si no utilizáramos la geometría del sistema estereoscópico, deberíamos buscar en las dos imágenes por completo para localizar el mismo punto en cada una de ellas. Esto puede ser computacionalmente excesivo, por lo que para reducir el espacio de búsqueda, se puede usar la idea de la geometría epipolar.
2. Cámaras monoculares
A diferencia de la cámara estereoscópica la estimación de profundidad para la detección de obstáculos con una cámara monocular es difícil. Sin embargo, podría hacerse utilizando lo que se conoce como claves de profundidad. A continuación entraremos en mayor detalle de las claves de profundidad.
La clave de profundidad más utilizada por el ser humano es el “tamaño familiar”. En una imagen, uno puede decir qué árbol está más lejos o cuál está más cerca de nosotros. En este caso usamos la familiaridad del tamaño de los objetos para estimar la distancia. Como sabemos que el tamaño de un objeto disminuye a medida que aumenta la distancia a él, uno concluye que los árboles más pequeños están más lejos en comparación con los árboles más grandes.
Otra clave de profundidad que se usa con frecuencia para la detección de obstáculos es el tamaño absoluto o relativo conocido de los objetos. Si hay varios objetos en la escena cuyo tamaño se sabe que es similar, la distancia relativa a un objeto se puede obtener del tamaño que ocupa en el plano de la imagen. Cuando se conoce el tamaño absoluto de un objeto, la posición 3D del objeto puede estimarse a partir de los parámetros conocidos de la cámara y la posición del objeto en el plano de la imagen.
Una clave de profundidad común que se usa es el movimiento relativo de varios objetos. Los objetos más lejanos tienden a moverse más despacio en comparación con los objetos que están más cerca. Al observar la velocidad relativa de los objetos, se puede estimar la distancia relativa entre los obstáculos para optimizar la detección de obstáculos.
Concluyendo, evitar un obstáculo mientras se está en movimiento es una parte importante en la navegación de cualquier UAV. Actualmente el Veronte Autopilot 1x ya incorpora un sistema avanzado de evasión de obstáculos. Por lo que integrar la detección de obstáculos con la cámara de a bordo ayudará a identificar dichos obstáculos de una manera más eficiente.