# Bangkok 2022

Die erste Version der Strategie wurde für den Robocup in Bangkok entwickelt und dort auch erstmalig getestet. Das Grundprinzip basierte damals auf einem [Rule System](https://en.wikipedia.org/wiki/Rule-based_system), durch das alle Roboter zentral gesteuert wurden. Dabei wurde eine Vielzahl an Regeln definiert, die angeben unter welchen Umständen welche Tasks ausgeführt werden sollte. Die Vielzahl an notwendigen Regeln resultierte dabei jedoch in einem unübersichtlichem und schwer erweiterbarem Code, weshalb basierend auf den Erfahrungen eine Architektur mit einer besseren Kapselung und einem mehrschrittigen Entscheidungsprozess entwickelt wurde.

# Funktionsweise

Als Architektur für die Entscheidungsfindung wurde ein [Rule System](https://en.wikipedia.org/wiki/Rule-based_system) verwendet. Dabei handelt es sich um ein System, bei der sequentiell verschiedene Bedingungen geprüft werden. Trifft eine Bedingung zu, so wird eine zugehörige Aktion einem Roboter zugewiesen. Mögliche Bedingungen hierbei ist die Höhe der Torwahrscheinlichkeit, das Team mit Ballbesitz, Anzahl der Gegner in der eigenen Spielhälfte etc.

# Probleme und Herausforderungen

Im Wettbewerb und in der Entwicklung zuvor haben sich signifikante Probleme in der Strategie gezeigt. Diese sollen im Folgenden betrachtet werden.


### Strategie und Architektur

Das Rule-System hat in der Praxis einige Probleme offenbart. Die hohe Komplexität des Roboterfußballs sowie die Notwendigkeit zu Steuerung eines kompletten Teams resultierten in einem sehr unübersichtlichem und schwer erweiterbarem Code. Dies erschwerte kleine Änderungen erheblich. Da das Rule-System für alle Roboter gleichermaßen galt war der Code zudem schlecht gekapselt, sodass die Entwicklung des Angriffs und der Verteidigung nicht parallel und unabhängig voneinander durchgeführt werden konnte. Stattdessen haben sich die Änderungen am Verteidigungsverhalten auch stets auf den Angriff ausgewirkt und vice versa.

Eine weitere Problematik bestand darin, dass die verschiedenen Rules keine Kentnisse über die Bedürfnisse der nachfolgenden Rules haben. Stattdessen nimmt jede Rule an, dass sie den für sich am besten geeigneten und noch bislang nicht verwendeten Roboter für die ausführung eines Tasks einplanen kann, selbst wenn dieser Roboter einen Task von einer nachfolgenden Rule mit niedriger Priorität deutlich besser ausführen könnte. Dies resultiert in einer oftmals schlechten und ineffizienten Zuweisung der einzelnen Roboter.

Auch problematisch an diesem Ansatz war, dass instabile Zustände auftreten konnten, in der einzelne Rule Bedingungen sich mehrmals pro Sekunde ändern. Dadurch werden auch Roboter immer wieder als verfügbar oder nicht-verfügbar markiert, wodurch auch die nachfolgenden Rules ihre angefragten Roboter möglicherweise mehrmals pro Sekunde ändern. Diese ständig neuen Task-Zuweisungen führen dazu, dass letztenendes keiner der Tasks richtig ausgeführt wird und die Roboter zwischen verschiedenen Orten pendeln, ohne dabei aktiv zum Spielerfolg beizutragen.

### Generelle Spielentscheidungen

In den Spielen selbst wurden auch nicht-ideale Entscheidungen getroffen, wodurch Chancen nicht genutzt und Vorteile verloren wurden. Besonders auffällig dabei waren die folgenden Probleme:

- Genereller Mangel an Torschüssen, obwohl die Trefferwahrscheinlichkeit aus menschlicher Sicht gut aussah; Hier werden bessere Heuristiken benötigt.
- Zu viele Fahrten mit Ball; Dies ist im Allgemeinen langsam und insbesondere Drehungen resultieren oftmals in einem unnötigen Ballverlust.
- Schlechte Positionierungen Offensive; Roboter positionieren sich nicht sinnvoll als Passstation; Die Verteidigung der Gegner wurde kaum berücksichtigt, wodurch die Roboter nicht unbedingt anspielbar waren.
- Verstoß gegen das Regelwerk. Vor allem die Double-Touch-Regel, Aimless Kick und Strafraumvermeidung wurden nicht zuverlässig beachtet.
- Defensive war an sich okay aber zu sehr auf Manndeckung ausgelegt. Direkte Torschüsse wurden oft nur vom Torwart verhindert, hier wären Mauern sinnvoll.
- Spieler behindern sich teils gegenseitig und nehmen Mitspielern den Ball weg.
- Keine Berücksichtigung von Gegnerischen Lupfern.

# Zielschlüsse und Erkenntnisse

Trotz der beschriebenen Problematiken war die Strategie in Bangkok in der Lage den 3. Platz in der [SSL Small Size League Division B](https://ssl.robocup.org/) zu erreichen. Jedoch haben sich in der Entwicklung und im Wettbewerb die oben beschriebenen Probleme gezeigt, weshalb der Ansatz als nicht zielführend für die folgenden Roboter eingeordnet wurde. Stattdessen wurden aus den Erfahrungen Anforderungen für ein neues System abgeleitet:

- *Entscheidungsfindung sollte in mehrere Schritte aufgeteilt werden*: Da Taskswitching ein großes Problem war, sollte zunächst eine robuste Zuordnung der Roboter zu Offensive/Defensive getroffen werden. Erst im Anschluss sollten die Tasks basierend auf dieser Zuordnung zugewiesen werden.
- *Kapselung der Module*: Um die Entwicklung zu vereinfachen und zu parallelisieren sollten Module unabhängig voneinander bearbeitet werden können.
- *Optimierung der Zuweisung*: Zunächst sollten alle Tasks und deren Zielpunkte ermittelt und erst im Anschluss die Roboter zugewiesen werden. Dadurch kann eine Zuweisung gefunden werden, die die Fahrwege minimiert und Kooperation der Roboter verbessert. Dadurch wird auch die starke Prioritätsabhängigkeit des Rule-Systems vermindert.
- *Aktiveres Spiel*: Der Rein reaktive Spielstil ist nicht ausreichend, um Pässe effektiv zu planen und die gegnerische Defensive zu umspielen. Hier sind Analysen und Planungen notwendig, statt einer reinen Reaktion auf den Ist-Zustand.

# Folgen und weitere Entwicklungen

Aus den genannten Anforderungen wurde eine neue Architektur abgeleitet, die die erkannten Probleme beheben soll. Diese werden im nachfolgenden Bild dargestellt. Links ist dabei das Rule-System bei dem anhand einer umfangreichen Taskliste für jeden Roboter ein Task bestimmt wird. Der Ansatz rechts zeigt einen Vorgang, bei dem zunächst Roboter zu verschiedenen Rollen zugewiesen werden, wie z.B. Angreifer, Torwart, Verteidiger. Im Anschluss werden diese von einem kleineren Rule-System oder ähnlichem gesteuert, welches jedoch übersichtlicher ist, da es sich auf das Verhalten einer einzigen Rolle begrenzt. Außerdem sind dabei alle Roboter bekannt, die ebenfalls dieselbe Rolle zugewiesen bekommen haben, sodass die Roboter auch gemeinsam kooperieren können.

[![image.png](https://wiki2.luhbots-hannover.de/uploads/images/gallery/2025-02/scaled-1680-/Yg5image.png)](https://wiki2.luhbots-hannover.de/uploads/images/gallery/2025-02/Yg5image.png)