NaoTH on GitHub

RobotControl

Das Software-Framework des Teams bietet eine global verfügbare Debugging- Architektur, die verschiedene Debugging- Aktionen anbietet, wie etwa Logging von Messdaten, Visualisierung der Umgebungsinformationen oder Daten zum Laufzeitverhalten des Codes. Auch Modifikation des Softwareverhaltens ist über diese Debugging-Architektur möglich, so können Parameter modifiziert oder Funktionen ein- oder ausgeschaltet werden. Dies ist durch Code-Makros an beliebiger Stelle innerhalb des Codes nutzbar. Dieses Debugging- Framework kommuniziert über ein Plaintext-Protokoll, das unter anderem von RobotControl interpretiert wird. RobotControl ist eine javabasierte Debugging- und Steuersoftware, die sicher als wichtiges Werkzeug für Entwicklung und Konfiguration des Softwareframeworks bezeichnet werden kann. RobotControl bietet eine Vielzahl von unterschiedlichen Ansichten, mit denen die Daten visualisiert und gesteuert werden können. Die relevantesten Ansichten in RobotControl sind:
  • BehaviorViewer: Visualisiert den aktuellen Pfad innerhalb der Verhaltenshierarchie sowie Debugging-Daten zum aktuellen Zustand des Verhaltens.
  • ColorTableTool: Farb- Kalibration des Roboters: Hier werden die für das Spiel relevanten Farben (Ball, Boden, Linien, Tore, Roboter) zugeordnet und kalibriert.
  • DebugRequests: Steuerungstool für die einzelnen Debug- Informationen – hier wird konfiguriert, welche Daten übertragen und angezeigt werden sollen.
  • FieldViewer: Visualisierung des Spielfeldes aus Vogelperspektive, in der vor allem Lokalisierungsinformationen wie zum Beispiel die Verteilung von Lokalisierungsperzepten oder die vermutete Position des Tores und des Balls gezeigt wird.
  • LogfileRecorder: Aufzeichnung eines Logfiles des aktuellen Zustandsverlaufs. So kann zum Beispiel ein Spiel oder eine bestimmte Spielsituation später im Labor wiedergegeben und zur Codeverbesserung benutzt werden.
  • StopwatchViewer: Anzeige des Laufzeitverhaltens der einzelnen Module
  • 3DViewer: 3D-Darstellung des Roboters mit seinen einzelnen Gelenken sowie diverser Umgebungsinformationen
Auf dem Screenshot sind einige dieser Ansichten zu sehen: Oben links ist der 3DViewer zu sehen, rechts daneben der FieldViewer – darunter der ValuePlotter, mit dem Wertverläufe geplottet werden können, sowie der BehaviorViewer. Ganz rechts über beide Spalten ist das DebugRequest Center zu sehen, in dem konfiguriert wird, welche Debug-Daten der einzelnen Module gezeigt werden sollen. So sieht man im Screenshot, dass die Option draw_players_model eingeschaltet ist, und daher im FieldViewer die Position der vom PlayersLocator angezeigten Roboter eingezeichnet wird. RobotControl kann sowohl über Netzwerk direkt auf den Roboter zugreifen, als auch vorab aufgezeichnete Logfiles abspielen, um so auch eine nachträgliche Analyse zu Test- und Entwicklungszwecken zu ermöglichen.