Entwicklung einer Python/Qt-GUI-Anwendung zur Fernsteuerung und Diagnose unserer Roboter.


Zusammenfassung

Zum Testen der Software- und Hardware-Komponenten unserer Roboter soll eine GUI-Anwendung für den Computer entwickelt werden, die über Netzwerk und CAN-Bus mit der Steuerung der Roboter kommuniziert und einzelne Funktionalitäten gezielt aufrufen kann. Ebenso soll sie verschiedene Zustände und Signale des Roboters zur Überwachung anzeigen und grafisch aufbereiten.

Dazu muss zunächst eine Python-Anbindung an unser Roboter-internes Kommunikations-Protokoll XPCC implementiert und die strukturierte Beschreibung der Nachrichtenformate auf ein Python-Typensystem abgebildet werden. Dann können GUI-Anwendungen geschrieben werden: einerseits solche, die unabhängig von konkreten Problemstellungen dynamisch aus der strukturierten Beschreibung der Software-Komponenten erzeugt werden. Diese dienen dazu, ohne weiteren Aufwand neue Funktionalitäten der Robotersoftware zu testen und können auch bei anderen XPCC-basierten Projekten eingesetzt werden.

Andererseits soll es Anwendungen mit auf bestimmte Aufgaben spezialisierten Userinterfaces geben, z.B. zur Fernsteuerung des Roboterantriebs und anderer Motoren, zur Anzeige von gemessenen Sensorwerten, zum Konfigurieren der Strategie und Starten von Spielen, zur grafischen Anzeige der gemessenen Positionen eigener und gegnerischer Roboter auf dem Spielfeld, usw.

Technische Daten/Features:

  • Software in (pure) Python 3.x ohne Codegenerierung oder eigene native Bibliotheken
  • Modulare Struktur und gute Dokumentation zur einfachen Entwicklung von Fernsteueranwendungen oder anderen Software-Komponenten
  • Kommunikation mit den Robotern über XPCC-Protokoll via ZeroMQ
  • Dynamische erzeugte generische Benutzeroberfläche zur Steuerung und Diagnose beliebiger Software-Komponenten mit beliebigen Parameter-/Datentypen
  • Komfortable Editoren für bestimmte Nachrichtenformate, z.B. Positionen auf dem Spielfeld
  • Framework zum einfachen Anlegen Saison-/Aufgabenspezifischer Oberflächen
  • Grafische Oberfläche zur Fernsteuerung der Roboterantriebe und zusätzlicher Motoren
  • Grafische Oberfläche zum Start des Roboters und zur Überwachung des Spielverlaufs
  • Grafische Oberfläche zum Debuggen und Kalibrieren der Odometrie
  • Grafischer Busmonitor zum Anzeigen aller oder bestimmter Bus-Nachrichten, als Rohdaten und interpretierte Werte (Vorbild: Wireshark)

Tätigkeitsfelder und Technologien

  • Anwendungs-Entwicklung in Python 3.x
  • Entwicklung Grafischer Userinterfaces mit PyQt/Qt5
  • Auseinandersetzung mit den Software-Komponenten und der Kommunikation des Roboters

Referenzen und Links