Künstliche Intelligenz

Worum geht’s?

Damit unsere Roboter nicht nur ein komplexes Stück Hardware sind, sondern auch Tore schießen, ist eine künstliche Intelligenz nötig. Deren Aufgabe ist es die Spielsituation zu analysieren und basierend darauf zu entscheiden, welcher Roboter wohin fahren soll. Dabei müssen z.B. zwei Roboter koordiniert, um einen Pass spielen zu können. Wie in einem echten Fußballspiel gibt es auch Freistöße, Abstöße vom Tor und weitere Schiedsrichterbefehle, denen die Roboter Folge leisten müssen.

Wer kann mitmachen?

Prinzipiell jeder der Programmieren kann, wobei Informatiker hier im Vorteil sind. Da die Strategie in Lua geschrieben ist, kann aber schon nach kurzer Einarbeitung einiges entwickelt werden.

Was ist zu tun?

Im Prinzip den Trainer für die Roboter spielen. Konkret geht es dabei momentan hauptsächlich um folgende Punkte:

  • Stabilisierung und Verbesserung der grundlegenden Verhaltensweisen
  • Ausbau der Strategieplanung (mehr Spielzüge, Gesamtverhalten)

Aufbau der künstlichen Intelligenz

Die KI besteht grundlegend aus zwei Schichten. Einerseits den Spielsituationen, die anhand der aktuellen Roboterkonstellation ausgewählt werden und den einfachen Aufgaben, die dann die Roboter wie gewünscht steuern.

Zu letzteren zählen so grundlegende Dinge wie das zügige und genaue Anfahren eines Punktes. Aber auf die auf den ersten Blick einfache Aufgabe den Ball einzufangen. Dazu ist es jedoch bereits nötig den möglichen Fahrweg vorherzusagen und damit entsprechend zu berechnen, wo und wann der Ball abgefangen werden kann. Denn da der Ball sich auch bewegt, genügt es nicht, dass der Roboter dem Ball einfach nur nachfährt, sondern er muss ihm vorauseilen und dann stoppen.

Genau wie ein Fußballspieler der aufs Tor schießt entscheiden sich unsere Roboter bei einem Angriff für eine Ecke des Tors und versuchen dort ihr Glück. Damit beim Torschuss nicht die Abwehr im Weg steht muss diese ausgespielt werden, wozu ein oder mehrere Roboter versuchen sich freizuspielen. Was aber einfacher gesagt ist als getan. Auf dem Bild ist zu sehen wie freie Positionen auf dem Spielfeld ermittelt werden, von denen der zweite Roboter aufs Tor schießen könnte. Damit die Suche nicht plötzlich einen Punkt in der andere Spielfeldhälfte liefert ist der Suchradius ungefähr auf den Kreis eingegrenzt.

Aufgrund der zentralen Steuerung der Roboter über einen Rechner können sie auch einfach ihre Aufgaben wechseln, je nachdem wer gerade besser steht.

Aus den einzelnen Aufgaben nun eine Strategie zu machen ist Aufgabe der Spielzustände. Diese analysieren die aktuelle Situation und zeigen entsprechend etwa ein defensives oder offensives Spielverhalten. Wenn der Gegner z.B. im Ballbesitz ist, wird die eigene Verteidigung verstärkt, um so die Gefahr eines Gegentreffers zu senken.

Besonderes Augenmerk muss aber auch auf Situationen gelegt werden, wie wenn der Gegner sich im eigenen Strafraum befindet. In diesem ist von der verteidigenden Mannschaft nur der Torwart erlaubt, da man ansonsten das Tor einfach zuparken könnte. Dadurch steigt natürlich auch das Risiko ein Tor zu kassieren, sodass der Torwart nicht mehr einfach nur im Tor bleiben kann, sondern versuchen muss den Gegner am Schießen zu hindern.

Die Reaktion auf die Schiedsrichterbefehle ist eine weitere Aufgabe der Spielzustände. Insbesondere der Anstoß oder ein Freistoß erlauben und erfordern spezialisierte Verhaltensweisen. So müssen beim Anstoß alle eigenen Roboter in ihrer Hälfte bleiben, sodass sich die Roboter nicht so wie beim Spiel frei auf dem Spielfeld verteilen können. Beim Freistoß sollte natürlich auch mal ein bisschen gewartet werden, bis die Mitspieler in Stellung sind. Und da einem kein gegnerischer Roboter den Ball dabei klauen darf hat man überhaupt erst die Möglichkeit kurz zu warten.