LinkedIn Logo YouTube Logo

High-Level-Programmierung in der Robotik

In der Robotik ist die High-Level-Programmierung ein Ziel, das verfolgt wird, seit die ersten Industrieroboter auf den Markt kamen. Mit dem zunehmenden Einsatz von Robotern für Fertigungsaufgaben mit kleinen Stückzahlen gewinnt dieses Ziel an Bedeutung, da es eine notwendige Voraussetzung für den wirtschaftlichen Einsatz von Robotern in der Kleinserienfertigung ist [1,2]. Ziele der High-Level-Programmierung sind die Verkürzung der zur Inbetriebnahme und Rekonfiguration einer Roboterzelle benötigten Zeit, die Kapselung von Wissen, um auch Nicht-Experten die Programmierung einer Roboteranwendung zu ermöglichen, sowie die Wiederverwendbarkeit einmal modellierten Wissens.

In der Literatur werden die in der Tabelle dargestellten Abstraktionsebenen und Begriffe zur Roboterprogrammierung eingeführt [3, 4, 5]. Die Ebenen vier und fünf entsprechen einer High-Level-Programm­ierung. Zum Großteil werden Roboter nach wie vor in der von den Roboterherstellern für jeweils ihre Robotersteuerung implementierten proprietären textuellen Roboterprogrammiersprachen wie z.B. KRL (Kuka), Rapid (ABB) und PDL2 (Comau) programmiert. Dies entspricht einer Programmierung in der dritten Abstraktionsebene. Werden zusätzlich vordefinierte Funktionsblöcke z.B. zum Punktschweißen verwendet, die nur noch applikationsspezifisch parametriert werden müssen, entspricht dies einer Programmierung in der vierten Abstraktionsebene. Offline-Programmiersysteme zur Roboterprogrammierung bieten Zusatzmodule, die aus CAD-Modellen des Produkts automatisch die benötigten Roboterprogramme generieren. Solche CAD-basierten Programmierverfahren entsprechen einer Programmierung in der fünften Abstraktionsebene. Diese Verfahren existieren jedoch nur für bestimmte Anwendungen, z.B. für Schweiß- und Lackierapplikationen, erfordern hohe Investitionen in Off­line-Programmiersysteme und sind nur von Experten zu bedienen. Deshalb ist Ihr Einsatz insbesondere in KMUs oftmals nicht praktikabel. Ziel der High-Level-Programmierung ist eine Programmierung auf möglichst hohem Abstraktionsniveau. Dieses Abstraktionsniveau muss im Rahmen der Code-Generierung reduziert werden, bis ausführbare Programme entstehen. In der Informatik ist ein Compiler das klassische Werkzeug, um dieses Ziel zu erreichen, d.h. um ein Quellprogramm in ein semantisch äquivalentes Programm in einer Zielsprache umzuwandeln. Model Driven Software Development Die Vorgehensweise, aus einem Quellprogramm ein ausführbares Zielprogramm zu generieren, wird im Rahmen des \’Model Driven Software Development\‘ (MDSD) dahingehend erweitert, aus Modellen durch Transformationen ausführbare Programme abzuleiten. MDSD, auch \’Model Driven Engineering\‘ (MDE) genannt, ist dabei ein Oberbegriff für Techniken, die formale abstrakte Modelle mittels Transformationen automatisch in ausführbare Software umwandeln. Soll diese Vorgehensweise auf die Robotik übertragen werden, d.h. für die High-Level-Programmierung von Robotern genutzt werden, hat dies folgende Implikationen: – Das zur Programmierung von Robotern benötigte Wissen muss in formalen Modellen beschrieben werden [4,5]. – Es muss ein Verfahren entwickelt werden, wie diese formalen Modelle in ausführbare Modelle transformiert werden können, d.h. z.B. in ein Roboterprogramm oder in SPS-Code [6,7]. Wissensmodellierung Zur Aufteilung des zur Programmierung von Robotern benötigten Wissens in formale Modelle bietet sich eine Gliederung in eine Applikationsbeschreibung sowie Prozess- und Komponentenbeschreibungen an [7,8]. Die Applikationsbeschreibung wird vom Bediener auf hohem Abstraktionsniveau erstellt und enthält die Information, welche Prozesse in welcher Reihenfolge und mit welcher Parametrierung ausgeführt werden sollen. Prozesse sind dabei wiederverwendbare Teilschritte einer Roboterapplikation, wie z.B. Objekt greifen oder Schweißpunkt setzen. Prozessbeschreibungen werden von Experten der jeweiligen Applikationsdomäne erstellt, z.B. einem Schweißexperten. Prozessbeschreibungen enthalten die Information, welche Aktion von welcher Komponente in welcher Reihenfolge zur Ausführung eines Prozesses durchgeführt werden muss, z.B. um ein Objekt zu greifen muss zuerst der Roboter zum Greifpunkt fahren, dann muss sich der Greifer schließen und erst dann darf sich der Roboter zur nächsten Zielposition bewegen. Komponenten sind die Bausteine, aus denen eine Roboterzelle besteht, z.B. der Roboter selbst, aber auch Greifer, Sensorik und Zu- und Abführvorrichtungen. Komponentenbeschreibungen enthalten Informationen, welche Funktionalität eine Komponente hat und wie die steuerungstechnische Schnittstelle genutzt werden muss, um die Funktionalität der Komponente zu nutzen. Komponentenbeschreibungen werden z.B. vom Hersteller der Komponente bereit gestellt. Soll eine neue Applikation für eine Roboterzelle erstellt werden, erstellt der Bediener durch einfaches Kombinieren und Parametrisieren von Prozessen eine Applikationsbeschreibung, ohne dass er Detailwissen über die genaue Abfolge von Aktionen in einem Prozess, die Synchronisierung der Komponenten, Komponenten-Schnittstellen oder roboterherstellerspezifischen Programmiersprachen und Kommunikationsprotokolle benötigt, da diese Informationen in den Prozess- und Komponentenbeschreibungen hinterlegt sind [8,9,10]. Die Transformation der Applikationsbeschreibung sowie der Prozess- und Komponentenbeschreibungen zu einem ausführbaren Programm erfolgt automatisch und für den Bediener völlig transparent. Er gelangt nach dem Erstellen der Applikationsbeschreibung mit einem Klick zu einer Oberfläche, die ihm entweder die Simulation oder das Ausführen der erstellten Applikation erlaubt. Applikationsbeispiel Am Fraunhofer IPA in Stuttgart wurde das oben beschriebene Verfahren am Beispiel einer Griff-in-die-Kiste-Applikation realisiert. Als Schüttgut in einer Kiste bereitgestellte Werkstücke werden vom Roboter vereinzelt gegriffen und in definierter Lage und Orientierung zur Weiterverarbeitung oder Qualitätskontrolle abgelegt. Die Lage des zu greifenden Objekts wird dabei aus von einem 3-D-Sensor ermittelten Sensordaten automatisch berechnet. Die Roboterzelle besteht deshalb aus den drei Komponenten Roboter, Greifer und 3-D-Sensor mit integrierten Auswertealgorithmen. Die Komponenten sind über ein Ethernet-Netzwerk über verschiedene standardisierte Kommunikationsprotokolle mit einer zentralen PC-basierten Zellensteuerung verbunden, werden beim Einschalten der Komponenten automatisch erkannt, und ihre Komponentenbeschreibung wird geladen. Aus einer Datenbank werden parallel vordefinierte Prozessbeschreibungen geladen. In einem ersten Schritt wird überprüft, welche Prozesse von der Roboterzelle ausführbar sind, z.B. ist ein Punktschweiß-Prozess nur ausführbar, wenn auch eine Schweißzange in der Zelle vorhanden ist. Alle ausführbaren Prozesse werden dem Bediener zur Applikationserstellung in einer Bedienoberfläche zur Verfügung gestellt. Hat der Bediener die Applikation definiert, wird die Applikationsbeschreibung automatisch mit den Komponenten- und Prozessbeschreibungen zu einem ausführbaren Programm kombiniert. Dieses kann vom Bediener ohne weitere Zwischenschritte ausgeführt werden. Fazit und Ausblick Das beschriebene Verfahren zur High-Level Programmierung einer Roboterzelle erlaubt dem Bediener das Erstellen eines ausführbaren Programms, ohne dass er Detailwissen der genauen Synchronisierung der Komponenten, der verwendeten Kommunikationsprotokolle, der Komponenten-Schnittstellen oder einer roboterherstellerspezifischen Programmiersprache benötigt. Das Verfahren wurde am Beispiel einer Griff-in-die-Kiste-Applikation realisiert, lässt sich jedoch durch Erstellen weiterer Prozess- und Komponenten-Beschreibungen für beliebige Applikationen einsetzen. Das Verfahren erlaubt den Einsatz von Robotern auch bei kleinen und mittleren Stückzahlen, da die Anpassung einer Roboterzelle schnell und ohne Expertenwissen ermöglicht wird. Somit ist das Verfahren insbesondere für den Einsatz von Robotern in KMUs interessant. Darüber hinaus arbeitet das Fraunhofer IPA an der weiteren Wiederverwendung von Wissen. Dazu gehört neben dem Wissen über die Robotersystem selbst auch weitere Informationen aus der Anwendung wie auch eine formale Beschreibung von Fehler-Recovery-Strategien, was also (automatisch) geschehen soll, wenn eine Abweichung vom Nominalablauf eintritt. Auch weitere Planungsalgorithmen – ggf. zur Koordinierung mehrerer Systeme – sind ein relevantes Forschungsthema, dessen praktische Umsetzung große (Kosten-)Vorteile bei der (Re-)Konfiguration von komplexen automatisierungstechnischen Systemen bietet.

Fraunhofer-Institut f. Arbeitswirtschaft
http://www.ipa.fhg.de

Das könnte Sie auch Interessieren

Weitere Beiträge