Upload
christoph-gorgs
View
900
Download
0
Embed Size (px)
Citation preview
Projekt 3.1 Teil 2
Stefan AriansVadim EmrichChristoph GorgsMichael KlingenBen RipkensDaniel Vermaasen
PacMan
Herr van LoonHerr Sturmanns
Dozenten
20.10.2009
Gruppe 5
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
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
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
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
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
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
8 / 16
Gruppe 5
GUI
-Einleitung
-Entwurf
-Realisierung
-Probleme-Zusammenfassung-Fazit
-Ausblick in die Zukunft
• Hinzufügen von teilnehmenden NXT‘s
9 / 16
Gruppe 5
GUI
-Einleitung
-Entwurf
-Realisierung
-Probleme-Zusammenfassung-Fazit
-Ausblick in die Zukunft
• Testen der verschieden Bluetooth Verbindungen
10 / 16
Gruppe 5
GUI
-Einleitung
-Entwurf
-Realisierung
-Probleme-Zusammenfassung-Fazit
-Ausblick in die Zukunft
• Übersicht aller teilnehmenden NXT‘s
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
12 / 16
Gruppe 5
GUI
-Einleitung
-Entwurf
-Realisierung
-Probleme-Zusammenfassung-Fazit
-Ausblick in die Zukunft
• Starten des Spiels• Was passiert nun?
-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
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
-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
16 / 16
-Einleitung
-Entwurf
-Realisierung
-Probleme-Zusammenfassung-Fazit
-Ausblick in die Zukunft
Gruppe 5
Routenberechnung
Breitensuche- Kürzesten Weg
- O (|V| + |E|)
- Keine Kostenberechnung
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
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
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
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
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
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
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
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
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