STUTTGARTER BEITRÄGE ZUR PRODUKTIONSFORSCHUNG
ALEXANDER BUBECK
Modellbasierte Softwareentwicklung für mobile
Manipulatoren im industriellen Einsatz
Alexander Bubeck
Modellbasierte Softwareentwicklung für mobile
Manipulatoren im industriellen Einsatz
STUTTGARTER BEITRÄGE ZUR PRODUKTIONSFORSCHUNG BAND 54
Herausgeber:
Univ.-Prof. Dr.-Ing. Thomas Bauernhansl
Univ.-Prof. Dr.-Ing. Dr. h.c. mult. Alexander Verl
Univ.-Prof. a. D. Dr.-Ing. Prof. E.h. Dr.-Ing. E.h. Dr. h.c. mult. Engelbert Westkämper
FRAUNHOFER VERLAG
Kontaktadresse:
Fraunhofer-Institut für Produktionstechnik und Automatisierung IPA, Stuttgart
Nobelstraße 12, 70569 Stuttgart
Telefon 0711 9 70-00, Telefax 0711 9 70-13 99
info@ipa.fraunhofer.de, www.ipa.fraunhofer.de
STUTTGARTER BEITRÄGE ZUR PRODUKTIONSFORSCHUNG
Herausgeber:
Univ.-Prof. Dr.-Ing. Thomas Bauernhansl
Univ.-Prof. Dr.-Ing. Dr. h.c. mult. Alexander Verl
Univ.-Prof. a. D. Dr.-Ing. Prof. E.h. Dr.-Ing. E.h. Dr. h.c. mult. Engelbert Westkämper
Fraunhofer-Institut für Produktionstechnik und Automatisierung IPA, Stuttgart
Institut für Industrielle Fertigung und Fabrikbetrieb (IFF) der Universität Stuttgart
Institut für Steuerungstechnik der Werkzeugmaschinen und Fertigungseinrichtungen (ISW)
der Universität Stuttgart
Titelbild: © Fraunhofer IPA
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;
detaillierte bibliografische Daten sind im Internet über www.dnb.de abrufbar.
ISSN: 2195-2892
ISBN (Print): 978-3-8396-1033-6
D 93
Zugl.: Stuttgart, Univ., Diss., 2015
Druck: Mediendienstleistungen des Fraunhofer-Informationszentrum Raum und Bau IRB, Stuttgart
Für den Druck des Buches wurde chlor- und säurefreies Papier verwendet.
© by FRAUNHOFER VERLAG, 2016
Fraunhofer-Informationszentrum Raum und Bau IRB
Postfach 80 04 69, 70504 Stuttgart
Nobelstraße 12, 70569 Stuttgart
Telefon 0711 9 70-25 00
Telefax 0711 9 70-25 08
E-Mail verlag@fraunhofer.de
URL http://verlag.fraunhofer.de
Alle Rechte vorbehalten
Dieses Werk ist einschließlich aller seiner Teile urheberrechtlich geschützt. Jede Ver wertung, die
über die engen Grenzen des Urheberrechtsgesetzes hinausgeht, ist ohne schriftliche Zustimmung
des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen,
Mikro ver filmungen sowie die Speiche rung in elektronischen Systemen.
Die Wiedergabe von Warenbezeichnungen und Handelsnamen in diesem Buch berechtigt nicht
zu der An nahme, dass solche Bezeichnungen im Sinne der Warenzeichen- und Markenschutz-
Gesetzgebung als frei zu betrachten wären und deshalb von jedermann benutzt werden dürften.
Soweit in diesem Werk direkt oder indirekt auf Gesetze, Vorschriften oder Richtlinien (z.B. DIN,
VDI) Bezug genommen oder aus ihnen zitiert worden ist, kann der Verlag keine Gewähr für
Richtigkeit, Vollständigkeit oder Aktualität übernehmen.
GELEITWORT DER HERAUSGEBER
Produktionswissenschaftliche Forschungsfragen entstehen in der Regel im Anwen-
dungszusammenhang, die Produktionsforschung ist also weitgehend erfahrungsbasiert.
Der wissenschaftliche Anspruch der „Stuttgarter Beiträge zur Produktionsforschung“
liegt unter anderem darin, Dissertation für Dissertation ein übergreifendes ganzheitliches
Theoriegebäude der Produktion zu erstellen.
Die Herausgeber dieser Dissertations-Reihe leiten gemeinsam das Fraunhofer-Institut
für Produktionstechnik und Automatisierung IPA und jeweils ein Institut der Fakultät für
Konstruktions-, Produktions- und Fahrzeugtechnik an der Universität Stuttgart.
Die von ihnen betreuten Dissertationen sind der marktorientierten Nachhaltigkeit
verpflichtet, ihr Ansatz ist systemisch und interdisziplinär. Die Autoren bearbeiten
anspruchsvolle Forschungsfragen im Spannungsfeld zwischen theoretischen Grundlagen
und industrieller Anwendung.
Die „Stuttgarter Beiträge zur Produktionsforschung“ ersetzt die Reihen „IPA-IAO
Forschung und Praxis” (Hrsg. H.J. Warnecke / H.-J. Bullinger / E. Westkämper / D. Spath)
bzw. ISW Forschung und Praxis (Hrsg. G. Stute / G. Pritschow / A. Verl). In den vergan-
genen Jahrzehnten sind darin über 800 Dissertationen erschienen.
Der Strukturwandel in den Industrien unseres Landes muss auch in der Forschung in
einen globalen Zusammenhang gestellt werden. Der reine Fokus auf Erkenntnisgewinn
ist zu eindimensional. Die „Stuttgarter Beiträge zur Produktionsforschung“ zielen also
darauf ab, mittelfristig Lösungen für den Markt anzubieten. Daher konzentrieren sich die
Stuttgarter produktionstechnischen Institute auf das Thema ganzheitliche Produktion in
den Kernindustrien Deutschlands. Die leitende Forschungsfrage der Arbeiten ist: Wie
können wir nachhaltig mit einem hohen Wertschöpfungsanteil in Deutschland für einen
globalen Markt produzieren?
Wir wünschen den Autoren, dass ihre „Stuttgarter Beiträge zur Produktionsforschung“
in der breiten Fachwelt als substanziell wahrgenommen werden und so die Produk-
tionsforschung weltweit voranbringen.
Alexander Verl Thomas Bauernhansl Engelbert Westkämper
kskdxks
Modellbasierte Softwareentwicklung für mobile
Manipulatoren im industriellen Einsatz
Von der Fakultät Konstruktions-, Produktions- und Fahrzeugtechnik
der Universität Stuttgart
zur Erlangung der Würde eines Doktor-Ingenieurs (Dr.-Ing.)
genehmigte Abhandlung
Vorgelegt von
Dipl.-Ing. Alexander Bubeck
aus Magdeburg
Hauptberichter: Prof. Dr.-Ing. Dr. h. c. mult. Alexander Verl
Mitberichter: Prof. Dr.-Ing. habil. Björn Hein
Mitberichter: Prof. Dr. rer. nat. Stefan Wagner
Tag der mündlichen Prüfung: 30.11.2015
Institut für Steuerungstechnik der Werkzeugmaschinen
und Fertigungseinrichtungen
der Universität Stuttgart
2015
Vorwort
Vorwort des Verfassers
Die vorliegende Arbeit entstand während meiner Tätigkeit als wissenschaftlicher Mitarbeiter am
Fraunhofer-Institut für Produktionstechnik und Automatisierung IPA in Stuttgart.
Mein großer Dank gilt Herrn Prof. Dr.-Ing. Dr. h. c. mult. Alexander Verl für die Übernahme
des Hauptberichts sowie für seine Unterstützung und Förderung, sowohl für diese Arbeit als
auch für meine Tätigkeit am Fraunhofer IPA. Mein Dank gilt ebenfalls Herrn Prof. Dr.-Ing.
habil. Björn Hein und Prof. Dr. rer. nat. Stefan Wagner für die Durchsicht der Arbeit und für
die Übernahme des Mitberichts. Für die Organisation des Promotionsprozesses möchte ich Frau
Heide Kreuzburg danken.
Ein besonderer Dank gilt zudem Dr.-Ing. Kai Pfeiffer, Dr.-Ing. Ulrich Reiser, Sophie Nilsson,
Florian Weißhardt und Johannes Bix für die Durchsicht meiner Manuskripte, für die vielen wert-
vollen Anregungen und für die motivierenden Worte sowie Frau Luzia Schuhmacher M. A. für
ihre Lektor-Arbeiten. Ebenfalls danken möchte ich meinen ehemaligen Studenten, die in Form
von Praktika, Studien- und Diplomarbeiten zu dieser Arbeit beigetragen haben.
Von ganzem Herzen bedanken möchte ich mich bei meiner Freundin Nina, die mir mit großer
Geduld und viel Aufmunterung während des gesamten Promotionszeitraums zur Seite stand.
Diese Arbeit möchte ich meinen Eltern Renate und Wolfgang widmen. Ich danke Ihnen beson-
ders für ihre Förderung und Unterstützung, die sie mir während meiner schulischen Laufbahn,
meines Studiums und meiner Promotion entgegengebracht haben. Sie sind mir stets ein Vorbild.
Stuttgart, im Dezember 2015 Alexander Bubeck
iii
Summary
Kurzinhalt
Roboter, die Mobilität und Manipulation verbinden, stehen in immer größerer Anzahl für den
Einsatz in Wissenschaft, aber auch in industriellen Anwendungen zur Verfügung. Jedoch ist die
Softwareentwicklung durch die hohe Anzahl an Aktoren und Sensoren für solche Robotersysteme
aufwändig und komplex. Eine Nutzung ist im industriellen Kontext daher oft nicht wirtschaft-
lich. Ziel dieser Arbeit ist eine Verbesserung der Softwareentwicklung durch modellgetriebene
Entwicklungsmethodik herbeizuführen, um durch geringeren Aufwand, durch verstärkte Wieder-
verwendung bestehender Software und durch das bessere Separieren von Expertenwissen die
Entwicklungskosten zu senken.
Dazu wird im Rahmen dieser Arbeit eine direkte formale Beschreibung des ROS Komponenten-
frameworks als Meta-Modell entwickelt, auf dessen Basis eine Entwicklungstoolchain umgesetzt
wird. Die konzeptionelle Nähe zu den bestehenden Mechanismen innerhalb des Komponenten-
frameworks ermöglicht eine schnellere Akzeptanz bei ROS Entwicklern sowie die Wiederver-
wendung bestehender ROS Komponenten. In der Umsetzung des Meta-Modells wird dabei die
Auftrennung von Entwicklerrollen und -belangen umgesetzt. Zudem wird durch Modelltransfor-
mationen eine Unterstützung von anderen Roboterframeworks und Meta-Modellen implemen-
tiert.
Die entwickelte Toolchain wird in dieser Arbeit im Rahmen von drei Case Studies auf Ro-
boterentwicklungsprozesse angewandt und bzgl. Wiederverwendbarkeit, der Auftrennung von
Nutzerrollen und des Entwicklungsaufwands analysiert. Dabei kann eine Effizienzsteigerung und
eine Verbesserung von Wiederverwendungsmetriken gezeigt werden. Mit Hilfe einer Entwick-
lerbefragung wird zudem eine qualitative Verbesserung von Entwicklungsprozessen für mobile
Manipulatoren durch die modellbasierte Toolchain nachgewiesen.
v
Summary
Short summary
An increasing number of robots combining mobility with manipulation are available for both
scientific use cases, but also industrial applications. Due to the high number of actuators and
sensors, software development for such robot systems is elaborate and complex. Therefore, the
usage in industrial applications is often not economically feasible. The goal of this work is an
improvement in the software development for mobile manipulators by using the model based
development methodology. In order to reduce the overall development effort, the support of
reuse of existing software and the differentiation of expert knowledge are optimized by the
application of this methodology to robotics.
For that reason, a formal description of the ROS component frameworks is developed in this work
as a meta-model that is the basis for a model based development tool chain. The conceptional
vicinity to the existing mechanisms in the component framework improves the acceptance of
the ROS developers and makes reuse of existing ROS components possible. The separation
of developer concerns and roles are implemented within the meta-model. Furthermore, model
transformations are created to support different robot software frameworks and other meta-
models.
The approach is applied during the development process of three case studies using the tool
chain, evaluating the amount of reuse, the differentiation of the user roles and the amount of
development effort. An improvement of development efficency and of metrics for component
reusability are shown for the developed components and systems. By evaluation of a developer
survey, the qualitative improvement of development processes for mobile manipulators is proven.
vi
Inhaltsverzeichnis
Inhaltsverzeichnis
Abkürzungsverzeichnis xi
Abbildungsverzeichnis xiii
Tabellenverzeichnis xvii
1 Einleitung 1
1.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Grundlagen und Ausgangssituation 5
2.1 Verfügbare Systeme und deren Anwendungen . . . . . . . . . . . . . . . . . . . 5
2.2 Mobile Manipulation: Technologieüberblick . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Navigationssysteme zur Umsetzung von Mobilität . . . . . . . . . . . . 10
2.2.2 Komponenten für die Umgebungserfassung bei der mobilen Manipulation 12
2.2.3 Systeme zur Regelung und Steuerung der Kinematik von mobilen Robotern 12
2.3 Komponentenbasierte Entwicklung in der Robotik . . . . . . . . . . . . . . . . 14
2.3.1 Das Komponentenframework OROCOS RTT . . . . . . . . . . . . . . . 14
2.3.2 Das Robot Operating System . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.3 Weitere Frameworks und Bewertung von komponentenbasierter Entwick-
lung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Modellbasierte Softwareentwicklung . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Anwendung von modellbasierter Softwareentwicklung in der Robotik . . . . . . . 21
2.6 Ableitung von Anforderungen an eine Entwicklungstoolchain . . . . . . . . . . . 24
3 Entwicklung komplexer Softwaresysteme für die mobile Manipulation 27
3.1 Methoden zur Umsetzung von modellbasierter Entwicklung . . . . . . . . . . . 27
3.1.1 Modellbasierte Entwicklung nach der Top-down-Methode . . . . . . . . 28
3.1.2 Modellbasierte Entwicklung nach der Bottom-up-Methode . . . . . . . . 29
3.1.3 Vergleich der Umsetzungsmethoden . . . . . . . . . . . . . . . . . . . . 30
3.2 Separierung der Entwicklerbelange . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 Separierung der Entwicklerrollen . . . . . . . . . . . . . . . . . . . . . . . . . . 33
vii
Inhaltsverzeichnis
3.4 Integration mit Meta-Modellen für das High Level Design . . . . . . . . . . . . 36
3.4.1 BCM als abstraktes Meta-Modell . . . . . . . . . . . . . . . . . . . . . 36
3.4.2 SysML als abstraktes Meta-Modell . . . . . . . . . . . . . . . . . . . . 36
3.4.3 SCXML als abstraktes Meta-Modell . . . . . . . . . . . . . . . . . . . . 37
3.4.4 Integration der Meta-Modelle in den Roboterentwicklungsprozess . . . . 38
3.5 Plattformabhängigkeit in der Toolchain . . . . . . . . . . . . . . . . . . . . . . 38
3.6 Portieren von Komponenten zwischen Softwareframeworks . . . . . . . . . . . . 39
3.7 Programmiersprachen und Zielsysteme . . . . . . . . . . . . . . . . . . . . . . 41
3.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4 Umsetzung einer Entwicklungsumgebung für mobile Manipulatoren 45
4.1 BRIDE als eine modellbasierte Entwicklungsumgebung für ROS . . . . . . . . . 45
4.2 Das ROS Meta-Modell und die Entwicklerbelange . . . . . . . . . . . . . . . . 46
4.3 Entwicklung von Modelleditoren für ROS . . . . . . . . . . . . . . . . . . . . . 52
4.3.1 Umsetzung des Capability-Editors . . . . . . . . . . . . . . . . . . . . . 53
4.3.2 Umsetzung des Coordinator-Editors . . . . . . . . . . . . . . . . . . . . 55
4.3.3 Umsetzung des System-Editors . . . . . . . . . . . . . . . . . . . . . . 56
4.3.4 Entwickeln mit textuellen Editoren . . . . . . . . . . . . . . . . . . . . 57
4.4 Codegenerierung aus den Modellen . . . . . . . . . . . . . . . . . . . . . . . . 58
4.5 Roundtripping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.6 Transformationen zwischen den Meta-Modellen . . . . . . . . . . . . . . . . . . 61
4.7 Testing und Validierungstools . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.8 ROS-Integration der Toolchain . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5 Case Studies zur modellbasierten Entwicklung in der Robotik 69
5.1 BRICS Showcase Industry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.1.1 Umsetzung mit BRIDE . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2 Regelungs-Framework für synchrone mobile Manipulation . . . . . . . . . . . . 75
5.2.1 Überarbeitung von SyncMM mit BRIDE . . . . . . . . . . . . . . . . . 75
5.2.2 Transfer zu OROCOS RTT . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Logistikszenario mit der Plattform rob@work 3 . . . . . . . . . . . . . . . . . . 80
5.3.1 Anwendungsentwicklung mit BRIDE . . . . . . . . . . . . . . . . . . . 80
5.4 Zusammenfassung der Case Studies . . . . . . . . . . . . . . . . . . . . . . . . 84
6 Evaluation von modellbasierter Entwicklung in der Robotik 85
6.1 Auswertung der umgesetzten Komponentenmodelle . . . . . . . . . . . . . . . . 85
6.2 Portierungsaufwand von Komponenten . . . . . . . . . . . . . . . . . . . . . . 90
6.3 Qualitative Auswertung der umgesetzten Systemmodelle . . . . . . . . . . . . . 91
viii
Inhaltsverzeichnis
6.4 Analyse der allgemeinen Benutzung der modellbasierten Entwicklungstoolchain . 93
6.4.1 Das Goal-Question-Metric Verfahren . . . . . . . . . . . . . . . . . . . 93
6.4.2 Das Technology Acceptance Model . . . . . . . . . . . . . . . . . . . . 93
6.4.3 Erstellung von Evaluationsmetriken mit einer Kombination aus GQM und
TAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.4.4 Ergebnisse der Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.5 Bewertung der Reliabilität . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7 Abschließende Betrachtung 101
7.1 Zusammenfassung und Ergebnisse der Arbeit . . . . . . . . . . . . . . . . . . . 101
7.2 Mögliche Weiterentwicklungen von BRIDE . . . . . . . . . . . . . . . . . . . . 102
A Anhang: Fragebogen für BRIDE Nutzerumfrage 107
B Anhang: Ergebnisse der BRIDE Nutzerumfrage 111
Referenzen 113
ix
Abkürzungsverzeichnis
Abkürzungsverzeichnis
AST Abstract Syntax Tree
ATL ATL Transformation Language
BCM BRICS Component Model
BRICS Best Practice in Robotics
BRIDE BRICS integrated development environment
DDS Data Distribution Service
DSL Domain Specific Language
EMF Eclipse Modeling Framework
ETL Epsilon Transformation Language
GEF Graphical Editing Framework
GMF Graphical Modeling Framework
GQM Goal-Question-Metric
HUTN Human Usable Textual Notation
M2M Model-to-Model
M2T Model-to-Text
MDA Model-driven architecture
MDD Model-Driven Development
MOF Meta Object Facility
OCL Object Constraint Language
OMG Object Management Group
PIM Platform-independent model
xi
PSP Platform-specific model
RCC Rate of Component Customizability
RCO Rate of Component Observability
ROS Robot Operating System
SCXML State Chart XML
SOA Service Oriented Architecuture
SysML System Modeling Language
TAM Technology Acceptance Model
UML Unified Modeling Language
WADL Web Application Description Language
WSDL Web Services Description Language
XMI XML Metadata Interchange
YAML YAML Ain’t Markup Language
xii
Abbildungsverzeichnis
Abbildungsverzeichnis
1.1 Mobiler Manipulator Care-O-bot® 3 beim Bedienen eines Wasserspenders . . . . 2
2.1 AMADEUS Roboter für Intralogistikanwendungen . . . . . . . . . . . . . . . . 6
2.2 Bosch Produktionsassistent APAS . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 ImRoNet Inspektionsroboter beim Drehen eines Stellrades . . . . . . . . . . . . 7
2.4 Architekturbild eines Navigationssubsystems mit Lokalisierung und Pfadplanung 11
2.5 Visualisierung einer laufenden Navigation für einen mobilen Roboter . . . . . . . 11
2.6 Übersicht des Regelungsframework für synchrone mobile Manipulation SyncMM 13
2.7 Darstellung des OROCOS RTT Komponentenmodells . . . . . . . . . . . . . . 15
2.8 Visualisierung der OMG-Modellpyramide . . . . . . . . . . . . . . . . . . . . . 19
2.9 Umsetzung eines Reglers für synchrone mobile Manipulation in Simulink . . . . 22
3.1 Abstrakte Meta-Modelle für Robotik in der OMG-Modellpyramide . . . . . . . . 28
3.2 Frameworknahe Meta-Modelle für die Robotik in der OMG-Modellpyramide . . . 29
3.3 Fünf Belange einer Software-Komponente bei der Wiederverwendung. Nur
bestimmte Belange müssen modifiziert werden (orange) . . . . . . . . . . . . . 32
3.4 Einordnung der in dieser Arbeit definierten Entwicklerrollen in die Prozessphasen
der ISO/IEC 12207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5 Verschiedene Entwicklerrollen und die Zuordnung der Entwicklerbelange . . . . . 34
3.6 Anwendung der Konzepte Separierung der Entwicklerbelange und Entwicklerrol-
len auf die modellbasierte Entwicklung . . . . . . . . . . . . . . . . . . . . . . 35
3.7 SysML Editor Papyrus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.8 Zusammenhang von abstrakten Meta-Modellen mit den verschiedenen Entwick-
lungsprozessphasen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.9 Plattformunabhängigkeit zwischen Middlewares . . . . . . . . . . . . . . . . . . 40
3.10 Gesamtkonzeption einer modellbasierten Entwicklungsumgebung für mobile
Manipulatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1 Umsetzung der verschiedenen Ebenen der OMG-Pyramide in BRIDE . . . . . . . 46
4.2 Workflow zum Erstellen einer modellbasierten Toolchain mit EMF . . . . . . . . 47
4.3 Interne Zustandsmaschine einer ROS-Komponente, die mit BRIDE entwickelt
wurde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4 ECore Meta-Modell für Komponenten- und Systemaspekte in ROS . . . . . . . 50
xiii
Abbildungsverzeichnis
4.5 ECore Meta-Modell für Koordinationsaspekte in ROS in Form der SMACH DSL 51
4.6 Prozess der Erstellung von GMF-basierten Modelleditoren . . . . . . . . . . . . 52
4.7 Entwicklung einer Funktionalität im BRIDE-Capability-Editor . . . . . . . . . . 53
4.8 Entwicklung einer Zustandsmaschine für eine Anwendung im BRIDE-Coordinator-
Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.9 Entwicklung von Softwaresystemen für Roboteranwendungen mit dem BRIDE
System Deployment Modellierer . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.10 Struktur eines ROS Paketes nach der Erzeugung in BRIDE . . . . . . . . . . . 59
4.11 Ablauf der Generierung von Modellen aus Quellcode zum Umsetzen von Round-
tripping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.12 Screenshot einer laufenden Modellevaluierung in BRIDE . . . . . . . . . . . . . 64
4.13 Quellcode eines autogenerierten Testcases mit blau hinterlegten Nutzermodifi-
kationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.14 Textuelles Erstellen von Modellen über eine Netzwerkverbindung mit dem Editor
VIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.15 Wikiseite des BRIDE-Projekts mit Dokumentation, Tutorials und Verknüpfung
zu anderen ROS-Projekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.1 BRICS Showcase Industry Demonstrator . . . . . . . . . . . . . . . . . . . . . 70
5.2 Modelle verschiedener Komponenten aus dem BRICS Showcase Industry . . . . 71
5.3 Application-Modell des BRICS Showcase Industry . . . . . . . . . . . . . . . . 72
5.4 System-Modell des BRICS Showcase Industry . . . . . . . . . . . . . . . . . . . 74
5.5 Abstrakter Aufbau des SyncMM-Systems . . . . . . . . . . . . . . . . . . . . . 76
5.6 Systemmodell der modellbasierten Umsetzung des SyncMM-Frameworks . . . . 78
5.7 SyncMM-System im Einsatz auf dem Care-O-bot® 3 . . . . . . . . . . . . . . . 79
5.8 Architekturbild der IPA-Navigation . . . . . . . . . . . . . . . . . . . . . . . . 81
5.9 Coordinator-Modell für die beschriebene Logistikanwendung . . . . . . . . . . . 82
5.10 Ausführung des Beispiels einer Logistikanwendung mit dem rob@work 3 . . . . . 84
6.1 Vergleich der ROS-Abhängigkeit von Komponenten nach klassischer und mit
modellbasierter Entwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2 Vergleich der Rate of Component Observability von Komponenten nach
klassischer und mit modellbasierter Entwicklung . . . . . . . . . . . . . . . . . 90
6.3 Vergleich der Rate of Component Customizability von Komponenten nach
klassischer und mit modellbasierter Entwicklung . . . . . . . . . . . . . . . . . 90
6.4 Überblick über die qualitatitve Evaluationsstrategie für die Toolchain BRIDE . . 94
6.5 GQM für das Evaluationsziel 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.6 GQM für das Evaluationsziel 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.7 GQM für das Evaluationsziel 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 96
xiv
Abbildungsverzeichnis
6.8 Resultate der Umfrage zu Evaluationsziel 1 . . . . . . . . . . . . . . . . . . . . 97
6.9 Resultate der Umfrage zu Evaluationsziel 2 . . . . . . . . . . . . . . . . . . . . 98
6.10 Resultate der Umfrage zu Evaluationsziel 3 . . . . . . . . . . . . . . . . . . . . 99
6.11 Resultate der Umfrage zu TAM . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.1 Protege Editor zur Entwicklung von OWL-basierten, semantischen Modellen . . 103
7.2 Entwickler während der Verwendung von BRIDE für eine industrielle Roboteran-
wendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
xv
Tabellenverzeichnis
Tabellenverzeichnis
2.1 Vergleich der Funktionalität von verfügbaren mobilen Manipulatoren . . . . . . . 8
2.2 Vergleich der Hardwareausstattung von verfügbaren mobilen Manipulatoren . . . 8
2.3 Abschätzung des Entwicklungsaufwandes für verschiedene Teile einer Roboter-
szenarienentwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Überblick über die Mechanismen des Komponentenframeworks ROS . . . . . . . 17
2.5 Die Bewertungsskala von modellbasierter Entwicklung . . . . . . . . . . . . . . 21
2.6 Überblick über derzeitige modellbasierte Entwicklungsumgebungen für die Robotik 23
3.1 Vergleich der Ansätze zur Entwicklung einer modellbasierten Toolchain . . . . . 30
4.1 Zuordnung von Entwicklerbelangen zu den ROS-Mechanismen . . . . . . . . . . 50
4.2 Zuordnung von BCM-Modellierungsmechanismen zu ROS-Modellierungs-
mechanismen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3 Zuordnung von SysML-Modellierungsmechanismen zu ROS-Modellierungs-
mechanismen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4 Auszug der Validierungsregeln des BRIDE Capability Editors . . . . . . . . . . 63
6.1 Liste der in den Case Studies entstandenen Komponenten . . . . . . . . . . . . 86
6.2 Evaluation der in den Case Studies entstandenen Komponenten . . . . . . . . . 88
6.3 Evaluation der Metriken für die ursprünglichen Komponenten, die nicht modell-
basiert entstanden sind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.4 Metriken zu den auf OROCOS RTT portierten Komponenten . . . . . . . . . . 91
6.5 Ergebnisse der Evaluation der BRIDE Systeme aus den Case Studies . . . . . . . 92
6.6 Bereiche, für die das Technology Acceptance Model angewandt werden kann . . 94
6.7 Metriken des Technology Acceptance Model angewandt auf die Evaluation von
BRIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
xvii
1 Einleitung
1.1 Problemstellung
Durch die stetige Verbesserung von Aktoren und Sensoren im Serviceroboterbereich entstehen
immer wieder neue Anwendungsbereiche und Robotertypen. In den letzten Jahren ist daher die
Anzahl an verfügbaren Plattformen aus der Kategorie der mobilen Manipulatoren stark ange-
wachsen. Bei diesen Robotertypen werden kleine und leichte Manipulatoren durch Mobilität einer
aktiv bewegten Plattform unterstützt. Damit ergeben sich viele neue Einsatzgebiete und Arbeits-
bereiche, da die Manipulatoren durch die Mobilität einen sehr großen Arbeitsraum bekommen.
Gleichzeitig können die Flexibilität und Sicherheitseigenschaften der kompakten Manipulatoren
genutzt werden. Einhergehend mit der Verfügbarkeit von Hardwareplattformen wurden in der
Wissenschaft gerade in der letzten Dekade eine Vielzahl von Steuerungskonzepten und Algorith-
men entwickelt, die den Einsatz von mobilen Manipulatoren ermöglichen. Die Ansätze werden vor
allem im Rahmen von Experimenten in künstlichen Wohnumgebungen evaluiert (siehe Beispiel
in Abbildung 1.1), um der Vision von Robotern in jedem Heim nachzukommen (Graf, Jacobs
et al. 2012).
Dem gegenüber ist die Anzahl der in der Praxis befindlichen mobilen Manipulatoren in industriel-
len Anwendungsszenarien, die in Kapitel 2 dieser Arbeit diskutiert werden, sehr begrenzt. Wenn
überhaupt werden klassische fahrerlose Transportsysteme mit einfachen Sensoren, wie beispiels-
weise Kameras für optische Linienführung, verwendet, um Manipulatoren zwischen definierten
Punkten zu bewegen. An diesen Punkten führen die Manipulatoren dann fest programmierte
Funktionalitäten aus. Das enorme Einsatzpotential von flexiblen mobilen Manipulatoren, das im
Rahmen von Evaluationen im Forschungsumfeld nachgewiesen ist, wird in der Praxis noch we-
nig genutzt. Bezüglich Geschwindigkeit, Flexibilität und wirtschaftlichen Gesichtspunkten sind
menschliche Arbeiter in Einsatzfällen von Manipulation mit hoher Mobilität zur Zeit Robotern
stark überlegen (Hägele, Blümlein et al. 2011).
Beim Blick auf heutige mobile Manipulatoren in der angewandten Forschung fällt auf, dass
die Gesamtkomplexität dieser Roboter recht hoch ist. Durch das Zusammenführen von mobiler
Plattform und Manipulator erhöht sich nicht nur die Anzahl der Freiheitsgrade des Roboters. Die
1
1 Einleitung
erhöhte Flexibilität erfordert den Einsatz zusätzlicher, meist heterogener Sensorsysteme wie 3D-
Umgebungserfassung und Laserlokalisierung. Die eingesetzten Aktuator- und Wahrnehmungs-
systeme sind in der Regel nicht für einen kombinierten Einsatz ausgelegt, was die Integration
erschwert, aber auch dafür sorgt, dass bei mobilen Manipulatoren verteilte Systeme aus meh-
reren Regelsystemen zur Ansteuerung eingesetzt werden. Höhere Komplexität in der Hardware
führt daher zu einem höheren Softwareentwicklungsaufwand.
Abbildung 1.1: Mobiler Manipulator Care-O-bot® 3 beim Bedienen eines Wasserspenders
Mobile Manipulatoren, wie beispielsweise der Care-O-bot® 3, enthalten mehrere hundert se-
parate Softwarekomponenten, die zur Nutzung des Roboters erforderlich sind. Während dieser
Aufwand im Forschungsbereich beherrschbar und zum Teil forschungsrelevant ist, kann man
beim Technologietransfer in industrielle Anwendungen die Entwicklungskosten nur auf einen
wirtschaftlich sinnvollen Wert reduzieren, wenn der Großteil der Softwarekomponenten als fer-
tige Module wiederverwendet werden kann. Diese einfache Wiederverwendung von offenen, aus
der Forschung kommenden oder kommerziellen Softwaremodulen auf mobilen Manipulatoren ist
zur Zeit nur bedingt möglich (Brugali, Gherardi et al. 2012).
Zusätzlich zum hohen Entwicklungsaufwand ist durch die Diversität der eingesetzten Software-
und Hardwaremodule auf einem mobilen Manipulator auch die fachliche Anforderung an einen
Systemintegrator sehr unterschiedlich. Bei der Anwendungsentwicklung für mobile Manipulato-
ren sind daher sehr gut ausgebildete Systemtechniker erforderlich, um eine ausreichende Ge-
schwindigkeit und Flexibilität zu erreichen. Dies erhöht die Entwicklungskosten und begrenzt
aktuell die Verbreitung von mobilen Manipulatoren.
2
1.2 Zielsetzung
1.2 Zielsetzung
Um die Verbreitung von mobilen Manipulatoren in Anwendungen der industriellen Servicerobotik
zu erhöhen, beschäftigt sich diese Arbeit mit den Herausforderungen in der Softwareentwicklung
bei der Umsetzung von Systemen und Anwendungen mit diesem Robotertyp. Dabei wird eine
vollständige Entwicklungs-Toolchain für mobile Manipulatoren im industriellen Umfeld konzipiert
und umgesetzt, die gegenüber den bestehenden Softwareentwicklungsframeworks für Roboter
folgende Vorzüge haben soll:
• Reduktion der Komplexität für Entwickler: Dabei wird insbesondere durch das Abkapseln
von Subsystemen und die Konzentration von Expertenwissen auf bestimmte Bereiche die
Komplexität von mobilen Manipulatoren reduziert.
• Reduktion des Entwicklungsaufwandes: Eine häufigere Wiederverwendung von bestehender
Software auf verschiedenen mobilen Manipulatoren verringert den Entwicklungsaufwand
stark. Die Toolchain soll daher vor allem implizite Abhängigkeiten in den Softwarekompo-
nenten abbauen.
• Trennung von Komponenten-, System- und Anwendungsentwicklung: Ein Anwendungs-
entwickler muss sich nur noch mit der Konfiguration des Softwaresystems für die Anwen-
dungen beschäftigen, wie es heute bei Industriemanipulatorsystemen der Fall ist.
Der Fokus dieser Arbeit liegt nicht nur auf der Konzeption von Werkzeugen für die Software-
entwicklung, sondern auch auf deren Umsetzung. Damit kann der Einfluss der entwickelten
Werkzeuge auf die Roboterentwicklung konkret nachvollzogen werden.
1.3 Vorgehensweise
Im Rahmen dieser Arbeit wird eine modellgetriebene Entwicklungsumgebung für mobile Mani-
pulatoren in der Produktion geschaffen. Dazu wird in Kapitel 2 ein Überblick über bestehen-
de mobile Manipulatoren, deren Software- und Hardwaresysteme sowie über allgemeine Soft-
wareentwicklungskonzepte gegeben. Auf dieser Basis werden konkrete Anforderungen an einen
neuartigen Entwicklungswerkzeugkasten herausgearbeitet. Bewährte Erfolgsmethoden aus der
Softwareentwicklung anderer Domänen werden in Kapitel 3 auf das Themengebiet der mobi-
len Manipulation angewandt und entsprechend der ermittelten Anforderungen erweitert. Zudem
werden diese erfolgreichen Praktiken in bestehende Entwicklungskonzepte der Robotik integriert.
Die konkrete Umsetzung einer Toolchain, die die entwickelten Konzepte und bestehenden Werk-
zeuge der Roboterentwicklung integriert, wird in Kapitel 4 behandelt. Um die Tauglichkeit der
Toolchain für verschiedene Anwendungsfälle nachzuweisen, werden in Kapitel 5 drei repräsenta-
tive Entwicklungsprozesse mit zunehmender Komplexität erläutert.
3
1 Einleitung
Die Optimierung der Entwicklungsprozesse hinsichtlich der eingangs beschriebenen Herausfor-
derungen bei der Umsetzung von Anwendungen mit mobilen Manipulatoren wird schließlich in
Kapitel 6 anhand einer quantitativen Analyse von erzeugten Softwareartefakten durchgeführt.
Zudem wird mittels einer Nutzerumfrage qualitativ der Einfluss der entstandenen Werkzeuge
nachgewiesen. Kapitel 7 fasst schließlich die Ergebnisse dieser Arbeit zusammen und zeigt weiter
Entwicklungsperspektiven und -herausforderungen für die mobile Manipulation in der Produktion
auf.
4
2 Grundlagen und Ausgangssituation
Im Rahmen dieses Kapitels wird ein Überblick über bestehende Installationen von mobilen Ma-
nipulatoren gegeben. Dabei werden besonders die für die Anwendung erforderlichen Software-
systeme und deren Umsetzung untersucht. Da außerhalb der Robotik auch in anderen Domä-
nen komplexe Softwaresysteme im Einsatz sind, wird ein Überblick über Entwicklungsstrategien
in solchen Systemen gegeben. Anhand einer Analyse von transferierten Technologien aus der
Softwareentwicklung in die Robotik werden Vorteile und Defizite dieser Ansätze diskutiert und
Anforderungen für eine Anwendung auf die mobile Manipulation abgeleitet.
2.1 Verfügbare Systeme und deren Anwendungen
Bei Transportaufgaben im industriellen Umfeld befinden sich fahrerlose Transportsysteme, d.h.
mobile autonome Plattformen, seit Jahren im Einsatz. Durch die Weiterentwicklung kompak-
ter und energieeffizienter Manipulationssysteme können die fahrerlosen Transportsysteme um
Manipulatoren ergänzt werden. Im Gegensatz zu Manipulatorsystemen auf Linearachsen, die
bereits in einigen Industrieanwendungen umgesetzt wurden, besteht beim Einsatz von mobilen
Plattformen ein höheres Maß an Flexibilität. Ein solches Robotersystem, bestehend aus einer
frei beweglichen, mobilen Plattform und einem Manipulatorsystem wird im Folgenden als mo-
biler Manipulator bezeichnet. Wenn sich Plattform und Manipulator koordiniert und zeitgleich
bewegen können, spricht man von synchroner mobiler Manipulation.
In der Wissenschaft sind mobile Manipulatoren, auch mit synchroner Regelung, schon seit etwa
25 Jahren Forschungsgegenstand (siehe beispielsweise (Brooks, Connell et al. 1988)). Durch
die Einführung von standardisierten Forschungsplattformen, wie beispielsweise den Systemen
PR2 (Wyrobek, Berger et al. 2008), Justin (Fuchs, Borst et al. 2009) und Care-O-bot® 3 (Rei-
ser, Connette et al. 2009), ist zudem die Integration von Forschungsergebnissen in Anwendungen
forciert worden. Daher sind die wissenschaftlichen Grundlagen bzgl. der erforderlichen Robo-
tertechnologien bereits sehr weit entwickelt. Um eine noch anwendungsbezogenere Forschung
für den Einsatz von mobilen Manipulatoren voranzutreiben, sind ebenfalls Standardplattformen
für den industriellen Einsatz entwickelt worden, wie beispielsweise der Kuka Omnirob oder der
5
2 Grundlagen und Ausgangssituation
rob@work 3. Diese Systeme ermöglichen das Entwickeln von Anwendungen direkt in der Ferti-
gung oder Montageanlage des Endnutzers.
Aktuell umgesetzte Anwendungen mit mobilen Manipulatoren in der Produktion lassen sich
in mehrere Gebiete unterteilen. Man findet Beispiele im Anwendungsgebiet der Logistik, der
Montage und auch der Inspektion und Wartung.
In den Forschungsprojekten TAPAS, PISA und AMADEUS (Halt, Messmer et al. 2012) wurde
die Umsetzung konkreter Anwendungen der Logistik untersucht, bei denen mittels eines Mani-
pulators von einer mobilen Plattform aus Teile bewegt werden. Dabei kommen neben anwen-
dungsspezifischen Systemen (siehe Abbildung 2.1) auch bereits am Markt erhältliche Produkte
wie der Little Helper (Hvilshoj, Bogh et al. 2009) und Roboter der Neobotix GmbH zum Einsatz.
Abbildung 2.1: AMADEUS Roboter für Intralogistikanwendungen
Da in einem weiteren Anwendungsfeld, der Montage, die Komplexität der Aufgaben in der Pro-
duktion in der Regel sehr hoch ist, kommen mobile Manipulatoren hier vor allem als sogenannte
Produktionsassistenten in Verbindung mit dem menschlichen Werker zum Einsatz. Dabei müssen
zusätzlich zu den technischen Herausforderungen auch Sicherheitsaspekte berücksichtigt werden.
Auch in diesem Bereich gibt es zusätzlich zu den speziell entwickelten Hardwareplattformen be-
reits Roboter im Produktstadium. Als Beispiel ist hier die APAS Plattform von Bosch (Dose und
Dillmann 2012) zu nennen, die zwar in der aktuell erhältlichen Version noch auf einer passiven
mobilen Plattform aufbaut, die jedoch ansonsten alle Eigenschaften eines mobilen Manipulators
aufweist (siehe Abbildung 2.2). Eine generelle Untersuchung von Einsatzpotentialen von mobilen
Manipulatoren für die beschriebenen Bereiche Logistik und Produktion findet sich zudem in (An-
gerer, Strassmair et al. 2012). Darin werden typische Einsatzszenarien für mobile Manipulatoren
untersucht und Kriterien für deren Nutzung festgelegt.
6
2.1 Verfügbare Systeme und deren Anwendungen
Abbildung 2.2: Bosch Produktionsassistent APAS
Im Bereich der Inspektion und Wartung werden ebenfalls schon seit längerem mobile Plattfor-
men eingesetzt. Im Rahmen der Forschungsprojekte ImRoNet (Arbeiter, Bubeck et al. 2010)
und MimroEx (Pfeiffer, Bengel et al. 2011) wurde untersucht, inwiefern die Erweiterung der
mobilen Plattformen zu mobilen Manipulatoren neues Automatisierungspotential eröffnet. Ge-
rade in gefährlichen und kontaminierten Bereichen, bei denen manuelle Inspektion und Wartung
nur sehr schwer möglich ist, kann erst durch den zusätzlichen Einsatz von Manipulatoren die
Automatisierung vollständig umgesetzt werden (siehe Abbildung 2.3). Es können, wie im Fall
von MimroEx, durch den Manipulator Sensorsysteme in schwer zugängliche Bereiche gebracht
werden oder nicht-automatisierte Prozessteile (wie z.B. manuelle Stellräder) nachträglich auto-
matisiert werden. In der Anwendung werden die autonomen Technologien der Roboter häufig
mit Teleoperationssystemen kombiniert, um die Bedienung der Roboter zu vereinfachen.
Abbildung 2.3: ImRoNet Inspektionsroboter beim Drehen eines Stellrades
Obwohl für verschiedene Einsatzszenarien entwickelt, haben die vorgestellten mobilen Manipu-
latoren viele Gemeinsamkeiten. In der folgenden Tabelle 2.1 wird ein Überblick über die im
industriellen Kontext eingesetzten mobilen Manipulatoren aus Sicht der Funktionalität gegeben.
7
2 Grundlagen und Ausgangssituation
Tabelle 2.1: Vergleich der Funktionalität von verfügbaren mobilen Manipulatoren (Forschungs-
plattformen kursiv)
Roboter Geplante
Manipulation
Synchrone Mobile
Manipulation
Freie Navigation
TAPAS Little Helper nein nein ja
AMADEUS nein nein nein
BOSCH APAS nein nein nein
MimroEx nein nein ja
ImRoNet ja ja ja
PR2 ja nein ja
Care-O-bot® 3 ja ja ja
rob@work 3 ja ja ja
Zum Vergleich werden die Forschungsplattformen ImRoNet, PR2, Care-O-bot® 3 und rob@work3
mit betrachtet. Die in Tabelle 2.1 genannten Funktionalitäten von mobilen Manipulatoren sind
ausgewählt, da mit ihnen die volle Flexibilität der mobilen Manipulatoren nutzbar ist.
Tabelle 2.2: Vergleich der Hardwareausstattung von verfügbaren mobilen Manipulatoren (For-
schungsplattformen kursiv)
Roboter Sensorik Mobile Basis Freiheitsgrade des
Manipulators
TAPAS Little Helper Kamera (lokal) differentiell 6
AMADEUS Magnetschleifen (lokal) omnidirektional 7
BOSCH APAS Kamera (lokal) passiv 6
MimroEx Laserscanner, Kamera (lokal) omnidirektional 6
ImRoNet PMD, Farbkamera,
Laserscanner
differentiell 7
PR2 Stereokamera (gesamter
Bereich), Laserscanner,
3D-Kamera
omnidirektional 2 x 7
Care-O-bot® 3 Stereokamera (gesamter
Bereich), Laserscanner,
3D-Kamera
omnidirektional 7
rob@work 3 Stereokamera (gesamter
Bereich), Laserscanner,
3D-Kamera
omnidirektional 7
Beim Vergleich der vorgestellten industriellen Robotersysteme in Tabelle 2.1 mit den Forschungs-
systemen fällt auf, dass viele mögliche Funktionalitäten in industriellen Robotersystemen nicht
8
2.1 Verfügbare Systeme und deren Anwendungen
zum Einsatz kommen. Dies ist der Fall, obwohl auf den industriell genutzten Robotern eine
ähnliche Ausstattung an Sensoren und Aktoren wie bei den Forschungsplattformen zu finden
ist (siehe Tabelle 2.2). Viele Möglichkeiten der Flexibilität und des Automatisierungsspektrums
werden daher nicht genutzt. Zudem wurden die Softwarekomponenten der vorgestellten mo-
bilen Manipulatoren fast vollständig in öffentlich geförderten Forschungsprojekten entwickelt.
Kommerzielle Robotersteuerungen für mobile Manipulation sind derzeit noch nicht verfügbar.
Tabelle 2.3: Abschätzung des Entwicklungsaufwandes für verschiedene Teile einer Robotersze-
narienentwicklung aus einer Studie (Hägele, Blümlein et al. 2011)
Szenario Hardwareinvestitionskosten Softwarekosten Faktor SW/HW
Außenanlagenwartung 0,2 Mio. e 1,5 Mio. e 7,5
Containertransport 1,1 Mio. e 3,3 Mio. e 3
Produktionsassistenz 1,5 Mio. e 4,4 Mio. e 2,9
Ein Blick in die Studie “Wirtschaftlichkeitsanalysen neuartiger Servicerobotik-Anwendungen und
ihre Bedeutung für die Robotik-Entwicklung” (Hägele, Blümlein et al. 2011), die Entwicklungs-
kosten von Servicerobotikanwendungen untersucht, gibt Aufschluss über eine mögliche Ursache
des eingeschränkten Funktionsumfangs von industriellen mobilen Manipulatoren. In der Studie
wird deutlich, dass die Softwareentwicklung einer der Hauptkostenfaktoren bei der Entwicklung
von Servicerobotikanwendungen ist. Wie die Tabelle 2.3 für einige ausgewählte Anwendungs-
szenarien aus dem Bereich Logistik und Montage der Studie zeigt, liegen die Kosten für die
Softwareentwicklung weit über den Hardwarekosten. Die Studie zeigt auf, dass diese Kosten
mit der Komplexität der Anwendungen korrelieren. Diese Studie geht hierbei für das jeweilige
Szenario von einer Neuentwicklung der Software aus. Durch Wiederverwendung bestehender
Softwaresysteme können jedoch die Kosten gesenkt werden, wie in (Poulin, Caruso et al. 1993)
gezeigt. Es muss also Ziel sein, die Wiederverwendung bei der Entwicklung von Robotern zur
mobilen Manipulation zu steigern.
Zusammenfassend lässt sich aus den bisherigen Anwendungen von mobilen Manipulatoren schlie-
ßen, dass die eingesetzten Robotersysteme zwar aus Sicht der Hardware sehr flexible und funkti-
onsreiche Automatisierungssysteme sind, durch den geringen Integrationsgrad und den begrenz-
ten Softwareentwicklungsumfang jedoch die Einsatzmöglichkeiten der Systeme stark beschränkt
werden.
9
2 Grundlagen und Ausgangssituation
2.2 Mobile Manipulation: Technologieüberblick
Das Softwaresystem eines mobilen Manipulators muss im Gegensatz zu einfachen mobilen Platt-
formen oder einfachen Manipulatoren weit aus mehr Funktionalität bereitstellen. Im Folgen-
den werden die einzelnen erforderlichen Technologien diskutiert. Die Aktoren und Sensoren des
Roboters werden dabei meist über eine Abstraktionsschicht in das System integriert, so dass
Erkennungs- und Navigationsalgorithmen darauf aufgesetzt werden können. Die daraus resultie-
renden Bewegungsbefehle werden dann mit entsprechenden Steuerungsarchitekturen umgesetzt.
2.2.1 Navigationssysteme zur Umsetzung von Mobilität
Das Ziel eines Navigationssoftwaresystems ist es, den mobilen Roboter koordiniert in eine ge-
wünschte Position oder auf einer gewünschten Bahn zu bewegen. Es ist somit ein wichtiger
Bestandteil eines mobilen Manipulators und besteht aus einem Lokalisierungsverfahren, welches
aktuell messbare Umgebungsmerkmale (“FeatureMeasurementSource” in Abbildung 2.4) mit be-
kannten Umgebungsmerkmalen (“FeatureAssumptionSource” in Abbildung 2.4) abgleicht und
daraus die Position des Roboters im Raum bestimmt (beispielsweise durch einen Kalmanfilter
Abbildung 2.4). Da man bei mobilen Manipulatoren die Flexibilität der Plattform für die bes-
sere Manipulation einsetzen will, können Lokalisierungsverfahren wie Magnetspurführung oder
optische Spurführung nur bedingt Vorteile bringen, da hier die Bewegung der Plattform schon
vorher bekannt sein muss. Vielmehr sollten bei mobilen Manipulatoren Lokalisierungsverfahren
verwendet werden, die eine freie beliebige Bewegung ermöglichen. Landmarkenbasierte Naviga-
tionssysteme sind ein Beispiel für ein solches freies Lokalisierungsverfahren. Zusätzlich besteht
ein Navigationssystem aus Pfadplanungsalgorithmen, die basierend auf der Lokalisierung und
dem Applikationsziel die gewünschte Bewegung des Roboters berechnen (in Abbildung 2.4 mit
“Global planner” und “Local planner” benannt). Eine weitere Möglichkeit ist die Plattform
direkt gekoppelt mit der Manipulatorsteuerung zu bewegen. Das gesamte Navigationssystem
der mobilen Plattform stellt in diesem Fall eine Subarchitektur dar, die aus den verschiedenen
Signalflüssen der Lokalisierung sowie verschiedenen kaskadierten Pfadplanern besteht. In Ab-
bildung 2.4 ist als Beispiel die Architektur eines Navigationssystems dargestellt. Abbildung 2.5
zeigt die Visualisierung des laufenden Navigationssubsystems mit den Laserscannerdaten, den
kartierten Umgebungsmerkmalen und dem berechneten Roboterpfad.
10
2.2 Mobile Manipulation: Technologieüberblick
Abbildung 2.4: Architekturbild eines Navigationssubsystems mit Lokalisierung und Pfadplanung
Abbildung 2.5: Visualisierung einer laufenden Navigation für einen mobilen Roboter mit Sensor-
daten (gelb), Umgebungsmerkmalen (schwarz) und geplantem Pfad (grün)
11
2 Grundlagen und Ausgangssituation
2.2.2 Komponenten für die Umgebungserfassung bei der mobilen
Manipulation
Zusätzlich zu Sensoren zur Umgebungserfassung auf der mobilen Plattform selbst sind beim
Einsatz von Manipulatoren auf der Plattform weitere Sensoren notwendig. Bei mobilen Mani-
pulatoren, die im Arbeitsbereich von Menschen arbeiten, müssen Kollisionen vermieden werden.
Daher werden 3D Sensoren verwendet, um die Umgebung um den Manipulator wahrzunehmen
und diese in die Pfadplanung des Manipulators einzubeziehen. Selbst in statischen Umgebun-
gen, bei denen die Absicherung durch die Sensoren der Plattform ausreicht, müssen zusätzliche
Kamerasysteme eingesetzt werden, um eine höhere Präzision am Roboterwerkzeug bei Greifvor-
gängen zu erreichen. Die Softwarearchitektur bei Algorithmen zur Umgebungserfassung besteht
meistens aus einer Anzahl von Sensor-Pipelines, d.h. einer kettenartigen Aneinanderreihung von
Softwaremodulen, die vom eigentlichen Sensor über Filter bis hin zum Analysealgorithmus füh-
ren. Verbreitet ist die Benutzung von offenen Bibliotheken zur Verarbeitung von Bildern (Culjak,
Abram et al. 2012), Punktwolken (Rusu und Cousins 2011) oder der Verwaltung von Umgebungs-
modellen (Hornung, Wurm et al. 2013). Die Ergebnisse der Wahrnehmung werden in einem oder
mehreren Umgebungsmodellen gespeichert und zur Laufzeit von Bewegungsplanern verwendet.
2.2.3 Systeme zur Regelung und Steuerung der Kinematik von
mobilen Robotern
Die aufgrund der Wahrnehmung und Planung berechneten Bewegungen müssen über eine Steue-
rungsarchitektur an die Antriebe weitergegeben werden. Die für die Ansteuerung der mobilen
Plattform und des Manipulators infrage kommenden Regelungsverfahren hängen von der Kine-
matik des jeweiligen Roboters ab. Man unterscheidet bzgl. der Regelung bei mobilen Plattformen
nach Anzahl der Freiheitsgrade in der kartesischen Bewegung in nicht-omnidirektionale und om-
nidirektionale Plattformen. Letztere kann man entsprechend vorhandener Zwangsbedingungen
nach (Campion, Bastin et al. 1993) in verschiedene Klassen unterteilen, die unterschiedliche
Regelungsverfahren zur Umsetzung der Bewegung erfordern. Da bei mobilen Manipulatoren
fast ausschließlich serielle Manipulatorkinematiken eingesetzt werden, gleichen sich die Armre-
gelungsverfahren der unterschiedlichen Robotersysteme. Je nach Anwendungsfall werden ggf.
kraftbasierte Regelungsverfahren wie Impedanzregelung umgesetzt.
Da die Führungsgrößen des Reglers sowohl bei Plattformen als auch bei Manipulatoren zumeist
aus kartesischen Signalen bestehen, die vom Benutzer oder von einem Erkennungsalgorithmus
kommandiert werden, ist die Umrechnung vom kartesischen Raum in den Gelenkwinkelraum des
Roboters ein wichtiger Teil der Regler von mobilen Manipulatoren.
Man kann bei einem mobilen Manipulator Plattform und Manipulator synchron und asynchron
verwenden. Im asynchronen Fall werden zumeist die vom Hersteller optimierten Robotercon-
troller für die Regelung nach Verfahren im kartesischen Raum eingesetzt. Für eine synchrone
12
2.2 Mobile Manipulation: Technologieüberblick
Verwendung eines mobilen Manipulators muss jedoch ein Regler umgesetzt werden, der die Be-
wegungen von Plattform und Arm koordiniert. In der Fachliteratur wurden verschiedene Ansätze
entwickelt, die sich in der Verschaltung der Kinematiken und in der Auflösung der durch das
Verschalten entstehenden Redundanz unterscheiden. Beispiele hierfür sind (Yamamoto und Yun
1993), (Yamamoto und Yun 1995), (Khatib, Yokoi et al. 1996), (Nassal 1994) und (Ögren,
Egerstedt et al. 2000). Abbildung 2.6 zeigt ein Komponentenbild für das auf dem Verfahren
von Nassal basierenden SyncMM System (Bubeck, Connette et al. 2012), das eine synchrone
Reglerstruktur für den mobilen Manipulator Care-O-bot® 3 umsetzt. Aufgrund der Komplexi-
tät von synchronen Reglersystems ist eine praktische Umsetzung im Rahmen einer industriellen
Anwendung bisher noch nicht erfolgt.
Abbildung 2.6: Übersicht des Regelungsframework für synchrone mobile Manipulation SyncMM
Auf einem mobilen Manipulator müssen die beschriebenen Technologien für die Subsysteme
Navigation, Wahrnehmung und Regelung verbunden und integriert werden. Da es zwischen
diesen Subsystemen Wechselwirkungen gibt und die Abhängigkeiten von Hardwareschnittstellen
überlappend sind, ist die resultierende Komplexität nicht nur die Summe aus der Komplexität der
Subsysteme. Vielmehr muss ein Systemintegrator komplexes Wissen aller Technologien besitzen,
um das Softwaresystem für einen mobilen Manipulator umzusetzen.
13
2 Grundlagen und Ausgangssituation
2.3 Komponentenbasierte Entwicklung in der Robotik
Aufgrund der vielen Technologien und unterschiedlichen Architekturen von mobilen Manipula-
toren hat sich zusätzlich zur objektorientierten Abstraktion aus der Softwareentwicklung die
Strukturierung der Software in Komponenten durchgesetzt. Dabei werden die einzelnen Subsys-
teme der Navigation, Wahrnehmung und Regelung in unterschiedlich granulare Softwarekompo-
nenten aufgeteilt. Eine Softwarekomponente ist dabei nach (Szyperski, Bosch et al. 1999) wie
folgt definiert: “Eine Softwarekomponente ist ein Kompositionselement, das festgeschriebene
Schnittstellen und nur explizit formulierte Abhängigkeiten hat. Eine Softwarekomponente kann
unabhängig genutzt und extern mit anderen Komponenten verknüpft werden.”
Der Vorteil von komponentenbasierten Softwaresystemen ist die einfache Austauschbarkeit von
Systemteilen. Dadurch können Softwarekomponenten auch über Systemgrenzen hinweg wie-
derverwendet werden. Weiterhin können mit den gleichen Komponenten unterschiedliche Ar-
chitekturen umgesetzt werden. Die Umsetzung der Schnittstellen zwischen den Komponenten
kann unterschiedlich abstrakt funktionieren, so dass komponentenbasierte Systeme oft auch über
Rechnergrenzen hinweg verteilbar sind.
2.3.1 Das Komponentenframework OROCOS RTT
Um ein komponentenbasiertes Softwaresystem umzusetzen, wird ein Softwareframework ver-
wendet, das es erlaubt, die Schnittstellen- und Abhängigkeitsspezifikationen zu beschreiben.
Eines der in der Robotik durchgesetzten Frameworks ist das OROCOS RTT System (Bruy-
ninckx 2001), im Folgenden mit RTT abgekürzt. Die Besonderheit an RTT ist die Umsetzung
der Schnittstellen mittels eines speicher-basierten Kommunikationsmechanismus, der ohne Blo-
ckieren des Programmflusses der Komponente funktioniert. Bei datenfluss-orientierter Kommu-
nikation bleibt somit das Zeitverhalten der Komponenten deterministisch und die Umsetzung
von echtzeitfähigen Komponenten wird möglich. Dies ist eine Eigenschaft, die im Bereich der
Regelungstechnik eines Robotersystems sehr relevant ist, bei Funktionalitäten wie Planung oder
Wahrnehmung jedoch eine untergeordnete Rolle spielt. Die Komponenten werden mittels ei-
nes Softwaretools, bei RTT “deployer” genannt, konfiguriert und verbunden. Zusätzlich zur
echtzeitfähigen, speicher-basierten Verknüpfung kann eine netzwerk-basierte verteilte Kompo-
nentenstruktur umgesetzt werden. Hierzu wird zur Kommunikation das CORBA Framework
verwendet.
RTT gibt zusätzlich zur Formulierung der Schnittstellen und Abhängigkeiten auch ein einheit-
liches internes Verhalten der Komponenten vor. Daher hat RTT eine standardisierte Statema-
chine innerhalb der Komponenten. Durch den hohen Programmieraufwand bei der Erstellung
von Komponenten und die Unterstützung von nur C/C++ als Programmiersprache sind bisher
vergleichsweise wenige Komponenten in RTT umgesetzt. Zudem existieren wenige Systeme mit
14
2.3 Komponentenbasierte Entwicklung in der Robotik
einer großen Zahl von unterschiedlichen Komponenten. In Abbildung 2.7 ist der Aufbau einer
RTT-Komponente mit den Schnittstellen (Ports und Operations) dargestellt.
Abbildung 2.7: Darstellung des OROCOS RTT-Komponentenmodells aus (Bruyninckx 2001)
2.3.2 Das Robot Operating System
Das Robot Operating System (ROS) (Quigley, Conley et al. 2009) ist ein weiteres Framework
zur Umsetzung von komponentenbasierten Systemen in der Robotik. Ähnlich wie RTT han-
delt es sich bei ROS um ein Projekt, das die Kommunikationsfunktionalität sowie eine Vielzahl
von Werkzeugen zur Umsetzung von Softwaresystemen für Roboter zur Verfügung stellt. Zwar
gleicht ROS konzeptionell RTT in vielen Aspekten, es unterscheidet sich jedoch in der techni-
schen Umsetzung der Kommunikation. Im Gegensatz zu RTT sind in ROS alle Komponenten
separate Prozesse. Die Kommunikation passiert immer über eine für ROS spezifische Schnittstel-
lenumsetzung. Daher kann ein ROS System immer als verteiltes System betrachtet werden. Das
Kommunikationsprotokoll basiert auf dem in der Internettechnologie verbreiteten RPC-Protokoll
in Verbindung mit direkten TCP- und UDP-Binärkanälen. Durch diese netzwerk-basierte Um-
setzung können die Komponenten im Gegensatz zu RTT nicht in einem Anwendungskontext
benutzt werden, der Echtzeit-Verhalten erfordert.
Die Unterstützung von sehr vielen Programmiersprachen und eine flexibel nutzbare Komponen-
tenspezifikation hat ROS zum in der Robotik am weitesten verbreiteten Framework geführt. Es
gibt beim heutigen Stand über 3000 Softwarekomponenten, die mit ROS umgesetzt wurden,
viele davon mit Open Source Lizenzen. Dadurch ist ROS-Kompatibilität ein für viele Kompo-
nentenhersteller interessantes Feature und viele Kommunikationsschnittstellen entwickeln sich
zu (Pseudo-)Standards.
15
2 Grundlagen und Ausgangssituation
Da im weiteren Verlauf dieser Arbeit detailiert auf die Entwicklung mit dem Framework ROS
eingegangen wird, sind in Tabelle 2.4 die wichtigsten Mechanismen und Konzepte von ROS
zusammengefasst.
2.3.3 Weitere Frameworks und Bewertung von komponentenbasierter
Entwicklung
Zusätzlich zu den bereits beschriebenen Frameworks ist das OpenRTM (Ando, Suehiro et al.
2005), das in Eigenschaften und Implementationen mit RTT vergleichbar ist, in Japan sehr ver-
breitet. Ein alternativ zu ROS genutztes Framework ist das Yarp Framework (Metta, Fitzpatrick
et al. 2006), das auch auf dem Publish-Subscribe-Prinzip aufbaut. Eher selten im Einsatz befind-
liche Frameworks zur Umsetzung des komponentenbasierten Paradigmas sind OPROS (Jang,
Lee et al. 2010) und Mira (Einhorn, Langner et al. 2012). Detaillierte Benchmarks und Vergleiche
der verschiedenen Frameworks bzgl. der Performanz und Funktionalität finden sich in (Shakhi-
mardanov und Prassler 2007).
Bei der Verwendung der beschriebenen Frameworks ist eine Entscheidung für ein Framework sehr
früh im Entwicklungsprozess notwendig, da eine Integration von Komponenten über Framework-
Grenzen hinweg nicht einfach umsetzbar ist. Dies ist vor allem kritisch, da die Frameworks un-
terschiedliche Funktionalitäten bereitstellen, wie beispielsweise die Unterstützung von Echtzeit-
Verhalten.
Zudem ist die in der Definition einer Softwarekomponente nach (Szyperski, Bosch et al. 1999)
beschriebene schriftliche Festlegung von Schnittstellendefinitionen und Abhängigkeiten unter-
schiedlich streng umgesetzt. Oftmals findet die Definition innerhalb des Quellcodes statt, was
bei Frameworks, die viele Sprachen unterstützen, den Entwicklern viele Freiheiten lässt. Beispiels-
weise ist die Umsetzung der Schnittstellen von ROS-Komponenten zur Zeit sehr unterschiedlich.
Bei diesen Frameworks findet man daher trotz komponentenbasiertem Ansatz einen geringeren
Wiederverwendungsgrad.
In der Regel erfordert die Umsetzung von Software in komponentenbasierten Frameworks im-
mer noch sehr viel softwaretechnische Expertise, da die zur Verfügung gestellten Tools allen
Nutzern sehr viele Funktionalitäten bieten. Zudem ist bei der Entwicklung detailliertes Wissen
über die in den Komponentenframeworks umgesetzten Mechanismen notwendig. Eine Abgren-
zung der Werkzeuge nach Nutzungsart, beispielsweise für die Anwendungsentwicklung, ist in
den Frameworks oft nicht vorgesehen.
Komponentenbasierte Frameworks stellen damit für die Entwicklung von mobilen Manipulatoren
einen Fortschritt dar. Die hohe Komplexität, geringe Wiederverwendung und die nicht vorhan-
dene Trennung von Entwicklungsaspekten sind bei der Softwareentwicklung jedoch weiterhin
problematisch.
16
2.3 Komponentenbasierte Entwicklung in der Robotik
Tabelle 2.4: Überblick über die Mechanismen des Komponentenframeworks ROS
ROS Mechanismus Kurzerklärung
Package Die Implementierungen der Komponenten wird in ROS mit Hilfe
von Packages organisiert. Diese enthalten Metainformationen zu
Abhängigkeiten und Anweisungen zum Kompilieren des
Quellcodes.
Node Softwarekomponenten werden in ROS als “Nodes” bezeichnet.
Diese laufen auf dem Zielsystem als einzelne Prozesse oder
können in einem Prozess als sogenannte “Nodelets”
zusammengefasst werden.
Topic / Subscriber / Publisher Die einzelnen ROS-Nodes können über einen asynchronen
Publish-Subscribe-Mechanismus miteinander kommunizieren. Der
Kanal, über den die Kommunikation passiert, wird in ROS als
“Topic” bezeichnet. Die Implementationen der jeweiligen Server-
und Clientschnittstellen werden als “Publisher” und “Subscriber”
bezeichnet.
Service / ServiceServer /
ServiceClient
Alternativ steht in ROS ein Mechanismus zur synchronen
Kommunikation zur Verfügung, der “Service”. Auch hier werden
entsprechende Schnittstellenimplementierungen benötigt.
Action / ActionServer /
ActionClient
Als dritte Kommunikationsalternative stehen Actions zur
Verfügung. ActionServer und ActionClient stellen jeweils eine
Kommunikationszustandsmaschine dar, die asynchrone
Kommunikation verwendet, jedoch Mechanismen zur
Synchronisation von Nodes bietet.
Parameterserver
/dynamic_reconfigure
Parameter von Komponenten werden in ROS zentral von einem
“Parameterserver” verwaltet. Diese werden beim Start der
Komponente eingelesen. Eine Möglichkeit, Parameter zur Laufzeit
zu modifizieren, bietet der Mechanismus “dynamic_reconfigure”.
SMACH Um komplexe Abläufe einer ROS Anwendung umzusetzen,
können Zustandsmaschinen verwendet werden. Eine Bibliothek,
die es einfach ermöglicht, solche Zustandsmaschinen zu erstellen
und mit dem restlichen ROS-System zu verknüpfen, ist
“SMACH”.
roslaunch Um ROS-Nodes zu konfigurieren und auf einem Zielsystem zu
starten, kann das Tool “roslaunch” eingesetzt werden. Die
Systemkonfigurationen werden dabei in sogenannten
“Launch-Files” in Form von XML-Anweisungen gespeichert.
17
2 Grundlagen und Ausgangssituation
2.4 Modellbasierte Softwareentwicklung
Bei der modellbasierten Softwareentwicklung werden formalisierte Modelle benutzt, um verschie-
dene Abstraktionsebenen bei der Erstellung von Softwaresystemen zu schaffen. Es haben sich
für diesen Ansatz diverse synonyme Begriffe herausgebildet, wie modellgetriebene Softwareent-
wicklung, Model-Driven Software Development oder Model-Driven Engineering. Im Folgenden
wird der Begriff modellbasierte Softwareentwicklung verwendet. In (Kent 2002) ist modellba-
sierte Entwicklung als ein Ansatz definiert, der Modelle in Modellierungssprachen beschreibt,
die für verschiedene Aspekte und Ebenen eines Softwaresystems entworfen werden, den Domain
Specific Languages (DSL’s). Durch Anwendung von Modelltransformationen können Entwick-
lungsschritte automatisiert werden. Dies ist zwischen den Modellebenen möglich, jedoch auch
bis hin zu ausführbarem Code. Der wichtigste Aspekt von modellbasierter Entwicklung ist also
die Formalisierung der Modellbeschreibung.
Das Bilden von Modellebenen in Softwaresystemen durch modellbasierte Entwicklung ermöglicht,
Komplexität zu kapseln, Entwicklerrollen klar zu trennen, Architekturen durchzusetzen und Wie-
derverwendung durch standardisierte Modelle zu vereinfachen. Die modellbasierte Entwicklung
hat sich daher in vielen Anwendungsbereichen, wie der Luftfahrt- oder der Automobilindustrie,
zu einem gängigen Vorgehensmodell entwickelt [Müller2009].
Von der Object Management Group (OMG), einem Konsortium aus Softwareherstellern und
-anwendern, ist eine konkrete Spezifikation zur Umsetzung von modellbasierter Entwicklung
definiert worden, die Model-driven Architecture (MDA). Dabei werden in MDA, wie in (Kleppe,
Warmer et al. 2003) beschrieben, vier verschiedene Modellierungsebenen definiert:
• Auf der untersten M0-Ebene findet sich die konkrete Implementation eines Softwaresys-
temaspektes in einer ausführ- bzw. kombinierbaren Programmiersprache. Ein Beispiel für
diese Ebene ist eine Treiberbibliothek eines Hardwaregerätes.
• Auf der Modellebene, derM1-Ebene wird der Softwareaspekt mittels einer Domain Specific
Language modellartig beschrieben. Je nach DSL kann dies sehr abstrakt oder schon sehr
nahe an der späteren konkreten Implementation sein. Auch kann die Modellierung auf
mehrere Modelle aufgeteilt werden. Ein Beispiel ist die Modellierung der Datentypen einer
Klasse von Hardwaretreibern.
• In der Meta-Modellebene, M2-Ebene werden die für die M1-Ebene erforderlichen DSL’s
spezifiziert. Hier werden Modelle mit den Mechanismen gebildet, die zur Modellierung auf
der M1-Ebene eingesetzt werden können. Sehr verbreitet ist das Unified Modeling Langua-
ge (UML) Meta-Modell, das zur Beschreibung von Objekt-orientierten Softwareprojekten
eingesetzt werden kann. Ein Beispiel sind die zur Beschreibung der Treiberdatentypen
zur Verfügung stehenden Mechanismen, wie der Aufbau von komplexen Datentypen aus
Grundtypen.
18
2.4 Modellbasierte Softwareentwicklung
• Die Meta-Meta-Modellebene,M3-Ebene enthält sehr abstrakte Modellbeschreibungen für
die Definition von DSL’s auf der M2-Ebene. Die M3-Ebene wird meistens von der modell-
basierten Entwicklungstoolchain bereitgestellt und wurde in Form der Meta Object Facility
(MOF) von der OMG standardisiert. Eine Implementation der MOF ist das ECore M3 Mo-
dell in der Eclipse Modeling Toolchain. Bei diesem werden Mechanismen wie “Klassen”
und “Attribute” definiert, die schließlich in ECore basierten DSL’s instanziiert werden.
Diese Mechanismen können dann beispielsweise bei der Definition des Meta-Modells zur
Beschreibung von Datenübertragungsdatentypen verwendet werden.
Die beschriebenen Modellebenen der MDA können in Form einer Pyramide mit zur Spitze auf-
steigender Abstraktion dargestellt werden. Zwischen den Ebenen spricht man dabei nicht von
Vererbung, sondern von Konformität. Eine Darstellung der Pyramide findet sich in Abbildung 2.8.
Abbildung 2.8: Visualisierung der OMG-Modellpyramide
Um den Austausch von Modellen aller Ebenen untereinander zu gewährleisten, müssen sie in
Form eines Dateiformats abgespeichert werden. Diese Abspeicherung wird in der modellbasierten
Entwicklung Persistierung des Modells genannt. Von der OMG wurde zur Persistierung das XML
Metadata Interchange Format (XMI) spezifiziert, ein auf der Extensible Markup Language XML
aufbauendes Format zum Speichern von Modellen aller Ebenen der MDA.
19
2 Grundlagen und Ausgangssituation
Transformationen zwischen den Modellen und Ebenen können mit sogenannten Transformati-
onsregeln durchgeführt werden. Diese sind Funktionen, die als Eingang ein bestimmtes Modell
benötigen und ein oder mehrere Modellelemente in einer Ziel-DSL generieren. Es gibt für diese
Transformationsregeln mehrere Umsetzungssprachen, die sich in der Anwendung durchgesetzt
haben, zum Beispiel die ATL Transformation Language (ATL, rekursives Akronym) (Jouault,
Allilaire et al. 2008) oder die Epsilon Transformation Language (ETL) (Kolovos, Paige et al.
2008).
Um die Anwendung von modellbasierter Entwicklung auf eine Domäne zu bewerten, wurde
in (Rios, Bozheva et al. 2006) das “Model-driven Development Maturity Model” als eine Wer-
tungsmetrik eingeführt. Dieses beschreibt die Einführung von modellbasierter Entwicklung in
fünf Stufen, an die bestimmte Eigenschaften der Toolchain sowie deren Anwendung auf die Ent-
wicklungsprozesse gekoppelt sind. Tabelle 2.5 zeigt die verschiedenen Stufen mit ihren jeweiligen
Eigenschaften. MDD steht dabei für Model-Driven Development.
Anhand der Einordnung in die Bewertungsstufen kann ermittelt werden, inwieweit der Einsatz
von modellbasierter Entwicklung in bestimmten Domänen schon fortgeschritten ist. (Hailpern
und Tarr 2006) hat die Adoption von modellbasierter Entwicklung in verschiedenen Domänen
analysiert und kommt zu dem Schluss, dass folgende Probleme im Allgemeinen die Adoption
verhindern können:
• Komplizierte, schwer verständliche DSL’s
• Hohe Abstraktion in der Modellierung und damit Beschränkung der Entwickler
• Umsetzung reiner graphischen Modellierung. Graphische Modellierung kann in bestimmten
Fällen, zum Beispiel bei sich wiederholenden Artefakten, aufwändiger sein als textuelle
Modellierung
• Schlechte Standardisierung der Modellierungstools
Des Weiteren wird in (Hailpern und Tarr 2006) angemerkt, dass bei modellbasierter Entwicklung
die Toolchain einen stärkeren Einfluss auf die Entwicklung hat als bei herkömmlichen Ansätzen.
Beispielsweise können bei nicht-modellbasierter Entwicklung Programmiereditoren vom Entwick-
ler frei gewählt werden. Modellbasierte Entwicklung hat meist eine geringere Flexibilität bzgl.
der Werkzeuge, daher sind die Ansprüche der Nutzer an eine funktionierende Toolchain auch
höher.
20
2.5 Anwendung von modellbasierter Softwareentwicklung in der Robotik
Tabelle 2.5: Die Bewertungsskala von modellbasierter Entwicklung nach
(Rios, Bozheva et al. 2006)
“Majurity Level” Name Definition
Level 1 Ad-hoc Modelling Praktiken der Modellierung werden nur sporadisch oder
gar nicht genutzt.
Level 2 Manual Modelling Es gibt manuell erstellte Modelle basierend auf der
Implementation und klare Vorgaben zur Umsetzung von
Quellcode.
Level 3 Initial MDD Es gibt eine Toolchain, die es ermöglicht, aus Modellen
automatisiert Code zu generieren. Generierter und
nicht-generierter Code werden separiert. Änderungen im
Code werden wieder in das Modell eingepflegt.
Level 4 Integrated MDD Die Anwendung wird hauptsächlich durch Modellierung
erstellt. Es gibt verschiedene Modellierungssprachen für
unterschiedliche Aspekte. Es ist ein Modell für die
gesamte Domäne definiert, eine standardisierte
Modellierungssprache wird verwendet. Es gibt
modellbasiertes Testen.
Level 5 Ultimate MDD Es werden ausschließlich modellbasierte Verfahren und
DSL’s verwendet, um das Produkt zu entwickeln.
2.5 Anwendung von modellbasierter Softwareentwicklung
in der Robotik
Obwohl in anderen Fachbereichen modellbasierte Entwicklung bereits großflächig eingesetzt wird,
gibt es in der Robotik bisher nur wenige Fälle, in denen über der gesamten Architektur ein
modellbasiertes Framework eingesetzt wird. Das am stärksten verbreitete Framework, welches die
modellbasierten Konzepte umsetzt und mittels einer entsprechenden Toolbox (Corke 2007) für
die Robotik adaptiert, ist Simulink auf Basis von Matlab der Firma Mathworks. Vor allem in der
Regelungstechnik wird Simulink oft genutzt, so dass auch die regelungstechnischen Aspekte einer
Roboteranwendung mit Simulink umgesetzt werden (siehe Abbildung 2.9). Der von Simulink
generierte Code ist echtzeitfähig und kann für verschiedene eingebettete Systeme optimiert
werden. Ein Nachteil ist, dass das Meta-Model (M2) von Simulink nicht offen dokumentiert ist,
so dass keine weiteren Werkzeuge für die Arbeit mit Simulinkmodellen umsetzbar sind und man
stattdessen auf die verfügbaren Werkzeuge der Firma Mathworks angewiesen ist. Dies ist durch
die sehr hohen Anschaffungspreise der Werkzeugerweiterungen für kleinere Unternehmen meist
nicht wirtschaftlich. Neue oder abweichende Entwicklungsprozesse können ebenfalls schlecht
integriert werden.
21
2 Grundlagen und Ausgangssituation
Außerdem ist mittels Simulink generierter Quellcode nicht komponentenbasiert. Vielmehr werden
alle Teile eines Simulinkmodells in einen monolithischen Quellcode übersetzt. Dies macht die
Integration mit bestehenden Softwaremodulen schwierig. Zudem ist eine verteilte Nutzung nicht
möglich.
Abbildung 2.9: Umsetzung eines Reglers für synchrone mobile Manipulation in Simulink
Unabhängig von den in Kapitel 2.4 vorgestellten, bestehenden komponentenbasierten Frame-
works wurden weitere modellbasierte Werkzeuge für die Robotik entwickelt. Aus dem For-
schungsprojekt Proteus ist das Meta-Modell (M2) RobotML für Roboteranwendungen entstan-
den (Dhouib, Kchir et al. 2012). Dieses erweitert das bestehende Meta-Modell von UML um
Primitive, die für die Robotik notwendig sind. Somit entsteht eine UML-Erweiterung. Durch
den Einsatz von UML als Basis kann als Werkzeug ein bestehender UML-Editor, in diesem Fall
Eclipse Papyrus, genutzt und modifiziert werden. Die Modelle der Roboterapplikation sind voll-
ständig unabhängig vom später genutzten komponentenbasierten Framework. Dies verschiebt die
Entscheidung bzgl. des Frameworks auf einen späteren Zeitpunkt des Entwicklungsprozesses. Al-
lerdings wird die automatische Codegenerierung in ein Framework erschwert, da nur abstrakte,
für alle Frameworks identische Funktionalitäten modelliert werden können. Dies hat im Falle von
Proteus zur Folge, dass die für die Codegenerierung genutzten Templates sehr viele implizite
Annahmen beinhalten, die den Entwicklungsprozess intransparent machen (Hailpern und Tarr
2006).
Ein weiteres Projekt zur Erstellung einer modellbasierten Entwicklungstoolchain für die Robotik
ist das SmartSoft-Projekt (Schlegel und Worz 1999), das wie RobotML eine Erweiterung von
UML implementiert. Jedoch wurde beim SmartSoft-Projekt ein eigenes Entwicklungswerkzeug
umgesetzt, das für die Entwicklung von Robotersystemen optimiert ist. SmartSoft hat dabei den
22
2.5 Anwendung von modellbasierter Softwareentwicklung in der Robotik
Fokus auf ein eigenes, wenig verbreitetes, auf CORBA basierendes Kommunikationsframework.
Im Fall von SmartSoft können bestehende komponentenbasierte Frameworks nur über zusätzli-
che Gateway-Softwarekomponenten genutzt werden, die Übersetzungscode für die Primitive der
Frameworks umsetzen.
Einen anderen Ansatz setzt das AMARSi Projekt für die Regelung von Beinkinematiken um (Nord-
mann, Tuleu et al. 2013). Die Modellierung erfolgt hier mittels eines eigens entwickelten Meta-
Modells, welches innerhalb der Programmierumgebung “Jetbrains MPS” umgesetzt ist. Nach
der Modellierung werden die Komponenten für das Softwareframework Yarp generiert, das bei-
spielsweise auf dem iCub Roboter genutzt wird. Das Projekt konzentriert sich bisher auf den sehr
speziellen Anwendungsfall des Reglerentwurfs und hat die Unterstützung von weiteren Frame-
works bisher nur angekündigt. Aussagen über die Skalierbarkeit dieses Meta-Modells auf die
gesamten Problemstellungen von mobilen Manipulatoren sind noch nicht dokumentiert.
Das komponentenbasierte Framework OpenRTM hat mit “RTC Builder” und “RT System Edi-
tor” zwei separierte Eclipse-basierte Modellierungstools für verschiedene Entwicklungsaspekte.
Da für diese jedoch keine formalen Meta-Modelle vorhanden sind, handelt es sich hierbei nicht
um einen modellbasierten Ansatz nach der in Kapitel 2.4 genannten Definition und die Vor-
teile bzgl. Wiederverwendbarkeit und Abstraktion sind ebenfalls nur innerhalb des OpenRTM
Frameworks gültig.
Einen Überblick über die Eigenschaften der aktuell entwickelten modellbasierten Roboterframe-
works gibt Tabelle 2.6.
Tabelle 2.6: Überblick über derzeitige modellbasierte Entwicklungsumgebungen für die Robotik
Projekt /
Produkt
Offenes
Meta-Modell
Unterstützung
komponenten-
basierter
Entwicklung
Native
unterstützte
Frameworks
Über ein
Gateway
unterstützte
Frameworks
Simulink nein nein - -
Proteus ja ja Yarp, ROS,
OROCOS
-
SmartSoft ja ja proprietär ROS
AMARSI nein ja Yarp -
In allen beschriebenen Frameworks können bestehende, nicht durch modellbasierte Verfahren
entwickelte, Komponenten nicht wiederverwendet werden. Somit ist ein hoher Aufwand notwen-
dig, um auf modellbasierte Entwicklung umzusteigen, da alle bestehenden Module überarbeitet
werden müssen. Die Akzeptanz der Software außerhalb der Projekte ist daher zur Zeit begrenzt.
Die von (Hailpern und Tarr 2006) ermittelten und in Kapitel 2.4 zusammengefassten Probleme
der Adoption modellbasierter Entwicklung bestehen auch bei den hier vorgestellten Ansätzen für
die Robotik. Alle Frameworks haben einen hohen Abstraktionsgrad bei der Modellierung. Eigen-
23
2 Grundlagen und Ausgangssituation
schaften der verschiedenen Frameworks können nicht durchgängig modelliert werden. Entwickler,
die bereits erfahren im Umgang mit einem komponentenbasierten Framework sind, müssen neue
Konzepte und Mechanismen lernen.
Um die Standardisierung der Modellierungstools und -sprachen in der Robotik voranzutreiben,
muss die Nutzerzahl der modellbasierten Toolchains vergrößert werden. Zudem müssen mehr An-
wendungsfälle, gerade bzgl. komplexer Robotersysteme, wie mobilen Manipulatoren, geschaffen
werden.
2.6 Ableitung von Anforderungen an eine
Entwicklungstoolchain
Die Vorteile von modellbasierter Entwicklung sind in anderen Fachbereichen klar nachgewiesen
(siehe beispielsweise (Walderhaug, Mikalsen et al. 2008), (Hutchinson, Rouncefield et al. 2011)
und (Mohagheghi, Gilani et al. 2013)) und sind besonders für komplexe Softwaresysteme, wie
sie bei mobilen Manipulatoren umgesetzt werden müssen, erstrebenswert, um die Entwicklungs-
kosten zu senken. Jedoch konnten die mit modellbasierter Entwicklung verbundenen Heraus-
forderungen (siehe Kapitel 2.5) von den verfügbaren Ansätzen noch nicht überwunden werden.
Daher ist im Rahmen dieser Arbeit ein Entwicklungswerkzeug entstanden, welches modellbasiert
einen großen Teil des Prozesses zur Erstellung von Softwaresystemen für mobile Manipulatoren
abdeckt. Ansätze, die sich von denen bestehender Toolchains unterscheiden, sollen dabei Anwen-
dung finden. Es sollen nach den Erfahrungen bestehender Projekte folgende Punkte besondere
Beachtung finden.
Allgemeine Features modellbasierter Entwicklung:
• Durch den Einsatz der modellbasierten Toolchain soll der Wiederverwendungsgrad in den
verschiedenen Entwicklungsschritten einer Roboteranwendung gesteigert werden, um den
Aufwand für die Anwendungsentwicklung mit mobilen Manipulatoren zu senken.
• Das erforderliche Wissen für das Partizipieren in der Entwicklung soll vermindert werden,
besonders bzgl. der erforderlichen Wissensbandbreite.
• Durch formalisierte Dokumentation können standardisierte Architekturen und Systeme für
allgemeine Problemstellungen umgesetzt werden.
24
2.6 Ableitung von Anforderungen an eine Entwicklungstoolchain
Nutzbarkeit:
• Das Tool muss verständlich und für die Zielgruppe, d.h. Entwickler von mobilen Roboter-
systemen, einfach zu bedienen sein.
• Wiederverwendung bestehender, nicht mit der Toolchain entwickelter Software muss mög-
lich sein, da es schon eine Vielzahl von offenen Robotikbibliotheken gibt. Der Einstieg in
die modellbasierte Entwicklung soll mit geringem Aufwand möglich sein.
• Verschiedene Entwicklungsarten müssen unterstützt werden, da sie für verschiedene As-
pekte eines Robotersystems Vorteile bieten. Textuelle und graphische Umsetzungen des
Tools sind daher erforderlich.
Offenheit und Flexibilität:
• Eine zu hohe Abstraktion durch die Modelle darf nicht die Flexibilität manueller Imple-
mentation beschränken.
• Die Verwendung unterschiedlicher komponentenbasierter Frameworks muss möglich sein,
um die Vorteile der verschiedenen Frameworks optimal zu nutzen.
• Durch die hohe Entwicklungsgeschwindigkeit in der mobilen Robotik müssen neue Frame-
works in der Zukunft integrierbar sein.
Im Rahmen dieser Arbeit wurde eine Toolchain entwickelt, die die genannten Anforderungen für
die Entwicklung von mobilen Manipulatoren umsetzt.
25
3 Entwicklung komplexer
Softwaresysteme für die mobile
Manipulation
Im vorherigen Kapitel wurde sowohl die Wichtigkeit der Optimierung von Softwareentwicklungs-
prozessen erläutert, als auch ein Überblick über die bisherigen Lösungen in der Robotik und
darüber hinaus gegeben. Im folgenden Kapitel werden grundlegende Konzepte zur Umsetzung
einer modellbasierten Toolchain vorgestellt. Diese sind im Rahmen dieser Arbeit auf die Ent-
wicklung von Softwaresystemen für die mobile Manipulation angewandt und adaptiert worden.
Dabei werden vor allem auch die Erfahrungen und die ermittelten Hemmnisse beim Einsatz von
bestehenden Umsetzungen von Softwareentwicklungsframeworks in der Konzeption berücksich-
tigt.
Nach der Adaption des Konzeptes der modellbasierten Entwicklung für die Robotik werden die
grundsätzlichen Konzepte der Separierung von Belangen und Entwicklerrollen diskutiert sowie
deren Anwendung durch Einsatz von modellbasierten Techniken erarbeitet. Anschließend wird die
Interaktion von Softwaremodellen der mobilen Manipulation mit abstrakten Beschreibungsspra-
chen untersucht. Die durch den Einsatz von modellbasierter Entwicklung entstehenden Möglich-
keiten zu Modelltransformationen zwischen Modellierungs- und Programmiersprachen werden
am Ende dieses Abschnittes auf die mobile Manipulation angewandt.
Es ergibt sich aus der Integration der verschiedenen beschriebenen Konzepte ein Gesamtansatz,
der die Wiederverwendung steigert und das erforderliche technische Wissen der Entwickler für
die Anwendungs- und Systemerstellung bei mobilen Manipulatoren senkt.
3.1 Methoden zur Umsetzung von modellbasierter
Entwicklung
Wie in Kapitel 2.4 beschrieben, bietet das Konzept der modellbasierten Entwicklung die Mög-
lichkeit, die Wiederverwendung zu erhöhen, Softwareengineeringkonzepte und -architekturen
durchzusetzen und Entwicklerrollen zu trennen. Ein Einsatz in der Erstellung von komplexen
Roboteranwendungen ist daher erstrebenswert.
27
3 Entwicklung komplexer Softwaresysteme für die mobile Manipulation
3.1.1 Modellbasierte Entwicklung nach der Top-down-Methode
Bestehende Ansätze zum Einsatz von modellbasierten Verfahren in der Robotik, die ebenfalls in
Kapitel 2 beschrieben wurden, haben die Konzepte der modellbasierten Entwicklung aus anderen
Domänen direkt übernommen und daher abstrakte Beschreibungsformen, wie UML und SysML,
als Grundlage der Umsetzung der modellbasierten Toolchain verwendet.
In dadurch entstandenen Meta-Modellen (in Abbildung 3.1 auf Layer “M2”), wie beispielsweise
RobotML, werden die Roboterapplikationen modelliert (Layer “M1”) und durch aufwändige
Templates mittels einer Model-to-Text-Transformation (“M2T”) direkt in lauffähigen Quelltext
umgesetzt (Layer “M0”). Dieses Prinzip ist in Abbildung 3.1 anhand der OMG-Modellpyramide
dargestellt. Durch den hohen Abstraktionsgrad in der Beschreibung der Modelle wird diese
Herangehensweise im Folgenden “Modellbasierte Entwicklung nach der Top-down-Methode”
genannt.
Abbildung 3.1: Abstrakte Meta-Modelle für Robotik in der OMG-Modellpyramide
Der Vorteil dieser Herangehensweise ist es, dass schon bestehende Toolchains verwendet werden
können, da die genutzten Meta-Modelle sehr große Ähnlichkeit mit bestehenden Meta-Modellen,
für die bereits Toolchains existieren, haben. Ebenfalls vorteilhaft ist der hohe Abstraktionsgrad
für Softwarearchitekten, die die Anwendung von Beschreibungsmodellen gewöhnt sind. Jedoch
geht bei diesem Ansatz ein entscheidender Nutzen von modellbasierter Entwicklung, die for-
male Beschreibung von Softwareprinzipien verloren, da die für das jeweils eingesetzte Roboter-
framework spezifischen Mechanismen nur implizit in den Templates enthalten sind. Daher sind
Transformationen zwischen den Frameworks sowie die Umsetzung bestimmter frameworkspezifi-
scher Prinzipien nur schwer möglich. Zudem ist durch den hohen impliziten Informationszuwachs
bei der Transformation eine Rücktransformation aus dem Code in das Modell kaum möglich.
Durch den Unterschied in der Beschreibung des Modells und der Implementierung ist zudem
die Verwendung von bestehenden, nicht durch modellbasierte Verfahren entwickelte Software,
28
3.1 Methoden zur Umsetzung von modellbasierter Entwicklung
schwer möglich. Zudem müssen die Entwickler ihre bestehenden Konzepte verlassen und die
Modellierung mit der Toolchain erlernen.
3.1.2 Modellbasierte Entwicklung nach der Bottom-up-Methode
Aufgrund der beschriebenen Nachteile der Top-down-Methode wird in dieser Arbeit ein anderer
Ansatz zur Einführung modellbasierter Entwicklung in der Robotik umgesetzt: die Entwick-
lung von Meta-Modellen nach der Bottom-up-Methodik. Statt der ausschließlichen Entwicklung
von abstrakten Meta-Modellen werden für das entsprechende Zielsystem frameworknahe Meta-
Modelle entwickelt. Während der Generierung des ausführbaren Quellcodes können die Elemen-
te des Meta-Modells direkt und mit Vermeidung impliziter Annahmen in der Codegenerierung
umgewandelt werden. Die Transformation von oder in andere abstraktere Meta-Modelle wird
durch eine Model-to-Model (M2M)-Transformation beschrieben. Die Transformationen sind da-
her immer formal definiert. Der modellbasierte Ansatz mit frameworknahen Meta-Modellen ist
in Abbildung 3.2 anhand der OMG-Modellpyramide dargestellt.
Abbildung 3.2: Frameworknahe Meta-Modelle für die Robotik in der OMG-Modellpyramide
Trotz der zusätzlichen frameworknahen Meta-Modelle kann durch die M2M-Transformation ein
hoher Abstraktionsgrad bei der Systembeschreibung erreicht werden. Dieser wird in Abschnitt
3.4 konkreter diskutiert. Zusätzlich wird durch die direkte Beschreibung der Mechanismen die
Rücktransformation von Code (M0 Ebene) in das Modell (M1), d.h. die Umkehr der M2T-
Transformation, möglich. Diese auf die Rücktransformation aus der M0 Ebene bezogene Tech-
nik wird bei modellbasierter Entwicklung als Roundtripping bezeichnet. Zudem können auch
bestehende Komponenten, die nicht aus der modellbasierten Toolchain generiert worden sind,
wiederverwendet werden. Für Entwickler fällt die Nutzung der modellbasierten Verfahren leicht,
29
3 Entwicklung komplexer Softwaresysteme für die mobile Manipulation
da die für sie gewohnten Konzepte des jeweiligen Komponentensystems direkt in den Modellen
verwendbar bleiben. Der vorhandene Informationsverlust oder -gewinn sowie eventuelle Annah-
men bei der Transformation zwischen den Modellierungssprachen sind nun explizit in den M2M-
Beschreibungen enthalten. Jedoch ist im Vergleich zu den bestehenden Ansätzen, die alle die
Top-down-Methode umsetzen, der Entwicklungsaufwand der Modelle und der Entwicklungsum-
gebung weit höher. Da dieser Entwicklungsaufwand allerdings nur einmalig für jedes Framework
entsteht und die Anzahl der Frameworks in der Robotik sehr übersichtlich ist, ist der höhere
Aufwand vernachlässigbar.
3.1.3 Vergleich der Umsetzungsmethoden
In Form einer Gegenüberstellung der beiden vorgestellten Herangehensweisen bei der Entwicklung
von modellbasierten Verfahren für die Robotik nach der Top-down- oder Bottom-up-Methodik
sind die Vor- und Nachteile in Tabelle 3.1 zusammengefasst.
Tabelle 3.1: Vergleich der Ansätze zur Entwicklung einer modellbasierten Toolchain
Top-down-Methodik Bottom-Up-Methodik
Vorteile Nachteile Vorteile Nachteile
Hohe Abstraktion und
Portabilität
Implizite Annahmen in
der M2T
Transformation
Hohe Abstraktion
immer noch möglich
Höherer
Entwicklungsaufwand
der Toolchain
Kein Roundtripping Roundtripping
möglich
Aufwändigere
Modellierung
Neue Konzepte für die
Entwickler
Wiederverwendung
existierender
Komponenten möglich
Keine
Wiederverwendung
bestehender
Komponenten
Annahmen sind in den
Modellen formalisiert
Entwickler benutzen
bekannte Konzepte
Da die Vorteile des Ansatzes nach der Bottom-up-Methodik für die Entwicklungsprozesse in der
Robotik sehr relevant sind und sich die Nachteile der Top-down-Methodik in den existierenden
Umsetzungen bereits gezeigt haben (siehe Kapitel 2.5), wurde die Umsetzung von framework-
nahen Modellierungsverfahren nach der Bottom-up-Methodik in dieser Arbeit gewählt.
30
3.2 Separierung der Entwicklerbelange
3.2 Separierung der Entwicklerbelange
Softwarekomponenten besitzen im Allgemeinen funktionale und nicht-funktionale Anforderun-
gen, die vom Entwickler umgesetzt werden müssen. Diese Anforderungen können grundsätzlich
während der Entwicklung getrennt werden, da sie auch für den Entwickler bei der Umsetzung
von Komponenten unterschiedliche Belange darstellen. Diese Belange wurden schon in (Reade
1989) als sogenannte “developer concerns” bezeichnet. Für die Entwicklung von Softwarekompo-
nenten für mobile Manipulation können, basierend auf den eingesetzten komponentenbasierten
Systemen, folgende Hauptbelange unterschieden werden (siehe Abbildung 3.3):
• Konfiguration: Für die Parametrierung der Komponente ist in der Regel ein Funktio-
nalitätsteil notwendig, der im einfachsten Fall die Parameter aus einer Datei einliest. In
Komponentenframeworks, die in der Robotik eingesetzt werden, stehen in der Regel erwei-
terte Konfigurationsmechanismen zur Verfügung, für die eine entsprechende Funktionalität
innerhalb der Komponente umgesetzt werden muss.
• Koordination: Innerhalb einer Komponente gibt es einen Teil, der für die Regelung des
Verhaltens der Software verantwortlich ist. Dies kann bedeuten, dass eine Funktion zyklisch
aufgerufen wird oder dass bestimmte Eingangsdaten zu einem bestimmten Zeitpunkt im
Programmfluss gelesen werden. In der Wechselwirkung mit anderen Komponenten kann
die Koordinationsfunktionalität einer Komponente auch das Verhalten von anderen Kom-
ponenten beeinflussen.
• Kommunikation: Die einzelnen Komponentenframeworks bieten entsprechende Kommu-
nikationsschnittstellen an, die von den Komponenten genutzt werden können, um mit
anderen Softwarekomponenten Daten auszutauschen. Die Definition sowie das Einlesen
und Auslesen von Daten aus diesen Kommunikationsmechanismen muss jedoch in der
Regel innerhalb der Komponente umgesetzt werden.
• Komposition: Im Zusammenspiel von Komponenten muss definiert werden, welche Kom-
ponentenschnittstellen auf welche Weise miteinander verbunden sind. Dieser deklarative
Teil kann entweder außerhalb oder innerhalb einer Komponente passieren.
• Kalkulation: Der eigentliche funktionale Teil, beispielsweise ein Treiber oder Algorithmus,
führt innerhalb der Komponente die gewünschten Kalkulationen aus. Dieser Teil kann
generell vollständig unabhängig vom benutzten Softwareframework umgesetzt werden.
31
3 Entwicklung komplexer Softwaresysteme für die mobile Manipulation
Bei Softwarekomponenten, die ähnliche Funktionalitäten umsetzen, gleichen sich die Umset-
zung bestimmter Belange stark. Um bereits entwickelten Code in diesem Fall leicht von einer
Komponente zur anderen zu übertragen und damit wiederzuverwenden, muss er vom Rest der
Software extrahierbar sein. Die “developer concerns” sollten also so weit wie möglich von einan-
der getrennt umgesetzt werden. Dieses Prinzip ist in der Softwareentwicklung als “Separation of
Concerns”, im Deutschen als Separierung der Belange, bekannt. Auf die beschriebenen Belange
eines Roboterkomponentenentwicklers bezogen, heißt das beispielsweise, dass bei einer guten
Separierung die Implementation der Konfiguration eines vorhandenen Laserscannertreibers bei
der Umsetzung eines neuen Laserscannertreibers direkt wiederverwendet werden kann (siehe Ab-
bildung 3.3). Der Vorteil der in diesem Fall manuellen Separierung bei der Roboterentwicklung
wurde in (Bubeck, Weisshardt et al. 2012) gezeigt.
Abbildung 3.3: Fünf Belange einer Software-Komponente bei der Wiederverwendung. Nur
bestimmte Belange müssen modifiziert werden (orange)
Zur praktischen Umsetzung der Separierung von Entwicklerbelangen auf der Programmierebene
wurden verschiedene Konzepte und Programmiersprachen entwickelt, die von den Softwareent-
wicklern eingesetzt werden können. Eine Möglichkeit ist dabei, die Auftrennung der Belange
direkt in die Programmiersprache einzubauen. Dieses Prinzip der aspektorientierten Program-
miersprachen, das beispielsweise in AspectC++ (Spinczyk, Gal et al. 2002) zum Einsatz kommt,
setzt die Separierung der Belange auf solche Weise um. Keines der existierenden Roboterframe-
works unterstützt zur Zeit aspektorientierte Sprachen. Zudem müssen die Entwickler bei diesem
Ansatz eine neue Programmiersprache zur Entwicklung von Roboteranwendungen lernen, was
die Entwicklung von mobilen Manipulatoren noch mehr verteuern und spezialisieren würde.
Ein weiterer Ansatz der Umsetzung von “Separation of Concerns” ist die explizite Modellierung
der Belange in einem modellbasierten Entwicklungsprozess. Die Belange werden schon separiert
im Modell definiert, wenn das Meta-Modell so entwickelt wird, dass die Modellierungsprimitive
einem jeweiligen Belang zugeordnet werden können. Die M2T-Transformation kann dann auf
eine Weise umgesetzt werden, dass die Belange voneinander getrennt im Programmcode stehen.
Eine solche Integration des “Separation of Concerns”-Prinzip wird in dieser Arbeit umgesetzt.
32
3.3 Separierung der Entwicklerrollen
3.3 Separierung der Entwicklerrollen
Vergleichbar zu allgemeinen Softwareentwicklungsprozessen in anderen Domänen durchläuft
auch die Entwicklung von Robotersystemen einen Prozess mit verschiedenen Entwicklungspha-
sen. Angelehnt an die Norm ISO/IEC 12207, die diesen Prozess standardisiert, können die einzel-
nen Phasen auf die Roboterentwicklung angewandt werden. In der Anfangsphase der Enwicklung
werden die funktionalen und nicht-funktionalen Anforderungen gesammelt und dokumentiert.
Abhängig davon wird im Anschluss ein “high level design” durchgeführt, d.h. die Strukturierung
des Systems in Subsysteme und die Hardware- und Softwareabhängigkeiten werden spezifiziert.
Diese beiden ersten Schritte werden meist von Projektmanagern und Softwarearchitekten durch-
geführt. Die in der Softwareentwicklung üblichen Werkzeuge, wie SysML/UML Editoren, können
auch in der Robotik angewandt werden.
Nach der Erstellung der Systemarchitektur definiert ISO/IEC 12207 die Phasen “Module design”,
“Coding”, “Integration Testing” und “System Testing”. Diese Phasen müssen im Rahmen der
Systementwicklung für die Robotik genauer spezifiziert werden.
In der Moduldesignphase werden die einzelnen Komponenten des Robotersystems spezifiziert
und anschließend in der Coding-Phase entwickelt. Diese beiden Phasen werden bei größeren
Robotersystemen meist von Domänen-Experten durchgeführt, deren Hauptfokus in der Ent-
wicklung von Algorithmen und nicht im Softwareengineering liegt. Beispielsweise werden hier
von Regelungstechnikexperten die Motorregler eines Manipulators umgesetzt. Softwareentwick-
lungsspezifische Problemstellungen sollten in dieser Phase demnach minimiert werden. Parallel
zu Modulen, die Funktionalitäten im Robotersystem bereit stellen, werden auch Module für die
Koordination des Systems erstellt. Die Entwickler dieser Module haben meistens einen Überblick
über die bereitgestellten Funktionalitäten sowie über die Zielapplikation.
Basierend auf der erstellten Systemarchitektur und den anschließend entwickelten Komponen-
ten kann im Rahmen der Integrations- und Systemtestphasen eine Systemkonfiguration erstellt
werden, die eine Komposition der Komponenten mit entsprechenden Verbindungen und Kompo-
nentenparametrierungen enthält. Während diese Phasen in ISO/IEC 12207 nur als Testphasen
beschrieben sind, entsteht bei Roboteranwendungen in diesen Phasen noch erheblicher Entwick-
lungsaufwand, oft mit Rückschleifen zur Modulentwicklung. Die Entwickler in dieser Phase sind
oft erfahrene Integrationsexperten, die fundiertes Wissen über Systemarchitekturen haben, und
technisches Verständnis für die Einzelkomponenten besitzen. In dieser Arbeit werden die letzten
beiden Phasen als “System deployment” bezeichnet. Die Phasen von “Module design + Coding”
aus der ISO/IEC 12207 werden als “Capability development” bezeichnet.
33
3 Entwicklung komplexer Softwaresysteme für die mobile Manipulation
Abbildung 3.4: Einordnung der in dieser Arbeit definierten Entwicklerrollen in die Prozessphasen
der ISO/IEC 12207
In Abbildung 3.4 ist der gesamte beschriebene Entwicklungsprozess dargestellt. Die Phasen wer-
den nicht zwingend sequentiell durchgeführt, sondern oftmals parallel in mehreren Schleifen.
Die im vorherigen Abschnitt definierten Belange eines Entwicklers können auf die Entwicklungs-
phasen zugeordnet werden. In der “Capability development” Phase müssen die Funktionalitäten
Kommunikation, Komponenten-interne Koordination sowie die Kalkulation umgesetzt werden.
Die Konfigurationsmöglichkeiten müssen definiert werden, können aber noch mit Standardwerten
versehen werden. Bei der Erstellung von Koordinatorkomponenten fällt der Hauptfokus auf die
Erstellung der Kommunikationsmechanismen und die Systemkoordination. In der anschließenden
“System deployment” Phase liegt der Hauptfokus auf der Komposition und der Konfiguration
der Komponenten auf den Anwendungsfall. Die Zuordnung der Belange auf die verschiedenen
Entwicklungsphasen ist in Abbildung 3.5 dargestellt.
Abbildung 3.5: Verschiedene Entwicklerrollen und die Zuordnung der Entwicklerbelange
Zusätzlich zum Separieren der Belange des Entwicklers können die Unterschiede der Entwick-
ler bezüglich Wissen und Erfahrung in der Umsetzung der Entwicklungstoolchain manifestiert
werden (Bubeck, Weisshardt et al. 2012). Die Nutzerrollen sollten dabei klar und explizit von
einander getrennt werden. Weiterhin werden nicht bei jeder Roboterentwicklung alle Entwick-
lungsphasen durchschritten, wenn aus anderen Entwicklungen Anwendungsteile wiederverwendet
werden können. In industriellen Anwendungen sind die Funktionalitätskomponenten meist vor-
34
3.3 Separierung der Entwicklerrollen
handen und die Entwicklung von Koordinationskomponenten sowie die “System deployment”
Phase steht im Fokus. Die wissenschaftliche Roboterentwicklung konzentriert sich meist auf
die Entwicklung und Analyse von Teilsystemen oder -komponenten unabhängig von der Zielan-
wendung. Beide Anwendungsfälle müssen von der Toolchain durch eine klare Separierung der
Entwicklerrollen unterstützt werden.
Der Einsatz von modellbasierten Verfahren bei der Toolchain-Entwicklung ermöglicht die ex-
plizite Separierung der Phasen in der Modellierungsebene (“M1” Layer). Wenn in den Meta-
Modellen die einzelnen Entwicklerbelange sowie Abstraktionen formal getrennt werden, können
unterschiedliche Modelleditoren für die einzelnen Nutzergruppen erstellt werden. In der OMG-
Pyramide in Abbildung 3.6 ist beispielhaft die Auftrennung der Entwicklungsphasen- und belange
in den verschiedenen Modellierungsebenen dargestellt.
Abbildung 3.6: Anwendung der Konzepte Separierung der Entwicklerbelange und Entwicklerrol-
len auf die modellbasierte Entwicklung
35
3 Entwicklung komplexer Softwaresysteme für die mobile Manipulation
3.4 Integration mit Meta-Modellen für das High Level
Design
Im vorherigen Abschnitt wurde vor allem auf die Entwicklungsphasen nach der “High-Level-
Design” Phase aus der ISO/IEC 12207 eingegangen. Für einen vollständigen Entwicklungsweg,
auch bei komplexen Systemen, ist jedoch eine Integration dieser “High-Level-Design” Phase
in die restlichen Phasen notwendig. Bei frameworknahen, d.h. nach der Bottom-up-Methode
umgesetzten, modellbasierten Toolchains ist das High-Level-Design nicht direkt möglich. Die
Integration mit anderen, schon bestehenden High-Level-Toolchains und deren Meta-Modellen
ist daher notwendig. Die dort modellierten Belange werden dann in den nachgelagerten Prozess-
phasen innerhalb der frameworknahen Toolchain weiter konkretisiert. Im Folgenden sollen nun
Meta-Modelle für die abstrakte Modellierung von Applikationen aus drei Entwicklergemeinschaf-
ten – der Robotik, dem Systemengineering und der Webentwicklungswelt – vorgestellt werden.
3.4.1 BCM als abstraktes Meta-Modell
Ein Meta-Modell für die abstrakte High-Level-Modellierung, das mit dem Konzept der Sepa-
rierung der Entwicklerbelange entworfen wurde, ist das BRICS Component Model (BCM) aus
dem EU-Projekt Best Practice in Robotics (BRICS) . Es ist spezifisch für die Anwendung in Ro-
boterentwicklungsprozessen entwickelt worden und stellt für die Definition der Kommunikation
von einzelnen Komponenten entsprechende Kommunikations-“Ports” zur Verfügung. Die Ports
können mit den Eigenschaften “In” und “Out” belegt werden, um die Schnittstellenrichtung zu
definieren. Des Weiteren bietet das BCM die Möglichkeit, Verbindungen zwischen Komponen-
ten herzustellen. Diese Portverbindungen können Schnittstellendatentypen und Eigenschaften
wie Synchronisation zugewiesen werden.
Das BCM bietet damit zwar Unterstützung für die spätere Modulentwicklungsphase und die
Systementwicklungsphase, allerdings werden diese nicht systematisch im Modell getrennt. Bei-
spielsweise hat die Synchronizität einer Kommunikation Einfluss auf die interne Strukturierung
einer Komponente. Im BCM werden diese jedoch mit systemspezifischen Eigenschaften gekop-
pelt (Verbindungsweg). Durch die direkte Beschreibung der fünf Belange einer Komponente
kann das BCM generell sehr gut für die Beschreibung von Komponenten verwendet werden und
dabei als abstrakte Beschreibung von Belangen der “Capability development” Phase dienen.
3.4.2 SysML als abstraktes Meta-Modell
Im Gegensatz zum BCM wurde die System Modeling Language (SysML) nicht direkt für Ro-
botersysteme entworfen, sondern für Softwaresysteme im Allgemeinen von der OMG auf Basis
von UML entwickelt. Die große Bandbreite an Aspekten aus der Softwareentwicklung macht sie
36
3.4 Integration mit Meta-Modellen für das High Level Design
jedoch auch auf den Entwicklungsprozess von mobilen Manipulatoren übertragbar. Software-
systeme werden in SysML in sogenannten Blockdiagrammen beschrieben. Die einzelnen Blöcke
können dabei Schnittstellen haben, die ähnlich wie beim BCM, als “Ports” definiert werden. Den
Ports können Datentypen sowie die Art der Synchronisation (synchron, asynchron) zugewiesen
werden. Die Komposition der Blöcke wird in einem separaten Modelltyp, dem “internal block
diagram” vorgenommen. Damit kann der Kompositionsschritt im Modell klar getrennt werden.
Zusätzlich zu den Definitionen der Blöcke und Ports kann auch das Verhalten von Komponen-
ten und Systemen in SysML beschrieben werden. Hierzu werden die “state machine diagrams”
verwendet, die ebenfalls separat von den restlichen Meta-Modellen definiert werden können.
Der modulare Aufbau des Meta-Modells sowie das Abdecken aller wichtigen Belange für Soft-
warearchitekturen von mobilen Manipulatoren macht das SysML Meta-Modell zu einem geeigne-
ten Kandidaten für die abstrakte Modellierung von Robotersystemen. Zudem sind mit Papyrus,
Topcased und Enterprise Architect schon sehr weit entwickelte Tools für SysML verfügbar (siehe
Abbildung 3.7).
Abbildung 3.7: SysML Editor Papyrus
3.4.3 SCXML als abstraktes Meta-Modell
In der Entwicklung von Internetanwendungen ist der Komplexitätsgrad ebenfalls in den letzten
Jahren stark gestiegen, weswegen auch im World Wide Web Konsortium (W3C) verschiedene
Softwareentwicklungsmodelle diskutiert und standardisiert wurden. Neben der Web Application
Description Language (WADL) und Web Services Description Language (WSDL), die für die Be-
schreibung von Webservice-Strukturen vorgesehen sind, wurde die State Chart XML (SCXML)
Sprache für das Beschreiben vom Verhalten von Webapplikationen definiert. SCXML kann durch
seine abstrakte und separate Definition auch auf Robotersysteme übertragen werden und stellt
damit eine Alternative zu SysML zur Definition von Koordinationskomponenten dar. Die Archi-
tektursprachen WADL und WSDL sind jedoch zu spezifisch auf Service Oriented Architecutures
37
3 Entwicklung komplexer Softwaresysteme für die mobile Manipulation
(SOA) zugeschnitten, um auf die vorhandenen Komponentensysteme in der Robotik übertragbar
zu sein.
3.4.4 Integration der Meta-Modelle in den
Roboterentwicklungsprozess
Die vorgestellten Meta-Sprachen lassen sich auf unterschiedliche Weise in den in Kapitel 3.3
definierten Roboterentwicklungsprozess integrieren. In Abbildung 3.8 ist der Zusammenhang der
einzelnen Meta-Modelle mit den Entwicklungsphasen nochmals dargestellt.
Abbildung 3.8: Zusammenhang von abstrakten Meta-Modellen mit den verschiedenen Entwick-
lungsprozessphasen
Der Einsatz von Verfahren aus der modellbasierten Entwicklung garantiert eine hohe Flexibilität
im Einsatz der entsprechenden abstrakten Sprachen, da durch M2M-Transformationen eine di-
rekte Umwandlung möglich ist. Zur Wiederverwendung von Komponenten in Robotersystemen
ist zusätzlich die Rückumwandlung von konkreten Modellen und letztendlich deren Implemen-
tationen in die abstrakten Modelle wichtig. Da SysML Unterstützung für einen Transfer in alle
nachgelagerten Entwicklungsphasen bietet und bereits eine sehr starke Verbreitung unter Soft-
warearchitekten hat, wird im Rahmen dieser Arbeit, neben dem roboterspezifischen BCM, vor
allem die Integration von SysML umgesetzt werden.
3.5 Plattformabhängigkeit in der Toolchain
Ein Ziel des Einsatzes von modellbasierten Entwicklungstoolchains ist die Reduzierung von Platt-
formabhängigkeiten und damit die Steigerung von Wiederverwendbarkeit bei der Entwicklung. Im
ursprünglichen Ansatz der OMG zu modellbasierter Entwicklung ist die Definition von plattform-
unabhängigen Modellen (PIM) vorgesehen, später werden plattformspezifische Modelle (PSM)
daraus generiert. In der Anwendung dieser Auftrennung auf die mobile Manipulation stellen sich
38
3.6 Portieren von Komponenten zwischen Softwareframeworks
die Fragen: wie “Plattform” in diesem Zusammenhang definiert ist und wie “Abhängigkeiten”
detaillierter spezifiziert werden können. Im Folgenden sollen nun sowohl für die einzelnen Belange
einer Komponente als auch für die unterschiedlichen Entwicklerrollen während der Entwicklung
die Begriffe der “Abhängigkeit” und die Begriffe der “Plattform” einzelnen analysiert werden.
Für den Belang der Kalkulation kann auch in der Robotik der klassische “Plattform”-Begriff ver-
wendet werden. Dieser bezieht sich auf die eingesetzte Programmiersprache sowie die Computer-
architektur des Zielsystems als induzierte Abhängigkeiten. Bei den Belangen der Kommunikation
und Koordination einer einzelnen Komponente erzeugen die eingesetzten Komponentenframe-
works (siehe Kapitel 2.3) Abhängigkeiten. Außerdem sind Komponenten, beispielsweise im Fall
von Treiberkomponenten, zum Teil an bestimmte Roboterhardware gebunden. Die strukturelle
Beschreibung der Konfiguration einer Komponente ist durch den Konfigurationsmechanismus
des Komponentenframeworks vorgegeben. Die Komposition und Koordination auf Systemebene
ist wiederum anwendungsabhängig und komponentenframeworkabhängig. Die Umsetzung eines
Koordinators hängt sowohl von der Anwendung als auch dem eingesetzten Komponentenframe-
work ab.
Für die Erhöhung der Wiederverwendung während der Entwicklung von Anwendungen für die
mobile Manipulation ist eine klare Darstellung der Abhängigkeiten der verschiedenen “Plattfor-
men” erforderlich. Das Reduzieren von Abhängigkeit bezüglich Middlewares, Programmierspra-
chen und der Anwendungsumsetzung ist während der Entwicklung erforderlich. Im Folgenden
werden nun Konzepte diskutiert, die zu dieser Reduktion führen.
3.6 Portieren von Komponenten zwischen
Softwareframeworks
Da in der mobilen Manipulation, wie in Kapitel 2 diskutiert, verschiedenste Komponentenframe-
works zum Einsatz kommen, sollte ein Transfer von Komponentenimplementationen zwischen
den Frameworks möglichst einfach erfolgen. Da die meisten verbreiteten Frameworks sehr ähn-
liche Prinzipien umsetzen (siehe (Shakhimardanov und Prassler 2007)) ist eine Transformation
über modellbasierte Entwicklungsumgebungen möglich, wenn folgende Faktoren erfüllt sind:
• Die Verfügbarkeit von Meta-Modelle (M2) jeweils für die entsprechenden Frameworks ist
gewährleistet.
• Die Separierung von den frameworkspezifischen Mechanismen und dem Anwendungsquell-
code in den Modellen (M1) sowie im generierten, ausführbaren Code (M0) besteht.
• Die in den Meta-Modellen definierten Primitiven sind aufeinander übertragbar.
Letztere Eigenschaft ist vorhanden, wenn die konkreten Meta-Modelle der Frameworks auf ei-
nem gemeinsamen Abstraktionsmodell basieren. Beispielsweise können Meta-Modelle konkreter
39
3 Entwicklung komplexer Softwaresysteme für die mobile Manipulation
Frameworks, wie ROS oder OROCOS RTT, auf Basis der Mechanismen des BRICS Compo-
nent Model (BCM) entwickelt werden (siehe (Bruyninckx, Klotzbücher et al. 2013)). Für jedes
Framework kann dann mittels einer solchen Abstraktion eine M2M-Transformation von der Abs-
traktion und eine Rücktransformation in die Abstraktion umgesetzt werden, statt beliebig viele
Transformationen in den entsprechenden Frameworks zu erstellen (siehe Abbildung 3.9).
Abbildung 3.9: Plattformunabhängigkeit zwischen Middlewares
Jedoch entsteht bei dieser Abstraktion ein Informationsverlust, wenn Mechanismen in der Kom-
ponente eingesetzt wurden, die nicht auf verschiedene Middlewares übertragbar sind. Für die
Kompensation dieses Informationsverlustes gibt es zwei Möglichkeiten. Entweder werden die be-
nötigten Informationen manuell vom Entwickler zur Verfügung gestellt oder es gibt implizite
Annahmen in den M2M-Transformationen. Letzteres sollte mit dem Anspruch der Plattformun-
abhängigkeit der Komponententoolchain vermieden werden. Um den Informationsverlust bei der
komponentenframeworkunabhängigen Modellierung klein zu halten, sollte der Komponenten-
entwickler von der Toolchain unterstützt werden. Es sollten übertragbare, d.h. mit geringem
Informationsverlust abstrahierbare, Mechanismen gekennzeichnet werden und für schlecht über-
tragbare Mechanismen Alternativen vorgeschlagen werden.
Um die Portierbarkeit der Komponenten zu gewährleisten, wird das in dieser Arbeit entwickelte
Meta-Modell an das BCM angelehnt. Aufgrund der Verbreitung des Komponentenframeworks
ROS wird das Meta-Modell zunächst für dieses Komponentenframework umgesetzt. Ein Transfer
in ein anderes Framework, beispielsweise OROCOS RTT, wird dann mittels der Konformität zum
BCM umgesetzt.
40
3.7 Programmiersprachen und Zielsysteme
3.7 Programmiersprachen und Zielsysteme
Bei der Entwicklung von komplexen mobilen Manipulatoren werden die verwendeten Komponen-
ten von einer Vielzahl meist verteilter Entwickler umgesetzt. Das Wissen und die Erfahrungen
der Entwickler unterschieden sich meist stark. Dies bezieht sich auch auf die Erfahrungen und
Präferenzen bezüglich der verwendeten Programmiersprachen. Die Einführung von komponen-
tenbasierten Softwaresystemen in der Robotik erleichtert das Zusammenspiel von Komponenten,
die in unterschiedlichen Programmiersprachen entwickelt werden. Gerade die Middleware ROS
zeichnet sich durch eine starke Flexibilität bzgl. Programmiersprachen aus. Bei der Integration
der Software erschwert der Einsatz unterschiedlicher Sprachen jedoch die Arbeit, da im schlimms-
ten Fall der Systemintegrator in allen Sprachen Vorwissen mitbringen muss, um die Struktur der
eingesetzten Komponenten zu verstehen.
Eine programmiersprachenunabhängige Modellierung in einer modellbasierten Toolchain macht
die leichte Integration von Komponenten in unterschiedlichen Programmiersprachen möglich.
Die programmiersprachenabhängigen Mechanismen müssen hier entweder in der verwendeten
Middleware oder in der Codegenerierung der Toolchain abstrahiert werden. Auch Belange wie
Konfiguration und Koordination müssen abstrakt vorhanden sein.
Gleiches gilt für die Unterstützung unterschiedlicher Zielplattformen. Zwar werden in der Praxis
bei komplexen mobilen Manipulatoren zumeist PC-basierte Zielsysteme eingesetzt. Dennoch ist
eine Flexibilität bzgl. des Zielsystems wünschenswert und wird in der Produktentwicklung der
Systeme eine große Rolle spielen. Die Meta-Modelle müssen also zum einen unabhängig von
den Zielsystemen sein und zum anderen ggf. Zusatzinformationen für das Installieren enthalten.
ROS bietet hierfür eine Basis, da Komponenten sowohl auf unterschiedlichen Betriebssystemen,
wie Windows und Linux, als auch auf unterschiedlichen PC-Plattformen, wie ARM oder x86,
betrieben werden können.
Die Umsetzung einer plattformunabhängigen modellbasierten Toolchain konzentriert sich aus
diesen Gründen in dieser Arbeit vor allem auf die Komponentenmiddleware ROS.
41
3 Entwicklung komplexer Softwaresysteme für die mobile Manipulation
3.8 Zusammenfassung
Die in diesem Kapitel beschriebenen Ansätze können zur Erfüllung der eingangs definierten
Entwicklungsziele einer modellbasierten Toolchain beitragen. Daher werden sie zu einem Ge-
samtkonzept für eine ganzheitliche Entwicklungstoolchain kombiniert, wie sie in Abbildung 3.10
graphisch dargestellt ist.
Abbildung 3.10: Gesamtkonzeption einer modellbasierten Entwicklungsumgebung für mobile
Manipulatoren
Die Entwickler in ihren unterschiedlichen Rollen können dabei Modelle ihrer Domäne erstel-
len. Die Modelle unterscheiden sich dabei bzgl. der beschriebenen Entwickleraspekte. Durch die
Unterscheidung von Entwicklerrollen und Modellen können auch die Phasen der Softwareent-
wicklung getrennt betrachtet werden. Während für die Rolle des “Software-Architekten” bereits
verbreitete Werkzeuge, wie für SysML, existieren, müssen im Rahmen dieser Arbeit für die an-
deren Rollen neue modellbasierte Werkzeuge erstellt werden. Diese werden so umgesetzt, dass
sie nach der Bottom-up-Methode das Wissen der Entwickler über das Komponentenframework
direkt in den Modellen abbilden. Aufgrund der starken Verbreitung werden in dieser Arbeit die
Konzepte des Komponentenframeworks ROS in den Modellen verwendet.
42
3.8 Zusammenfassung
Zusätzlich zu neuentwickelten Modellen muss die Nutzung von bestehenden modellierten Kom-
ponenten möglich sein. Die Verknüpfung zu Modellen in bestehenden Toolchains ist durch formal
definierte Transformationen möglich.
Die Modelle beschreiben das vollständige Softwaresystem eines mobilen Manipulators. Durch
automatisierte Generierung von Quellcode können die Modelle in Implementationen für verschie-
dene Komponentenframeworks überführt werden. Wegen der starken Verbreitung und der guten
Integration in bestehende Robotersysteme bietet es sich an, vor allem ROS und OROCOS RTT
zu betrachten. Das weitgehend automatisiert entstandene Softwaresystem kann anschließend
auf dem mobilen Manipulator in der “Deployment”-Phase ausgeführt werden.
Die modellbasierte Entwicklungsumgebung spiegelt damit alle Aspekte der Softwareentwicklung
von mobilen Manipulatoren wider. Der Fokus der Toolchain liegt dabei auf der Formalisierung
und Automatisierung der Entwicklung.
43
4 Umsetzung einer
Entwicklungsumgebung für mobile
Manipulatoren
Basierend auf dem im letzten Kapitel hergeleiteten Gesamtkonzept des frameworknahen modell-
basierten Entwickelns ist im Rahmen dieser Arbeit eine konkrete Umsetzung dieses Konzeptes
entstanden, um die anfangs beschriebenen Entwicklungsziele zu erreichen. Kernstück ist eine
modellbasierte Entwicklungsumgebung für ROS, das “BRICS integrated development environ-
ment“ (BRIDE). Im Folgenden werden die einzelnen Teile dieser Entwicklungsumgebung und
deren Umsetzung diskutiert.
4.1 BRIDE als eine modellbasierte Entwicklungsumgebung
für ROS
Zur Umsetzung einer modellbasierten Entwicklungsumgebung für eine spezifische Domäne kann
auf bereits existierende offene Entwicklungen zurückgegriffen werden, die bereits die M3-Ebene
der OMG-Pyramide sowie Definitions- und Transformationsmechanismen bereitstellen. Neben
dem “Meta Programming System” des Herstellers Jetbrains wurden im Eclipse Projekt, genauer
dem Eclipse Modeling Framework (EMF), entsprechende Werkzeuge geschaffen. Aufgrund der
weiten Verbreitung, der größeren Community sowie der Integration mit anderen Programmierpro-
zessen, wie Versionsmanagement und Testing, wurde die modellbasierte Entwicklungsumgebung
für ROS auf dem Eclipse Modelling Framework (EMF) umgesetzt.
Als Grundvorgehen bei der Erstellung einer ganzheitlichen MDE-Toolchain wird mit der ECore
Meta-Meta-Sprache des Projektes ein Meta-Modell für die Zieldomäne erstellt. Mittels verschie-
dener Umsetzungen aus EMF-Unterprojekten werden Editoren für Modelle, die dem definierten
Meta-Modell entsprechen, entwickelt. Letztendlich können diese Modelle dann mittels Trans-
formationsmechanismen des EMF-Unterprojektes Epsilon in Quellcode umgesetzt werden. Ab-
bildung 4.1 stellt diesen Gesamtaufbau für den Fall von BRIDE an der OMG-Pyramide dar.
Die einzelnen, in Kapitel 3 beschriebenen Entwicklungskonzepte wurden in diesem Bild zudem
den entsprechenden Ebenen in der OMG-Pyramide (Abbildung 2.8) zugeordnet. Diese einzelnen
45
4 Umsetzung einer Entwicklungsumgebung für mobile Manipulatoren
Abbildung 4.1: Umsetzung der verschiedenen Ebenen der OMG-Pyramide in BRIDE
Artefakte der modellbasierten Toolchain sind als einzelne Eclipse-Plugins umgesetzt und können
in die Eclipse-Instanz des Entwicklers eingebunden werden. Die Summe aller Plugins ist eine
Eclipse Distribution, die als BRIDE ROS Projekt (http://ros.org/wiki/bride) veröffentlicht wird,
um in der ROS-Community diskutiert und verwendet zu werden.
4.2 Das ROS Meta-Modell und die Entwicklerbelange
Das Kernstück der im Rahmen dieser Arbeit umgesetzten ROS-Entwicklungstoolchain ist die
Definition der domänen-spezifischen Eigenschaften im ROS Meta-Modell, im Folgenden auch
“ROS domain specific language” (ROS DSL) genannt. In diesem sind alle bekannten ROS-
Mechanismen definiert und den jeweiligen, in Kapitel 3 erläuterten Entwicklerbelangen zugeord-
net. Dazu wird in der Meta-Meta-Sprache ECore, die im Eclipse Modelling Framework enthalten
ist, jeweils eine Klasse für die verschiedenen ROS-Mechanismen, wie “Node”, “Package”, etc.
erstellt und die dazugehörigen Eigenschaften als Attribute definiert. Über Relationen wird an-
schließend die Struktur der Mechanismen untereinander spezifiziert, beispielsweise enthält ein
“Package” keinen, einen oder mehrere “Nodes”.
Angelehnt an abstraktere Modellierungssprachen wie SysML, besteht auch das ROS-Meta-
Modell aus mehreren Teilen. Das Meta-Modell “ros.ecore” beschreibt die Grundkonzepte von
ROS, während das Meta-Modell “smach.ecore” eine Spezialisierung der Konzepte der Anwendungs-
und Koodinationsentwicklung enthält. Aus den als “.ecore”-Datei spezifizierten Meta-Modellen
wird ein sogenanntes Generator-Modell in Eclipse (als Datei “genmodel”) erzeugt, das Abhängig-
keiten von Modellen untereinander auflöst und ermöglicht die nachfolgende Codegenerierung zu
konfigurieren. Nach Konfiguration im Generator-Modell kann Quellcode erzeugt werden, der das
46
4.2 Das ROS Meta-Modell und die Entwicklerbelange
Abbildung 4.2: Workflow zum Erstellen einer modellbasierten Toolchain mit EMF
Modell repräsentiert und eine Erzeugung von Modellinstanzen innerhalb von Eclipse ermöglicht.
Zwar sind hiermit noch keine Modelleditoren erstellt, jedoch ist es möglich, programmatisch
Modelle zu erstellen und zu bearbeiten. Dieser Entwicklungsprozess zur Erstellung einer modell-
basierten Toolchain mit EMF ist in Abbildung 4.2 dargestellt.
Im Folgenden wird auf die einzelnen Entwicklerbelange bei der Verwendung von ROS und die
konkrete dazugehörige Modellierung in der ROS DSL eingegangen.
• Kommunikation: Die Kommunikation in ROS, umgesetzt in der ros_comm Bibliothek
(http://wiki.ros.org/ros_comm), kann auf drei verschiedene Weisen in einer Komponen-
te implementiert werden. Die erste Möglichkeit ist asynchrone Kommunikation, bei der
ein Publisher Daten an beliebig viele Subscriber senden kann. Die Daten, die ein Sub-
scriber empfängt, können ebenfalls von unterschiedlichen Publishern kommen. Die zweite
Möglichkeit ist das synchrone Senden, bei dem ein ServiceClient einen Funktionsaufruf
auf einem ServiceServer durchführt. Der ServiceClient blockiert, bis die Antwort empfan-
gen ist. Mehrere ServiceClients können nacheinander einen ServiceServer aufrufen. Die
dritte ROS-Kommunikation ist eine synchronisierte Kommunikation über eine Kommuni-
kationszustandsmaschine. Hier wird von einem sogenannten ActionClient asynchron eine
Funktionalität von einem ActionServer angefragt. Dieser informiert den Client anschließend
asynchron über den aktuellen Stand und das Ergebnis der Verarbeitung. Der ActionClient
ist während der Abarbeitung des Servers nicht blockiert. Die verschiedenen Kommunika-
tionsserver und -clients entsprechen also “Ports” an einer ROS-Komponente, dem ROS
node, und werden dem Entwicklerbelang Kommunikation zugeordnet. Somit sind im ROS
Meta-Modell die Klasse Node und die dazugehörigen Klassen Publisher, Subscriber, Ac-
tionServer, ActionClient, ServiceServer sowie ServiceClient mit den entsprechenden Attri-
buten definiert. Das Besondere bei der Definition der Attribute der Klassen ist der Wegfall
der normalerweise im Quellcode vordefinierten Topics, Services und Actionreferenzen. Die-
47
4 Umsetzung einer Entwicklungsumgebung für mobile Manipulatoren
se werden dem Belang der Komposition zugeordnet und sind nicht als implizite Attribute,
sondern als eigene Klasse im Modell definiert, um später separierbar zu sein und während
des Deployment-Vorgangs konfiguriert zu werden.
• Konfiguration: ROS hat mit dem ROS-Parameter-Server, der Definition von Parametern
über Launchfiles sowie der “dynamic_reconfigure”-Infrastruktur drei verschiedene Mög-
lichkeiten der Konfiguration von ROS Komponenten. Da alle drei Mechanismen dieselbe
Definition der zu konfigurierenden Parameter besitzen, wird im Meta-Modell auch nur eine
Definition benutzt. Die Wahl der konkreten Umsetzung der Konfiguration in ROS wird in
der Code-Generierung der Toolchain umgesetzt und kann somit ausgetauscht werden. Ein
Parameter besitzt immer Name, Typ, Wertebereich und Default-Wert. In der Umsetzung
wurde die Parameterklasse als 0:n Containment von Node modelliert.
• Komposition: Um mehrere Komponenten miteinander zu verschalten wurde die Klasse
Architecture als Repräsentation eines ROS-Subsystems definiert, die kein, ein oder meh-
rere Nodes enthalten kann. Zur vollständigen Konfiguration eines ROS Systems wurden
den Komponenten noch zusätzliche Parameter hinzugefügt, wie beispielsweise der ROS
Namespace. Für die entsprechenden Kommunikationsanschlüsse, die für in der Architektur
enthaltene Komponenten definiert wurden, können in ROS entsprechende Verbindungen
konfiguriert werden. Diese Verbindungen wurden ebenfalls als jeweilige Klasse modelliert
und als 0:n Containment zur Architektur hinzugefügt. Jede Klasse enthält als Quelle eine
Referenz auf den jeweiligen Publisher, ActionServer oder ServiceServer und als Ziel eine
Referenz auf den jeweiligen Subscriber, ActionClient oder ServiceClient.
• Kalkulation: Der Teil einer ROS-Komponente, in dem die eigentliche Kalkulation statt-
findet, der Treiber umgesetzt ist oder andere Datenverarbeitungsaufgaben durchgeführt
werden, wird nicht in der DSL modelliert, da es auch innerhalb von ROS keine Defini-
tionen für die Umsetzung dieses Komponententeils gibt. Durch die explizite Modellierung
der anderen Belange und unter der Annahme, dass es in ROS-Komponenten nur diese
fünf Belange gibt, kann die Berechnungsfunktionalität dennoch vom Rest der Kompo-
nente getrennt werden. Der Einsatz von anderen Modellierungswerkzeugen, beispielsweise
Simulink, wird damit möglich.
• Koordination: Innerhalb der Komponente gibt es in ROS keine vorgeschriebene Umset-
zung der zeitlichen Abläufe des Zusammenwirkens von Kommunikation und Berechnung,
dies wird vollständig dem Entwickler überlassen. Daraus resultiert ein sehr unterschiedli-
ches Verhalten von ROS-Komponenten, die wiederverwendet werden sollen. Im Rahmen
dieser Arbeit werden daher unabhängig von der ROS-Spezifikation zwei fest definierte Zu-
standsmaschinen für das interne Verhalten festgelegt, aus denen der Entwickler wählen
kann. Wie in Abbildung 4.3 dargestellt, beginnt der Lebenszyklus einer Komponente mit
48
4.2 Das ROS Meta-Modell und die Entwicklerbelange
dem Konfigurationszustand, in dem der Entwickler alle zur Laufzeit benötigten Aufga-
ben umsetzen kann. Nach dem erfolgreichen Konfigurieren werden entweder zyklisch oder
durch bestimmte Eingangssignale ausgelöst alle Eingänge synchronisiert, danach die Up-
datefunktion ausgeführt und anschließend alle Ausgänge geschrieben. In der Updatefunk-
tion können vom Programmierer beliebige Aufgaben umgesetzt werden. Eine weitere Ei-
genschaft in ROS bezüglich der internen Koordination von Komponenten ist der Einfluss
von Kommunikation in den internen Ablauf der Komponente. Insbesondere im Fall der
auf Actionlib basierten Kommunikation ist daher eine klare Trennung zwischen Verhal-
ten der Berechnung und Verhalten der Kommunikation wichtig. Durch die Trennung von
Kommunikation und Berechnung in der DSL kann bei der späteren Codegenerierung diese
Trennung durch Threading-Mechanismen umgesetzt werden.
Abbildung 4.3: Interne Zustandsmaschine einer ROS-Komponente, die mit BRIDE entwickelt
wurde
Die Modellierung der beschriebenen ROS-Grundkonzepte ermöglicht die Erstellung von einzel-
nen ROS-Komponentenmodellen sowie das Zusammenschalten dieser Komponenten zu einem
Gesamtsystem. Durch die Modellierung der Konzepte in einzelne Klassen ist eine Separierung
der einzelnen Aspekte im Modell möglich. Abbildung 4.4 zeigt das ROS-Meta-Modell in seiner
graphischen Repräsentation. Die einzelnen Aspekte sind dabei farblich hervorgehoben. Zudem
ist in Tabelle 4.1 die Zuordnung übersichtlich dargestellt.
49
4 Umsetzung einer Entwicklungsumgebung für mobile Manipulatoren
Abbildung 4.4: ECore Meta-Modell für Komponenten- und Systemaspekte in ROS
Tabelle 4.1: Zuordnung von Entwicklerbelangen zu den ROS-Mechanismen
Entwicklerbelang ROS Mechanismus
Kommunikation Publisher, Subscriber, ServiceServer, ServiceClient, ActionServer,
ActionClient
Konfiguration rosparam, dynamic_reconfigure
Komposition Topic, Service, Action, Namespacing
Kalkulation keiner (wird vom Entwickler umgesetzt)
Koordination keiner (von BRIDE festgelegt)
50
4.2 Das ROS Meta-Modell und die Entwicklerbelange
Zusätzlich zu den Standardkommunikationsmechanismen gibt es weitere spezialisierte Kommuni-
kationsmechanismen in ROS. Zum Übermitteln der aktuellen Positionen der Roboterteile kann
beispielsweise der Mechanismus “TF” eingesetzt werden, zur Übertragung von Analysedaten
werden “diagnostics_aggregators” verwendet. Da diese Kommunikationsmechanismen als Basis
ebenfalls die in der DSL modellierten ROS-Basismechanismen verwenden, wird diese Spezial-
kommunikation nicht in der DSL modelliert. Im Kapitel zur Codegenerierung (4.4) wird noch
einmal detaillierter auf diese Mechanismen eingegangen.
Abbildung 4.5: ECore Meta-Modell für Koordinationsaspekte in ROS in Form der SMACH DSL
Mit der bisher beschriebenen DSL können sowohl Komponenten als auch ROS-Subsysteme aus
mehreren Komponenten entwickelt werden. In ROS werden Applikationen z.B. mit dem Zu-
standsmaschinenframework SMACH umgesetzt. Eine damit entwickelte Zustandsmaschine er-
scheint dann als normale ROS-Komponente in einem ROS-System. Daher wird für die Erstel-
lung von Applikationen mit BRIDE ein weiteres Meta-Modell als smach.ecore erstellt, das eine
Spezialisierung der durch die ROS DSL formalisierten ROS-Komponente ist. In der SMACH
DSL werden Nodes zu “StateMachines” spezialisiert, die jeweils “States” beinhalten können.
Diese “States” bedienen als ActionClients oder ServiceClients jeweils im System befindliche
Funktionalitätskomponenten und werden dementsprechend als Spezialisierungen dieser Kommu-
nikationsmechanismen modelliert. Zusätzlich ist in der SMACH DSL noch der StateTransition-
Mechanismus modelliert, der entsprechend des Feedbacks des vorherigen Kommunikationsstates
aufgerufen wird. Um Anfang und Ende einer Applikation zu beschreiben, gibt es zudem noch die
InitState und FinalState Mechanismen, die States ohne Funktion darstellen. In Abbildung 4.5
ist die SMACH DSL grafisch dargestellt. Das resultierende Meta-Modell ist damit vollständig
kompatibel zum ROS-Meta-Modell. Es enthält ausschließlich zusätzliche Informationen, die für
Applikationskomponenten relevant sind.
51
4 Umsetzung einer Entwicklungsumgebung für mobile Manipulatoren
4.3 Entwicklung von Modelleditoren für ROS
Basierend auf dem erstellten Meta-Modell sollen Entwickler mittels eines Editors entsprechende
Modelle erstellen können. Um die Auftrennung der Nutzerrollen bei der Bearbeitung der Modelle
zu ermöglichen, werden bestimmte Teilaspekte des Meta-Modelles in verschiedenen Editoren
umgesetzt. In der Eclipse-Umgebung gibt es zwei verschiedene Möglichkeiten, Modell-Editoren
dem Entwickler bereitzustellen, basierend auf dem Graphical Editing Framework (GEF) einen
graphischen oder basierend auf dem XText Framework einen textuellen Editor. Beide Varianten
haben Vor- und Nachteile und spiegeln in der Regel auch Präferenzen der einzelnen Entwickler
wieder. Um die Verbreitung von BRIDE zu maximieren, wurden beide Implementationsmöglich-
keiten für das jeweilige Modell umgesetzt.
Abbildung 4.6: Prozess der Erstellung von GMF-basierten Modelleditoren
Anstatt der vollständig manuellen Erstellung von GEF-Editoren kann in Eclipse auf ein mo-
dellbasiertes Generierungsverfahren für Modelleditoren zurückgegriffen werden, dem Graphical
Modeling Framework (GMF). Bei der Verwendung dieses Verfahrens werden Modelle erstellt,
aus denen der GEF-Quellcode teilautomatisiert generiert wird (siehe Abbildung 4.6). Für die
einzelnen Editoren von BRIDE wurden entsprechend des GMF-Verfahrens folgende Modelle ent-
wickelt:
• gmfgraph: Resultierend aus den Definitionen im ECore Meta-Meta-Modell kann eine
Beschreibung der einzelnen graphischen Elemente im zu erstellenden Editor umgesetzt
werden. Hierbei handelt es sich um Bilder der Hauptelemente (z.B. Nodes und Subscriber)
sowie Verbindungslinien und Textelemente.
• gmftool: Im späteren Editor gibt es eine Werkzeugleiste, um die einzelnen Elemente
hinzuzufügen. Für die Erstellung dieser Funktionalität wird dieses Modell erstellt.
• gmfmap: Um die Relationen der Elemente untereinander sowie zum ECore Meta-Meta-
Modell zu beschreiben, wird ein weiteres Modell benötigt. In diesem wird definiert, welche
Elemente in anderen dargestellt werden (z.B. Publisher innerhalb von Node-Elementen),
52
4.3 Entwicklung von Modelleditoren für ROS
welche Textelemente welche Textinformation enthalten sowie welche Verbindungselemente
welche Elemente verbinden. Zudem wird die Zugehörigkeit zu Tools und ECore-Klassen
definiert.
• gmfgen: Basierend auf den beschriebenen GMF-Modellen wird ein weiteres Modell ge-
neriert, das die eigentliche Repräsentation in einer graphischen Oberfläche darstellt. In
diesem können noch konkrete Anpassungen der Implementation, wie der verknüpfte Da-
teityp, Klassennamen oder Paketnamen modifiziert werden.
4.3.1 Umsetzung des Capability-Editors
Abbildung 4.7: Entwicklung einer Funktionalität im BRIDE-Capability-Editor
Mittels dieser Vorgehensweise wurde ausgehend von der Meta-Definition eines ROS-Paketes
der Editor für die Ersteller von Funktionalitäten umgesetzt. Der Entwickler kann ein einzelnes
ROS-Paket mit einem oder mehreren Nodes entwickeln. Für jeden Node kann er Parameter
als Konfigurationsaspekt sowie die Kommunikationsschnittstellen als Publisher/Subscriber, Ser-
viceServer/-Client oder ActionServer/-Client definieren. Während die Informationen des graphi-
schen Modells in der Datei _NAME.ros_package_diagramm_ hinterlegt sind, wird synchroni-
siert eine Datei _NAME.ros_package_ nach dem XMI-Standard gepflegt, die die reinen ROS-
Modellinformationen enthält und somit das eigentliche Modell repräsentiert. In Abbildung 4.7
ist eine Instanz des ROS-Capability-Editors exemplarisch dargestellt, Listing 4.1 zeigt das vom
Editor erstellte Modell.
53
4 Umsetzung einer Entwicklungsumgebung für mobile Manipulatoren
Listing 4.1: Beispiel eines über den Capability-Editor erzeugten Modells
brics_showcase_industry_interfaces
geometry_msgs
Abbildung 4.8: Entwicklung einer Zustandsmaschine für eine Anwendung im BRIDE-
Coordinator-Editor
54
4.3 Entwicklung von Modelleditoren für ROS
4.3.2 Umsetzung des Coordinator-Editors
Als weitere Nutzerrolle wurde in Kapitel 3 der Anwendungsentwickler definiert, der die System-
koordination erstellt. Die dafür im Meta-Modell entwickelte erweiterte Zustandsmaschinendefi-
nition wird in dem ROS Coordinator Editor als Modelleditor umgesetzt. Dabei handelt es sich
um eine Spezialisierung des “ros.ecore” Modells. Als Werkzeuge stehen dem Benutzer hier Zu-
standsmaschinen, verschiedene Zustandstypen sowie Zustandstransitionen zur Verfügung. Der
in Abbildung 4.8 dargestellte Editor repräsentiert die in _NAME.ros_coordinator_diagramm_
und _NAME.ros_coordinator_ hinterlegten Modellinformationen. Listing 4.2 zeigt das Modell
im Quelltext.
Listing 4.2: Beispiel eines über den Coordinator-Editor erzeugten Anwendungsmodells