Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Software Entwurf für den RCX von Lego Mindstorms

Ähnliche Präsentationen


Präsentation zum Thema: "Software Entwurf für den RCX von Lego Mindstorms"—  Präsentation transkript:

1 Software Entwurf für den RCX von Lego Mindstorms

2 Gliederung Einleitung Was ist ECRobot?
Beteiligte Komponenten zum Entwurf mit ECRobot Simulink S-Funktionen Real-Time-Workshop Stateflow ECRobot Praktische Erfahrungen Bewertung

3 Einleitung Das Ziel des HS war die Suche nach einem Entwicklungstool für den RCX das auf möglichst hohem Abstraktionsniveau arbeitet. Die Webrecherche erbrachte dabei 2 Kandidaten: Robolab ECRobot Robolab ist jedoch kostenpflichtig und es stand nur eine Demo zur Verfügung. Deshalb wurde mit ECRobot weiter gearbeitet.

4 Was ist ECRobot? ECRobot ist eine Erweiterungs- Komponente für Matlab.
Es bringt zusätzlich ein: Blockbibliothek für Lego in Simulink Target für den Real-Time-Workshop Makefiles zur Einbindung der Hilfskomponenten

5 Beteiligte Komponenten zum Entwurf mit ECRobot
Neben den in Matlab bereits enthaltenen Komponenten wie Simulink und dem Real-Time-Workshop sind noch etliche unabhängige Komponenten beteiligt: gMake Cygnus gcc-Compiler Dll LegOs

6 Beteiligte Komponenten zum Entwurf mit ECRobot
Komponentenüberblick

7 Simulink Simulink ist ein Software Packet zum Modellieren, Simulieren und Analysieren dynamischer Systeme. einige Features: graphische Benutzeroberfläche zum Modellieren Modelle als Blockdiagramm per Click-and-Drop zusammenbauen Abschirmung des Nutzers vor der den Blöcken innewohnenden Funktionalität (Code)

8 Simulink Bei der Modellsimulation können die Zustände und Ergebnisse problemlos mit der vollen Matlab Funktionalität ausgewertet werden. Simulationen können kontinuierlich durchlaufen werden oder auch im Schrittbetrieb Takt für Takt zum debuggen des Modells

9 Simulink Erläuterung wichtiger Elemente: Blockdiagramm Block
Blockparameter Sample Time Subsysteme Selbst erstellte Blöcke Signale Bibliotheken bedingt ausgeführte Subblöcke

10 Simulink Block Diagramm: Ein Block Diagramm ist ein bildliches Modell eines dynamischen Systems. Es besteht aus einer Reihe von Symbolen, Blöcke genannt, verbunden durch Linien die Signale repräsentieren. Jeder Block repräsentiert ein elementares dynamisches System das eine kontinuierliche/diskrete Ausgabe erzeugt. Die Linien repräsentieren Verbindungen von Blockeingängen zu Blockausgängen. Der Typ eines Blocks bestimmt die Beziehung zwischen Ein- und Ausgängen.

11 Simulink Blöcke: Blöcke repräsentieren elementare dynamische Systeme, die durch Simulink simuliert werden können. Ein Block beinhaltet einen oder mehrere Sätze von Eingaben, Zuständen und Ausgaben. Der Blockausgang ist bestimmt durch eine Funktion abhängig von Eingängen, Zuständen und Zeit.

12 Simulink Block Parameter: Die Schlüsseleigenschaften von vielen Standardblöcken sind parametrisiert um möglichst flexible Aufgabenlösung zu gewährleisten. Jeder parametrisierbare Block hat einen Block Dialog in dem die Parameter geändert werden können. Wenn Parameter als ‚tunable’ angelegt so können sie auch während einer Simulation geändert werden.

13 Simulink Sample Time: Die Sample Time muss bei diskreten Blöcken so eingestellt werden das verbundene Blöcke dieselbe besitzen. Was genau mit Sample Time gemeint ist wird später noch genauer beleuchtet.

14 Simulink Signale: Als Signale werden die Blockausgänge bezeichnet
beinhaltend Datentyp (z.B. 8 – bit), Zahlentyp (integer, real oder komplex) und Dimensionalität (Arraygröße) Die meisten Blöcke sind jedoch in den Eingangs- und Ausgangssignalen eingeschränkt

15 Simulink Bibliotheken:
die Blöcke aus den Bibliotheken können in die Modelle kopiert werden Dabei bleiben sie verbunden, weswegen Änderungen des Bibliotheksblockes auch auf den Modellblock wirken Die Modellblöcke können von der Bibliothek entkoppelt werden

16 Simulink Subsysteme: ermöglichen komplexe Systeme hierarchisch zu ordnen beliebig tief gestaffelt repräsentiert durch Subsystemblock festlegen von Ein- und Ausgängen Anlegen des Subblockdiagramms wie Blockdiagramm

17 Simulink Selbsterstellte Blöcke:
Es besteht die Möglichkeit eigene Blöcke zu erstellen. Graphisch oder über Programmierung können in Blockbibliotheken übernommen werden Unterschied zu Subsystemen, beim grafischen Erstellen, ist der Parameterdialog die Programmierung wird im Kapitel S-Funktionen genauer erläutert

18 Simulink bedingt ausführbare Subblöcke:
die Ausführung ist von einem Kontrollsignal abhängig Reaktion auf Signalflanken oder -werte

19 S-Funktionen sind eine Möglichkeit Code in sein Projekt zu integrieren
der Vorteil ist das einmal programmierte Blöcke leicht wieder verwendbar sind vor allem durch die Möglichkeit des Parametrisierung unterstützt werden dafür etliche Programmiersprachen wie C, C++, Ada oder Fortran es gibt prinzipiell 2 Arten S-Funktionen zu schreiben, als: M-File, auf der Matlab-Sprache basiert (einfacher) Mex-File, für die normalen Programmiersprachen (ausdrucksstärker)

20 S-Funktionen Betrachtungsweise eines Simulinkblockes, an der auch der Aufbau der S-Funktionen festgemacht ist:

21 S-Funktionen Dargestellt sind die einzelnen Module der S-Funktion die bei einem Simulationsschritt ausgeführt werden.

22 S-Funktionen so genannte Call-Back-Methoden repräsentieren die einzelnen Module wie sie im letzten Bild dargestellt wurden Für die S-Funktionen werden Schablonen bereitgestellt in denen die Call-Back-Methoden „nur noch“ mit Inhalt gefüllt werden müssen.

23 Real-Time-Workshop erzeugt Programme von Simulink-Entwürfen zum Prototypen, Testen und Einsetzen, von Real-Time Systemen, auf einer Vielzahl von Ziel-Plattformen er kann direkt Source Code generieren, der den Compiler enthält, Input und Output Geräte, Speicher-Modelle, Kommunikationsknoten und andere Charakteristiken die eine Applikation möglicherweise fordert

24 Real-Time-Workshop Für uns wichtige Fähigkeiten und Features des RTW sind: Simulink Code Generator: generiert automatisch C-Code aus dem Simulink-Modell Make Process: der erweiterbare make Prozess ermöglicht es ein eigenes Produktions oder Rapid Prototyping Target zu kreieren

25 Real-Time-Workshop der generierte Code ist Prozessor unabhängig
er repräsentiert das Modell exakt effizienter Code für S-Funktionen kann erzeugt werden durch Nutzung der Target Language Compiler Instruktionen (TLC Scripts genannt) und kann automatisch, mit generierten Code, integriert werden unterstützt werden folgende Compiler: unter Windows die Compiler von Borland, LCC, Microsoft Visual C/C++ und Watcom unter Linux ist als Default der cc eingestellt, der gcc wird ebenfalls unterstützt.

26 Real-Time-Workshop Entwicklungsdiagramm für Entwurfsprozess

27 Stateflow ist ein graphisches Design und Entwicklungstool zur Simulation komplexer reaktiver Systeme basierend auf der finiten Zustandsmaschinen Theorie mit dem Stateflow modelliert man den Teil des Modells der auf Ereignisse reagieren soll

28 ECRobot Das ECRobot Target wurde hauptsächlich durch das modifizieren von Code und Control Files, die der Real-Time-Workshop bereits mitbringt, erstellt. diese Files fallen in 2 Kategorien: Das Run-Time-Interface besteht aus Code der die Ausführung von generiertem Modell Code überwacht und unterstützt. Im ECRobot Target, beinhaltet das Run-Time Interface das Haupt Programm, eingebundene Geräte Treiber und Header Files die die Anbindung an den LegOS Kernel gewährleisten. Control Files. Die Code Generierung und der Build Prozess werden gesteuert durch ein angepasstes System Target Files und Template Makefiles. Die angepassten Kontroll-Files starten einen Target spezifischen Cross-Compiler und (optional) downloaden das generierte Programm ins Zielsystem.

29 ECRobot das Betriebssystem das auf dem RCX laufen muss heißt LegOS
der verwendete Compiler ist der GCC Cross-Compiler für den Hitachi h8300 Mikrocontroller zum Übertragen des LegOS und der Programme auf den RCX kommt das Tool Dll zum Einsatz da für einige der Zusatzkomponenten eine Unix-Umgebung notwendig ist kommt noch das Tool Cygnus zum Einsatz, das diese emuliert die auf dieser Seite genannten Zusatztools sind alle unabhängig vom ECRobot und frei erhältlich

30 ECRobot die ECRobot Geräte-Treiber-Blöcke sind in einer Bibliothek gesammelt (ECRobot.mdl)

31 ECRobot Das Template Makefile für das ECRobot Target ist ECRobot.tmf. Es ist eine angepasste Version des ert_unix.tmf. Die wichtigsten Anpassungen sind: Der Build Prozess ruft gmake auf, ein Make Utility das mit dem Real-Time-Workshop installiert wird. Das generierte Makefile startet den GCC Cross-Compiler für den Hitachi h8300 Mikrocontroller und spezifiziert Kommandozeilenparameter für den Compiler. Das generierte Modellfile hat den Namen model.lx. Optionell, wird der generierte Code in den RCX herunter geladen via dem dll-Utility

32 ECRobot

33 Praktische Erfahrungen
im praktischen Einsatz sind einige Hindernisse aufgetreten: das erste große Hinderniss ist die Installation: Offiziell dokumentiert sind von Mathworks 2 Arten der Installation von ECRobot. einmal eine von Hand Installation und als zweites ein Script zur automatischen Einrichtung Trotz intensiver Bemühungen waren beide Versionen nicht zum funktionieren zu bringen.

34 Praktische Erfahrungen
Die letztendlich eingesetzte Version, mit der das ECRobot getestet wurde, ist eine fertig integrierte Version die freundlichwerweise einer der Entwickler von Mathworks zur Verfügung stellte. Ursache der Installations-Probleme sind meiner Meinung nach massive Versionskonflikte verursacht durch die vielen verschiedenen Komponenten die unabhängig voneinander entwickelt werden. Den Umfang den die Einrichtung von ECRobot hat spiegelt wohl am besten die Tatsache wieder, dass das automatische Script etwa eine halbe Stunde zur Installation benötigen soll.

35 Praktische Erfahrungen
das zweite Hindernis ist die, etwas größer als angenommene, Entwicklungskomplexität: Bei der Modellierung eines Beispiels stellte sich heraus, dass es mit dem schnellen Zusammenklicken eines Modells auch nicht so weit her ist, da etliche Randbedingungen eingestellt werden müssen, die oftmals gut Versteckt in irgendwelchen Menüs stecken. Auch die Nutzung von Simulink und Stateflow bedarf einer gewissen Einarbeitung. Die allerdings im Vergleich zur Einarbeitung in eine der Programmiersprachen für den RCX geringer ist. Diese bieten dafür größeren Funktionsumfang.

36 Bewertung Die Arbeit mit Simulink und Stateflow an sich, zur Modellgenerierung, ist eine interessante Möglichkeit. für die RCX-Programmierung stehen allerdings Aufwand und Nutzen in schlechter Relation bisher hat sich keine Entwicklergemeinde des ECRobot angenommen ECRobot ist zwar kostenlos, aber für die zu Nutzende Basis Matlab trifft dies nicht zu die Programmiersprachen für den RCX, wie NQC, sind meiner Ansicht nach weitaus mächtiger im Funktionsumfang und bedürfen vermutlich nur eines gering größeren Einarbeitungsaufwandes für jemanden mit Programmiererfahrung


Herunterladen ppt "Software Entwurf für den RCX von Lego Mindstorms"

Ähnliche Präsentationen


Google-Anzeigen