25
Projekt 3.1 Teil 2 Stefan Arians Vadim Emrich Christoph Gorgs Michael Klingen Ben Ripkens Daniel Vermaasen PacMan Herr van Loon Herr Sturmanns Dozenten 20.10.2009 Gruppe 5

Präsentation PacMan Lejos

Embed Size (px)

Citation preview

Page 1: Präsentation PacMan Lejos

Projekt 3.1 Teil 2

Stefan AriansVadim EmrichChristoph GorgsMichael KlingenBen RipkensDaniel Vermaasen

PacMan

Herr van LoonHerr Sturmanns

Dozenten

20.10.2009

Gruppe 5

Page 2: Präsentation PacMan Lejos

2 / 16

Inhaltsverzeichnis

Wieso Pacman?

-Entwurf

-Einleitung

Bauen der RoboterSpielregeln festlegen

-RealisierungAufteilen der einzelnen TeilaufgabenGUI entwerfen

Fahren der Roboter realisierenBluetooth-übertragung gewährleistenRoutenberechnung

-Probleme

-Fazit-Zusammenfassung

-Ausblick in die Zukunft

Gruppe 5

-Demo

Page 3: Präsentation PacMan Lejos

3 / 16

Wieso Pacman?

Gruppe 5

- Einsetzen der Ergebnisse aus PRJ 3.1 Teil 1

- Gut zu gliedern in verschiedene Aufgabenbereiche

- Lernen neuer Techniken

- Jeder kannte das Spiel

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

- Motivation ein aufwändiges Projekt zu realisieren

Page 4: Präsentation PacMan Lejos

4 / 16

Bauen der Roboter

Alle Roboter sind gleich aufgebaut

2 Lichtsensoren nebeneinander2 Motoren für die FortbewegungKompakte Bauweise auf 20x15cm

Gruppe 5

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Page 5: Präsentation PacMan Lejos

5 / 16

RegelnPacman Beschreibung

- Pacman ist manuell steuerbar

- 2 Geister die Pacman durch das Labyrinth verfolgen

- Pacman muss so lange flüchten wie es geht

- Das Spielfeld darf nicht verlassen werden

Gruppe 5

Unser Spielfeld:

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Page 6: Präsentation PacMan Lejos

6 / 16

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Realisieren

Aufteilen der einzelnen Prozesse

- GUI entwerfen- Fahren der Roboter realisieren- Bluetooth-übertragung gewährleisten- Routenberechnung

Jeder ist für einen Teil des Projektes verantwortlichTägliche Gruppensitzungen

Page 7: Präsentation PacMan Lejos

7 / 16

Gruppe 5

GUI

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

• Liveansicht des Spiels auf dem Computer• Initialisierung des Spiels• Steuern von PacMan

Page 8: Präsentation PacMan Lejos

8 / 16

Gruppe 5

GUI

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

• Hinzufügen von teilnehmenden NXT‘s

Page 9: Präsentation PacMan Lejos

9 / 16

Gruppe 5

GUI

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

• Testen der verschieden Bluetooth Verbindungen

Page 10: Präsentation PacMan Lejos

10 / 16

Gruppe 5

GUI

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

• Übersicht aller teilnehmenden NXT‘s

Page 11: Präsentation PacMan Lejos

11 / 16

Gruppe 5

GUI

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

• Blickrichtung der einzelnen NXT‘s festsetzen• Definieren des Typs (Pacman / Ghost)• Abfangen von ungültigen Eingaben

Page 12: Präsentation PacMan Lejos

12 / 16

Gruppe 5

GUI

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

• Starten des Spiels• Was passiert nun?

Page 13: Präsentation PacMan Lejos

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Bluetooth-Übertragung

13

1. Verbindung von PC auf NXT aufbauen

2. Durch die eingehende Verbindung erstellt der NXTseine Ausgehende

3. PC sendet Spielfeld-Graphen1. Spielfeld übertragen2. Richtungen übertragen3. Startinformationen übertragen4. Spielstart senden

4. Alle warten bis Pacman ersten Zug durchläuft

5. Bei geänderter Position sendet jeder NXT seine Koordinaten

6. Pacman Koordinaten werden an die Ghosts gesendet

Page 14: Präsentation PacMan Lejos

14 / 16

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Bluetooth-Übertragung

- Erstellen eines einheitlichen Protokolls

- Übermittlung von:

KantenRichtungenStartinformationen

Übertragung ist basiert auf Integer

- Umwandlung in Binär Code

Page 15: Präsentation PacMan Lejos

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Bluetooth-Übertragung

OutPutStream

InPutStream

Beispiele des Protokolls

Startpunkt 13

Ziel 12

Kosten 1

0000001 0001100 0001101 000

Kante

143464

15

Richtung

Richtung 1

Start12

E. Punkt 13

0001110 0001101 0001100 0000001 001

Ziel 14

236597257

Page 16: Präsentation PacMan Lejos

16 / 16

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Routenberechnung

Breitensuche- Kürzesten Weg

- O (|V| + |E|)

- Keine Kostenberechnung

Page 17: Präsentation PacMan Lejos

17 / 16

Gruppe 5

Fahren des Roboter

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Einsatz des TachoPilot

- Lichtsensoren:

- selbständige Korrektur

- während der Drehung inaktiv

- genaue 90/180° Drehungen

- genaues Abfahren der Strecke

Page 18: Präsentation PacMan Lejos

18 / 16

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Probleme

Fehlermeldung OutofMemoryError (Class 3)

Analysiertes Problem • Verarbeitung auf NXT zu speicherintensiv• Komplexer Suchalgorithmus M²*N

Lösung des Problems • Suchalgorithmus verbessert zu M + N• Interne Verarbeitung über Byte statt Integer

Page 19: Präsentation PacMan Lejos

19 / 16

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Probleme

Fehlermeldung Bluetooth Übertragung schlägt fehl

Analysiertes Problem • IOException wird von der Methode readInt() aus DataInputStream geworfen• NXT kann nur 5 Integer empfangen (Queue)

Lösung des Problems • Daten nur in 5er Blöcken senden

Page 20: Präsentation PacMan Lejos

20 / 16

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Probleme

Fehlermeldung Runtimeverzögerung – langsames agieren der NXT‘s

Analysiertes Problem •Dijkstra Algorithmus zu komplex•bis zu 2 Minuten Berechnung pro Spielzug

Lösung des Problems • Breitensuche statt Dijkstra

Page 21: Präsentation PacMan Lejos

21

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Probleme

Dauer der Spielfeld Übertragung

Bis zu 4 Informationen in einem Integer

Richtungen werden vom Roboter verarbeitet

- 6 Minuten!

1 2 1 2

1 2

3

1 2

3

Bis zu 75% optimiert!

Dann auch

Richtungsänderung!

-Jetzt: schnelle 47 Sekunden

Page 22: Präsentation PacMan Lejos

22 / 16

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Gruppe 5

Zusammenfassung

- Dynamisches Spielfeld

- Einsatz von Multithreading

- Unbegrenzte Anzahl Ghosts einsetzbar

- Ansicht auch über die GUI

- Komplett über den PC konfigurierbar

- Roboter können das Spielfeld nicht verlassen

- Höherer Spielspaß als beim Original

Page 23: Präsentation PacMan Lejos

23 / 16

Gruppe 5

Team-Fazit

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

- Erfolgreiches Projekt

- Lernen vieler neuer Methoden und Techniken

- Embedded Systems haben Grenzen

- Projekt unterschätzt

- Gute Teamarbeit

- Gutes Engagement innerhalb der Gruppe

- Arbeiten unter hohem Zeitdruck, viel Arbeit außerhalb der Fontys

- Gegenseite Motivation

Page 24: Präsentation PacMan Lejos

24 / 16

Gruppe 5

Ausblick in die Zukunft

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Wir haben das Projekt gestartet – Wer macht weiter?

-Lade den Sourcecode runter und erweiter-Spielgegenstände

- Früchte (RFID-Chips einsetzen)- Power Pellet (Pacman jagt Geister)

- Punktvergabe- HighScores- multiple Pacman‘s?- multiple Level ? - automatische Maperkennung- Soundunterstützung

http://prj31-lego-mindstorms-group5.googlecode.com

Page 25: Präsentation PacMan Lejos

25 / 16

Gruppe 5

Noch Fragen?

-Einleitung

-Entwurf

-Realisierung

-Probleme-Zusammenfassung-Fazit

-Ausblick in die Zukunft

Mach weiter – lad uns zum Spielen ein:

http://prj31-lego-mindstorms-group5.googlecode.com