# 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. - **Sport-Modus**: Aggressives 3-Achsen-Tracking für schnelle Verfolgungsjagden. - **Visual Fingerprinting (ReID)**: Erkennt fixierte Personen wieder, auch wenn sie das Bild kurz verlassen. - **Multithreading**: Flüssiges Kamerabild durch Trennung von Video-Stream und KI-Logik. - **Simulator inklusive**: Eine integrierte Ursina-Umgebung zum gefahrlosen Testen. ## 🛠 Installation 1. **Python-Umgebung**: Empfohlen wird Python 3.10 bis 3.12. 2. **Abhängigkeiten installieren**: ```bash pip install -r requirements.txt ``` 3. **Modelle prüfen**: Stelle sicher, dass im Ordner `models/` folgende Dateien liegen: - `face_detection_yunet.onnx` - `midas_small.onnx` - `reid_mobilenet.onnx` ## 🚀 Starten der Drohne ### A) Im Simulator (Standard) 1. Öffne die Datei `run.py`. 2. Stelle sicher, dass `use_real_tello=False` eingestellt ist. 3. Starte das Programm: ```bash python run.py ``` 4. Das Simulator-Fenster und das KI-Pilot-Fenster öffnen sich automatisch. ### B) Mit der echten DJI Tello 1. Schalte deine Tello ein und verbinde deinen PC mit dem WLAN der Drohne (z.B. `TELLO-XXXXXX`). 2. Öffne die Datei `run.py` und ändere die Zeile zu: ```python app = FaceTrackingApp(use_real_tello=True) ``` 3. Starte das Programm: ```bash python run.py ``` ## 🕹 Bedienung im Flug Sobald das Video-Fenster erscheint: 1. **Klicke mit der Maus** in das Fenster, um den Fokus zu aktivieren. 2. Drücke **'T'** zum Starten (Takeoff). 3. **Tracking aktivieren**: Klicke mit der Maus auf ein erkanntes Gesicht/Person oder drücke **'K'**, um den nächsten erkannten Kopf zu fixieren (Lock-ON). ### Wichtige Tasten: | Taste | Aktion | | :--- | :--- | | **T** | **Takeoff** (Abheben) | | **L** | **Land** (Landen) | | **2** | **Sport-Modus** (An/Aus) - Schnelleres Tracking auf allen Achsen | | **M** | **Manueller Modus** (KI stoppt die Steuerung) | | **Space**| **Not-Aus** (Motoren sofort aus) | | **W/S/A/D**| Vorwärts, Rückwärts, Links, Rechts (Manuell) | | **R/F** | Steigen / Sinken (Manuell) | | **E/Z** | Drehen Links / Rechts (Manuell) | | **Enter**| Programm sicher beenden | ## 🏗 Architektur & Performance - **AI-Worker Thread**: Verarbeitet alle Modelle parallel zum Haupt-Thread. - **Rate Limiting**: RC-Befehle werden mit 10Hz gesendet, um das SDK-Protokoll nicht zu überlasten. - **ONNX Acceleration**: Nutzt CPU-Optimierungen, die bis zu 5x schneller als Standard-PyTorch sind. --- *Viel Spaß beim Fliegen! Achte bei der echten Drohne immer auf genügend Platz und einen vollen Akku (>15%).*