Software Entwurf für den RCX von Lego Mindstorms

Slides:



Advertisements
Ähnliche Präsentationen
Fast Fourier Transformation
Advertisements

Programmieren im Großen von Markus Schmidt und Benno Kröger.
Einführung in die Informatik: Programmierung und Software-Entwicklung
Design by Contract with JML - Teil 2
Highlights der neuen STEP 7 Version
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Betreuerin: Kathleen Jerchel
Differentieller Stromverstärker
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
Präsentation Teil 3 Betreuungsmitteilung
Inhalte und Maßnahmen eingegeben haben,
Status OCS Installation GSI DVEE Palaver 10/2/2004 Michael Dahlinger, DVEE, GSI.
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
USE2ANT Die Umstellung von Use Makefiles zu Ant & Junit Von Isaac, Maleen und Marc.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
EDC Entwicklerforum Geoprocessing im Web 18. Juli 2013 Benjamin Proß Ein erweiterbarer WPS Client für ArcMap.
Libero: Design Creation / Verification Seminar WS04/05 Andreas Schibilla (ii4900)
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Real Options Daniel Linzmayer Real Options - Daniel Linzmayer2 Standardmodell Discounted Cash-flow allgemein üblich. Erwartete Zahlungsströme.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
Intelligente selbständige Roboter Science Fiction oder Science
Manuelle Installation von Windows XP auf Geräten mit ICH8 Chipsatz
Einleitung.
Passive Angriffe ... nicht-invasiv.
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
OOD – Object Oriented Design II
Ein Rechensystem ist ein aus Hard- und Software bestehendes System zur Speicherung und Verarbeitung von Informationen.
Ein kommando unter Windows 7
- Untersuchung von Realitätsnahen Problemen mit Funktionen
Handlingsystem zum automatischen Einsortieren von Gleitlager - Bundbuchsen Frank Schulz (Fa. Mitutoyo Messgeräte GmbH) Alexander Mehl (Fa. Trützschler.
Einführung JMeter.
Wie Programmiere ich in der Roboter-AG???
Anwendungsentwicklung. … überlegen sie mal… Wir beschäftigen uns mit dem Aufbau der Arbeitsweise und der Gestaltung von betrieblichen Informationssystemen.
Betriebliche Aufgaben effizient erfüllen
Inhalt Was ist A-Plan? Einsatzgebiete Organisation der Daten
Eine Einführung in die CD-ROM
OpenSource Loadbalancer im Vergleich zu kommerziellen systemem Thomas stahl Diplomarbeit SS 2002.
ETS4 - Was ist neu? - Wie fange ich an? - Noch Fragen?
...ich seh´es kommen !.
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Generalisierung/Spezialisierung Subtypisierung/Vererbung
Cooperation unlimited © Zühlke August 2008 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
2 Software Management SCRUM, Project Management, Quality Management, Business Analysis Innovation and Technology Management, Coaching, R&D Processes Quality.
Real Time Operating System
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
Template v5 October 12, Copyright © Infor. All Rights Reserved.
Office Business Anwendungen mit SharePoint 2010 Fabian Moritz SharePoint MVP.
Office Business Anwendungen mit SharePoint Fabian Moritz | MVP Office SharePoint Server.
Symmetrische Blockchiffren DES – der Data Encryption Standard
© All rights reserved. Zend Technologies, Inc. Jenseits von var_dump(): Debugging in ZF Jan Burkl System Engineer.
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.
Analyseprodukte numerischer Modelle
2014 Januar 2014 So Mo Di Mi Do Fr Sa So
1 GEOMETRIE Geometrie in der Technik H. Pottmann TU Wien SS 2007.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner |
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Der Erotik Kalender 2005.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
WINDOWS 2003 Server. Standart Varianten für 32 Bit: Web Edition: Unterstützt Single(1)- oder Dual(2)-Prozessor-Systeme und bis zu 2 GB RAM 32-Bit Standard.
Modellierung: MATLAB – Simulink - Stateflow
Theorie. Was ist Drupal? Content-Management-System, Open Source Software Hauptanwendung in der Organisation von Websites In PHP geschrieben und wird als.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
 Präsentation transkript:

Software Entwurf für den RCX von Lego Mindstorms

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

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.

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

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

Beteiligte Komponenten zum Entwurf mit ECRobot Komponentenüberblick

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)

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

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

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.

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.

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.

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.

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

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

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

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

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

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)

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

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

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.

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

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

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.

Real-Time-Workshop Entwicklungsdiagramm für Entwurfsprozess

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

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.

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

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

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

ECRobot

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.

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.

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.

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