Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Hansl Rosenberg Geändert vor über 9 Jahren
2
Die WWUScorchers Realisierung einer RoboCup Soccer Server Mannschaft Projektseminar: „Neuroinformatik und Agenten - Lernende Systeme“ Robin Baumgarten, Daniel Beckmann, Philip Harborth, Philipp Kühl, Marcel Scheibmayer, Thomas Waldeyer 26. September 2006
3
Folie 2 Gliederung ● Einleitung ● Aufbau der Mannschaft ● Nutzung künstlicher Intelligenz ● Bewertung und Zusammenfassung
4
Folie 3 Überblick ● RoboCup – Zielsetzung: humanoide Roboterfußballmannschaft im Jahr 2050, die gegen aktuellen Weltmeister gewinnt – Verschiedene Ligen, unter anderem die Simulationsliga – Multiagentensimulation! ● Spieler – Erfüllen die Voraussetzungen eines Agenten (autonom, proaktiv, reaktiv, kommunikativ, lernfähig, […]) ● Neuroinformatik – Einsatz und Nutzung von künstlicher Intelligenz beim RoboCup: Entscheidungsfindung in den softwarerealisierten Spielern
5
Folie 4 Projektübersicht ● Projektvorgaben: – Entwicklung einer konkurrenzfähige Mannschaft für den RoboCup in Java – Nutzung von künstlicher Intelligenz ● Herausforderungen: – Projektplanung, -koordination und -durchführung ● Aufgabendefinition, -verteilung und –durchführung ● Ablaufplanung, -kontrolle – Stetiger Austausch zwischen den Seminarteilnehmern – Evolutionäres, inkrementelles Modell (stufenweise, Einbeziehung gewonnener Erfahrungen in die Entwicklung)
6
Folie 5 Projektablauf ● Vorüberlegung, Projektumriss, Planung ● Aufbau der Mannschaft – Basisfunktionen, essentielle Klassen – Evolutionäre und inkrementelle Entwicklung – Spiel ohne KI ● Integration der KI in die Mannschaft – Einarbeitung in, Nutzung und Einsatz von künstlicher Intelligenz – Spiel mit KI ● Bewertung der Mannschaft – Kritische Betrachtung der Mannschaft – Vergleich „mit KI vs. ohne KI“
7
Folie 6 Gliederung ● Einleitung ● Aufbau der Mannschaft ● Nutzung künstlicher Intelligenz ● Bewertung und Zusammenfassung – Ablauf und Anordnung der Java-Pakete – basics – communication – information – objects – logic
8
Folie 7 Überblick über die Java -Pakete basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet
9
Folie 8 basics – Start des Teams basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet
10
Folie 9 basics – Start des Teams ● StarteTeam – erzeugt und initialisiert 11 Spieler – meldet Mannschaft am Soccer Server an – danach autonomes Handeln jedes einzelnen Spielers ● PlayerControl – initiiert alle benötigten Objekte des Spielers ● Tools – enthält verschiedene Methoden, die global genutzt werden – z.B. Berechnung der Entfernung zwischen zwei Punkten
11
Folie 10 communication – Aufbau der Kommunikation mit dem Server basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet
12
Folie 11 communication – Aufbau der Kommunikation mit dem Server ● Communicator – hält die Kommunikation zwischen Client (Spieler) und Server aufrecht – sendet und empfängt Daten-Strings ● Sender – nimmt Sendedaten entgegen und leitet sie zum Commmunicator ● Receiver – „horcht“, ob Communicator Daten-Strings empfängt – leitet diese sofort an den MessageParser weiter ● MessageParser – syntaktische Verarbeitung der Daten-Strings – Informationen als String -> Informationen als Zahlenwerte (float …)
13
Folie 12 information – Verarbeitung der Informationen basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet
14
Folie 13 information
15
Folie 14 information - AuralProcessor ● Nachrichten vom Schiedsrichter – Z.B. KICK_OFF_L, GOAL_R, OFFSIDE_R, HALF_TIME, TIME_UP ● Nachrichten von anderen Spielern
16
Folie 15 information - BodyProcessor ● Erhält jeden Tick Daten ● Spielerrelevante Eigenschaften, z.B. – Stamina – Kopfdrehung – Geschwindigkeit – Sehqualität – Blickwinkel
17
Folie 16 information - ParamProcessor ● Grundlegende Variablen werden übermittelt, z.B. – Breite des Tors – Eigene Rückennummer – Seite des Spielers
18
Folie 17 information - VisualProcessor ● Sammelt alle ‚gesehenen‘ Daten des Spielers: – Flaggen – Linien – Andere Spieler – Ball ● Jedes Objekt wird durch Winkel und Entfernung festgelegt ● Daten sind verrauscht
19
Folie 18 information - VisualProcessor ● Lokalisierung: Umwandeln der relativen Positionsangaben in absolute – Bestimmung der Drehung – Bestimmung der x-, y-Koordinaten
20
Folie 19 information - VisualProcessor ● Bestimmung der Drehung: – Voraussetzung: Zu jedem Zeitpunkt des Spiels ist eine Linie sichtbar – Übergabe einer Linie: ● Entfernung zum Schnittpunkt mit der Blickrichtungshalbgerade ● Winkel zwischen Blickrichtungshalbgerade und Linie
21
Folie 20 information - VisualProcessor
22
Folie 21 information - VisualProcessor ● Bestimmung der Koordinaten: – Um den Fehler durch Verrauschen zu minimieren, bestimme eigene Position anhand aller gesehener Flaggen – Dazu: ● Schlage Position vor ● Bestimme Entfernung und Winkel, die die Flaggen dort hätten ● Differenz zu den gemessenen Daten ergibt Fehlerwert
23
Folie 22 information - VisualProcessor Fehlergebirge bei festen Eingabedaten:
24
Folie 23 information - VisualProcessor ● Auftretendes ‚Fehlergebirge‘ ist ‚glatt‘: – Es gibt keine lokalen Minima außer dem globalen Minimum ● Bergsteigeralgorithmus konvergiert gegen dieses globale Minimum ● Absolute Positionen anderer Objekte können nun direkt bestimmt werden
25
Folie 24 information - Status ● Zentrale Schnittstelle für alle Informationen, die der Spieler besitzt ● Empfängt Daten von den Processoren, und speichert sie in adäquaten Strukturen
26
Folie 25 objects – Bereitstellung der Daten basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet
27
Folie 26 objects
28
Folie 27 objects ● Enthält die Klassen: – GameObject – FieldObject – Line – Flag – MobileObject – Ball – Player – Self – Game
29
Folie 28 objects ● Objekte dienen der geordneten Speicherung der durch die Prozessoren gewonnenen Daten ● Einige Objekte enthalten weiterverarbeitende Methoden: – Ballbesitz – Bestimmung der Bewegungsrichtung und Geschwindigkeit
30
Folie 29 objects – Der Ball ● Ballbesitz: – In zukünftigen Positionen des Balles wird nahster Spieler bestimmt – Abhängig von Entfernung werden Teams Punkte gutgeschrieben – Punkteverhältnis ergibt Ballbesitzverhältnis – Unsicherheitsfaktor
31
Folie 30 objects – Der Ball
32
Folie 31 objects – Der Ball
33
Folie 32 objects – Der Ball
34
Folie 33 objects – Der Ball
35
Folie 34 objects – Der Ball ● Ballgeschwindigkeit und –bewegungsrichtung – Da erfasste Daten verrauscht sind, ist Ballposition ungenau ● Abweichungen von einigen Metern sind möglich – Bestimmung der Geschwindigkeit und Richtung über zwei aufeinander folgende Positionen schlecht – Daher: Alternative mit Überprüfung, ob Ball gekickt
36
Folie 35 objects – Der Ball ● Ballgeschwindigkeit und –bewegungsrichtung – Dazu Berücksichtigung von mehreren Faktoren: ● Steht ein anderer Spieler nah am Ball? ● Steht der eigene Spieler nah am Ball und hat ein KICK-Befehl gesendet? ● Hat der Ball den Pfosten berührt? ● Tritt zusätzlich noch eine große Geschwindigkeits- oder Richtungsänderung auf, wird Ball als gekickt erkannt.
37
Folie 36 objects – Der Ball ● Ballgeschwindigkeit und –bewegungsrichtung – Falls Ball als gekickt erkannt wurde: ● Speichere Position des Balles als Kickposition ● Soll zu einem späteren Zeitpunkt Bewegungsrichtung bestimmt werden, so durch Winkel der Ballposition mit Kickposition ● Ballgeschwindigkeit: Mittele alle errechneten Geschwindigkeiten ab Kickzeitpunkt (Beschleunigung berücksichtigt)
38
Folie 37 objects – andere Spieler ● Speicherung der anderen Spieler – Fast nie alle Spieler im Blickfeld, oft keine Rückennummern erkennbar – Daher: Zwei Speicherstrukturen ● Temporäre Liste von allen gesehenen Spielern ohne erkannte Rückennummer ● Feste Liste mit allen Spielern – Aktualisiert Spieler, falls Rückennummer erkannt wird – Falls nur ungefähre Position benötigt wird, kann Position auch einige Zeit nach Verlassen des Blickfeldes geschätzt werden
39
Folie 38 Überblick über die Java -Pakete basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet
40
Folie 39 logic ● Das Paket logic enthält folgende Unterpakete und Klassen: – logic.Strategy – logic.tactics.* – logic.Operation – logic.moves.* – logic.BasicFunctions
41
Folie 40 logic.Strategy ● Eigenständiger Thread auf höchster Entscheidungsebene: – Entscheidet abhängig vom Spielverlauf über die Taktik der Spieler – „globale“ Entscheidungen – Erfordert „feste“ Informationen
42
Folie 41 logic.tactics.* ● Eigenständiger Thread: – Wird von der Informationsverarbeitung angestoßen – Entscheidet jede Runde über den konkreten Spielzug eines Spielers – Verschiedene Positionen besitzen unterschiedliche Taktiken – Grundverhalten sind bei allen Spielern gleich. – Realisierung durch Vererbung in Java.
43
Folie 42 Klassendiagramm logic.tactics.*
44
Folie 43 Entscheidungsfindung (1) ● Entscheidung über das Verhalten des Spielers abhängig von 3 Fällen: – Spieler im Ballbesitz – Team im Ballbesitz – Gegner im Ballbesitz ● Feste Spielzüge bei Team/Gegner im Ballbesitz ● Interessantester Fall: Eigener Ballbesitz
45
Folie 44 Entscheidungsfindung (2)
46
Folie 45 Danger-System (1) ● Drei möglichen Aktionen bei eigenem Ballbesitz: – Dribbeln – Passen – Torschuss ● Entscheidungsfindung durch Danger-System
47
Folie 46 Danger-System (2) ● Bestimmung des Danger-Wertes: 1. Betrachtung zukünftiger Ballpositionen 2. Bestimmung eines Grundwertes 3. Multiplikation mit einem Positions-Faktor („positionRating“) 4. Manuelle Anpassung des Wertes für spezielle Situationen
48
Folie 47 Danger-System (3) ● Danger-Wert beschreibt Güte einer Aktion. ● Bei eigenem Ballbesitz werden folgende Danger-Werte berechnet: – Dribbling-Danger – Pass-Danger – GoalKick-Danger ● Die Position mit dem jeweils geringsten Danger-Wert wird ausgewählt und übergeben.
49
Folie 48 Danger-System (4) ● Vergleich der Danger-Werte Entscheidungsfindung ● Vorteile dieses Systems: – Flexibel – Leicht anpassbar – Lösungen für alle Situationen
50
Folie 49 logic.Operation ● Bindeglied zwischen logic.tactics und logic.moves: – „Kapselt“ Spielzüge – Ermöglicht rundenübergreifende Spielzüge – Kontrolliert Nackensteuerung
51
Folie 50 logic.moves.* ● Klassen setzen komplexere Bewegungsabläufe um: – Informationen von Status/Taktik – Berechnung zusätzlicher Informationen – Aufruf von Basisfunktionen ● Zu komplex für Basisfunktionen
52
Folie 51 logic.Moves.* ● Folgende Spielzüge wurden implementiert: – Goalkick – Dribbling – Pass – GoTo – ReceivePass – InterceptBall – CoverOpponent – GoalieMoves – SearchBall – Shouts
53
Folie 52 Beispiel: Dribbeln (1)
54
Folie 53 Beispiel: Dribbeln (2)
55
Folie 54 Beispiel: Dribbeln (3)
56
Folie 55 Beispiel: Dribbeln (4)
57
Folie 56 Beispiel: Dribbeln (5)
58
Folie 57 logic.BasicFunctions ● Kommunikation mit Server durch Grundbefehle ● Weitere Aufgaben: – Überprüft die Gültigkeit der übergebenen Argumente – Berechnet tatsächlichen Drehmoment bei turn – Korrigiert ggf. Werte im Status
59
Folie 58 Gliederung ● Einleitung ● Aufbau der Mannschaft ● Nutzung künstlicher Intelligenz ● Bewertung und Zusammenfassung – trainer – errorBackpropagation
60
Folie 59 Nutzung künstlicher Intelligenz ● Verhalten der Spieler soll durch den Einsatz von KI verbessert werden – z.B. optimales Ballabfangen ● Vorraussetzungen: – Ein- und Ausgabe – Parameter festlegen – Daten sammeln – KI Methode auswählen ● Tools: MFOSS, Neurodimension, Joone Eigene Implementierung eines KNN mit Hilfe anderer Ansätze erfolglos !
61
Folie 60 Überblick über die Java -Pakete basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet
62
Folie 61 Der Trainer ● Schaffung von Trainingssituationen mit Hilfe des Trainers – Online-Coach vs. Offline-Coach – Anmeldung beim Server wie jeder Spieler – Kommunikation über eigenen Port – Trainer erhält unverzerrte Daten – Alle Objekt sichtbar und beeinflussbar: ● Spielerpositionen verändern, Spielerbewegung vorgeben ● Ballposition verändern, Richtung und Geschwindigkeit vorgeben Einfaches Erschaffung von Trainingssituationen
63
Folie 62 Der Trainer
64
Folie 63 Der Trainer ● Klassen zur Trainer-Benutzung – TrainerControl ● Initialisierung – TrainerTactic ● Methoden zur Steuerung des Ablaufs der Trainingssituation – TrainerInformation ● Informationsbereitstellung der durch den Trainer gewonnen Daten – Außerdem eigener MessageParser und MessageReceiver, um Trennung zu Spielerkommunikation zu erreichen
65
Folie 64 Der Trainer ● Verwendung des Trainers – Beispiel: Ball an bestimmte Position legen und Richtung und Geschwindigkeit festlegen – Methode MoveBall schickt Nachricht an den Server der die Aktion durchführt – Ständige Informationen über aktuelle Ball- und Spielerpositionen können für weitere Berechnungen innerhalb der Trainingssituation verwendet werden (KI-Berechnungen) – Trainer hat eigenes InformationsStatus-Objekt – StatusObjekt des zu trainierenden Spielers wird übergeben – Hilfsmethoden: EyeMode, Recover, ChangePlayMode
66
Folie 65 Trainingsdaten sammeln ● Trennung von Sammeln der Daten und der späteren Berechnung ● „Zwischenspeicher“ MySQL Datenbank auf zentralem Server ● Klasse DbConnector für den Zugriff aus die Datenbank ● Methoden zum Ein- und Ausgeben von Daten
67
Folie 66 Ansätze anderer Entwicklerteams ● Trainingssituation „Ballabfangen“ bei anderen Teams – Nur 34% positive Situationen, in denen der Ball richtig abgefangen wurde Zu wenig Trainingsdaten gesammelt (ca. 4000) In unserem Training: ca. 120.000 Datensätze gespeichert Größere Wahrscheinlichkeit eines guten Ballabfangens
68
Folie 67 Trainingssituation - Ballabfangen EndDistance PlayerDirection BallDirection & BallSpeed StartDistance zu früh !
69
Folie 68 Trainingssituation - Ballabfangen Optimal !
70
Folie 69 Trainingssituation - Ballabfangen EndDistance zu spät !
71
Folie 70 Trainingsdaten StartDistance=24, BallDirection=120 und BallSpeed=1,5
72
Folie 71 Trainingssituation
73
Folie 72 Überblick über die Java -Pakete basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet
74
Folie 73 errorBackpropagationNet ● Aufbau des Error-Backpropagation-Netzes: – 1 Eingabeschicht – 1 versteckte Schicht – 1 Ausgabeschicht – mit jeweils beliebig vielen Neuronen ● Zur Verfügung stehende Methoden: – Initialisieren – Trainieren – Testen – Anwenden
75
Folie 74.::::.:.::::.: 1. Error-Backpropagation-Netz.:?.:.:?.: startDistance ballDirection ballSpeed playerDirection endDistance
76
Folie 75 Anzahl Neuronen
77
Folie 76 1. Error-Backpropagation-Netz. : 30. : startDistance ballDirection ballSpeed playerDirection endDistance
78
Folie 77 Anzahl Trainingszyklen
79
Folie 78 Ergebnis Minimum optPlayerDirection StartDistance=24, BallDirection=120 und BallSpeed=1,5
80
Folie 79 playerDirection 2. Error-Backpropagation-Netz. : 30. : startDistance ballDirection ballSpeed endDistanceoptPlayerDirection
81
Folie 80 Trainierter Spieler
82
Folie 81 Gliederung ● Einleitung ● Aufbau der Mannschaft ● Nutzung künstlicher Intelligenz ● Bewertung und Zusammenfassung
83
Folie 82 Zusammenfassung ● Erfüllte Ziele: – spielfähige und konkurrenzfähige Mannschaft – Einbau von künstlicher Intelligenz ● Aufgetretene Herausforderungen: – Realisierung (nur) durch evolutionären Entwicklungsprozess – Koordination des Teams über den gesamten Zeitraum ● Fazit: „Die WWUScorchers stellen eine Mannschaft mit umfangreichen Fähigkeiten, integrierter KI und der Option der einfachen Erweiterbarkeit dar.“
84
Folie 83 Fragen ? Danke für die Aufmerksamkeit ! Fragen ?
85
Folie 84 …und jetzt wird gespielt!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.