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

Slides:



Advertisements
Ähnliche Präsentationen
Einer der Dienste im Internet
Advertisements

Integrations- und Funktionstests im Rahmen des V-Modelles
V-Modell XT - Ein Überblick
DIE HÜLLKURVE Beispiel aus dem Alltag:
Seminar „Extrapolationsmethoden für zufällige Felder“
Kollisionen erkennen Kollisions- und Schnittpunkttests auf Dreieckbasis Kollisions- und Schnittpunkttests auf Viereckbasis Einsatz von achsenausgerichteten.
Heuristiken und Kontexteinflüsse
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 5 V-Modell-AnwendungenFolie 1 V-Modell für große Projekte.
Sortierverfahren Richard Göbel.
Markplätze für Agenten Seminar Softwareagenten Timo Hoelzel.
SciAgents - Eine agentenbasierte Umgebung für verteilte wissenschaftliche Berechnungen Alexander StarkeSeminar Software Agenten
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Computerkurs: Quantitative Auswertung biochemischer Experimente Guten Morgen.
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
eXtreme Programming (XP)
Seminar: Architekturbeschreibungssprachen
Was sind Histogramme? (1)
zur Vorlesung Neuronale Netzwerke
DVG Klassen und Objekte
Intelligentes Crawling im WWW mit Hilfe intuitiver Suchbedingungen
Einführung MySQL mit PHP
The XeriScape Artificial Society Von: Ralf Kopsch Seminar: Artifical Life.
Analyse eines Handballspielzuges
Seminar: Informationstechnik in der Medizin Universität Dortmund Skin Detection Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Kommunikationstechnik.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Konzeption und Realisierung von DSS
Variationsformalismus für das freie Teilchen
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Das Wasserfallmodell - Überblick
Steuerung externer Komponenten über ein USB-Interface.
EXCEL PROFESSIONAL KURS
Das Streichholzspiel.
Trainerweiterbildung der Jugendtrainer des TuS Barskamp
Tormann Lorenz Maierhofer Die Test-Umgebung Tor: 5x Roboter-Durchmesser Ball: Wird jeweils in Richtung einer zufälligen Position im Tor geschossen.
Wo ist die "Notbremse" in den Spielregeln definiert?
Abschlussvortrag zur Studienarbeit
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Die Ausbildung zum Futsal-Schiedsrichter - Ausgabe 2013 / 2014
CGI (Common Gateway Interface)
Allgemeines zu Datenbanken
Taktiktraining „Wir üben zuviel und spielen zu wenig!“
Spielverständnis.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Tipps für Trainer Thema Handlungschnelligkeit
Ein Überblick über verschiedene Verfahren
Proseminar: Technologien des Internets
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
2. April 2015Solveigh Matthies BioRem als FESA3-Klasse BioRem-Ansteuerung mit einer FESA3- Klasse Sinn&Zweck Funktionialit ä t Implementierung.
Kulturworkshop in Sachen Fussball
Erstellt: Christoph Marik Folie 1/14 Die richtige Anwendung der Vorteilsregel.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Geoinformationssysteme
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
- Seite 1 TIME INTELLIGENCE ® by Zeichenrand – Löschen! Titel.
1 Suchprofile erstellen und verwalten. 2 Suchprofile bei Registrierung Hier können Sie bis zu drei Suchprofile einrichten. Diese finden Sie später unter.
PCA Principal Component Analysis. Gliederung PCA – Warum eigentlich? PCA – Was ist zu tun? Was passiert eigentlich? Anwendungen Zusammenfassung.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
Prognose von Zeitreihen Hans Nübel Hans Nübel Prognose von Zeitreihen Aufbau 1.Motivation 2.Holt-Winters-Verfahren 3.Prognose.
Roboter und Agenten HST 06 – Roboter und Agenten – D. Lammers - 1.
Ich brauche eine Web-Seite vom Server im Internet
Implementieren von Klassen
 Präsentation transkript:

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

Folie 2 Gliederung ● Einleitung ● Aufbau der Mannschaft ● Nutzung künstlicher Intelligenz ● Bewertung und Zusammenfassung

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

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)

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“

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

Folie 7 Überblick über die Java -Pakete basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet

Folie 8 basics – Start des Teams basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet

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

Folie 10 communication – Aufbau der Kommunikation mit dem Server basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet

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

Folie 12 information – Verarbeitung der Informationen basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet

Folie 13 information

Folie 14 information - AuralProcessor ● Nachrichten vom Schiedsrichter – Z.B. KICK_OFF_L, GOAL_R, OFFSIDE_R, HALF_TIME, TIME_UP ● Nachrichten von anderen Spielern

Folie 15 information - BodyProcessor ● Erhält jeden Tick Daten ● Spielerrelevante Eigenschaften, z.B. – Stamina – Kopfdrehung – Geschwindigkeit – Sehqualität – Blickwinkel

Folie 16 information - ParamProcessor ● Grundlegende Variablen werden übermittelt, z.B. – Breite des Tors – Eigene Rückennummer – Seite des Spielers

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

Folie 18 information - VisualProcessor ● Lokalisierung: Umwandeln der relativen Positionsangaben in absolute – Bestimmung der Drehung – Bestimmung der x-, y-Koordinaten

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

Folie 20 information - VisualProcessor

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

Folie 22 information - VisualProcessor Fehlergebirge bei festen Eingabedaten:

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

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

Folie 25 objects – Bereitstellung der Daten basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet

Folie 26 objects

Folie 27 objects ● Enthält die Klassen: – GameObject – FieldObject – Line – Flag – MobileObject – Ball – Player – Self – Game

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

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

Folie 30 objects – Der Ball

Folie 31 objects – Der Ball

Folie 32 objects – Der Ball

Folie 33 objects – Der Ball

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

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.

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)

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

Folie 38 Überblick über die Java -Pakete basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet

Folie 39 logic ● Das Paket logic enthält folgende Unterpakete und Klassen: – logic.Strategy – logic.tactics.* – logic.Operation – logic.moves.* – logic.BasicFunctions

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

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.

Folie 42 Klassendiagramm logic.tactics.*

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

Folie 44 Entscheidungsfindung (2)

Folie 45 Danger-System (1) ● Drei möglichen Aktionen bei eigenem Ballbesitz: – Dribbeln – Passen – Torschuss ● Entscheidungsfindung durch Danger-System

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

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.

Folie 48 Danger-System (4) ● Vergleich der Danger-Werte  Entscheidungsfindung ● Vorteile dieses Systems: – Flexibel – Leicht anpassbar – Lösungen für alle Situationen

Folie 49 logic.Operation ● Bindeglied zwischen logic.tactics und logic.moves: – „Kapselt“ Spielzüge – Ermöglicht rundenübergreifende Spielzüge – Kontrolliert Nackensteuerung

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

Folie 51 logic.Moves.* ● Folgende Spielzüge wurden implementiert: – Goalkick – Dribbling – Pass – GoTo – ReceivePass – InterceptBall – CoverOpponent – GoalieMoves – SearchBall – Shouts

Folie 52 Beispiel: Dribbeln (1)

Folie 53 Beispiel: Dribbeln (2)

Folie 54 Beispiel: Dribbeln (3)

Folie 55 Beispiel: Dribbeln (4)

Folie 56 Beispiel: Dribbeln (5)

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

Folie 58 Gliederung ● Einleitung ● Aufbau der Mannschaft ● Nutzung künstlicher Intelligenz ● Bewertung und Zusammenfassung – trainer – errorBackpropagation

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 !

Folie 60 Überblick über die Java -Pakete basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet

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

Folie 62 Der Trainer

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

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

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

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 Datensätze gespeichert  Größere Wahrscheinlichkeit eines guten Ballabfangens

Folie 67 Trainingssituation - Ballabfangen EndDistance PlayerDirection BallDirection & BallSpeed StartDistance zu früh !

Folie 68 Trainingssituation - Ballabfangen Optimal !

Folie 69 Trainingssituation - Ballabfangen EndDistance zu spät !

Folie 70 Trainingsdaten StartDistance=24, BallDirection=120 und BallSpeed=1,5

Folie 71 Trainingssituation

Folie 72 Überblick über die Java -Pakete basics communication information objects logic trainer logic.tactics logic.moves errorBackpropagationNet

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

Folie 74.::::.:.::::.: 1. Error-Backpropagation-Netz.:?.:.:?.: startDistance ballDirection ballSpeed playerDirection endDistance

Folie 75 Anzahl Neuronen

Folie Error-Backpropagation-Netz. : 30. : startDistance ballDirection ballSpeed playerDirection endDistance

Folie 77 Anzahl Trainingszyklen

Folie 78 Ergebnis Minimum optPlayerDirection StartDistance=24, BallDirection=120 und BallSpeed=1,5

Folie 79 playerDirection 2. Error-Backpropagation-Netz. : 30. : startDistance ballDirection ballSpeed endDistanceoptPlayerDirection

Folie 80 Trainierter Spieler

Folie 81 Gliederung ● Einleitung ● Aufbau der Mannschaft ● Nutzung künstlicher Intelligenz ● Bewertung und Zusammenfassung

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

Folie 83 Fragen ? Danke für die Aufmerksamkeit ! Fragen ?

Folie 84 …und jetzt wird gespielt!