# Tello AI Pilot (Extreme Performance Edition) Dieses Projekt ist eine hochoptimierte KI-Steuerung für die DJI Tello Drohne (und den integrierten Simulator). Es nutzt modernste Computer-Vision-Modelle via ONNX Runtime, um Personen zu verfolgen, Hindernissen auszuweichen und Ziele intelligent wiederzuerkennen. ## 🚀 Hauptmerkmale - **Hybrid AI Engine**: Nutzt **YuNet** (Face Detection), **MiDaS** (Depth Estimation) und **MobileNetV3** (ReID) – alle via **ONNX Runtime** für maximale FPS. - **Multithreading**: Kamera-Stream und KI-Verarbeitung laufen in getrennten Threads. Das Videobild bleibt flüssig, egal wie schwer die KI arbeitet. - **Visual Fingerprinting (ReID)**: Die Drohne erstellt einen digitalen Fingerabdruck einer fixierten Person und findet sie automatisch wieder, wenn sie kurz aus dem Bild verschwindet. - **Intelligente Verfolgung**: Aktive Suche in Verschwindungsrichtung und aggressiver Verfolgungsmodus. - **Echtzeit-HUD**: Professionelles Display mit Telemetrie, AI-Tiefenkarte und Radar-Zonen zur Hindernisvermeidung. - **Rate Limiting**: Kontrollierter Datenfluss (10Hz) zum Tello-SDK für maximale Verbindungsstabilität. ## 🕹 Steuerung Klicke mit der **Maus** direkt in das Videobild, um eine Person zu fixieren (**Lock-ON**). ### Tastatur-Belegung: | Taste | Aktion | | :--- | :--- | | **T** | **Takeoff** (Starten) - Einmal drücken und kurz warten | | **L** | **Land** (Landen) | | **M** | Wechsel zwischen **Manuell** und **KI-Modus** | | **K** | Lock-ON Trigger aktivieren / Fixierung löschen | | **Space**| **Not-Aus** (Stoppt alle Motoren sofort) | | **W/S** | Vorwärts / Rückwärts (Manuell) | | **A/D** | Links / Rechts (Manuell) | | **R/F** | Steigen / Sinken (Manuell) | | **E/Z** | Drehen Links / Rechts (Manuell) | | **1** | Automatisches Drehen (Scan-Modus) an/aus | | **Enter**| Programm beenden | ## 🏗 Architektur - `drone_pilot/main.py`: Das Herzstück. Verwaltet Threads, UI-Events und die Hauptschleife. - `drone_pilot/vision.py`: Die KI-Engine. Lädt ONNX-Modelle und verarbeitet Bilddaten. - `drone_pilot/flight.py`: Der Flug-Controller. Berechnet RC-Vektoren basierend auf KI-Ergebnissen. - `drone_pilot/ui.py`: HUD-Renderer für das OpenCV-Fenster. - `drone_pilot/config.py`: Zentrale Konfiguration für Geschwindigkeiten und Schwellenwerte. ## 🛠 Installation & Start 1. Installiere die Abhängigkeiten: `pip install -r requirements.txt` 2. Stelle sicher, dass die Modelle im Ordner `models/` liegen. 3. Starte das Programm: - Simulator: `python run.py` (Default: `use_real_tello=False`) - Reale Drohne: Ändere in `run.py` zu `use_real_tello=True` --- *Hinweis: Beim Fliegen mit der realen Drohne immer auf einen Akkustand > 15% achten, da der Startbefehl sonst vom SDK abgelehnt wird.*