Meisterschaft der Maschinen: Die Simulationsligen im RoboCup

Seit 1997 finden alljährlich die Weltmeisterschaften fußballspielender Roboter statt. Von Anfang an dabei war die Simulationsliga: In ihr kicken keine realen, sondern simulierte Roboter.

In Pocket speichern vorlesen Druckansicht
Meisterschaft der Maschinen: Die Simulationsligen im RoboCup
Lesezeit: 12 Min.
Von
  • Klaus Dorer
Inhaltsverzeichnis
Mehr Infos

In den Ligen der realen Roboter spielten anfangs pro Team nur wenige Roboter – die hauptsächlich mit mechanischen und elektrischen Problemen beschäftigt waren. In der Simulationsliga hatte man dagegen von Anfang an die Möglichkeit, sich auf die Spielstrategie vollständiger Mannschaften mit elf Spielern zu konzentrieren.

Die Steuerung der Roboter in der 2D-Simulation funktioniert vergleichsweise einfach. Es gibt Kommandos, die den Roboter drehen, vorwärts und rückwärts bewegen und den Ball in eine beliebige Richtung kicken. Die mögliche Stärke eines Schusses hängt von der Richtung ab und ist nach vorne am größtten. Alle Kommandos werden vom Simulationsserver wie beim richtigen Fußball mit einer gewissen Ungenauigkeit ausgeführt. Auch wenn völlig identische Teams zweimal gegeneinander spielen, wird dadurch kein Spiel wie das andere verlaufen. Außerdem kann ein Roboter den Kopf unabhängig vom Körper drehen – was er aufgrund seines eingeschränkten Gesichtsfeldes benötigt. Er kann dadurch mit anderen Robotern kommunizieren.

Der Ball ist über die Torlinie gerollt, der automatische Schiri entscheidet: Tor!

Die Kommandos aller Spieler werden an einen Simulationsserver geschickt: Eine Software, die diese Kommandos ausführt und den Spielern wiederum – ebenfalls leicht verrauscht – 50 mal pro Sekunde ihre persönliche Wahrnehmung des Spiels schickt. Bei der Umsetzung der Kommandos werden einige einfache physikalische Gesetze simuliert. Hierzu gehört beispielsweise, dass Spieler miteinander oder mit dem Ball kollidieren, dass sie träge sind und müde werden oder auch, dass die Spieler und der Ball am Boden Reibung erfahren. Darüber hinaus werden natürlich auch die Regeln eines Fußballspiels simuliert, also zum Beispiel auf Tor entschieden, wenn der Ball zwischen den Pfosten über die Linie rollt. Daneben entscheidet der automatische Schiedsrichter auf Eckball, Abschlag, Einwurf, Freistoß und auch auf Abseits

Neben den Vorteilen einer so vereinfachten Physik, die es nicht zuletzt möglich machte, schon auf den Rechnern der späten neunziger Jahre alle 22 Spieler in Echtzeit zu simulieren, hat die 2D-Simulation auch Nachteile. Einer der wesentlichen: Die Bälle können nur flach gespielt werden. Dadurch hat es der Torwart beispielsweise beim Abschlag schwer, den Ball sicher durch die Reihen der gegnerischen Stürmer zu spielen. Nicht zuletzt deshalb begann man 2003 mit der Entwicklung einer 3D-Simulation. Sie verwendete anfangs noch einfache Kugeln, dann einen Hoap Roboter und schließlich einen simulierten Nao als Robotermodell. Gleichzeitig mit der Einführung der dritten Dimension wurden so auch die Robotermodelle und deren Physik realistischer.

Die Entwicklung der simulierten 3D-Roboter: Von simplen Kugeln über Klötzchengrafik zum ausgefeilten 3D-Modell des Nao mit beweglichen Gelenken

In der 3D-Simulation werden heute humanoide Nao Roboter mit einzelnen Körperteilen simuliert, die durch Motoren mit begrenzter Kraft gesteuert werden. Wie beim echten Nao Roboter muss die Steuersoftware jedem Motor 50 mal pro Sekunde mitteilen, wie er sich bewegen soll. Aus der Choreographie aller 22 Gelenke entsteht dann wie bei echten Robotern Laufen, Schießen oder Aufstehen. Ob der Roboter schießen, laufen oder dribbeln soll, entscheidet die Software dabei wie in der 2D-Liga autonom. Dabei müssen die Programmierer auch beachten, dass es in der 3D-Simulation neben dem Standard Nao auch Variationen etwa mit etwas längeren Beinen oder auch eine Nao-Variante mit Zehen gibt. Seit 2014 ist es in der 3D-Simulation durch Verbesserung der Hardware und Software möglich, elf gegen elf zu spielen.

Dank Verbesserungen der Hard- und Software ist es seit 2014 möglich, auch in der 3D-Simulation mit elf gegen elf Spielern anzutreten.

Die Simulationsligen bieten im Vergleich zu den Ligen realer Roboter drei wesentliche Vorteile:

Für den Einstieg in die Simulationsligen benötigt man lediglich die Simulationssoftware, die kostenlos zur Verfügung steht. Der Simulationsserver der 2D-Liga wurde ursprünglich vom heutigen Präsidenten der RoboCup Föderation, Itsuki Noda [1] programmiert und dann von der Community bis heute weiterentwickelt [2]. Die Software der 3D-Liga geht auf eine Arbeit von Oliver Obst und Markus Rollmann [3] zurück und wird heute ebenfalls von der Community weiterentwickelt [4].

Darüber hinaus haben viele Teams große Teile ihrer Software in C++, Java oder C# veröffentlicht, die von neuen Teams verwendet werden kann und so den Einstieg deutlich erleichtern. Anders als bei den Hardware-Ligen mit ihren teils sehr teuren Beschaffungskosten der Roboter benötig man für den Einstieg in die Simulationsligen lediglich einen modernen PC, den man vielleicht eh schon besitzt.

In beiden Simulationsligen spielen elf gegen elf Spieler. So steht das Mannschaftsspiel im Fokus der Simulationsligen. Gerade in der 2D-Liga erinnern viele Spielzüge an tatsächliche Fußballspiele. Bereits 1999 wurde zum Beispiel in der 2D-Liga mit einer Viererabwehrkette gespielt – Jahre bevor sie sich im wirklichen Fußball durchsetzte. Es gibt sogar wissenschaftliche Untersuchungen über die Gemeinsamkeiten und Unterschiede von simuliertem und echtem Fußball [5].

Die beiden Simulationsligen sind inzwischen so weit entwickelt, dass nicht nur die eigene Spielstrategie fortlaufend verbessert wird, wie Thomas Gabel und andere eindrücklich zeigen konnten [6]. Zusätzlich wird die Strategie auch auf den jeweiligen Gegner optimiert. Einerseits passiert dies offline, indem gegen andere Mannschaften trainiert wird – was möglich ist, weil jede Mannschaft nach einer RoboCup-WM ihren ausführbaren Code veröffentlichen muss. Andererseits wird auch während eines Spiels versucht, sich auf die Strategie eines Gegners einzustellen.

Pure Begeisterung: Der Jubel über einen Sieg ist in den Simulationsligen alles andere als simuliert.

Da die Roboter simuliert sind, leiern sie nicht aus und gehen nicht kaputt, wenn sie zu oft hin fallen. Damit eignen sie sich ideal für maschinelles Lernen, bei dem das Verhalten der Roboter oft tausende Male wiederholt werden muss, bevor sich ein Lernerfolg einstellt. So wurden etwa für das Erlernen eines Kicks, der neben den zwölf Beingelenken auch die Zehen des Roboters einsetzt, 256.000 Kicks durchgeführt. Erst dadurch gelangte man nach anfangs zufälligen Bewegungen schließlich zu einem Schuss, der in nur 0,6 Sekunden durchgeführt werden kann und neun Meter weit geht.

Anders als im echten Leben dauerte der Lernprozess aber nur 22 Stunden, weil zum einen die Simulation bei nur einem Roboter schneller als in Echtzeit laufen kann, und zum anderen viele Simulationen parallel laufen können. Ohne maschinelles Lernen wäre das Programmieren eines solchen Kicks schwierig, da die Rückwärtskinematik eines Beins mit vier Körperteilen (Oberschenkel, Unterschenkel, Fuß und Zehen) überbestimmt und damit schwierig zu berechnen ist.

Gelernt werden hauptsächlich optimale Bewegungsabläufe für das Laufen auf zwei Beinen oder das Schießen. Zum Einsatz kommen Reinforcement Learning oder evolutionäre Ansätze wie CMA-ES. Beide benötigen im Wesentlichen lediglich eine Bewertungsfunktion die angibt, wie gut ein Versuch war. Sie besteht zum Beipiel aus der Schussweite oder der Genauigkeit und berücksichtigt, ob der Roboter beim Versuch hingefallen ist oder nicht.

Bis zum eigentlichen Lernerfolg zeigen sich dabei häufig auch überraschende Ergebnisse. So berichtete Martin Riedmiller, dass das Lernen eines besonders effizienten Kreisen-lassens des Balls um einen Spieler in der 2D-Simulation darin endete, dass der Spieler gelernt hatte, den Ball durch sich hindurch zu schießen – was allerdings nur durch einen Fehler im Simulator möglich war.

Ebenfalls wurde berichtet, dass der Roboter beim Laufen-lernen in der 3D-Simulation durch extreme Zehenbewegungen zur Explosion gebracht werden konnte. Der Algorithmus lernte, diese Bewegung genau in dem Moment durchzuführen, in dem der Torso des Roboters maximal weit in Bewegungsrichtung gesprengt wurde und so die Bewertungsfunktion maximal wurde. Das ist natürlich nicht im Sinn der Sache, zeigt aber, wie mächtig maschinelles Lernen ist.

Mehr Infos

Die Spiele im Web

Die Fertigkeiten der Teams in den 2D- und 3D-Ligen im RoboCup, Robotica, China Open und anderen Wettbewerben können Interessierte im Web studieren

Web-Archiv der Liga-Spiele

Die Simulationsligen leisten einen wichtigen Beitrag zum gemeinsamen Ziel der RoboCup-Föderation: Bis zum Jahr 2050 sollen Roboter den menschlichen Fußballweltmeister schlagen können. Die Erfahrungen aus den Simulationsligen helfen anderen Ligen des RoboCup, was sich insbesondere ganz konkret in der Teilnahme von Simulationsliga-Teams bei Teams anderer Ligen zeigt. Das gilt oder galt zum Beispiel für CMUnited (2D, Small, MSL, 4legged, SPL), Brainstormers (2D, MSL, 3D), FC Portugal (2D, 3D, Mixed Reality, 4legged, SPL, MSL), UT Austin Villa (2D, 3D, SPL), WrightEagle (2D, 3D, 4legged,SPL), Bold Hearts (3D, Humanoid) oder magmaOffenburg (3D, Humanoid) [7].

Das Team des Autors, magmaOffenburg, verwendet beispielsweise dieselbe Java-Code-Basis sowohl für den 40 Zentimeter kleinen, simulierten Nao-Roboter der 3D-Simulation als auch für den 1,60 Meter großen und 25 Kilogramm schweren Sweaty der Adult Size Humanoid Liga. Natürlich ist die eigentliche Bewegungssteuerung speziell auf Sweaty abgestimmt und wird bei magmaOffenburg in Matlab erledigt. Aber wie man herausfindet, wo der Roboter auf dem Spielfeld steht, wie er zum Ball läuft und dabei andere Roboter nicht berührt oder auch wann welche Entscheidungen zu treffen sind ist so grundlegend, dass dies von einer gemeinsamen Software berechnet werden kann.

Mehr Infos

Die Teamleiter des RoboCup

Der RoboCup war für die Teamleiter der sechs deutschen Simulationsliga Teams von 1999 offensichtlich kein Hindernis für ihre wissenschaftliche Karriere. So war Martin Riedmiller (Karlsruhe Brainstormers) Professor in Dortmund, Osnabrück und Freiburg und ist heute bei Google Deep Mind in London Leiter der Gruppe Reinforcement Learning and Control. Daniel Polani (Mainz Rolling Brains) ist heute Professor der University of Hertfordshire in England und designierter Präsident der RoboCup Föderation. Oliver Obst (RoboLog Koblenz) ist Professor an der Western Sydney University, Frieder Stolzenburg (ebenfalls RoboLog) Professor an der Hochschule Harz. Gerhard Kraetzschmar (Ulm Sparrows) ist Professor an der Hochschule Bonn, Klaus Dorer (magmaFreiburg, heute magmaOffenburg) ist Professor an der Hochschule Offenburg. Hans-Dieter Burkhard (AT Humboldt) war als Teamleiter bereits Professor an der Humboldt Universität Berlin.

Im magmaOffenburg Team gibt es über das Jahr mehrere Phasen der Arbeit. Während einer WM werden noch in der Kürze der Zeit Optimierungen angebracht, die erst durch das Beobachten von Spielen offensichtlich werden – etwa um auf bisher unbekannte Strategien anderer Mannschaften zu reagieren. Dabei lässt es der Zeitdruck oft nicht zu, sauber zu programmieren. Deshalb findet nach der WM die Phase des Aufräumens statt, in der Hacks entfernt und Software-Architekturverletzungen entfernt werden.

Im Herbst ist dann typischerweise die Zeit, in der neue Teammitglieder angeworben und eingearbeitet werden. Im Frühjahr beginnt die Phase, in der man einzelne neue Features zu einem Gesamtpaket abstimmt, um beispilesweise einen ersten Vorwettkampf auf der German Open zu bestreiten. Ab Mai läuft dann die heiße Phase der Vorbereitung auf die Weltmeisterschaft, in der die Weiterentwicklung der Werkzeuge zurückgefahren wird und der Fokus ganz auf Verbesserungen des Fußballspiels liegt.

Tatsächlich steckt bei uns mehr als die Hälfte des Aufwands in der Entwicklung von Werkzeugen, also Software, die nur für die Entwicklung und Optimierung der eigentlichen Fußballsoftware benötigt wird. Ganz konkret haben wir beispielsweise dieses Jahr in einer Abschlussarbeit unseren Teamsimulator optimiert. Dieser stellt einen eigenen kleinen 2D-Simulator für die 3D-Liga zur Verfügung, mit dem wir unsere Teamstrategie deutlich einfacher und effizienter debuggen können als in der echten 3D-Simulation. Damit haben wir bereits zahlreiche Fehler oder unerwünschtes Verhalten gefunden und verbessert.

Ein anderes Teil-Team arbeitet daran, neue Kicks zu lernen. Wir möchten viel variabler, schneller und damit häufiger abspielen können. Ein weiteres Teil-Team kümmert sich um Verbesserungen der Spielstrategie, also welcher Spieler wann wohin laufen oder abspielen soll. Die Ergebnisse sehen schon recht vielversprechend aus.

Zur Kontrolle werden immer wieder Spieleserien von 100 Spielen gegen einen früheren Stand des eigenen Teams oder gegen andere Mannschaften gespielt. Aus taktischen Gründen will ich nicht zu viel verraten, aber wir haben die eine oder andere Mannschaft, die uns letztes Jahr noch auf Platz fünf der WM verwiesen hat, inzwischen hinter uns gelassen.

.

Literatur

[1] Noda, I., Matsubara, H., Hiraki, K., Frank, I.: Soccer server: A tool for research on multiagent systems. Applied Artificial Intelligence 12(2-3), 233–250 (1998)

[2] The RoboCup Soccer Simulator

[3] Obst, O., Rollmann, M.: Spark - a generic simulator for physical multi-agent simulations. In: MATES. LNCS, vol. 3187, pp. 243–257. Springer (2004)

[4] simspark-Installation unter Linux

[5] Abreu PH, Mendes-Moreira J, Costa I, Castela˜o D, Reis LP, Garganta J (2012) Human versus virtual robotics soccer: a technical analysis. European Journal of Sport Sciences 12(1):26–35

[6] Gabel, T., Riedmiller, M.: On progress in robocup: The simulation league showcase. In: RobuCup. LNCS, vol. 6556, pp. 36–47. Springer (2010)

[7] Akiyama H, Dorer K, Lau N (2014). On the Progress of Soccer Simulation Leagues. In proceedings of the RoboCup Symposium 2014, Joao Pessoa. (uk)