73 lines
3.0 KiB
Markdown
73 lines
3.0 KiB
Markdown
# 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%).*
|