TelloHand
Dalla Vista all'Azione
Durante i miei studi all'ITIS "Enrico Medi", ho sviluppato TelloHand, un sistema per controllare un drone DJI Tello tramite visione artificiale. Attraverso una pipeline Python tra la telecamera del drone e il dispositivo di elaborazione, ho implementato il controllo del volo basato sul riconoscimento dei gesti. L'obiettivo principale è stato ottimizzare la Computer Vision e ridurre la latenza per garantire comandi in tempo reale.
Architettura Tecnica
Il DJI Tello espone uno stream UDP per il video e accetta comandi testuali, richiedendo un'architettura software altamente efficiente per tradurre gli input visivi in comandi di volo.
Sviluppo della Pipeline
La pipeline software intercetta e decodifica lo stream video H.264 dal drone via Wi-Fi. Per il rilevamento e tracciamento delle mani, ho integrato la libreria MediaPipe di Google, sfruttando la sua inferenza ottimizzata per CPU. Ho implementato logiche geometriche per interpretare i landmark delle dita, traducendoli in comandi specifici a una frequenza di 30 frame al secondo, assicurando una risposta fluida.
Gestione Latenza
Nei sistemi real-time, la latenza compromette la sicurezza del volo. Per minimizzare i ritardi, ho ottimizzato il buffer dei frame e implementato un'architettura multi-threading, azzerando quasi del tutto l'input lag grazie all'ottimizzazione del codice Python e OpenCV.
Riferimenti
Ecco il codice sorgente del progetto:
https://github.com/kairosci/tello-hand