Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Die WWUScorchers Realisierung einer RoboCup Soccer Server Mannschaft Projektseminar: „Neuroinformatik und Agenten - Lernende Systeme“ Robin Baumgarten,

Ähnliche Präsentationen


Präsentation zum Thema: "Die WWUScorchers Realisierung einer RoboCup Soccer Server Mannschaft Projektseminar: „Neuroinformatik und Agenten - Lernende Systeme“ Robin Baumgarten,"—  Präsentation transkript:

1

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!


Herunterladen ppt "Die WWUScorchers Realisierung einer RoboCup Soccer Server Mannschaft Projektseminar: „Neuroinformatik und Agenten - Lernende Systeme“ Robin Baumgarten,"

Ähnliche Präsentationen


Google-Anzeigen