Die Softwareentwicklung bei Industrierobotern benötigt erhebliches interdisziplinäres Wissen und viel technische Erfahrung. Vor allem die Heterogenität der herstellerspezifischen Programmiersprachen und -werkzeuge verursacht hohen Aufwand beim Einsatz von Industrierobotern, obwohl Roboter per se frei programmierbar sind und für eine Vielzahl von Aufgaben eingesetzt werden können. Um verschiedene Rollen, wie z. B. den Komponentenzulieferer, Anwendungsentwickler sowie Systemintegratoren und Endanwender, bei der Programmierung und Integration von Robotern zu unterstützen, wurde im Rahmen des Forschungsprojekts ReApp ein modellbasierter Ansatz entwickelt. Das Datenaustauschformat AutomationML wurde hierbei für die Modellierung der Roboterkomponenten und -systeme eingesetzt. Auf Basis von Domäne-Ontologien wurden die AutomationML-Modelle semantisch verarbeitet und zu einem maschineninterpretierbaren Informationsmodell umgewandelt, aus dem Quellcodes generiert werden konnten.
Industrieroboter sind flexible Maschinen mit hoher Stabilität und Genauigkeit und sind mittlerweile essenzielle Voraussetzung für die Massenproduktion in z. B. der Automobil- und Elektroindustrie. Für Industrie 4.0-Lösungen wird jedoch die Anforderung gestellt, dass kleine Stückzahlen bei hoher Variantenvielfalt gefertigt werden sollen. Aufgrund der aufwändigen Programmierung und Konfiguration der Robotersoftware sind Industrieroboter für die individuelle Produktion aus wirtschaftlichen Gründen noch nicht geeignet.
Um die Einsetzbarkeit von Robotern zu erhöhen, insbesondere für kleine- und mittlere Unternehmen (KMUs), die deutlich mehr Produktvarianten mit kleinen Losgrößen fertigen wollen, wurden im Rahmen des Forschungsprojekts ReApp modellbasierte Methoden der Softwareentwicklung untersucht und herstellerneutrale Werkzeuge für die Roboterprogrammierung entwickelt. Zur Modellierung der Roboterkomponenten und Robotersysteme wurde das Datenaustauschformat AutomationML eingesetzt. Darüber hinaus wurde eine ontologische Semantik für die Interpretation der AutomationML-Modelle angewendet. Mit dieser formalen Semantik werden logische Konsequenzen automatisch hergeleitet, welche Anforderungen an die Funktionalitäten bzw. Schnittstellen der Robotersoftware ermitteln und für die angeschlossene Codegenerierung zur Verfügung stellen. Dadurch entsteht ein konsistenter und kontinuierlicher Entwicklungsprozess für alle beteiligten Rollen.
Modellbasierte Ansätze für die Roboterprogrammierung
Die Best Practice-Strategie des Softwareengineerings hat gezeigt, dass sowohl die Qualität als auch die Wirtschaftlichkeit der Software mit fortschrittlichen modellbasierten Technologien verbessert werden können. Für die industrielle Automatisierung wurden hierfür zwei fundamentale Ansätze betrachtet [1]. Der eine ist die komponentenbasierte Softwareentwicklung (Component based Software Engineering, CBSE), bei der wiederverwendbare Komponenten angestrebt werden. Jede Komponente ist ein eigenständiger Funktionsblock, der ohne große Änderung in unterschiedlichen Systemen integriert werden kann. Im Gegensatz dazu basiert die modellgetriebene Softwareentwicklung (Model-driven Software Development, MDSD) auf der automatisierten Codegenerierung aus abstrakten Modellen. Diese Methoden wurden in einem breiten Spektrum des industriellen Engineerings umgesetzt, wie z. B. der modellbasierten Validierung von Steuerungssystemen [2], der objektorientierten PLC-Programmierung [3] und verteilten Steuerungssysteme [4]. Darüber hinaus existieren mehrere populäre Modellierungssprachen wie z. B. die Unified Modelling Language (UML) der Object Management Group (OMG) [5] für die Anforderungsanalyse und Spezifikation der Software und das Eclipse Modelling Framework (EMF) für die effiziente Codegenerierung innerhalb der Entwicklungsumgebung Eclipse.
In der Domäne der Robotik wurde CBSE weitgehend erforscht [6, 7]. Es existieren bereits Frameworks, wie z. B. das Robot Operating System (ROS) [8], das sowohl von der Forschungsgemeinschaft als auch von zahlreichen Komponentenherstellern intensiv genutzt und erweitert wird. ROS bietet ein multimodales Kommunikationsnetzwerk für den Aufbau eines Robotersystems. Dazu zählen das Publisher-Subscriber- und das Server-Client-Konzept. Durch standardisierte Softwareschnittstellen von einfachen Datenstrukturen bis hin zu komplexen Geometrie- und Sensordaten kann eine Roboterkomponente in einer ROS-Laufzeitumgebung leicht angebunden werden. Umfangreiche kostenlose Robotersoftware, wie z. B. Komponententreiber, Bildverarbeitungs- und Bahnplanungsalgorithmen, sowie zusätzliche Entwicklungswerkzeuge, wie z. B. Visualisierung, Simulation und Netzwerkdiagnostik, stellen eine zuverlässige Basis für die Entwicklung neuer Applikationen. Allerdings kann ROS eine integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) nicht ersetzen. Insbesondere für MDSD sind grundsätzliche Funktionalitäten, wie z. B. die Modellvalidierung und die automatische Codegenerierung unerlässlich. Das Forschungsprojekt BRICS hat auf Basis von ROS das BRICS Component Model entwickelt, um MDSD für die Roboterprogrammierung voranzutreiben [9]. Die vier Abstraktionsebenen der OMG wurden umgesetzt und das EMF wurde für die Codegenerierung in einer Werkzeugkette eingesetzt.
Trotz dieser existierenden Lösungen lässt sich die effiziente Roboterprogrammierung nicht erreichen, da dort stets umfangreiche Expertise bei jedem Entwickler vorausgesetzt wurde. Für einen wirtschaftlichen Einsatz von Industrierobotern sollen die Aufgaben der an der Wertschöpfungskette beteiligten Akteure analysiert und individuell behandelt werden. Ziel ist eine konsistente und durchgängige Softwareentwicklung, wobei sich jeder Akteur nur auf seine eigene Aufgabe konzentriert. Die Heterogenität der Roboterdomäne stellt die primäre Herausforderung zur Erreichung des Ziels dar, die im Rahmen des Projekts ReApp durch einen semantikbasierten Ansatz gelöst wurde. Die Automation Markup Language (AutomationML) [10] wurde für die Beschreibung der Roboterkomponenten bzw. -systeme verwendet. AutomationML ist ein XML-basiertes Datenformat für kontinuierliches Engineering in einer heterogenen Werkzeug-Landschaft. Mit standardisierten Semantiken und wohldefinierten Modellierungsverfahren kann der Standard für die Beschreibung und den Austausch von Fabrik-Topologie, Geometrie, Kinematik, Logik sowie Kommunikation eingesetzt werden. Um die implizite Semantik der XML-Daten zu extrahieren, werden die AutomationML-Modelle anschließend zu dem Datenformat Resource Description Framework (RDF) umgewandelt. Durch automatisierte Inferenz über das Domäne-Wissen der Robotik werden Anforderungen über die Funktionalitäten bzw. Schnittstellen der Robotersoftware abgeleitet. In Bild 1 wird der gesamte Ablauf des Ansatzes gezeigt. Die drei vertikalen Phasen in Form der Komponenten- und der Applikationsentwicklung sowie der Systemkonfiguration entsprechen der Rollentrennung der Akteure. In jeder Phase werden zielführende AutomationML-Modelle durch die zuständige Rolle erstellt und beim Bedarf in der nächsten Phase wiederverwendet. Die Codegenerierung bezieht sich auf die Ausgabe der semantischen Verarbeitung der AutomationML-Modelle. Die Interoperabilität der Modelle über die Phasen erfolgt durch die maschinenlesbare formale Semantik und der generierte Quellcode aller Phasen ist aufgrund der einheitlichen ROS-Schnittstellen integrierbar. In den folgenden Abschnitten wird die technische Umsetzung des Ansatzes detailliert aufgezeigt.
Schlüsselwörter:
Robotik, modellbasierte Softwareentwicklung, AutomationML, Semantik