Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Implementierung einer RoboCup Soccer Server Fußball-Mannschaft

Ähnliche Präsentationen


Präsentation zum Thema: "Implementierung einer RoboCup Soccer Server Fußball-Mannschaft"—  Präsentation transkript:

1 Implementierung einer RoboCup Soccer Server Fußball-Mannschaft
Alexander Bernard Johannes Tuchscherer

2 Agenda Ziele Unsere Mannschaft Fazit und Kritik

3 Agenda Ziele Unsere Mannschaft Fazit und Kritik

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,...

5 Agenda Ziele Unsere Mannschaft Fazit und Kritik

6 Unsere Mannschaft Entwicklungsumgebung Herangehensweise Architektur Taktik Beispiele Verbesserungen

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

8 Unsere Mannschaft Entwicklungsumgebung Herangehensweise Architektur Taktik Beispiele Verbesserungen

9 Simple-Client als rudimentäre Grundlage für unsere Mannschaft
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 Spielfeldberechnung Ergebnis: einzelner Agent findet sich in seiner simulierten Umgebung zurecht

10 Mannschaften mit Team-Verhalten
Herangehensweise Mannschaften mit Team-Verhalten Kommunikation zwischen den Spielern Spezielle Methoden (dribbeln, passen, Pass annehmen ...) Abstimmen der Aktionen Torwart Standardsituationen (Ecke, Seiteneinwurf) Fehlerbeseitigung und Optimierung

11 Entwicklung einer GUI für jeden Agenten
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

12 GUI-Hilfsmittel

13 Unsere Mannschaft Entwicklungsumgebung Herangehensweise Architektur Taktik Module

14

15 Sequenzdiagramm

16 Basis Aktionen Dash Turn Move Kick Catch Ball (nur Goalie)

17 Spezielle Aktionen Dribbeln Ball passen Ball-Annahme Torschuss Ball-Einwurf Eckball Gehe zur Position

18 Unsere Mannschaft Entwicklungsumgebung Herangehensweise Architektur Taktik Beispiele Verbesserungen

19 Taktik Spielfeld-Einteilung Kommunikation der Agenten Pass und Kick-Strategie Defensiv-Strategie Alternativ - Mannschaft

20 Spielfeld-Einteilung
Mannschaftsaufstellung: 3 Stürmer 4 Mittelfeldspieler 3 Verteidiger 1 Torwart Einteilung des Spielfelds in Zuständigkeitsbereiche Jeder Spieler besitzt Startposition Standardposition

21 Spielfeld-Einteilung

22 Spielfeld-Einteilung

23 Spielfeld-Einteilung

24 Spielfeld-Einteilung

25 Spielfeld-Einteilung

26 Taktik Spielfeld-Einteilung Kommunikation der Agenten Pass und Kick-Strategie Defensiv-Strategie Alternativ - Mannschaft

27 Kommunikation der Agenten
Nur der Ball besitzende Spieler spricht Vorteil: Keine Kollisionen von say–Messages In jedem Zyklus kann der Ball-Spieler sprechen Nachteil: Spieler außerhalb der Rufdistanz werden nicht erreicht Verteidigung wird nicht durch einen Spieler (z.B. Torwart) koordiniert

28 Taktik Spielfeld-Einteilung Kommunikation der Agenten Pass und Kick-Strategie Defensiv-Strategie Alternativ - Mannschaft

29 Passen Ballspieler sucht geeigneten Spieler Geeigneter 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 ) Schießt den Ball zum ausgewählten Spieler  Schusskraft wird berechnet, so dass der der Ball möglichst zielgenau beim anderen Spieler ankommt

30 Pass Annahme Spieler empfängt die say-Message und erkennt darin seine Spieler-Nr. (hear our 2 „passball “) Spieler dreht sich in die Ruf-Richtung und schaltet seine View auf narrow versucht seine Position so zu korrigieren, dass der Ball frontal auf ihn zukommt. Switch in normalen Modus, wenn … Pass angekommen Pass durch Gegner abgefangen

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

32 Taktik Spielfeld-Einteilung Kommunikation der Agenten Pass und Kick-Strategie Defensiv-Strategie Alternativ - Mannschaft

33 Raumdeckung statt Manndeckung
Defensiv-Strategie Raumdeckung statt Manndeckung Jeder Spieler ist für seinen Spielzonenbereich zuständig Spieler geht direkt zum Ball, wenn er in seine Spielzone kommt

34 Taktik Spielfeld-Einteilung Kommunikation der Agenten Pass und Kick-Strategie Defensiv-Strategie Alternativ - Mannschaft

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!“

36 Unsere Mannschaft Entwicklungsumgebung Herangehensweise Architektur Taktik Beispiele Verbesserungen

37 Beispiele Orientierung Dribbeln Torwart-Verhalten

38 Orientierung

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..)

40

41 Orientierung – Vorgehen (1/4)
Speicherung der statischen Objekte im Source-Code im Koordinatenformat Das Koordinatensystem: y (-36.5, 20 ) (36.5, 20 ) -x (0,0) x (-36.5, -20 ) -y (36.5, -20 )

42 Orientierung – Vorgehen (2/4)
Berechnen der eigenen Blickrichtung… an Hand einer Linie an Hand zweier Punkte (see ((f p r t) ) ((f g r b) )…) (see ((l t) )…) (36.5, 20 ) 45.4° TOR 45.4° (52.5, )

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 (36.5, 20 ) (27.9, 3 ) TOR

44 Orientierung – Vorgehen (4/4)
Berechnen der Entfernung und Richtung zu statischem Objekten Korrektur der Richtung um eigene Blickrichtung (23.7, 12 ) TOR (52.5, 0 )

45 Wenn Ball außerhalb der Kick-Reichweite: Sonst
Dribbeln (1/3) Wenn Ball außerhalb der Kick-Reichweite: Lauf dem Ball hinterher Sonst Berechne 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)

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)

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)

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

49 Unsere Mannschaft Entwicklungsumgebung Herangehensweise Architektur Taktik Beispiele Verbesserungen

50 Features, die dringend eingebaut werden sollten
Verbesserungen Features, die dringend eingebaut werden sollten Weitersagen des Ballbesitzes und der Ballposition Freilaufen und Decken Verbesserung der Mannschaftstaktik Nice-to-have-Liste Angepasstes Angriffs-Verhalten Ausbau der GUI Komplexere Spielzüge Scoring-Modell

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)

52 Freilaufen und Decken Freilaufen Decken
Wenn 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 Decken Wenn Gegenmannschaft in Ballbesitz Decken von Gegenspielern, die angepasst werden könnten

53 Verbesserung der Mannschaftstaktik
Finden einer besseren Spielfeld-Einteilung durch ausgiebiges Testen Verbesserung an der Parameter-Konfiguration Ab 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?

54 Angepasstes Angriffs-Verhalten
Rush-Modus bei hohem Rückstand alle Standardpositionen werden in Richtung gegnerisches Tor verlagert Block-Modus bei 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

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,…)

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

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

58 Agenda Einleitung Unsere Mannschaft Fazit und Kritik

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

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

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

62 Vorletzte Folie Und nicht vergessen... Juli 2005: RoboCup in Osaka Juni 2006: RoboCup in Bremen(!)

63 Genug der Worte, das Runde muss ins Eckige!
Ende Genug der Worte, das Runde muss ins Eckige! Kleines Tunier, drei Mannschaften SteffiBorisTamer vs. AlexHannes_dumm SteffiBorisTamer vs. AlexHannes_nichtGanzSoDumm

64 Spielfeld-Berechnung an Hand von Linien
(see ((l t) )…) 45.4° -45.4° 45.4° 180°- 45.4° = 134.6° (see ((l t) )…)


Herunterladen ppt "Implementierung einer RoboCup Soccer Server Fußball-Mannschaft"

Ähnliche Präsentationen


Google-Anzeigen