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
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
2
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
Realisierung
Fazit
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
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
3
Projekt 3.1
Einleitung
Aufgaben
• RoboCup Turnier
• Slot Machine
Vorbereitungsphase
Realisierung
Fazit
Aufgaben
Die Grundlage: Lego Mindstorms NXT
Display
Motoren
Sensoren
20. Oktober 2009
Software
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
4
Projekt 3.1
Einleitung
Aufgaben
• RoboCup Turnier
• Slot Machine
Vorbereitungsphase
Realisierung
Fazit
Aufgaben
Das RoboCup Turnier
• Verteidiger
– autonomes Verhalten
– einzusetzen sind:
• Druck-, Licht, Ultraschallsensoren
• Motoren
• Display
• Angreifer
– Bluetooth gesteuert
über UI
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
5
Projekt 3.1
Einleitung
Aufgaben
• RoboCup Turnier
• Slot Machine
Vorbereitungsphase
Realisierung
Fazit
Aufgaben
Unser einarmiger Bandit
• drei NXTs kommunizieren über Bluetooth
miteinander
• zusammen erfüllen sie
eine Aufgabe aus dem
realen Leben
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
6
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
• Lejos API
• Tyson
• Slot Machine
Realisierung
Fazit
20. Oktober 2009
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
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
7
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
• Lejos API
• Tyson
• Analyse
• Entwurf
• Slot Machine
Realisierung
Fazit
20. Oktober 2009
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
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
8
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
• Lejos API
• Tyson
Vorbereitungsphase
Tyson: Entwurf
Erste Skizzen
• Analyse
• Entwurf
• Slot Machine
Realisierung
Fazit
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
9
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
• Lejos API
• Tyson
Vorbereitungsphase
Tyson: Entwurf
Remote Control GUI
• Analyse
• Entwurf
• Slot Machine
Realisierung
Fazit
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
10
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
• Lejos API
• Tyson
Vorbereitungsphase
Tyson: Entwurf
Verteidigungsverhalten im
Zustandsdiagramm (vereinfacht)
• Analyse
• Entwurf
• Slot Machine
Realisierung
Fazit
Linie erkannt
DRIVE FORWARD
DRIVE BACKWARD
Dose erkannt
ROTATE RIGHT
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
GRAB
11
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
• Lejos API
• Tyson
• Slot Machine
Vorbereitungsphase
Slot Machine: Analyse
Aufgabenverteilung und Prozesse
Protokoll
• Analyse
• Entwurf
Realisierung
Fazit
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
12
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
• Lejos API
• Tyson
• Slot Machine
Vorbereitungsphase
Slot Machine: Entwurf
Erste Skizzen
• Analyse
• Entwurf
Realisierung
Fazit
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
13
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
• Lejos API
• Tyson
• Slot Machine
Vorbereitungsphase
Slot Machine: Entwurf
Beispiel: Aktivitätsdiagramm des Money
Controllers
• Analyse
• Entwurf
Realisierung
Fazit
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
14
Projekt 3.1
3rd
Einleitung
Aufgaben
Vorbereitungsphase
Realisierung
• Probleme
• Qualität
Fazit
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
15
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
Realisierung
• Probleme
• Qualität
Fazit
Realisierung
Problem: Firmware
• NXTs werden nicht erkannt von
Computern
Lösung:
• „Tyson“ ist Verteidiger und Angriff
• Projekt 2: Gruppenleiterposten wurden
nach funktionierenden NXTs verteilt
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
16
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
Realisierung
• Probleme
• Qualität
Fazit
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
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
17
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
Realisierung
• Probleme
• Qualität
Fazit
Realisierung
Problem: Packages begrenzt
Logger
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
18
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
Realisierung
• Probleme
• Qualität
Fazit
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
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
19
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
Realisierung
• Probleme
• Qualität
Fazit
Realisierung
Softwarequalität
• Lose Kopplung und hohe Kohäsion
=> Responsibility Driven Design
• Anwendung von Patterns
Abstract Factory, Strategy, Observer, …
• Dokumentation aller Klassen und
Methoden
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
20
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
Realisierung
• Probleme
• Qualität
Fazit
Realisierung
Kommunikations-Protokolle
Vereinheitlichung der Kommunikation zwischen den NXTs
Application
Protokoll
Message
Communication Provider
Integer[]
Connection
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
21
Projekt 3.1
Einleitung
Aufgaben
Vorbereitungsphase
Realisierung
Fazit
Fazit
 Model Driven Design
 Gute Aufgabenverteilung
 Vollständige Dokumentation
 Vollständig realisierte Aufgaben
 Leicht erweiterbare Applikationen
Dozent zufrieden!
20. Oktober 2009
Matthias Geritz, Luka Hale, Dennis Prieß,
Konstantin Schlöttke, Thomas Weller, Max Zuchowski
22
25. Juni 2009
Matthias Geritz, Luka Hale, Parko Janssen,
Konstantin Schlöttke, Max Zuchowski
23

Realisierung