Upload
cundrie-rathke
View
104
Download
0
Embed Size (px)
Citation preview
Seminar: Agenten in simulierten Umgebungen 1
Implementierung einer RoboCup Soccer Server Fußball-Mannschaft
Alexander Bernard
Johannes Tuchscherer
17.01.2005
Seminar: Agenten in simulierten Umgebungen 2
Agenda
1. Ziele
2. Unsere Mannschaft
3. Fazit und Kritik
Seminar: Agenten in simulierten Umgebungen 3
Agenda
1. Ziele
2. Unsere Mannschaft
3. Fazit und Kritik
Seminar: Agenten in simulierten Umgebungen 4
Ziele
Hauptziel: Eine funktionierende Mannschaft, die sich intelligent auf dem Spielfeld verhält
Einsetzen von KI bei der Entscheidungsfindung
Übertragung von erfolgreichen Strategien aus dem echten Fußball auf die simulierte Fußball-Mannschaft z.B. Flankenspiel, Abseitsfalle,...
Seminar: Agenten in simulierten Umgebungen 5
Agenda
1. Ziele
2. Unsere Mannschaft
3. Fazit und Kritik
Seminar: Agenten in simulierten Umgebungen 6
Unsere Mannschaft
1. Entwicklungsumgebung
2. Herangehensweise
3. Architektur
4. Taktik
5. Beispiele
6. Verbesserungen
Seminar: Agenten in simulierten Umgebungen 7
Entwicklungsumgebung
Soccer Server 9.4.5
SoccerMonitor und SoccerWindow
Eclipse
CVS um parallele und konsistente Programmierung zu ermöglichen
eigene GUI für jeden Agenten
Seminar: Agenten in simulierten Umgebungen 8
Unsere Mannschaft
1. Entwicklungsumgebung
2. Herangehensweise
3. Architektur
4. Taktik
5. Beispiele
6. Verbesserungen
Seminar: Agenten in simulierten Umgebungen 9
Herangehensweise
Simple-Client als rudimentäre Grundlage für unsere Mannschaft
Verbesserung des Simple Clients:Auswertung aller Events (visual, aural, senseBody, ...)
Einlesen der Server-Parameter (server.conf)
Entwicklung der SpielfeldberechnungErgebnis: einzelner Agent findet sich in seiner
simulierten Umgebung zurecht
Seminar: Agenten in simulierten Umgebungen 10
Herangehensweise
Mannschaften mit Team-VerhaltenKommunikation zwischen den Spielern
Spezielle Methoden (dribbeln, passen, Pass annehmen ...)
Abstimmen der Aktionen
Torwart
Standardsituationen (Ecke, Seiteneinwurf)
Fehlerbeseitigung und Optimierung
Seminar: Agenten in simulierten Umgebungen 11
GUI-Hilfsmittel
Entwicklung einer GUI für jeden Agenten„nebenbei“ entwickelt und ständig verbessert
Umwelt-Informationen und Informationen zu Aktionen des Agenten werden strukturiert visuell aufbereitet
Erleichterung der Entwicklung und Fehlerfindung
Entfernen des Spielers vom Spielfeld möglich ohne die GUI zu schließen
Seminar: Agenten in simulierten Umgebungen 12
GUI-Hilfsmittel
Seminar: Agenten in simulierten Umgebungen 13
Unsere Mannschaft
1. Entwicklungsumgebung
2. Herangehensweise
3. Architektur
4. Taktik
5. Module
Seminar: Agenten in simulierten Umgebungen 14
Seminar: Agenten in simulierten Umgebungen 15
Sequenzdiagramm
Seminar: Agenten in simulierten Umgebungen 16
Basis Aktionen
Dash
Turn
Move
Kick
Catch Ball (nur Goalie)
Seminar: Agenten in simulierten Umgebungen 17
Spezielle Aktionen
Dribbeln
Ball passen
Ball-Annahme
Torschuss
Ball-Einwurf
Eckball
Gehe zur Position
Seminar: Agenten in simulierten Umgebungen 18
Unsere Mannschaft
1. Entwicklungsumgebung
2. Herangehensweise
3. Architektur
4. Taktik
5. Beispiele
6. Verbesserungen
Seminar: Agenten in simulierten Umgebungen 19
Taktik
1. Spielfeld-Einteilung
2. Kommunikation der Agenten
3. Pass und Kick-Strategie
4. Defensiv-Strategie
5. Alternativ - Mannschaft
Seminar: Agenten in simulierten Umgebungen 20
Spielfeld-Einteilung
Mannschaftsaufstellung:3 Stürmer
4 Mittelfeldspieler
3 Verteidiger
1 Torwart
Einteilung des Spielfelds in Zuständigkeitsbereiche
Jeder Spieler besitztStartposition
Standardposition
Seminar: Agenten in simulierten Umgebungen 21
Spielfeld-Einteilung
Seminar: Agenten in simulierten Umgebungen 22
Spielfeld-Einteilung
Seminar: Agenten in simulierten Umgebungen 23
Spielfeld-Einteilung
Seminar: Agenten in simulierten Umgebungen 24
Spielfeld-Einteilung
Seminar: Agenten in simulierten Umgebungen 25
Spielfeld-Einteilung
Seminar: Agenten in simulierten Umgebungen 26
Taktik
1. Spielfeld-Einteilung
2. Kommunikation der Agenten
3. Pass und Kick-Strategie
4. Defensiv-Strategie
5. Alternativ - Mannschaft
Seminar: Agenten in simulierten Umgebungen 27
Kommunikation der Agenten
Nur der Ball besitzende Spieler sprichtVorteil:
Keine Kollisionen von say–MessagesIn jedem Zyklus kann der Ball-Spieler sprechen
Nachteil:Spieler außerhalb der Rufdistanz werden nicht erreichtVerteidigung wird nicht durch einen Spieler (z.B. Torwart) koordiniert
Seminar: Agenten in simulierten Umgebungen 28
Taktik
1. Spielfeld-Einteilung
2. Kommunikation der Agenten
3. Pass und Kick-Strategie
4. Defensiv-Strategie
5. Alternativ - Mannschaft
Seminar: Agenten in simulierten Umgebungen 29
PassenBallspieler sucht geeigneten SpielerGeeigneter Spieler?
Anzuspielender Spieler muss näher am gegnerischen Tor stehen Kein Rückpass möglich!ein Spieler, der durch keinen Gegenspieler blockiert wird und die geringste Distanz aufweist
Ball-Spieler broadcastet say-Message: (say passball 4 -23.0 12.7)Schießt den Ball zum ausgewählten Spieler Schusskraft wird berechnet, so dass der der Ball möglichst zielgenau beim anderen Spieler ankommt
Seminar: Agenten in simulierten Umgebungen 30
Pass AnnahmeSpieler empfängt die say-Message und erkennt darin seine Spieler-Nr.(hear 128.5 our 2 „passball 4 -23.0 12.7“)Spieler dreht sich in die Ruf-Richtung und schaltet seine View auf narrowversucht seine Position so zu korrigieren, dass der Ball frontal auf ihn zukommt.Switch in normalen Modus, wenn …
Pass angekommenPass durch Gegner abgefangen
Seminar: Agenten in simulierten Umgebungen 31
Kicken vs. dribbeln
Spieler versucht immer einen freien Spieler anzuspielen (aber kein Rückpass!)
Wenn kein freier Spieler da ist, dann dribbelt der Spieler Richtung Tor
Spieler kann seine Spielfeldzone nicht verlassen am Spielzonenrand kickt er Richtung Tor
Seminar: Agenten in simulierten Umgebungen 32
Taktik
1. Spielfeld-Einteilung
2. Kommunikation der Agenten
3. Pass und Kick-Strategie
4. Defensiv-Strategie
5. Alternativ - Mannschaft
Seminar: Agenten in simulierten Umgebungen 33
Defensiv-Strategie
Raumdeckung statt ManndeckungJeder Spieler ist für seinen Spielzonenbereich zuständig
Spieler geht direkt zum Ball, wenn er in seine Spielzone kommt
Seminar: Agenten in simulierten Umgebungen 34
Taktik
1. Spielfeld-Einteilung
2. Kommunikation der Agenten
3. Pass und Kick-Strategie
4. Defensiv-Strategie
5. Alternativ - Mannschaft
Seminar: Agenten in simulierten Umgebungen 35
Alternativ - Mannschaft
Nur ein Spieler-Typ (und Torwart)
Verbesserter Simple-Client
Spieler-Verhalten:Finde den Ball
Laufe zum Ball
Kicke Richtung Tor
Erfolgreiche Strategie???
„keep it simple and stupid!“
Seminar: Agenten in simulierten Umgebungen 36
Unsere Mannschaft
1. Entwicklungsumgebung
2. Herangehensweise
3. Architektur
4. Taktik
5. Beispiele
6. Verbesserungen
Seminar: Agenten in simulierten Umgebungen 37
Beispiele
Orientierung
Dribbeln
Torwart-Verhalten
Seminar: Agenten in simulierten Umgebungen 38
Orientierung
Seminar: Agenten in simulierten Umgebungen 39
Orientierung – Wozu überhaupt
Für alle Objekte im Sichtradius die wichtigen Daten vom Server
(see Time ((ObjektName) Entfernung Richtung)
Keine Informationen zu übrigen Punkte
Deswegen:Aufwendige Berechnung von Entfernung und Richtung zu Punkten außerhalb des Sichtradiuses
Berechnung nur für statische Punkt (z. B. Tor, Ecken, Mittelpunkt..)
Seminar: Agenten in simulierten Umgebungen 40
Seminar: Agenten in simulierten Umgebungen 41
Orientierung – Vorgehen (1/4)
Speicherung der statischen Objekte im Source-Code im Koordinatenformat
Das Koordinatensystem:
y
x
-y
-x (0,0)
(36.5, 20 )
(36.5, -20 )(-36.5, -20 )
(-36.5, 20 )
Seminar: Agenten in simulierten Umgebungen 42
Orientierung – Vorgehen (2/4)
Berechnen der eigenen Blickrichtung…an Hand zweier Punktean Hand einer Linie
(see ((l t) 65 45.4)…)
45.4°
45.4°
TOR
(see ((f p r t) 10 42.3) ((f g r b) 24 36.7)…) (36.5, 20 )
(52.5, -7.02 )
Seminar: Agenten in simulierten Umgebungen 43
Orientierung – Vorgehen (3/4)Berechnen der eigenen Position an Hand des nächsten Punktes und der Blickrichtung
Beispiel
Speicherung der Position als Koordinaten eines Koordinatensystems
TOR
(36.5, 20 )
(27.9, 3 )
Seminar: Agenten in simulierten Umgebungen 44
Orientierung – Vorgehen (4/4)
Berechnen der Entfernung und Richtung zu statischem Objekten
Korrektur der Richtung um eigene Blickrichtung
TOR
(23.7, 12 )
(52.5, 0 )
Seminar: Agenten in simulierten Umgebungen 45
Dribbeln (1/3)
Wenn Ball außerhalb der Kick-Reichweite:Lauf dem Ball hinterher
SonstBerechne Deine Position im übernächsten Tick (Bewegung durch Trägheit in diesem Tick und Beschleunigung durch Laufen im nächsten Tick)
Berechne die Position, zu der der Ball im übernächsten Tick soll (eigene zukünftige Position plus einem Abstand zwischen Spieler und Ball)
Seminar: Agenten in simulierten Umgebungen 46
Dribbeln (2/3)
Berechne Weg, den der Ball von aktueller zu gewünschter Position zurücklegen muss
Berechne Beschleunigung, die Ball braucht um den Weg in zwei Ticks zurückzulegen (Aktueller Geschwindigkeitsvektor und Trägheit wird berücksichtigt)
Seminar: Agenten in simulierten Umgebungen 47
Dribbeln (3/3)Berechne Kraft, die eingesetzt werden muss, damit der Ball diese Beschleunigung erhält (Abstand zum Ball, Richtung zum Ball und Server-Variablen gehen ein)
Seminar: Agenten in simulierten Umgebungen 48
Torwart-Algorithmus
Steht auf gedachter Linie von Tormittelpunkt zu Ball fünf Meter vor dem Tor
Läuft aus dem Tor, wenn der Ball in eine festgelegte Zone um das Tor kommt
Geht nach erfolgreicher Parade an die Strafraumgrenze und von dort Abschlag mit voller Power in Richtung Mittelpunkt
Seminar: Agenten in simulierten Umgebungen 49
Unsere Mannschaft
1. Entwicklungsumgebung
2. Herangehensweise
3. Architektur
4. Taktik
5. Beispiele
6. Verbesserungen
Seminar: Agenten in simulierten Umgebungen 50
Verbesserungen
Features, die dringend eingebaut werden solltenWeitersagen des Ballbesitzes und der BallpositionFreilaufen und DeckenVerbesserung der Mannschaftstaktik
Nice-to-have-ListeAngepasstes Angriffs-VerhaltenAusbau der GUIKomplexere SpielzügeScoring-Modell
Seminar: Agenten in simulierten Umgebungen 51
Weitersagen des Ballbesitzes und der Ballposition
Wenn ein Spieler in Ballbesitz, dann über say-Kommando allen anderen die Ballposition mitteilen
Dadurch enorme Steigerung der Performance der Spielzüge, da an vielen Stellen die Spieler erst nach dem Ball suchen müssen und sie sich auf der Stelle drehen (Leuchtturm-Suche)
Seminar: Agenten in simulierten Umgebungen 52
Freilaufen und Decken
FreilaufenWenn eigene Mannschaft im Besitz des Balls, dann von Gegenspielern lösen und zum Passen anbieten
Erkennen der relativen Position zum Ball führenden Spieler und der Gegner, die zwischen diesem und einem selbst sind
Suchen nach einer Position, zu der der Ball möglichst ungefährlich gespielt werden kann
DeckenWenn Gegenmannschaft in Ballbesitz Decken von Gegenspielern, die angepasst werden könnten
Seminar: Agenten in simulierten Umgebungen 53
Verbesserung der Mannschaftstaktik
Finden einer besseren Spielfeld-Einteilung durch ausgiebiges Testen
Verbesserung an der Parameter-KonfigurationAb wann schießt der Stürmer auf das Tor?
Ab welcher Entfernung zum Ball rennt der Spieler nicht mehr mit voller Kraft?
Wie weit soll der Torwart vor dem Tor stehen?
Um wie viel Grad soll sich ein Spieler drehen, wenn er den Ball nicht sieht?
Seminar: Agenten in simulierten Umgebungen 54
Angepasstes Angriffs-Verhalten
Rush-Modusbei hohem Rückstand
alle Standardpositionen werden in Richtung gegnerisches Tor verlagert
Block-Modusbei hoher Führung
alle Standardpositionen werden in Richtung eigenes Tor verlagert
Verkürzung der Laufwege und Spielerabstände und dadurch bessere Spielzüge möglich
Seminar: Agenten in simulierten Umgebungen 55
Ausbau der GUI
Eine übergeordnete GUI für die Mannschaft, über die die Spieler-Oberflächen verwaltet werden
Auswahl der Mannschaftsaufstellung (Vierer-abwehrkette, Mittelfeld-Raute...)
Wiederanmelden der Spieler über die GUI
Steuern des Servers über die GUI (z. B. Spiel starten, Fouls simulieren,…)
Seminar: Agenten in simulierten Umgebungen 56
Komplexere Spielzüge und Bewegungen
Ausdribbeln von Gegenspielern
Bei Standardsituation (Ecken, Freistöße) feste, programmierte und optimierte Spielzüge
Doppelpass oder Spielzüge über mehrere Stationen
Seminar: Agenten in simulierten Umgebungen 57
Scoring-Modell
Bewertung von Spielzügen
Spielzüge setzen sich aus Spielstationen zusammen
Anspielstationen werden besser bewertet, wenn sie oft Teil erfolgreicher Spielzüge waren
Anspielstationen werden schlechter bewertet, wenn sie oft Teil erfolgloser Spielzüge waren
Seminar: Agenten in simulierten Umgebungen 58
Agenda
Einleitung
Unsere Mannschaft
Fazit und Kritik
Seminar: Agenten in simulierten Umgebungen 59
Bewertung Soccerserver
+ Möglichkeit „spielend“ zu lernen+ Guter Einstieg in Themen der KI
- Schlecht dokumentiert- Einige ungeklärte Features (tackle, pointTo) Berechnungen
(DirectionOfSpeed, DirChg, DisChg)- Falsche Informationen im Manual
- Frusterlebnisse beim Fehlersuchen- Teilweise sehr instabil
Seminar: Agenten in simulierten Umgebungen 60
Bewertung der Eigenleistung
+ Minimal-Ziel erreicht+ Konzentration auf Kern-Module (Orientierung) und
Entwicklungshilfen (GUI)
- Durch inkrementelles Arbeiten sehr unstrukturiert programmiert
- Zu wenig Gedanken zu Gesamtplanung und Architektur- Meilensteine oft nicht zum geforderten Termin fertig
gestellt
Seminar: Agenten in simulierten Umgebungen 61
Fazit
Guter Einstieg in das Programmieren von Agenten in simulierten Umgebungen – dies betrifft in diesem Fall Interaktion und Kommunikation
Aber auf Grund der Komplexität des Systems kaum Beschäftigung mit den Kernthemen der KI
Seminar: Agenten in simulierten Umgebungen 62
Vorletzte Folie
Und nicht vergessen...
13. - 19. Juli 2005: RoboCup in Osaka
13. - 19. Juni 2006:RoboCup in Bremen(!)
Seminar: Agenten in simulierten Umgebungen 63
Ende
Genug der Worte, das Runde muss ins Eckige!
Kleines Tunier, drei Mannschaften
SteffiBorisTamer vs. AlexHannes_dumm
SteffiBorisTamer vs. AlexHannes_nichtGanzSoDumm
Seminar: Agenten in simulierten Umgebungen 64
Spielfeld-Berechnung an Hand von Linien
(see ((l t) 65 45.4)…)
45.4°
45.4°
(see ((l t) 65 -45.4)…)
180°- 45.4° = 134.6°
-45.4°