Projekt 3.1
-
Upload
zachery-houston -
Category
Documents
-
view
55 -
download
3
description
Transcript of Projekt 3.1
Projekt 3.1
LEGO
20. Oktober 2009Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Inhalt
• Unsere Aufgaben• Einblick in die Analysephasen• Einblick in die Entwürfe• Einblick in die Realisierung • Fazit
• Demo 20. Oktober 2009 Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski 2
EinleitungHauptbestandteile des Projektes 3.1:Lernziele
• Mindstorms Turnierroboter bauen und mit „behavioral control“ programmieren
• Kommunikation zwischen mindestens zwei NXT Einheiten an einem selbstausgedachten Beispiel realisieren
Projekt 3.1
EinleitungAufgabenVorbereitungsphaseRealisierungFazit
20. Oktober 2009 3Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
AufgabenDie Grundlage: Lego Mindstorms NXT
Projekt 3.1
EinleitungAufgaben• RoboCup Turnier• Slot MachineVorbereitungsphaseRealisierungFazit
20. Oktober 2009 4Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Motoren
Sensoren Software
Display
AufgabenDas RoboCup Turnier• Verteidiger
– autonomes Verhalten– einzusetzen sind:
• Druck-, Licht, Ultraschallsensoren• Motoren• Display
• Angreifer– Bluetooth gesteuert
über UI
Projekt 3.1
EinleitungAufgaben• RoboCup Turnier• Slot MachineVorbereitungsphaseRealisierungFazit
20. Oktober 2009 5Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
AufgabenUnser einarmiger Bandit• drei NXTs kommunizieren über Bluetooth
miteinander
• zusammen erfüllen sieeine Aufgabe aus dem realen Leben
Projekt 3.1
EinleitungAufgaben• RoboCup Turnier• Slot MachineVorbereitungsphaseRealisierungFazit
20. Oktober 2009 6Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
VorbereitungsphaseDas Lejos APIWichtigste Klassen sind:• Motor-, LCD-, Sensorklassen• Behavior
– Grundgerüst aller Verhalten– Startpunkt und Aktion sind zu implementieren
• Arbitrator– handelt als Mediator zwischen unseren
programmierten Verhalten– startet und stoppt Verhalten
• BluetoothConnection
Projekt 3.1
EinleitungAufgabenVorbereitungsphase• Lejos API• Tyson• Slot MachineRealisierungFazit
20. Oktober 2009 7Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
VorbereitungsphaseTyson: AnalyseEinsatz der Sensoren und Motoren:• Lichtsensor verhindert Linienübertretung• Ultraschallsensor sucht Dosen (fern)• Touchsensor erkennt Dosen (nah)• Ein Motor für die Kralle• Zwei Motoren für die Räder
Projekt 3.1
EinleitungAufgabenVorbereitungsphase• Lejos API• Tyson
• Analyse• Entwurf
• Slot MachineRealisierungFazit
20. Oktober 2009 8Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Projekt 3.1
EinleitungAufgabenVorbereitungsphase• Lejos API• Tyson
• Analyse• Entwurf
• Slot MachineRealisierungFazit
20. Oktober 2009 9Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
VorbereitungsphaseTyson: EntwurfErste Skizzen
VorbereitungsphaseTyson: EntwurfRemote Control GUI
Projekt 3.1
EinleitungAufgabenVorbereitungsphase• Lejos API• Tyson
• Analyse• Entwurf
• Slot MachineRealisierungFazit
20. Oktober 2009 10Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
VorbereitungsphaseTyson: EntwurfVerteidigungsverhalten im
Zustandsdiagramm (vereinfacht)
Projekt 3.1
EinleitungAufgabenVorbereitungsphase• Lejos API• Tyson
• Analyse• Entwurf
• Slot MachineRealisierungFazit
20. Oktober 2009 11Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
DRIVE FORWARD DRIVE BACKWARD
ROTATE RIGHT GRAB
Linie erkannt
Dose berührtDose erkannt
VorbereitungsphaseSlot Machine: AnalyseAufgabenverteilung und Prozesse
Projekt 3.1
EinleitungAufgabenVorbereitungsphase• Lejos API• Tyson• Slot Machine
• Analyse• Entwurf
RealisierungFazit
20. Oktober 2009 Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski 12
Protokoll
VorbereitungsphaseSlot Machine: EntwurfErste Skizzen
Projekt 3.1
EinleitungAufgabenVorbereitungsphase• Lejos API• Tyson• Slot Machine
• Analyse• Entwurf
RealisierungFazit
20. Oktober 2009 13Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
VorbereitungsphaseSlot Machine: EntwurfBeispiel: Aktivitätsdiagramm des Money
Controllers
Projekt 3.1
EinleitungAufgabenVorbereitungsphase• Lejos API• Tyson• Slot Machine
• Analyse• Entwurf
RealisierungFazit
20. Oktober 2009 14Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Realisie
rung
Projekt 3.1
EinleitungAufgabenVorbereitungsphaseRealisierung• Probleme• QualitätFazit
20. Oktober 2009 15Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
3rd
RealisierungProblem: Firmware• NXTs werden nicht erkannt von
Computern
Lösung:• „Tyson“ ist Verteidiger und Angriff• Projekt 2: Gruppenleiterposten wurden
nach funktionierenden NXTs verteilt
Projekt 3.1
EinleitungAufgabenVorbereitungsphaseRealisierung• Probleme• QualitätFazit
20. Oktober 2009 16Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
RealisierungProblem: Packages begrenzt• Java Methoden begrenzt
– instanceof erst ab Firmware 0.85 verfügbar– Logger nicht verfügbar
• eigene Packages sind nicht importierbar
Lösung:• Implementierung äquivalenter Klassen
(z.B. ein eigener Logger)• Duplizieren von Code / ganzen Packages
Projekt 3.1
EinleitungAufgabenVorbereitungsphaseRealisierung• Probleme• QualitätFazit
20. Oktober 2009 17Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
RealisierungProblem: Packages begrenzt
Projekt 3.1
EinleitungAufgabenVorbereitungsphaseRealisierung• Probleme• QualitätFazit
20. Oktober 2009 18Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Logger
RealisierungProblem: Anzahl der NXT
Verbindungen ist begrenzt• Nur ein NXT kann mehr als eine
Bluetooth Verbindung halten
Lösung:• Implementierung eines Bluetooth Servers
zur Weiterleitung aller Nachrichten
Projekt 3.1
EinleitungAufgabenVorbereitungsphaseRealisierung• Probleme• QualitätFazit
20. Oktober 2009 19Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
RealisierungSoftwarequalität• Lose Kopplung und hohe Kohäsion
=> Responsibility Driven Design
• Anwendung von PatternsAbstract Factory, Strategy, Observer, …
• Dokumentation aller Klassen und Methoden
Projekt 3.1
EinleitungAufgabenVorbereitungsphaseRealisierung• Probleme• QualitätFazit
20. Oktober 2009 20Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
RealisierungKommunikations-ProtokolleVereinheitlichung der Kommunikation zwischen den NXTs
Projekt 3.1
EinleitungAufgabenVorbereitungsphaseRealisierung• Probleme• Qualität Fazit
20. Oktober 2009 21Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Communication Provider
Application
Message
Connection
Integer[]
Protokoll
FazitModel Driven DesignGute Aufgabenverteilung
Vollständige DokumentationVollständig realisierte Aufgaben Leicht erweiterbare Applikationen
Dozent zufrieden!
Projekt 3.1
EinleitungAufgabenVorbereitungsphaseRealisierungFazit
20. Oktober 2009 22Matthias Geritz, Luka Hale, Dennis Prieß,Konstantin Schlöttke, Thomas Weller, Max Zuchowski
25. Juni 2009 Matthias Geritz, Luka Hale, Parko Janssen, Konstantin Schlöttke, Max Zuchowski 23