Unbearbeitete Datei - Bitbucket FIW Student

Werbung
Programmierung eingebetteter
Systeme mit Lego Mindstorms
Softwarepraktikum SS
Jianmin Li
Informatik XI – Software für eingebettete
Systeme
Arbeitsgebiete:
 Software- und Systems-Engineering
für eingebettete Systeme
 Architekturentwurf und -evaluation
 Modellbasierte Analyse von nichtfunktionalen Eigenschaften (z.B.
Sicherheit, Zuverlässigkeit, Wartbarkeit)
 Modellbasierter Entwurf
 Formale Verifikation von Echtzeitsystemen
 Agile Methoden für eingebettete Systeme
Softwarepraktikum SS08
 Betreuer:
Jianmin Li
E-Mail: [email protected]
Tel.: 80-21156
Büro: Raum 2320 (HBau)
 http://www-i11.informatik.rwthaachen.de/index.php?id=lego_ss08
 L²P Lernraum:
-
Ankündigungen
Links (freie Javabücher, APIs, …)
Wichtige Unterlagen über das Praktikum
Anmeldung übers Campus bis zum 2008-04-18
Das Ziel des Praktikums
Roboterfußballspiel mit LEGO NXT Baukästen
 Motivation und Lernziel:
- Fachliche Kompetenz
• Eingebettete Systeme
• Bilderverarbeitung
• Echtzeit Programmierung von hardwarenahen Komponenten
mit Java und C++
• Software Engineering Methode (am 10.04.08 Prof.Lichter)
- Teamfähigkeit
Aufgabenstellung des LEGO NXT Praktikums
 Das LEGO NXT Roboter
Fußballspiel
- LEGO NXT Fußballgruppe mit
der Markierung der
verschiedenen Farben
• Ein Torwart
• Ein Angreifer
- Kamera Server System
• Kommunikation per
Bluetooth zwischen dem
Server und den Robotern
 Ziel: Wettbewerb zwischen
den Teilnehmern
Teilprojekt des LEGO Praktikums I
 1 Kamera Gruppe und 2-3 Roboter Gruppen
 Vorbereitungsaufgaben:
- Aufbau des Spielfelds (Größe, Kamera auswählen):
 Kamera Server Gruppe
- Festlegung der Spielregeln:
 LEGO Roboter Gruppe
- Kommunikationsprotokoll zwischen Kamera Server und NXT:
 LEGO Roboter Gruppen + Kamera Server Gruppe
Teilprojekt des LEGO Praktikums II
 Was können LEGO NXT Roboter machen?:
- sich in alle Richtungen bewegen können
- den Ball finden, dribbeln und möglichst viele Tore schießen
- die für ihn bestimmten Informationen von Kamera-Server
filtern. Aus diesen Informationen Bewegungsbefehle
berechnen und sie ausführen.
- …
 Was kann der Kamera Server machen?:
- Graphische Anzeige der Situation im Spielfeld
- Die Position und den Winkel von Ball und Roboter anhand
der Farbmarkierung auswerten
- per Bluetooth an die Roboter in weicher Echtzeit
Informationen übermitteln
- …
Ausstattung I
 LEGO NXT Baukasten:
- LEGO NXT
• Weissgrauer NXT Baustein
 32-bit-Arm und 8-bit AVR
 215 KB Flash RAM und 64 KB RAM
•
•
•
•
•
•
3 Servomotoren mit Rotationssensoren
2 Berührungssensoren
1 Lichtsensoren
1 Ultraschallsensor
1 Akustiksensor
Bluetooth und USB
- Link:
- http://mindstorms.lego.com/Overview/
Ausstattung II
 Entwicklungsumgebung für LEGO NXT
- leJOS + Eclipse
• leJOS (LEGO Java Operating System): Light-Version von JVM
• Eclipse : offene Entwicklungsplattform für die Codierung
leJOS
Eclipse auf dem PC
Java source code
Compiler
.java
lejosc
.class
Linker
Loader
lejos
lejosrun
.class
leJOS Library
.bin
leJOS binary
Java class files
NXJ
Java program
Java data
IR
Loader
Virtual Machine
ROM
I/O
Sensors, Motors,
LCD, Sound, IR
Ausstattung III
 Kamera (?):
- WebCam oder
- Alternative auswählen: 200-300 Euro
- 1 Laptop als Server
 Entwicklungsumgebung:
- Impresario Tool: LTI-Lib mit C++
- Microsoft Visual Studio .NET 2003
- Bluetooth C++ Bibliothek
http://www.norgesgade14.dk/bluetoothlibrary.php
- Link:
http://ltilib.sourceforge.net/doc/homepage/index.shtml
Ausstattung IV
 Werkzeuge für Dokumentation und Projektmanagement
- SVN(Tortoise)
•
•
•
•
svn://berlin.ixi.informatik.rwth-aachen.de/repos/Lego08/…
Kamera
Doc
Gruppe 1-3
- JavaDoc
- Doxygen
Organisation
 Gruppeeinteilung
- 1 Kamera Gruppe
- 2 – 3 LEGO NXT Gruppen
- pro Gruppe:
• 5 -6 Personen
• Rolleneinteilung
• ein Projektleiter
 koordiniert mit allen Gruppemitglieder und den anderen Gruppen
 die Einhaltung des Zeitplans
 die Erfüllung der gesetzten Meilensteine
• Jeder Teilnehmer einer Gruppe führt mind. zwei Rollen aus
(Anforderungsspezifikator, Architekt, Implementierter, Tester
usw.)
Organisation
 Zeitplan: 13 Termine
09.04. 2008
Vorstellung des Projekts, Gruppeeinteilung und Wahl des
Projektleiters
10.04. 2008
Vorlesung von Prof. Lichter, 14:15-15:45, am AH IV
16.04.2008
- Präsentation über Kommunikationsprotokoll, Spielfeld
und Spielregeln
- Präsentation jeder Gruppe über ihre Planung mit
Meilensteinen, die Aufteilung der Teilaufgaben sowie die
entsprechenden Teilnehmer usw.
…
Spezifikation & Realisierung:
Präsentation in 5 Minuten über den aktuellen Stand des
Teilprojektes jeder Gruppe
16.07.2008
Wettbewerbe zwischen Teilnehmern und
Abschlussbericht abzugeben
Organisation
 Scheinkriterien:
- Ein Abschlussbericht ist in Latex anzufertigen
• Gesamtkonzept, Aufteilung der Teilaufgaben innerhalb einer
Gruppe
• Zeitplanung & Meilensteine
• Spezifikation der Anforderungen des Teilprojektes
• Software Architektur des Teilprojektes (Software Module,
Schnittstellen)
• Ansätze von Methoden und Tools in der Implementierung
• Testfälle und Testergebnisse
• Bewertung der Vorgehensweise innerhalb der Gruppe,
aufgetretene Probleme, nicht realisierte Funktionalität
- Erfolgreiche Teilnahme an allen Terminen
- Vorlesung von Prof. Lichter am 10. 04. 2008, 14:15-15:45, am
AH IV
Organisation
 Zugangsdaten zu SVN Server und Laptop im
Praktikumraum
 L2P Elearning-Raum
- Impresario Tool
Herunterladen