Seminar: Agenten in simulierten Umgebungen 1 Implementierung einer RoboCup Soccer Server...

Post on 05-Apr-2015

104 views 0 download

Transcript of Seminar: Agenten in simulierten Umgebungen 1 Implementierung einer RoboCup Soccer Server...

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°