Inhaltsverzeichnis

Die vier groben Aufgaben beim Roboterfußball sind :

Bildverarbeitung

Die Kamera ist bei unserem Roboter der Hauptsensor. Der Roboter gewinnt fast alle Informationen über sein Kamerabild. Die Aufgabe der Bildverarbeitung ist es nun, alle für den Roboter wichtigen Elemente und deren Position im Bild zu erkennen. Das sind hier der Ball, die Tore, Feldlinien, Mitspieler und Gegenspieler sowie die Landmarken.

Dazu wird das Bild zuerst mit einer Farbtabelle klassifiziert. Der Roboter weiß also nun, welche der auf dem Spielfeld verwendeten Farben ein Bildpunkt hat. Diese Farben sind Grün für das Feld, Hellblau und Gelb für die Tore, Orange für den Ball usw. Hat der Roboter nun also z.B. einen orangen Bildpunkt gefunden, so kann er davon ausgehen, das dieser Bildpunkt zu einem Ball gehört. Nun sucht er in der Umgebung des Bildpunktes nach dem Übergang zwischen Orange und einer anderen Farbe, hat damit den Rand des Balls gefunden und kann den Mittelpunkt und Radius des Balls berechnen.

Lokalisierung

Der nächste Schritt ist, aus diesen Informationen im Bild die Position des Roboters und des Balls auf dem Spielfeld zu errechnen. Dafür werden probabilistische Algorithmen wie Monte-Carlo- oder Kalman-Filter verwendet. Der Roboter kann somit nicht nur seine Position auf dem Feld berechnen, sondern hat auch eine Ahnung davon, wie genau dieser Wert ist.

Verhaltenssteuerung

Hat der Roboter nun alle wichtigen Positionen – sein Weltbild – berechnet, so kann er davon ausgehend seine Aktionen planen. Dazu wird bei den Hellhounds ein hierarchisches Automatensystem verwendet. Hier trifft der Roboter zuerst die gröberen Entscheidungen (ein Torwart geht zum Beispiel ins Tor ) um dann in tieferen Ebenen schnellere Abläufe (z.B. Korrigieren der Position, Schießen des Balls) zu entscheiden.

Laufen

Die Verhaltensteruerung gibt dabei Lauf- und Schussbefehle. Laufbefehle bestehen aus Richtung (vor/zurück - rechts/links) und Drehung, die auch überlagert sein können. Das Laufprogramm berechnet nun für diesen Laufbefehl die Gelenkwinkel für alle 12 Beingelenke so, dass der Roboter läuft.

Dieser Laufalgorithmus benötigt eine große Menge Parameter, z.B den Abstand der Beine oder wie weit die Beine ausgestreckt sind. Sind diese Parameter schlecht gewählt läuft der Roboter nur sehr langsam oder sogar gar nicht. Sind sie aber sehr gut gewählt, so läuft er sehr schnell.

Daher werden evolutionäre Algorithmen angewendet, um diese Parameter zu optimieren. Dabei werden die Parameter zufällig leicht modifiziert. Ergeben sich dadurch bessere Parameter, werden diese übernommen und damit weitergemacht. Dies alles geschieht ohne (großen) menschlichen Eingriff voll automatisch. Man kann sagen der Roboter „lernt“ Laufen.