Einführung in das Mixed Reality System

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Erstellen von Raumgrundrissen mit Vorlagen
programmiert April-Juni 2003 von Knut Riechmann
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Zusammenfassung der Vorwoche
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Koordination von Fußballrobotern
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Der Einstieg in das Programmieren
Scratch Der Einstieg in das Programmieren. Scatch: Entwicklungsumgebung Prof. Dr. Haftendorn, Leuphana Universität Lüneburg,
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Vereinfachung von Termen Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2006 Dietmar.
Regel 11 - Abseits Teil 1 = Grundsätzliche Abseitsstellung
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Polymorphie (Vielgestaltigkeit)
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Informatik WWU Münster / D. Lammers / HST-WiSe04 Robotfussball und Agenten Und was hat das mit der Informatik an der WWU zu tun?
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
DVG Klassen und Objekte
Einführung in die Programmierung Anweisungen und Datentypen
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Informatik WWU Münster / D. Lammers / HST-WiSe03 Robotfussball und Agenten Und was hat das mit der Informatik an der WWU zu tun?
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
Steuerung externer Komponenten über ein USB-Interface.
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
Variablenkonzept Klassisch, in Java Basistyp
Das IT - Informationssystem
Ein Überblick über verschiedene Verfahren
LOD Levels of Detail Oliver Gassner Christian Troger.
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
Analyseprodukte numerischer Modelle
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Meldungen über Ethernet mit FINS/UDP
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Exploiting Web Applications
Das IT - Informationssystem
SAP Seminar 2007 Organisationsobjekte anlegen
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
A Workshop About this chapter General description Units Time Schedule
Roboter-Fußball: Die RoboCup- Initiative Prof. Dr. Raúl Rojas Freie Universität Berlin mit freundlicher Unterstützung von Prof. Bernhard Nebel Albert-Ludwigs-Universität.
 Präsentation transkript:

Einführung in das Mixed Reality System Willkommen Praktischen Teil Wer kennt MR schon?

Einführung in das Mixed Reality System Inhalt Mixed Reality – Was ist das? Hardware Komponenten Die Roboter Differentialantrieb Systemsoftware Agent-Software Die eigene KI Beispielagent Beispiel erweitern Vektoren berechnen Spiel einrichten Auf dem Weg zur KI Vorsicht Falle(n)! Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System Realität Mixed Reality + = Simulation Reale Roboter = + Mixed Reality Simuliertes Spiel Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

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

Einführung in das Mixed Reality System Mixed Reality League Seit 2007 neue Liga beim RoboCup Entstanden aus Simulation League Seit 2008 neues System, erstellt von vielen verschiedenen Teams Seit 2009: Spiel 5 gegen 5  10 Roboter fahren als Platzhalter in sonst simulierter Umgebung auf einem Bildschirm Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System Teil 1 Hardware Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Systemüberblick Hardware Beleuchtung IR-Sendedioden Kamera Spielfeldmonitor Next: Kamera IR-Transceiver Spielserver Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System 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 Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System Komponenten 2/2 Spielserver Standard-PC mit Linux Verwaltet das Spiel Software besteht aus vielen Einzelkomponenten SoccerServer Graphics Module Vision Tracking RobotControl Operator (Clients) Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System 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 Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System Differentialantrieb Bewegungsrichtung abhängig von Geschwindigkeit/Richtung der beiden Räder Vorwärts Rückwärts Auf Stelle drehen Rechts-Kurve Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System Teil 2a Systemsoftware Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Systemüberblick Software Graphics Module Soccer Operator Soccer Server Schiedsrichter Vision Tracking Robot Control Client KI Next: Softwarebeschreibung Server Clients Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Systemüberblick Software: Graphics Module Universelles Grafikausgabe-Tool Sorgt für Darstellung der virtuellen Welt auf dem Spielfeldmonitor Verwendet Themepacks Bildinhalt wird per XML vom Soccer Server vorgegeben Next: Vision Tracking Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Systemüberblick Software: Vision Tracking Holt Bilddaten von Kamera Erkennt Position und Ausrichtung der Roboter anhand spezieller Marker Jeder Marker hat eindeutige ID Sendet Daten in XML verpackt an Soccer Server Next: Soccer Server, Robot Control, Soccer Operator Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Systemüberblick Software: Soccer Server, Robot Control und Operator 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 Next: Clients Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System Teil 2b Agent-Software Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

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 … Winkel Next: Clients Länge Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

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) Next: Beispielclient Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

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 Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Systemüberblick Software: jMRClient – Screenshot Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System Teil 3 Die eigene KI Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

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 Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System KI ↔ jMRClient jMRClient kümmert sich um „technische“ Aspekte Verbindung zu Server Parsen der Daten Einfache Bewegungsfunktionen KI braucht nur Verhalten implementieren Minimale KI („gehe zum Ball“) benötigt nur 5 Zeilen Code Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Systemüberblick Software: jMRClient – Minimaler Agent public 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 Programm weiterlaufen lassen Dorthin fahren Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Systemüberblick Software: jMRClient – Klassen 1/2 TeamStarter Startet entsprechende Anzahl Agenten und gibt Parameter wie Server-Adresse, Team und Simulationsmodus vor AbstractBot Enthält Logik zum Start und zur Steuerung des Agenten, kümmert sich um Aktualisierung der AgentView <eigene KI> Erweitert AbstractBot und braucht nur noch boolean process(IClient, AgentView) { } implementieren Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

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 Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Beispielagenten erweitern Beispielclient fährt nur zum Ball Einfache 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“ Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System Vektormathematik Darstellung aller Objekte als Vektoren (Winkel und Distanz) Berechnung anderer Punkte mittels Vektormathematik möglich goalPole1 goalPole2 goalLine=goalPole1 - goalPole2 goalLine=goalLine/2 kick=goalPole2 + goalLine goalLine opGoalPole2 kick goalLine/2 opGoalPole1 Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

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 Ball in Schussreichweite Ball in Richtung des Vektors kicken Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System 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); Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System 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! Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

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 Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

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 Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Beispiel für Zustandsautomat  GoalKeeperBot.java Linker Pfosten Rechter Pfosten Zum Tor Verteid-igen Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Einführung in das Mixed Reality System 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 Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System

Downloads Download dieser Folien und des Beispielclients unter: http://stefankrupop.de/ Stefan Krupop, Ostfalia 2010 Einführung in das Mixed Reality System