Einführung in das Mixed Reality System

37
Stefan Krupop Einführung in das Mixed Reality System

description

Einführung in das Mixed Reality System. Inhalt. Mixed Reality – Was ist das? Hardware Komponenten Die Roboter Differentialantrieb Systemsoftware Komponenten Agent-Software Die eigene KI Beispielagent Beispiel erweitern Vektoren berechnen Spiel einrichten Auf dem Weg zur KI - PowerPoint PPT Presentation

Transcript of Einführung in das Mixed Reality System

Page 1: Einführung in das Mixed Reality System

Stefan Krupop

Einführung in dasMixed Reality System

Page 2: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 2 / 32

Inhalt

1. Mixed Reality – Was ist das?2. Hardware

1. Komponenten2. Die Roboter3. Differentialantrieb

3. Systemsoftware1. Komponenten2. Agent-Software

4. Die eigene KI1. Beispielagent2. Beispiel erweitern3. Vektoren berechnen4. Spiel einrichten5. Auf dem Weg zur KI6. Vorsicht Falle(n)!

Page 3: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 3 / 32

Mixed Reality System

Realität

Simulation

Mixed Reality

+

=

Mixed Reality

Reale Roboter

Simuliertes Spiel

=

+

Page 4: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 4 / 32

Mixed Reality System

Page 5: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 5 / 32

Mixed Reality League

Seit 2007 neue Liga beim RoboCupEntstanden aus Simulation LeagueSeit 2008 neues System, erstellt von

vielen verschiedenen TeamsSeit 2009: Spiel 5 gegen 5

10 Roboter fahren als Platzhalter in sonst simulierter Umgebung auf einem Bildschirm

Page 6: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 6 / 32

Teil 1

Hardware

Page 7: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 7 / 32

Systemüberblick Hardware

Kamera

Beleuchtung

IR-Transceiver

Spielfeldmonitor

IR-Sendedioden

Spielserver

Page 8: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 8 / 32

Komponenten 1/2

Kamera Nimmt Spielfeld auf Liefert Daten für Vision-Tracking

Spielfeldmonitor Zeigt das Spielfeld an und dient als Spielfläche für die

Roboter Kann theoretisch entfallen, macht aber „Mixed Reality“

erst aus IR Tranceiver

Ermöglicht die Kommunikation vom Spielserver zu den Robotern

Verwendet IrDA, aber mit viel höherer Sendeleistung

Page 9: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 9 / 32

Komponenten 2/2

Spielserver Standard-PC mit Linux Verwaltet das Spiel Software besteht aus vielen Einzelkomponenten

SoccerServerGraphics ModuleVision TrackingRobotControlOperator (Clients)

Page 10: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 10 / 32

Eco!Be-Roboter

Sehr kleiner Roboter: Nur ca. 25mm Kantenlänge

Antrieb über zwei Räder (Differentialantrieb)

Steuerung über Infrarot 2 LiPo-Akkus integriert Keine eigene Sensorik,

nur „fahrbare Platzhalter“ Alle Roboter empfangen

alle Befehle, aber jeder Roboter hat eindeutige ID

Page 11: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 11 / 32

Differentialantrieb

Bewegungsrichtung abhängig von Geschwindigkeit/Richtung der beiden Räder

Vorwärts RückwärtsAuf Stelle

drehenRechts-Kurve

Page 12: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 12 / 32

Teil 2a

Systemsoftware

Page 13: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 13 / 32

Systemüberblick Software

Soccer Server

Soccer Operator

Robot ControlVision Tracking

Graphics Module

Server Clients

Schiedsrichter

Client

KI

Page 14: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 14 / 32

Systemüberblick Software:Graphics Module

Universelles Grafikausgabe-ToolSorgt für Darstellung der virtuellen Welt

auf dem SpielfeldmonitorVerwendet ThemepacksBildinhalt wird per XML vom Soccer

Server vorgegeben

Page 15: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 15 / 32

Systemüberblick Software:Vision Tracking

Holt Bilddaten von KameraErkennt Position und Ausrichtung der

Roboter anhand spezieller MarkerJeder Marker hat eindeutige IDSendet Daten in XML verpackt an Soccer

Server

Page 16: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 16 / 32

Systemüberblick Software:Soccer Server, Robot Control und Operator

Soccer Server Zentrales Element Verwaltet Spiel Koordiniert Module

Robot Control Verpackt Steuerbefehle des Soccer Server in

Roboterprotokoll Steuert IR-Transceiverhardware an

Soccer Operator Ermöglicht Steuerung des Spiels durch den

Schiedsrichter

Page 17: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 17 / 32

Teil 2b

Agent-Software

Page 18: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 18 / 32

Systemüberblick Software:Clients 1/2

Prinzip: Jeder Agent (=Roboter) hat eigene „Ego-View“ auf das Spiel Agent ist für sich Zentrum der Welt Polarkoordinatensystem (Winkel und Länge)

Server liefert Daten über Flaggen (z.B. myGoalPole1 & 2) Ballposition Mitspieler Gegner … Länge

Winkel

Page 19: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 19 / 32

Systemüberblick Software:Clients 2/2

Clients senden Roboterbefehle an Soccer Server: Radgeschwindigkeiten setzen (links, rechts) Ball schießen (Winkel, Kraft)

Immer gleicher Zyklus: Daten vom Server holen (update) Daten verarbeiten, zu sendenden Befehl bestimmen Befehl an Server senden (flush) Auf nächsten Zyklus warten (Intervall: 66ms)

Page 20: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 20 / 32

Systemüberblick Software:jMRClient (Beispielclient)

Alle wesentlichen Funktionen bereits abstrahiert

Spieldarstellung (AgentView) und „Taktik-Board“ (AgentViewEx) inkl. Mini-Simulator enthalten

Spieldaten und Roboterbefehle über „Client“-Objekt direkt zugänglich

Page 21: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 21 / 32

Systemüberblick Software:jMRClient – Screenshot

Page 22: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 22 / 32

Teil 3

Die eigene KI

Page 23: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 23 / 32

Spielregeln (Grundzüge)

Zwei Teams mit je 5 Robotern treten gegeneinander an Team Yellow Team Blue

Einzelne Agenten sind autonom Keine (direkte) Kommunikation untereinander Keine „Master-KI“

Regelwerk der Liga regelt Verhalten der Teams und des Schiedsrichters

Page 24: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 24 / 32

KI ↔ jMRClient

jMRClient kümmert sich um „technische“ Aspekte Verbindung zu Server Parsen der Daten Einfache Bewegungsfunktionen

KI braucht nur Verhalten implementierenMinimale KI („gehe zum Ball“) benötigt nur

5 Zeilen Code

Page 25: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 25 / 32

Systemüberblick Software:jMRClient – Minimaler Agentpublic class MovingBot extends AbstractBot {

public MovingBot(String server, ServerType type, Team team, int vtID, int rcID, String botName, boolean simulationMode) {

super(server, type, team, vtID, rcID, botName, simulationMode); }

public boolean process(IClient client, AgentView view) { Vector v = client.getPositions().ball(); if (v != null) { view.drawVectorFromVector(client.getPositions().me(), v); client.getMovements().goTo(v); } return true; }}

Vektor zum Ball holen

Wenn Ball gefunden…

Vektor einzeichnen

Dorthin fahrenProgramm weiterlaufen lassen

Page 26: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 26 / 32

Systemüberblick Software:jMRClient – Klassen 1/2 TeamStarter

Startet entsprechende Anzahl Agenten und gibt Parameter wie Server-Adresse, Team und Simulationsmodus vor

AbstractBotEnthält Logik zum Start und zur Steuerung des Agenten, kümmert sich um Aktualisierung der AgentView

<eigene KI>Erweitert AbstractBot und braucht nur nochboolean process(IClient, AgentView) { } implementieren

Page 27: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 27 / 32

Systemüberblick Software:jMRClient – Klassen 2/2 IClient (Client2007/Client2008)

Stellt allgemeine Daten zum Roboter bereit: Zeit, Punktestand, Spielzustand, Eigene ID, …

Ermöglicht Zugriff auf PositionsStorage und Movements IPositionsStorage

Stellt Vektoren zu Spielelementen bereit Enthält Hilfsfunktionen

IMovements Stellt Befehle zur Robotersteuerung zur Verfügung Besonders wichtig: goTo(Vektor) und kick

Vector Speichert einen Winkel und eine Länge Stellt Operationen für Vektormathematik zur Verfügung

Page 28: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 28 / 32

Beispielagenten erweitern

Beispielclient fährt nur zum BallEinfache Erweiterung: Anschließend auf

Mitte des gegnerischen Tores schießen

Was ist nötig? Herausfinden, ob Ball in Schußreichweite Zielposition des Schusses berechnen Ball „treten“

Page 29: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 29 / 32

Vektormathematik

Darstellung aller Objekte als Vektoren (Winkel und Distanz)

Berechnung anderer Punkte mittels Vektormathematik möglich

opGoalPole1

opGoalPole2

goal

Line

kick

goal

Line

/2

goalPole1 goalPole2 goalLine=goalPole1

- goalPole2 goalLine=goalLine/2 kick=goalPole2

+ goalLine

Page 30: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 30 / 32

Vektormathematik – Als Code

public boolean process(IClient client, AgentView view) { Vector v = client.getPositions().ball(); if (v != null) { if (client.getMovements().canKick()) { Vector opGoalPole1 = client.getPositions().opGoalPole1(); Vector opGoalPole2 = client.getPositions().opGoalPole2();

Vector goalLine = opGoalPole1.subtract(opGoalPole2); goalLine = goalLine.scale(0.5f);

Vector kick = opGoalPole2.sum(goalLine);

client.getMovements().kick(kick.getAngle(), 1.0); } else { view.drawVectorFromVector(client.getPositions().me(), v); client.getMovements().goTo(v); } } return true;}

Überprüfen, ob Ballin Schussreichweite

Ball in Richtung des Vektors kicken

Page 31: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 31 / 32

Der TeamStarter

Legt globale Parameter fest: Server-IP, Team-Farbe, Simuliertes/Echtes Spiel

public static final String SERVER = "192.168.0.3";public static final ServerType SERVERTYPE= ServerType.Server2008;public static final Team TEAM = Team.YELLOW;public static final boolean SIMULATION_MODE = true;

Fügt Agents dem Team hinzu Legt Agent-Klasse für jeden Agent fest Legt fest, welche Marker-ID und welche Roboter-ID je

Agent verwendet werden

bot = new MovingBot(SERVER, SERVERTYPE, TEAM, 0, 0, "Bot " + 0, SIMULATION_MODE);bot.start();mBots.add(bot);

Page 32: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 32 / 32

Der Simulationsmodus

Hilfreich zum Testen des Agent-Codes Benötigt keinen Server Roboter kann durch Klicken und Ziehen bewegt

werden Linke Maustaste: Verschieben Rechte Maustaste: Drehen

Bewegungssimulation kann pausiert werden Aber Vorsicht: Ersetzt nicht Tests mit echtem

System oder zumindest dem Simulator! Simuliert nur den jeweiligen Agent, alles andere statisch Simulation nicht unbedingt realitätsnah!

Page 33: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 33 / 32

Vom primitiven Agent zur „KI“

Nur „Gehe zum Ball und schieße“ reicht nicht Tor unverteidigt Großes Gedränge um Ball

„Rollenverteilung“ nötig Torwart Verteidiger Angreifer …

Rollenzuweisung kann fest oder dynamisch sein Bei dynamischer Zuweisung Festlegung von Regeln für

z.B. „Ich bin Torwart“ nötig

Page 34: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 34 / 32

Mögliche Realisierungen von „KI“

Verhalten gesteuert durch Ansammlung von „if-then-else“ (Reflex-Agent) Erweiterung des Beispiel-Agenten Einfach Erfolge möglich, aber schnell unübersichtlich

Zustandsautomat steuert Verhalten Einfache Möglichkeit, „Wissen“ über die Umwelt zu speichern

Mehrere Verhalten laufen „parallel“ und können sich überlagern

Steuerung durch externen Regelsatz und Zustandsautomat

Selbstlernendes Verhalten Sehr komplex (großer Zustandsraum)

Kaum für Steuerung des ganzen Agenten geeignet, eher für einzelne Aufgaben

Page 35: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 35 / 32

Beispiel für Zustandsautomat

GoalKeeperBot.java

Zum Tor

Linker Pfosten

Rechter Pfosten

Verteid-igen

Page 36: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 36 / 32

Vorsicht Falle(n)!

Reales Spiel ist nicht so perfekt wie Simulation! Häufig auftretende Probleme:

Vision erkennt Marker nicht Bot „lost“ Roboter empfängt eine Zeit lang keine Befehle

KI muss mit solchen Situationen umgehen können

Zeitlicher Abstand zwischen Ansteuerung und Datenaktualisierung sorgt für Probleme bei Regelung z.B. Anfahren eines Winkels: Starkes Übersteuern

möglich, muss bedacht werden

Page 37: Einführung in das Mixed Reality System

Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System 37 / 32

Downloads

Download dieser Folien und des Beispielclients unter:

http://stefankrupop.de/