230 likes | 459 Views
Projekt 3.1. LEGO 20. Oktober 2009 Matthias 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. Einleitung
E N D
Projekt 3.1 LEGO 20. Oktober 2009 Matthias 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 Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Einleitung Hauptbestandteile 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 Einleitung Aufgaben Vorbereitungsphase Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Aufgaben Die Grundlage: Lego Mindstorms NXT Projekt 3.1 Einleitung Aufgaben RoboCup Turnier Slot Machine Vorbereitungsphase Realisierung Fazit Display Motoren Sensoren Software Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Aufgaben Das RoboCup Turnier • Verteidiger • autonomes Verhalten • einzusetzen sind: • Druck-, Licht, Ultraschallsensoren • Motoren • Display • Angreifer • Bluetooth gesteuert über UI Projekt 3.1 Einleitung Aufgaben RoboCup Turnier Slot Machine Vorbereitungsphase Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Aufgaben Unser einarmiger Bandit • drei NXTs kommunizieren über Bluetooth miteinander • zusammen erfüllen sie eine Aufgabe aus dem realen Leben Projekt 3.1 Einleitung Aufgaben RoboCup Turnier Slot Machine Vorbereitungsphase Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Vorbereitungsphase Das Lejos API Wichtigste 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 Einleitung Aufgaben Vorbereitungsphase Lejos API Tyson Slot Machine Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Vorbereitungsphase Tyson: Analyse Einsatz 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 Einleitung Aufgaben Vorbereitungsphase Lejos API Tyson Analyse Entwurf Slot Machine Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Vorbereitungsphase Tyson: Entwurf Erste Skizzen Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Lejos API Tyson Analyse Entwurf Slot Machine Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Vorbereitungsphase Tyson: Entwurf Remote Control GUI Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Lejos API Tyson Analyse Entwurf Slot Machine Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Vorbereitungsphase Tyson: Entwurf Verteidigungsverhalten im Zustandsdiagramm (vereinfacht) Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Lejos API Tyson Analyse Entwurf Slot Machine Realisierung Fazit Linie erkannt DRIVE FORWARD DRIVE BACKWARD Dose berührt Dose erkannt ROTATE RIGHT GRAB Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Vorbereitungsphase Slot Machine: Analyse Aufgabenverteilung und Prozesse Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Lejos API Tyson Slot Machine Analyse Entwurf Realisierung Fazit Protokoll Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Vorbereitungsphase Slot Machine: Entwurf Erste Skizzen Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Lejos API Tyson Slot Machine Analyse Entwurf Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Vorbereitungsphase Slot Machine: Entwurf Beispiel: Aktivitätsdiagramm des Money Controllers Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Lejos API Tyson Slot Machine Analyse Entwurf Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Realisierung 3rd Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Realisierung Probleme Qualität Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Realisierung Problem: 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 Einleitung Aufgaben Vorbereitungsphase Realisierung Probleme Qualität Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Realisierung Problem: 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 Einleitung Aufgaben Vorbereitungsphase Realisierung Probleme Qualität Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Realisierung Problem: Packages begrenzt Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Realisierung Probleme Qualität Fazit Logger Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Realisierung Problem: 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 Einleitung Aufgaben Vorbereitungsphase Realisierung Probleme Qualität Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Realisierung Softwarequalität • Lose Kopplung und hohe Kohäsion => Responsibility Driven Design • Anwendung von Patterns Abstract Factory, Strategy, Observer, … • Dokumentation aller Klassen und Methoden Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Realisierung Probleme Qualität Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Realisierung Kommunikations-Protokolle Vereinheitlichung der Kommunikation zwischen den NXTs Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Realisierung Probleme Qualität Fazit Application Protokoll Message Communication Provider Integer[] Connection Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Fazit • Model Driven Design • Gute Aufgabenverteilung • Vollständige Dokumentation • Vollständig realisierte Aufgaben • Leicht erweiterbare Applikationen • Dozent zufrieden! Projekt 3.1 Einleitung Aufgaben Vorbereitungsphase Realisierung Fazit Matthias Geritz, Luka Hale, Dennis Prieß, Konstantin Schlöttke, Thomas Weller, Max Zuchowski
Matthias Geritz, Luka Hale, ParkoJanssen, Konstantin Schlöttke, Max Zuchowski