Software

Das Team hinter der Softwareentwicklung

Übersicht

Unsere Software wird mit Hilfe des „Robot Operating System (ROS)“ erstellt. ROS stellt Softwarebibliotheken und Tools bereit, die uns bei der Entwicklung unterstützen. Es ermöglicht eine einfache Synchronisation und Kommunikation zwischen unseren verschiedenen Programmen. Die Programme selbst werden Nodes genannt, da die gesamte Systemstruktur als Netzwerk aufgebaut ist, bei dem unsere Programme die Verbindungspunkte darstellen. Unser Netzwerk hat drei Eingänge und zwei Ausgänge. Die erste Eingabe besteht aus den Positionsdaten aller Roboter auf dem Spielfeld und denen des Balles. Die Daten dafür werden über den Turnierveranstalter, also z.B. vom RoboCup, bereitgestellt. Über den zweiten Eingang erhält das Netz die Informationen, die wir von unseren eigenen Robotern senden. Über den dritten Eingang stehen zudem Daten des Schiedsrichters (Referee) bereit. Der Referee wir dabei auch über einen der Outputs über mögliche Timeouts und Robot-Swaps von unserer Seite aus informiert. Die Befehle, die wir an unsere eigenen Roboter senden, werden über den zweiten Output gesendet.

Unser Netzwerk lässt sich in drei Hauptkategorien unterteilen: Verbindung, Navigation und Strategie. Das folgende Diagramm gibt einen kleinen Überblick über den Aufbau des Netzes.

final_version

Larissa Seegemann

Strategy
IMG_3219

Fabrice Zeug

Navigation
Leon

Leon Koch

Navigation
lasse

Sebastian Knackstedt

Firmware
lasse

Robert Hart

Firmware
lasse

Tobias Pahl

Localisation
luca

Luca Eckelmann

Strategy and AI
lasse

Daniel Kozirevs

Strategy

Software Module

Strategie

Die Strategie ist der „intelligente“ Teil des Netzwerks und entscheidet, was als nächstes zu tun ist. Damit die Strategie entscheiden kann, was am besten getan werden soll, benötigt sie viele Daten. Diese Daten müssen aus allen am Netz anliegenden Eingaben gefiltert oder berechnet werden. Dafür haben wir ein Konzept zum Bewerten der Bedrohungsstufe entwickelt. Dieses "threat level" wägt ab, wie wahrscheinlich ein Gegentor oder ein Sieg des Gegners ist. Wenn der Gegner führt, ist die Bedrohungsstufe generell etwas höher und wenn wir führen dementsprechend niedriger. Ausgehend von dieser Bedrohungsstufe entscheiden wir, ob wir eher offensiv oder defensiv agieren.

Navigation

Die Navigation lokalisiert sowohl die Roboter als auch den Ball auf dem Spielfeld. Dazu werden sie als einzelne Koordinatensysteme in einem globalen Koordinatensystem gehandhabt. Diese Vorgehensweise erleichtert die Berechnung der Orientierung und Position zweier Roboter zueinander. Diese Daten können dann gleichermaßen von den Strategie- und den Navigationsmodulen verwendet werden. Das Hauptziel des Navigationssystems ist die Planung der bestmöglichen Route für einen Roboter, um das gewünschte Ziel zu erreichen.

Kommunikation

Das Kommunikationsmodul übernimmt die Kommunikation mit allen Instanzen außerhalb des Netzwerks. Es empfängt Daten und formatiert diese für die weitere Verwendung in unser netzwerkinternes Nachrichtenformat. Auf ähnlicher Weise konvertiert es auch interne Daten in das extern vorgegebene Format. Darüber hinaus fällt das Herstellen und Aufrechterhalten der Verbindung zu externen Geräten ebenfalls in den Aufgabenbereich des Verbindungsmoduls.