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