Der TelloSimulator ermöglicht das Experimentieren und Debuggen mit einer virtuellen Tello Drohne. Die Applikation bietet die Programmierschnittstelle des Tello SDK 2.0 an, sendet und empfängt UDP-Pakete analog zur echten Drohne und verfügt über ein UI mit 3D-Welt, in welcher die virtuelle Drohne fliegt.
Repository klonen und das Gradle-Project starten mit:
./gradlew run
oder
gradlew run
Tip
|
Eine detailliertere Installationsanleitung, inkl. IntelliJ IDEA Setup, ist im SETUP.adoc zu finden. |
Note
|
Um den Simulator zu verwenden, wird zusätzlich ein Operator-Programm benötigt, welches die Tello-Drohne und somit auch den Simulator ansteuern kann. Falls kein eigener Client verfügbar ist, steht hier eine Demo-Applikation zur Verfügung. |
Die Verbindung mit dem Simulator ist sehr ähnlich, wie mit der echten Drohne. Allerdings gibt es systembedingt ein paar Unterschiede. Die nachfolgenden Abschnitte dokumentieren die Simulator-API und geben beispielhaften Java-Code zum Verbindungsaufbau.
-
Command-Socket mit bind zu Port 8889 erstellen, um Responses zu empfangen:
ds = new DatagramSocket(8889);
-
Connection zur Simulator-IP (sichtbar im Simulator-UI) auf Port 8879, um Commands an den Simulator zu schicken:
ds.connect(InetAddress.getByName(simulatorIP), 8879)
-
UDP-Pakete senden und empfangen:
DatagramPacket packet = new DatagramPacket(...); ds.send(packet); ds.receive(packet);
-
State-Socket auf Port 8890 erstellen, um State vom Simulator zu empfangen:
ds = new DatagramSocket(8890);
-
State-Pakete empfangen:
ds.receive(packet);
Note
|
Der State wird alle 100 ms versendet. Er wird an die Adresse geschickt, von der das erste command empfangen wurde. |
UI-Element | Funktion |
---|---|
Start Drone |
Startet und stoppt die virtuelle Drohne. Entspricht dem On/Off-Button der echten Tello-Drohne. |
Reset Drone Position |
Setzt das 3D-Modell der Drohne in den Anfangszustand zurück. |
Change to Drone Camera |
Wechselt zwischen Simulator- und Drohnen-Kamera. |
Room-Slider |
Anpassung der Grösse der 3D-Welt. |
DEBUG INFO WARN ERROR |
Setzt das Level für die Filterung der angezeigten Logs. |
Show Timestamp |
Aktiviert die Zeitstempel der Log-Einträge. |
Autoscroll to Tail |
Aktiviert das automatische Scrollen zum neusten Eintrag am Ende des Logs. |
Interaktion | Beschreibung |
---|---|
LeftMouse |
Rotiert die Kamera |
Ctrl+LeftMouse |
Rotiert die Kamera langsam |
Shift+LeftMouse |
Rotiert die Kamera schnell |
RightMouse |
Bewegt die Kamera nach links/rechts |
Ctrl+LeftMouse |
Bewegt die Kamera langsam nach links/rechts |
Shift+LeftMouse |
Bewegt die Kamera schnell nach links/rechts |
Scroll |
Zoom erhöhen/verringern |
Ctrl+Scroll |
Zoom langsam erhöhen/verringern |
Dieses Projekt wurde im Rahmen des IP5-Projekts im Studiengang Informatik mit Vertiefung in Design und Management an der Fachhochschule Nordwestschweiz FHNW entwickelt. Eine ausführliche Dokumentation ist im Bericht zu finden.