SlideShare ist ein Scribd-Unternehmen logo
© itemis AG 2008 ◊ Alle Rechte vorbehalten

Modell-getriebene
Softwareentwicklung für
Lego Mindstorms NXT
Jörg Reichert
IT-Berater
30. Mai 2008
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

2
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

3
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

Plattform - Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

• Der JVM NXT Brick ist das „Gehirn“ des Lego Mindstorm
Roboters, an dessen Ports Sensoren und Motoren
angeschlossen werden können

Copyright 2008 itemis GmbH & Co. KG

4
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

Programmieralternative 1 - NXT-G

© itemis AG 2008 ◊ Alle Rechte vorbehalten

• Der Roboter lässt sich über die mitgelieferte Lego Mindstorms
NXT Entwicklungsumgebung programmieren, die dazu die vom
MIT mitentwickelte Programmiersprache NXT-G verwendet

Copyright 2008 itemis GmbH & Co. KG

5
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Programmieralternative 2 - leJOS
• leJOS ist eine kleine Java Virtual Machine, die neben der NXT
API auch Werkzeuge enthält, mit denen der Code auf den NXT
Brick übertragen werden kann.
• mit leJOS ist es möglich, den NXT mit einer Objekt-orientierten
Sprache (Java) zu programmieren, dabei werden
unterbrechende Threads, (multi-dimensionale) Arrays,
Rekursion, Synchronisation, Rekursion, Exceptions, die
elementaren Java-Typen wie z.B. float, long und String sowie
die meisten Klassen aus den java.lang, java.util und java.io
Paketen unterstützt

Copyright 2008 itemis GmbH & Co. KG

6
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

7
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

leJOS Statemachine Development Toolkit
• Prof. Dr. Frank Zimmermann von der privaten Hochschule
NORDAKADEMIE in Elmshorn hat ein leJOS-Eclipse-Plugin
entwickelt, das die Generierung von leJOS-Code aus
Zustandsautomaten-Modellen unterstützt
• da UML für die Generierung zu komplex war, wurde eine
domänenspezisches EMF Metamodell erstellt
• mit dem GMF-basierten grafischen Editor lassen sich auf Basis
des Metamodells Zustandsautomaten definieren
• mit Hilfe von openArchitectureWare können die Modelle validiert
und aus ihnen Java-Code generiert werden

Copyright 2008 itemis GmbH & Co. KG

8
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Metamodell NXT Zustandsautomat

Copyright 2008 itemis GmbH & Co. KG

9
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

leJOS Statemachine Editor

Copyright 2008 itemis GmbH & Co. KG

10
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

11
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Validieren
• da openArchitectureWare verwendet wird, könnte man mit
check Gültigkeitsregeln definieren
• vom leJOS Statemachine Development Toolkit wird allerdings
nur eine voreingestellte Modellvalidierungs-Regeln angeboten,
z.B. das Prüfen, ob eine Transition zwischen Startzustand und
einem anderen Zustand besteht, das Fehlen eines
Zustandsnamens wird nicht bemängelt (wird dann entsprechend
im Modell und im Error-View angezeigt)
• ob das Modell fehlerhaft ist, erkennt man dann höchstens an
einem fehlerhaft generierten Code
• eigene auf die Semantik des Modells bezogene Regeln kann
somit auch nicht definiert werden.

Copyright 2008 itemis GmbH & Co. KG

12
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

13
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Simulieren
• wird im Prinzip nicht unterstützt
• es besteht allerdings die Option sich Animationscode mit
generieren zu lassen
• dieser Code wird mit auf den Roboter deployt
• durch den Befehl „run and animate“ im Kontextmenü des
Statemachine Editors kann man über Bluetooth das Programm
auf dem Roboter starten und dieser sendet über Bluetooth
seinen aktuellen Zustand und durchlaufene Transitionen, die in
der modellierten Zustandsmaschine durch Hervorhebungen
visualisiert werden
• von Simulieren kann trotzdem nicht gesprochen werden, weil
das Ganze ja schon auf dem Gerät läuft und nicht in einer
eigenen Simulationsumgebung

Copyright 2008 itemis GmbH & Co. KG

14
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

15
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Generieren und Kompilieren
• Beim Speichern des Modells wird automatisch eine Java-Klasse
generiert
• Es muss dazu also nicht explizit der openArchitectureWareWorkflow angestoßen werden.
• Wenn man für das Eclipse-Projekt den automatischen Build
eingestellt, wird die generierte Java-Datei auch gleich in
Binärcode übersetzt.
• (Syntaktische) Fehler im Java-Code zeigt die Eclipse IDE an.
• Da einem Java-Projekt die leJOS Nature verliehen werden
kann, werden über die Nature die benötigten leJOS und
Nordakademie-Bibliotheken in den Klassenpfad aufgenommen.
• Über die Eclipse-Preferences wird der Pfad zum leJOSInstallationsordner angegeben.

Copyright 2008 itemis GmbH & Co. KG

16
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

17
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

Deployen

© itemis AG 2008 ◊ Alle Rechte vorbehalten

• Das leJOS Statemachine Development Toolkit integriert den
Upload-Befehl in das Kontextmenü der generierten JavaKlasse.
• Die Verbindung zum Roboter lässt sich über die EclipsePreferences konfigurieren (USB pder Bluetooth-Verbindung)
• Bisheriges Manko ist, dass die leJOS-Firmware noch nicht mit
dem Plugin auf den Roboter überspielt werden kann.

Copyright 2008 itemis GmbH & Co. KG

18
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

19
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Debuggen (1)
• Gerätedebugging wird nicht unterstützt
• Die leJOS-Bibliotheken enthalten Klassen für das Debuggen.
Diese müssten dann aber direkt im Code verwendet werden.
• Die Debugausgabe auf dem Display des NXT-Bricks ist meist
wenig geeignet (wenig Platz oder dann eine spezielle
Debugformatausgabe).
• Eine weitere Alternative wäre, Nachrichten vom Roboter via
Bluetooth zu erhalten. Diese Funktion ist aber eine Leistung der
leJOS-Bibliotheken und kann nicht explizit modelliert werden.

Copyright 2008 itemis GmbH & Co. KG

20
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Debuggen (2)

Copyright 2008 itemis GmbH & Co. KG

21
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

22
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Werkzeug-Integration (1)
• Es werden Eclipse als Integrations- und Entwicklungsplattform,
leJOS als Java-Betriebssystem und Entwicklungssprache für
den NXT-Roboter sowie eine Abwandlung des leJOS-EclipsePlugins (das um die Unterstützung von Zustandsmaschinen
bzw. der Modellierung an sich erweitert worden ist) verwendet.
• Zudem ist die Kommunikation zum Roboter via USB oder
Bluetooth konfigurierbar.
• Der Pfad zum leJOS Installationsordner lässt sich angeben. Das
Hochladen des Codes ist über das Kontextmenü der JavaKlasse möglich.
• Die entsprechenden Funktionen im Kontextmenü des
Statechart-Editors selbst gehen nur für Bluetooth-Verbindung.

Copyright 2008 itemis GmbH & Co. KG

23
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Werkzeug-Integration (2)
• Die Verwendung des Generator-Frameworks
openArchitectureWare ist vollkommen transparent.
• Einem Java-Projekt, dass das Toolkit verwenden soll, muss
einfach nur die leJOS-Nature gesetzt werden.
• Dadurch werden die benötigte Ordnerstruktur im Projekt
angelegt, die gebrauchten Bibliotheken werden in den
Klassenpfad aufgenommen und die Tool-spezifischen
Funktionen als Kontextmenüeintrag für die entsprechenden
Dateien aufgenommen.

Copyright 2008 itemis GmbH & Co. KG

24
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Agenda
•
•
•
•
•
•
•
•
•

Plattform
Modellieren
Validieren
Simulieren
Generieren
Deployen
Debuggen
Werkzeug-Integration
Bewertung

Copyright 2008 itemis GmbH & Co. KG

25
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Bewertung (1)
• Durch die Verwendung von grafischen Modellen und speziell
der Notationsform Zustandsautomat können die Abläufe im
Verhalten des Roboters leicht verständlich visuell dargestellt
werden.
• Damit wird die Domäne „Zustandsmaschine“ (geschlossenes
System mit inneren Zuständen, das über eingehende Ereignisse
nach definierten Regeln seinen Zustand wechseln kann)
abgedeckt
• Problem ist die Einbettung von komplizierten Plattform-Code in
das Zustandsdiagramm, dazu muss man die Plattform sehr gut
kennen, die Editierung im Diagramm ist nicht sehr bequem
• durch die Einbettung des Codes in das Zustandsdiagramm ist
das Abstraktionsniveau nicht sehr hoch
• keine Unterstützung von Annotationen

Copyright 2008 itemis GmbH & Co. KG

26
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

Bewertung (2)

© itemis AG 2008 ◊ Alle Rechte vorbehalten

• auch wenn es bei Betrachtung des Metamodells möglich
scheint, können keinen eingebetteten Statemachines modelliert
werden
• damit ist keine Modularisierung über mehreren
Zustandsmaschinen oder gar über mehrere Diagramme möglich

Copyright 2008 itemis GmbH & Co. KG

27
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

Beispiele (1)
• Welcome
• Einfache Ausgabe von „Hallo Welt“ auf dem Display

• Bumper

© itemis AG 2008 ◊ Alle Rechte vorbehalten

• Nutzung des Tast-Sensors
• Funktion: beim Anstoßen auf ein Hindernis fährt der Roboter
zurück, dreht sich um 90° und fährt weiter bis er auf ein anderes
Hindernis stößt; bei 4 Richtungsänderungen bricht das Programm
ab

• LineFollower
• Nutzung des Licht-Sensors
• Funktion: Roboter folgt einer schwarzen Linie, bei weißem
Untergrund dreht sich der Roboter um die eigene Achse, bis er
wieder schwarzen Untergrund erkennt

Copyright 2008 itemis GmbH & Co. KG

28
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Beispiele (2) - Demonstration „Drive on line“

Copyright 2008 itemis GmbH & Co. KG

29
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

Beispiele (3)
• CatChaser
• Nutzung des Ultraschall-Sensors
• Funktion: Roboter erkennt über Ultraschall einen Luftballon und
fährt auf diesen zu

© itemis AG 2008 ◊ Alle Rechte vorbehalten

• Dog
• Nutzung des Lautsprecher-Sensors
• Funktion: durch Zuruf von „Links“ oder „Rechts“ ändert der Roboter
entsprechend seine Fahrrichtung – der Roboter unterscheidet
dabei von hellen Tönen (liiinks) oder tiefen Tönen (reeechts)

Copyright 2008 itemis GmbH & Co. KG

30
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Beispiele (4) - Demonstration „Cat chaser“

Copyright 2008 itemis GmbH & Co. KG

31
Modell-getriebene Softwareentwicklung
für Lego Mindstorms NXT

© itemis AG 2008 ◊ Alle Rechte vorbehalten

Quellen
• Prof. Dr. Frank Zimmermann: Modellgetriebene
Softwareentwicklung für Lego Mindstorms NXT, URL:
http://www.nordakademie.de/fileadmin/downloads/Arbeitspapier
e/AP_2008_01.pdf
• Prof. Dr. Frank Zimmermann: Benutzerhandbuch leJOS
Statemachine Toolkit, URL:
http://www.nordakademie.de/fileadmin/downloads/Arbeitspapier
e/AP_2008_02.pdf
• Jeff: Line Follower NXT-G Program, URL:
http://home.earthlink.net/
%7Exaos69/NXT/Line_Follower/Line_Follower.html
• leJOS, URL: http://lejos.sourceforge.net/
• Lego Mindstorms NXT, URL: http://mindstorms.lego.com/

Copyright 2008 itemis GmbH & Co. KG

32
© itemis AG 2008 ◊ Alle Rechte vorbehalten

Vielen Dank für Ihre
Aufmerksamkeit!
Jörg Reichert
IT-Berater
30. Mai 2008

Weitere ähnliche Inhalte

Andere mochten auch

Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"
joergreichert
 
Using JIRA and Confluence to support ITIL like processes
Using JIRA and Confluence to support ITIL like processesUsing JIRA and Confluence to support ITIL like processes
Using JIRA and Confluence to support ITIL like processes
joergreichert
 
MOOCs
MOOCsMOOCs
Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08
joergreichert
 
Service Cloud für Fortgeschrittene – Die Roadmap für 2012
Service Cloud für Fortgeschrittene – Die Roadmap für 2012Service Cloud für Fortgeschrittene – Die Roadmap für 2012
Service Cloud für Fortgeschrittene – Die Roadmap für 2012
Salesforce Deutschland
 
Model-Driven Software Development 2.0
Model-Driven Software Development 2.0Model-Driven Software Development 2.0
Model-Driven Software Development 2.0
Etienne Juliot
 
Israel redefining innovation at International CES 2015
Israel redefining innovation at International CES 2015Israel redefining innovation at International CES 2015
Israel redefining innovation at International CES 2015
FSJU AUJF
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile ServicesJan Hentschel
 
Datameer
DatameerDatameer
Datameer
Chris Morrison
 
Model Driven Software Development - Data Model Evolution
Model Driven Software Development - Data Model EvolutionModel Driven Software Development - Data Model Evolution
Model Driven Software Development - Data Model Evolution
Sander Vermolen
 
iPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhoneiPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhone
Heiko Behrens
 
IN4308 1
IN4308 1IN4308 1
IN4308 1
Eelco Visser
 
Getting Started with Big Data for Business Managers
Getting Started with Big Data for Business ManagersGetting Started with Big Data for Business Managers
Getting Started with Big Data for Business Managers
Datameer
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
fntnhd
 
APEX 5.0, und sonst?
APEX 5.0, und sonst?APEX 5.0, und sonst?
APEX 5.0, und sonst?
Niels de Bruijn
 
Schatten IT erfolgreich bekämpfen
Schatten IT erfolgreich bekämpfenSchatten IT erfolgreich bekämpfen
Schatten IT erfolgreich bekämpfen
Niels de Bruijn
 
ET Marketing Cloud - Erfolgreich in B2B und B2C mit der Salesforce ExactTarge...
ET Marketing Cloud - Erfolgreich in B2B und B2C mit der Salesforce ExactTarge...ET Marketing Cloud - Erfolgreich in B2B und B2C mit der Salesforce ExactTarge...
ET Marketing Cloud - Erfolgreich in B2B und B2C mit der Salesforce ExactTarge...
Salesforce Deutschland
 
Analyzing Unstructured Data in Hadoop Webinar
Analyzing Unstructured Data in Hadoop WebinarAnalyzing Unstructured Data in Hadoop Webinar
Analyzing Unstructured Data in Hadoop Webinar
Datameer
 

Andere mochten auch (18)

Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"
 
Using JIRA and Confluence to support ITIL like processes
Using JIRA and Confluence to support ITIL like processesUsing JIRA and Confluence to support ITIL like processes
Using JIRA and Confluence to support ITIL like processes
 
MOOCs
MOOCsMOOCs
MOOCs
 
Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08
 
Service Cloud für Fortgeschrittene – Die Roadmap für 2012
Service Cloud für Fortgeschrittene – Die Roadmap für 2012Service Cloud für Fortgeschrittene – Die Roadmap für 2012
Service Cloud für Fortgeschrittene – Die Roadmap für 2012
 
Model-Driven Software Development 2.0
Model-Driven Software Development 2.0Model-Driven Software Development 2.0
Model-Driven Software Development 2.0
 
Israel redefining innovation at International CES 2015
Israel redefining innovation at International CES 2015Israel redefining innovation at International CES 2015
Israel redefining innovation at International CES 2015
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile Services
 
Datameer
DatameerDatameer
Datameer
 
Model Driven Software Development - Data Model Evolution
Model Driven Software Development - Data Model EvolutionModel Driven Software Development - Data Model Evolution
Model Driven Software Development - Data Model Evolution
 
iPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhoneiPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhone
 
IN4308 1
IN4308 1IN4308 1
IN4308 1
 
Getting Started with Big Data for Business Managers
Getting Started with Big Data for Business ManagersGetting Started with Big Data for Business Managers
Getting Started with Big Data for Business Managers
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
 
APEX 5.0, und sonst?
APEX 5.0, und sonst?APEX 5.0, und sonst?
APEX 5.0, und sonst?
 
Schatten IT erfolgreich bekämpfen
Schatten IT erfolgreich bekämpfenSchatten IT erfolgreich bekämpfen
Schatten IT erfolgreich bekämpfen
 
ET Marketing Cloud - Erfolgreich in B2B und B2C mit der Salesforce ExactTarge...
ET Marketing Cloud - Erfolgreich in B2B und B2C mit der Salesforce ExactTarge...ET Marketing Cloud - Erfolgreich in B2B und B2C mit der Salesforce ExactTarge...
ET Marketing Cloud - Erfolgreich in B2B und B2C mit der Salesforce ExactTarge...
 
Analyzing Unstructured Data in Hadoop Webinar
Analyzing Unstructured Data in Hadoop WebinarAnalyzing Unstructured Data in Hadoop Webinar
Analyzing Unstructured Data in Hadoop Webinar
 

Ähnlich wie Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT

.NET Gadgeteer // msg@dnc12
.NET Gadgeteer // msg@dnc12.NET Gadgeteer // msg@dnc12
.NET Gadgeteer // msg@dnc12
Holger Wendel
 
.NET Gadgeteer
.NET Gadgeteer.NET Gadgeteer
.NET Gadgeteer
Holger Wendel
 
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
André Krämer
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Andreas Wissel
 
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Gregor Biswanger
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
Christian Giesswein
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
Ulrich Krause
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
GWAVA
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Gregor Biswanger
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
Fabian Lange
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
Ulrich Krause
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
Thorsten Kamann
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
Ralf Abramowitsch
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systemerdmeyer
 
Compilers Everywhere
Compilers EverywhereCompilers Everywhere
Compilers Everywhere
berndmueller
 
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Nico Orschel
 
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
Gordon Breuer
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
Nico Orschel
 

Ähnlich wie Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT (20)

.NET Gadgeteer // msg@dnc12
.NET Gadgeteer // msg@dnc12.NET Gadgeteer // msg@dnc12
.NET Gadgeteer // msg@dnc12
 
.NET Gadgeteer
.NET Gadgeteer.NET Gadgeteer
.NET Gadgeteer
 
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systeme
 
Compilers Everywhere
Compilers EverywhereCompilers Everywhere
Compilers Everywhere
 
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
 
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 

Mehr von joergreichert

Open Knowledge Lab (OKLab) Leipzig - 2024 Update
Open Knowledge Lab (OKLab) Leipzig - 2024 UpdateOpen Knowledge Lab (OKLab) Leipzig - 2024 Update
Open Knowledge Lab (OKLab) Leipzig - 2024 Update
joergreichert
 
OKLab Leipzig - 2023 Update
OKLab Leipzig - 2023 UpdateOKLab Leipzig - 2023 Update
OKLab Leipzig - 2023 Update
joergreichert
 
SDGs und wo sind die Daten?
SDGs und wo sind die Daten?SDGs und wo sind die Daten?
SDGs und wo sind die Daten?
joergreichert
 
Gieß a bit more the Bäume
Gieß a bit more the BäumeGieß a bit more the Bäume
Gieß a bit more the Bäume
joergreichert
 
OKLab Leipzig 2022
OKLab Leipzig 2022OKLab Leipzig 2022
OKLab Leipzig 2022
joergreichert
 
FAIRe Sensordaten
FAIRe SensordatenFAIRe Sensordaten
FAIRe Sensordaten
joergreichert
 
OKLab Leipzig 2021
OKLab Leipzig 2021OKLab Leipzig 2021
OKLab Leipzig 2021
joergreichert
 
Leipzig Giesst (Dezember 2020)
Leipzig Giesst (Dezember 2020)Leipzig Giesst (Dezember 2020)
Leipzig Giesst (Dezember 2020)
joergreichert
 
Road to mauAR
Road to mauARRoad to mauAR
Road to mauAR
joergreichert
 
OKLab Leipzig - Schwerpunkt Mobilität
OKLab Leipzig - Schwerpunkt MobilitätOKLab Leipzig - Schwerpunkt Mobilität
OKLab Leipzig - Schwerpunkt Mobilität
joergreichert
 
Die Stadt als Schule der Demokratie
Die Stadt als Schule der DemokratieDie Stadt als Schule der Demokratie
Die Stadt als Schule der Demokratie
joergreichert
 
OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)
joergreichert
 
A Pattern Language - Patterns for Javascript
A Pattern Language - Patterns for JavascriptA Pattern Language - Patterns for Javascript
A Pattern Language - Patterns for Javascript
joergreichert
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascript
joergreichert
 
damals.in/leipzig
damals.in/leipzigdamals.in/leipzig
damals.in/leipzig
joergreichert
 
OkLab Leipzig (2018 Update)
OkLab Leipzig (2018 Update)OkLab Leipzig (2018 Update)
OkLab Leipzig (2018 Update)
joergreichert
 

Mehr von joergreichert (16)

Open Knowledge Lab (OKLab) Leipzig - 2024 Update
Open Knowledge Lab (OKLab) Leipzig - 2024 UpdateOpen Knowledge Lab (OKLab) Leipzig - 2024 Update
Open Knowledge Lab (OKLab) Leipzig - 2024 Update
 
OKLab Leipzig - 2023 Update
OKLab Leipzig - 2023 UpdateOKLab Leipzig - 2023 Update
OKLab Leipzig - 2023 Update
 
SDGs und wo sind die Daten?
SDGs und wo sind die Daten?SDGs und wo sind die Daten?
SDGs und wo sind die Daten?
 
Gieß a bit more the Bäume
Gieß a bit more the BäumeGieß a bit more the Bäume
Gieß a bit more the Bäume
 
OKLab Leipzig 2022
OKLab Leipzig 2022OKLab Leipzig 2022
OKLab Leipzig 2022
 
FAIRe Sensordaten
FAIRe SensordatenFAIRe Sensordaten
FAIRe Sensordaten
 
OKLab Leipzig 2021
OKLab Leipzig 2021OKLab Leipzig 2021
OKLab Leipzig 2021
 
Leipzig Giesst (Dezember 2020)
Leipzig Giesst (Dezember 2020)Leipzig Giesst (Dezember 2020)
Leipzig Giesst (Dezember 2020)
 
Road to mauAR
Road to mauARRoad to mauAR
Road to mauAR
 
OKLab Leipzig - Schwerpunkt Mobilität
OKLab Leipzig - Schwerpunkt MobilitätOKLab Leipzig - Schwerpunkt Mobilität
OKLab Leipzig - Schwerpunkt Mobilität
 
Die Stadt als Schule der Demokratie
Die Stadt als Schule der DemokratieDie Stadt als Schule der Demokratie
Die Stadt als Schule der Demokratie
 
OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)
 
A Pattern Language - Patterns for Javascript
A Pattern Language - Patterns for JavascriptA Pattern Language - Patterns for Javascript
A Pattern Language - Patterns for Javascript
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascript
 
damals.in/leipzig
damals.in/leipzigdamals.in/leipzig
damals.in/leipzig
 
OkLab Leipzig (2018 Update)
OkLab Leipzig (2018 Update)OkLab Leipzig (2018 Update)
OkLab Leipzig (2018 Update)
 

Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT

  • 1. © itemis AG 2008 ◊ Alle Rechte vorbehalten Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT Jörg Reichert IT-Berater 30. Mai 2008
  • 2. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 2
  • 3. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 3
  • 4. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT Plattform - Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten • Der JVM NXT Brick ist das „Gehirn“ des Lego Mindstorm Roboters, an dessen Ports Sensoren und Motoren angeschlossen werden können Copyright 2008 itemis GmbH & Co. KG 4
  • 5. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT Programmieralternative 1 - NXT-G © itemis AG 2008 ◊ Alle Rechte vorbehalten • Der Roboter lässt sich über die mitgelieferte Lego Mindstorms NXT Entwicklungsumgebung programmieren, die dazu die vom MIT mitentwickelte Programmiersprache NXT-G verwendet Copyright 2008 itemis GmbH & Co. KG 5
  • 6. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Programmieralternative 2 - leJOS • leJOS ist eine kleine Java Virtual Machine, die neben der NXT API auch Werkzeuge enthält, mit denen der Code auf den NXT Brick übertragen werden kann. • mit leJOS ist es möglich, den NXT mit einer Objekt-orientierten Sprache (Java) zu programmieren, dabei werden unterbrechende Threads, (multi-dimensionale) Arrays, Rekursion, Synchronisation, Rekursion, Exceptions, die elementaren Java-Typen wie z.B. float, long und String sowie die meisten Klassen aus den java.lang, java.util und java.io Paketen unterstützt Copyright 2008 itemis GmbH & Co. KG 6
  • 7. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 7
  • 8. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten leJOS Statemachine Development Toolkit • Prof. Dr. Frank Zimmermann von der privaten Hochschule NORDAKADEMIE in Elmshorn hat ein leJOS-Eclipse-Plugin entwickelt, das die Generierung von leJOS-Code aus Zustandsautomaten-Modellen unterstützt • da UML für die Generierung zu komplex war, wurde eine domänenspezisches EMF Metamodell erstellt • mit dem GMF-basierten grafischen Editor lassen sich auf Basis des Metamodells Zustandsautomaten definieren • mit Hilfe von openArchitectureWare können die Modelle validiert und aus ihnen Java-Code generiert werden Copyright 2008 itemis GmbH & Co. KG 8
  • 9. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Metamodell NXT Zustandsautomat Copyright 2008 itemis GmbH & Co. KG 9
  • 10. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten leJOS Statemachine Editor Copyright 2008 itemis GmbH & Co. KG 10
  • 11. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 11
  • 12. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Validieren • da openArchitectureWare verwendet wird, könnte man mit check Gültigkeitsregeln definieren • vom leJOS Statemachine Development Toolkit wird allerdings nur eine voreingestellte Modellvalidierungs-Regeln angeboten, z.B. das Prüfen, ob eine Transition zwischen Startzustand und einem anderen Zustand besteht, das Fehlen eines Zustandsnamens wird nicht bemängelt (wird dann entsprechend im Modell und im Error-View angezeigt) • ob das Modell fehlerhaft ist, erkennt man dann höchstens an einem fehlerhaft generierten Code • eigene auf die Semantik des Modells bezogene Regeln kann somit auch nicht definiert werden. Copyright 2008 itemis GmbH & Co. KG 12
  • 13. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 13
  • 14. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Simulieren • wird im Prinzip nicht unterstützt • es besteht allerdings die Option sich Animationscode mit generieren zu lassen • dieser Code wird mit auf den Roboter deployt • durch den Befehl „run and animate“ im Kontextmenü des Statemachine Editors kann man über Bluetooth das Programm auf dem Roboter starten und dieser sendet über Bluetooth seinen aktuellen Zustand und durchlaufene Transitionen, die in der modellierten Zustandsmaschine durch Hervorhebungen visualisiert werden • von Simulieren kann trotzdem nicht gesprochen werden, weil das Ganze ja schon auf dem Gerät läuft und nicht in einer eigenen Simulationsumgebung Copyright 2008 itemis GmbH & Co. KG 14
  • 15. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 15
  • 16. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Generieren und Kompilieren • Beim Speichern des Modells wird automatisch eine Java-Klasse generiert • Es muss dazu also nicht explizit der openArchitectureWareWorkflow angestoßen werden. • Wenn man für das Eclipse-Projekt den automatischen Build eingestellt, wird die generierte Java-Datei auch gleich in Binärcode übersetzt. • (Syntaktische) Fehler im Java-Code zeigt die Eclipse IDE an. • Da einem Java-Projekt die leJOS Nature verliehen werden kann, werden über die Nature die benötigten leJOS und Nordakademie-Bibliotheken in den Klassenpfad aufgenommen. • Über die Eclipse-Preferences wird der Pfad zum leJOSInstallationsordner angegeben. Copyright 2008 itemis GmbH & Co. KG 16
  • 17. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 17
  • 18. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT Deployen © itemis AG 2008 ◊ Alle Rechte vorbehalten • Das leJOS Statemachine Development Toolkit integriert den Upload-Befehl in das Kontextmenü der generierten JavaKlasse. • Die Verbindung zum Roboter lässt sich über die EclipsePreferences konfigurieren (USB pder Bluetooth-Verbindung) • Bisheriges Manko ist, dass die leJOS-Firmware noch nicht mit dem Plugin auf den Roboter überspielt werden kann. Copyright 2008 itemis GmbH & Co. KG 18
  • 19. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 19
  • 20. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Debuggen (1) • Gerätedebugging wird nicht unterstützt • Die leJOS-Bibliotheken enthalten Klassen für das Debuggen. Diese müssten dann aber direkt im Code verwendet werden. • Die Debugausgabe auf dem Display des NXT-Bricks ist meist wenig geeignet (wenig Platz oder dann eine spezielle Debugformatausgabe). • Eine weitere Alternative wäre, Nachrichten vom Roboter via Bluetooth zu erhalten. Diese Funktion ist aber eine Leistung der leJOS-Bibliotheken und kann nicht explizit modelliert werden. Copyright 2008 itemis GmbH & Co. KG 20
  • 21. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Debuggen (2) Copyright 2008 itemis GmbH & Co. KG 21
  • 22. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 22
  • 23. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Werkzeug-Integration (1) • Es werden Eclipse als Integrations- und Entwicklungsplattform, leJOS als Java-Betriebssystem und Entwicklungssprache für den NXT-Roboter sowie eine Abwandlung des leJOS-EclipsePlugins (das um die Unterstützung von Zustandsmaschinen bzw. der Modellierung an sich erweitert worden ist) verwendet. • Zudem ist die Kommunikation zum Roboter via USB oder Bluetooth konfigurierbar. • Der Pfad zum leJOS Installationsordner lässt sich angeben. Das Hochladen des Codes ist über das Kontextmenü der JavaKlasse möglich. • Die entsprechenden Funktionen im Kontextmenü des Statechart-Editors selbst gehen nur für Bluetooth-Verbindung. Copyright 2008 itemis GmbH & Co. KG 23
  • 24. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Werkzeug-Integration (2) • Die Verwendung des Generator-Frameworks openArchitectureWare ist vollkommen transparent. • Einem Java-Projekt, dass das Toolkit verwenden soll, muss einfach nur die leJOS-Nature gesetzt werden. • Dadurch werden die benötigte Ordnerstruktur im Projekt angelegt, die gebrauchten Bibliotheken werden in den Klassenpfad aufgenommen und die Tool-spezifischen Funktionen als Kontextmenüeintrag für die entsprechenden Dateien aufgenommen. Copyright 2008 itemis GmbH & Co. KG 24
  • 25. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Agenda • • • • • • • • • Plattform Modellieren Validieren Simulieren Generieren Deployen Debuggen Werkzeug-Integration Bewertung Copyright 2008 itemis GmbH & Co. KG 25
  • 26. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Bewertung (1) • Durch die Verwendung von grafischen Modellen und speziell der Notationsform Zustandsautomat können die Abläufe im Verhalten des Roboters leicht verständlich visuell dargestellt werden. • Damit wird die Domäne „Zustandsmaschine“ (geschlossenes System mit inneren Zuständen, das über eingehende Ereignisse nach definierten Regeln seinen Zustand wechseln kann) abgedeckt • Problem ist die Einbettung von komplizierten Plattform-Code in das Zustandsdiagramm, dazu muss man die Plattform sehr gut kennen, die Editierung im Diagramm ist nicht sehr bequem • durch die Einbettung des Codes in das Zustandsdiagramm ist das Abstraktionsniveau nicht sehr hoch • keine Unterstützung von Annotationen Copyright 2008 itemis GmbH & Co. KG 26
  • 27. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT Bewertung (2) © itemis AG 2008 ◊ Alle Rechte vorbehalten • auch wenn es bei Betrachtung des Metamodells möglich scheint, können keinen eingebetteten Statemachines modelliert werden • damit ist keine Modularisierung über mehreren Zustandsmaschinen oder gar über mehrere Diagramme möglich Copyright 2008 itemis GmbH & Co. KG 27
  • 28. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT Beispiele (1) • Welcome • Einfache Ausgabe von „Hallo Welt“ auf dem Display • Bumper © itemis AG 2008 ◊ Alle Rechte vorbehalten • Nutzung des Tast-Sensors • Funktion: beim Anstoßen auf ein Hindernis fährt der Roboter zurück, dreht sich um 90° und fährt weiter bis er auf ein anderes Hindernis stößt; bei 4 Richtungsänderungen bricht das Programm ab • LineFollower • Nutzung des Licht-Sensors • Funktion: Roboter folgt einer schwarzen Linie, bei weißem Untergrund dreht sich der Roboter um die eigene Achse, bis er wieder schwarzen Untergrund erkennt Copyright 2008 itemis GmbH & Co. KG 28
  • 29. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Beispiele (2) - Demonstration „Drive on line“ Copyright 2008 itemis GmbH & Co. KG 29
  • 30. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT Beispiele (3) • CatChaser • Nutzung des Ultraschall-Sensors • Funktion: Roboter erkennt über Ultraschall einen Luftballon und fährt auf diesen zu © itemis AG 2008 ◊ Alle Rechte vorbehalten • Dog • Nutzung des Lautsprecher-Sensors • Funktion: durch Zuruf von „Links“ oder „Rechts“ ändert der Roboter entsprechend seine Fahrrichtung – der Roboter unterscheidet dabei von hellen Tönen (liiinks) oder tiefen Tönen (reeechts) Copyright 2008 itemis GmbH & Co. KG 30
  • 31. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Beispiele (4) - Demonstration „Cat chaser“ Copyright 2008 itemis GmbH & Co. KG 31
  • 32. Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT © itemis AG 2008 ◊ Alle Rechte vorbehalten Quellen • Prof. Dr. Frank Zimmermann: Modellgetriebene Softwareentwicklung für Lego Mindstorms NXT, URL: http://www.nordakademie.de/fileadmin/downloads/Arbeitspapier e/AP_2008_01.pdf • Prof. Dr. Frank Zimmermann: Benutzerhandbuch leJOS Statemachine Toolkit, URL: http://www.nordakademie.de/fileadmin/downloads/Arbeitspapier e/AP_2008_02.pdf • Jeff: Line Follower NXT-G Program, URL: http://home.earthlink.net/ %7Exaos69/NXT/Line_Follower/Line_Follower.html • leJOS, URL: http://lejos.sourceforge.net/ • Lego Mindstorms NXT, URL: http://mindstorms.lego.com/ Copyright 2008 itemis GmbH & Co. KG 32
  • 33. © itemis AG 2008 ◊ Alle Rechte vorbehalten Vielen Dank für Ihre Aufmerksamkeit! Jörg Reichert IT-Berater 30. Mai 2008