TelloHand

Escrito por Alessio el 15/3/2023

De la Vista a la Acción

Durante mis estudios en el ITI "Enrico Medi", desarrollé TelloHand, un sistema para controlar un dron DJI Tello mediante visión artificial. A través de un pipeline en Python que conecta la cámara del dron con el dispositivo de procesamiento, implementé el control de vuelo basado en el reconocimiento de gestos. El objetivo principal fue optimizar los algoritmos de Computer Vision y reducir la latencia para asegurar comandos en tiempo real.

Arquitectura Técnica

El DJI Tello expone un flujo de video UDP y acepta comandos de texto, lo que requiere una arquitectura de software altamente eficiente para traducir las entradas visuales en comandos de vuelo.

Desarrollo del Pipeline

El pipeline de software intercepta y decodifica el flujo de video H.264 del dron vía Wi-Fi. Para el seguimiento de manos, integré la biblioteca MediaPipe de Google, aprovechando su inferencia optimizada para CPU. Implementé lógica geométrica para interpretar los puntos clave de los dedos, traduciéndolos en comandos específicos a 30 fotogramas por segundo para asegurar una respuesta fluida.

Gestión de la Latencia

En sistemas en tiempo real, la latencia compromete la seguridad del vuelo. Para minimizar los retrasos, optimicé el búfer de fotogramas e implementé una arquitectura de múltiples hilos, reduciendo efectivamente el retraso de entrada a casi cero mediante código Python y OpenCV optimizado.

References

Aquí tienes el código fuente del proyecto:

https://github.com/kairosci/tello-hand