Neben der Hardwareplattform wird auch eine Reihe von Softwarekomponenten für die Entwicklung und den Betrieb der Roboter benötigt.
Der Robotercode ist der Teil der Software, der direkt auf dem Embedded Board des Roboters ausgeführt wird und das Verhalten des Roboters steuert. Dazu werden eingehende Sensordaten, zum Beispiel Bilder der Omnivisionkamera oder Messwerte von Druck-, Beschleunigungs- und Lagesensoren verarbeitet. Aus den Sensordaten werden Informationen über den Zustand der Umwelt gewonnen, wie zum Beispiel die eigene Position, Gegnerpositionen und die Ballposition, mit Hilfe derer der Roboter sein Verhalten koordiniert.
Diese Informationen sowie weitere Informationen über das aktuelle Verhalten des Roboters können auch zu Debugzwecken über eine kabellose Netzwerkverbindung versendet werden. Durch einen modularen Aufbau des Robotercodes ist es des weiteren möglich, Teile des Codes wie zum Beispiel die Selbstlokalisation oder Verhaltensmuster einfach und schnell auszutauschen um z.B. das Verhalten des Roboters an geänderte Umweltbedingungen (neue Regeln, anders positionierte Landmarken) anpassen zu können.
Der Robotercode kann nicht nur auf dem realen Roboter, sondern auch in einer simulierten Umgebung ausgeführt werden. Diese simulierte Umgebung wird durch den "Simrobot" zur Verfügung gestellt, der auch schon bei den "Aibo"-Roboterhunden verwendet wurde.
Im Moment arbeiten wir mit einer auf humanoide Roboter angepassten Version, die auch physikalische Effekte simuliert. Mit Hilfe des Simulators können neue Bewegungsmuster für Torschüsse, Pässe und Laufbewegungen gefunden und getestet werden, bevor sie auf dem realen Roboter ausgeführt werden. Weiterhin sind Spielszenen simulierbar, um das Verhalten auf einer höheren Schicht debuggen zu können.
Der Screenshot zeigt den Simulator mit Konsole, einer Szenenansicht (oben links), dem simulierten Kamerabild der Omnivisionkamera (unten rechts) und einer segmentierten Version des Kamerabildes(unten links).
Da dieser Simulator jedoch nicht die Fähigkeit besitzt, Verhalten und Physik verschiedener Roboter einer einzigen Szene auf verschiedenen Rechnern verteilt sowie physikalische Effekte hardwareunterstütz zu berechnen, wird dieser Simulator in naher Zukunft durch das Robotics Studio abgelöst.
Wie schon erwähnt, ist der Roboter in der Lage, seine Sensordaten und Informationen über seinen Zustand per WLAN zu übertragen. RobotControl wird zur Auswertung dieser Daten verwendet. Neben der Möglichkeit, sich Textnachrichten sowie Sensor- und andere Debugdaten vom Roboter schicken und anzeigen zu lassen, kann RobotControl auch zur Kalibrierung der Gelenke und der Bildverarbeitung verwendet werden. Des weiteren kann man sich den Zustand des Roboters nicht nur anzeigen lassen, sondern auch bei laufendem Roboter in das Verhalten eingreifen, indem man zum Beispiel einen anderen Algorithmus für die Lokalisation auswählt oder eine Bewegung gezielt ausführen lässt.
Der Screenshot zeigt das aktuelle Omnivisionbild des Roboters (oben links), eine Darstellung des Feldes (unten rechts) und ein Steuerungsfenster (unten links).
Über das Kamerabild und über die Darstellung des Spielfeldes lassen sich Zustandsinformationen des Roboters legen. Damit lässt sich schnell einen Eindruck von Roboterzustand gewinnen.