Skip to content

DieterHolz/TelloSimulator

Repository files navigation

TelloSimulator

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.

Installationsanleitung:

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.

Simulator-API:

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.

Commands senden & Responses empfangen

  1. Command-Socket mit bind zu Port 8889 erstellen, um Responses zu empfangen:

    ds = new DatagramSocket(8889);
  2. Connection zur Simulator-IP (sichtbar im Simulator-UI) auf Port 8879, um Commands an den Simulator zu schicken:

    ds.connect(InetAddress.getByName(simulatorIP), 8879)
  3. UDP-Pakete senden und empfangen:

    DatagramPacket packet = new DatagramPacket(...);
    ds.send(packet);
    ds.receive(packet);

State empfangen

  1. State-Socket auf Port 8890 erstellen, um State vom Simulator zu empfangen:

    ds = new DatagramSocket(8890);
  2. 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.

Video empfangen

Warning
Der TelloSimulator versendet in der aktuellen Version noch keinen Videostream.

Simulator UI

tello simulator gui final
Abbildung 1. Das TelloSimulator User Interface.
Tabelle 1. Funktionalität der UI-Elemente.
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.

Tabelle 2. Interaktionmöglichkeiten mit der 3D-Szene.
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


Mehr Informationen

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages