Inhaltsverzeichnis
1. Warum muss man Roboter programmieren?
2. Wie muss man Roboter programmieren?
3. Wie werden Industrieroboter programmiert? Die klassische Roboterprogrammierung
4. Wie funktioniert die Online-Programmierung von Industrierobotern (mit Teach-Pendant)?
5. Wie funktioniert die Offline-Programmierung am PC mit Programmiersprachen?
6. Wie funktioniert CAD-gestützte Programmierung mit 3D-Simulation?
7. Wie werden Cobots programmiert? Die intuitive Programmierung
8. Maschinensteuerung (SPS/CNC) für die Roboter-Programmierung
9. Welche Software-Tools erleichtern die Roboter-Programmierung?
10. Fazit: Welche Programmiermethode ist für die jeweilige Anwendung die beste?
11. Wie vereinfacht Künstliche Intelligenz (KI) die Roboterprogrammierung?
Warum muss man Roboter programmieren?
Obwohl Science-Fiction-Filme immer wieder das Bild des superintelligenten Roboters prägen, der am Ende sogar den Menschen beherrscht, sind heutige Industrieroboter weit davon entfernt, selbstständig Aufgaben angehen zu können. Selbst ein Sprachkommando wie „Nimm mal die Teile aus der Kiste und lege ein Teil nach dem anderen in die Maschine zur Bearbeitung ein“ funktioniert (bis auf weiteres) nicht – wenn auch innovative Robotik-Newcomer fleißig an „kognitiven Robotern“ arbeiten.
Vielmehr muss man den Robotern sehr genau und im Detail vorgeben, was sie wann und wie tun sollen. Sprich: Man muss den Roboter und seine Bahn programmieren – und dieses Roboterprogramm läuft dann genau so ab, wie einmal programmiert. Immerhin: In gewissen Grenzen kann ein Roboter seine Handlungen auf Basis der Informationen von Sensoren und Kameras anpassen.
Wie muss man Roboter programmieren?
Um eine Aufgabe erfüllen zu können, benötigt der Roboter ein Ablaufschema, eben ein Programm. Dieses sagt ihm beispielsweise, wo die Start-, Ziel- und Zwischenpunkte liegen, die er anfahren soll, und was er an den jeweiligen Punkten zu tun hat – zum Beispiel „Greifer öffnen“ oder „Schweißbrenner an“. Das alles muss dem Roboter in seiner jeweiligen spezifischen Programmiersprache mitgeteilt werden. Der Roboter benötigt zudem Informationen, wie schnell er die Punkte anfahren soll und mit welcher Genauigkeit, wie die Bewegung zwischen den Punkten aussehen soll.
Bei der Roboterprogrammierung müssen zudem Aspekte berücksichtigt werden wie
- Freiheitsgrade (Wie frei kann sich der Roboter im Raum positionieren? Denn es gibt 3achsige (Portal), 4achsige (Scara) und 6achsige Roboter (Knickarm)
- Positioniergenauigkeit (Wie genau kann der Roboter einen Punkt ansteuern?)
- Wiederholgenauigkeit (Wie genau soll ein bestimmter Punkt bei mehrmaliger Wiederholung garantiert getroffen werden?)
- Traglast (Was ist das maximale Gewicht, das der Roboter tragen darf, ohne dass die Wiederholgenauigkeit und die Positionierungsgenauigkeit beeinträchtigt werden?)
- Bahntreue (Wie genau soll der Roboter entlang einer vorprogrammierten Bahn fahren)
- Verfahrensgeschwindigkeit (Wie schnell kann der Roboter arbeiten?)
Wie lassen sich Industrieroboter programmieren? Die klassische Roboterprogrammierung
Klassische Industrieroboter kommen von Roboterherstellern wie ABB, Fanuc, Kuka oder Yaskawa. Damit diese Industrieroboter wissen, wie sie sich bewegen sollen, orientieren sie sich über ein dreidimensionales Koordinatensystem mit x-Achse, y-Achse und z-Achse. Die meisten Robotersteuerungen für diese Industrieroboter enthalten eine komplexe Programmierumgebung, meist auf Basis herstellerspezifischer Roboter-Programmiersprachen (Fanuc/ Karel, Kuka /KRL, Yaskawa/ Inform, ABB/ RAPID). Das Erstellen der Roboterprogramme kann via Online-Programmierung und via Offline-Programmierung erfolgen.
Wie funktioniert die Online-Programmierung von Industrierobotern (mit Teach-Pendant)?
Die Programmierung des Roboters via Teach-Pendant erfolgt direkt am Roboter selbst. Beim Teach-In-Verfahren (kurz: Teachen) fährt der Programmierer den Roboter mit dem Teach-Pendant (das ist eine spezielle Steuerkonsole) in die gewünschte Position. Alle erreichten Koordinaten (Punkte) werden in der Steuerung gespeichert. Dieser Schritt wird solange wiederholt, bis der gesamte Arbeitszyklus einmal durchlaufen ist. Bei Bedarf kann das so erstellte Programm noch per Hand nachbearbeitet werden. Im Betrieb fährt der Roboter die zuvor programmierten dann nacheinander Punkte ab.
- Vorteil: Erfahrene Roboterprogrammierer und Systemintegratoren bevorzugen die Arbeit mit dem klassischen Roboter-Teach-Pendant, weil ihnen dieses eine breite Funktionalität bietet. Die Bedienoberfläche ist zwar meist nicht so intuitiv wie man es vom Smartphone gewohnt ist, erfahrene Roboter-Programmierer können mit dem Teach-Pendant aber dennoch Roboter sehr schnell programmieren. Im Teach-Pendant lassen sich Roboterpositionen sehr genau festlegen und optimieren, Logik und Parameter in Menüs und Funktionstasten können schnell aufgerufen und Befehlsparameter in einer zeilenorientierten Syntax rasch aufgebaut werden.
- Nachteil: Der große Nachteil der Programmierung mit Teach-Pendant ist, dass zur Programmierung des Roboters die komplette Roboter-Arbeitsstation bereits aufgebaut sein muss. Beim Umgang mit dem Teach Pendant muss der Roboterprogrammierer mit dem Denken in xyz-Koordinatensystemen vertraut sein und sich zudem in der Menüstruktur des jeweiligen Herstellers/Teach-Pendant auskennen.
Wie lassen sich Roboter offline am PC programmieren?
Bei der Offline-Programmierung muss der reale Roboter zur Programmierung nicht aufgebaut werden oder angeschlossen sein. Das Schreiben des Roboterprogramms erfolgt an einem Computer. Die Aufgaben werden auf der Basis einer problemorientierten Sprache der Roboterhersteller beschrieben (Fanuc/ Karel, Kuka /KRL, Yaskawa/ Inform, ABB/ RAPID). Das Verfahren ist vergleichbar mit dem Programmieren in einer höheren Programmiersprache.
- Vorteil: Das Programm kann ohne Nutzung des Roboters erstellt werden. Erweiterte Programmiermöglichkeiten auf Hochsprachenebene sowie Tools zur tiefen Integration und Anpassung von Protokollen und Funktionalitäten werden von erfahrenen Roboterprogrammierern sehr geschätzt. Das Programm lässt sich zudem leicht ändern und gut dokumentieren.
- Nachteil: Zum Programmieren des Roboters ist ein qualifizierter Programmierer notwendig. Da nahezu jeder Hersteller seine eigene Programmiersprache benutzt, sind dafür in der Regel herstellerspezifische Schulungen notwendig, die mehrere Tage dauern. Viele Roboteranwender und Roboterintegratoren arbeiten daher bevorzugt mit zwei bis drei Roboterherstellen, um den Schulungsaufwand in Grenzen zu halten.
Wie funktioniert CAD-gestützte Programmierung mit 3D-Simulation?
Zur Offline Programmierung zählen auch CAD-gestütztes Verfahren: Wenn die CAD-Daten der Werkstücke vorhanden sind, kann man mit Hilfe von CAD/CAM-Tools aus den CAD-Daten automatisch die Roboterbahnen generieren und diese dann an den Roboter übertragen. Typische Anwendungen dafür sind das Fräsen, Entgraten, Lackieren von Teilen und additive Verfahren wie der 3D-Druck.
Bei der CAD-gestützten Programmierung wird also der Roboter an einem PC-Arbeitsplatz auf Basis von Konstruktionszeichnungen programmiert. Der gesamte Bewegungsablauf wird dabei schon am PC in einer dreidimensionalen Bildschirmumgebung festgelegt.
Noch weiter geht die 3D-Simulation und die virtuelle Inbetriebnahme: Benutzt man 3D-Simulations- Tools mit einem digitalen Zwilling des Roboters, kann man große Teile des Roboterprogramms in der virtuellen Welt generieren sowie testen und dann erst in den realen Roboter laden. Solche Software-Tools sind in verschiedenen Leistungsstufen (auf Roboter-, Zellen-, Linien- oder übergeordneter Fabrikebene) erhältlich und werden von den Roboterherstellern selbst oder von Drittanbietern (Visual Components, Cenit usw.) bereitgestellt, wobei die Roboter der großen Industrieroboter-Hersteller in den Bibliotheken der Drittanbieter-Tools meist verfügbar sind.
Bei einer Simulation der Roboteranwendung können auch verschiedene Untersuchungen durchgeführt werden: Ist die Roboteranwendung überhaupt machbar? Sind die gewünschten Arbeitspunkte erreichbar? Wie viel Zeit benötigt der Roboter für diesen Bewegungsablauf? Kommt es bei diesem Programm zu Kollisionen? Kann auch ein kleinerer, kostengünstigerer Roboter eingesetzt werden?
- Vorteil: Bei der CAD-gestützten Programmierung kann die Programmierung des Roboters bereits erfolgen, wenn dieser noch gar nicht aufgebaut ist. Planungs- und Konstruktionsfehler können frühzeitig erkannt werden. Erforderliche Änderungen können in diesem Stadium noch am Computer vorgenommen werden und es ist kein teurer späterer Umbau notwendig.
- Nachteil: Die genaue Umgebung existiert oft nicht als 3D-Modell. Alle Vorrichtungen und Werkzeuge müssen später exakt den Modellen im Computer entsprechen. Versorgungsleitungen für Druckluft können am Computer nur unzureichend abgebildet werden, bewirken am realen Industrieroboter aber oft erhebliche Bewegungseinschränkungen .
Cobots programmieren: die intuitive Programmierung
Bediener ohne speziellen Roboter-Programmierhintergrund empfinden das zeilenbasierte Roboter-Programmieren und das umständliche Hantieren mit dem Teach-Pendant – aus ihrer Erfahrung mit der Smartphone-Welt – oft als „old school“. Sie profitieren daher von Ansätzen aus der Cobot-Welt wie Handführen des Roboters oder intuitive Tablet-basierte Bedienoberflächen. Denn diese Ansätze befreien weitgehend vom Denken in xyz-Koordinatensystemen.
Cobots funktionieren zwar grundsätzlich genauso wie klassische Industrieroboter und benötigen ebenfalls ein passendes Programm, um eine Aufgabe abarbeiten zu können. Die Cobot-Programmierung ist aber meist viel einfacher. Denn Cobots können auf der einen Seite per Hand zu Punkten geführt werden, den sie später anfahren sollen (Handführung, Freedrive Mode o.ä.). Zudem sind können Cobots mit intuitiven Tablet-Oberflächen ganz einfach grafisch programmiert werden. Zudem gibt es meist vorgefertigte Apps und Programme für typische Applikationen, die per Drag and Drop einfach ausgewählt werden.
Das Programmieren von Cobots ist somit auch für absolute Laien in wenigen Stunden erlernbar. Als Faustformel nennen Experten: „Um zu lernen, wie man einen Industrieroboter programmiert, braucht man ein bis zwei Wochen. Um zu lernen, wie man einen Cobot programmiert braucht man ein bis zwei Tage.“
Maschinensteuerung (SPS/CNC) für die Roboter-Programmierung
Maschinenbauer verfügen oft über viele SPS-Programmierer, aber über nur wenig spezielle Roboterprogrammierer. Daher kommt aus dem Maschinebau verstärkt die Anforderung, den Roboter direkt über die Maschinensteuerung wie SPS-Funktionsbausteine programmieren zu können.
Bei dieser Integration der Roboter in übergeordnete Maschinensteuerungen (SPS, CNC) gehen die Roboterhersteller unterschiedliche Wege: Manche (wie Kuka, Yaskawa, Stäubli) bieten für ihre Robotersteuerung offene Schnittstellen zu gängigen SPSen an, andere Roboterhersteller (ABB, Comau) verzichten auf die eigene Robotersteuerung und integrieren die Roboter direkt in die Maschinensteuerung. Im Einzelnen
- Stäubli uniVAL plc: Mit Unival plc stellt Stäubli für jedes Robotermodell eine Schnittstelle zu gängigen SPS von Siemens, Beckhoff, Schneider oder Rockwell sowie zu PC-basierten Codesys-Systemen zur Verfügung. Die Kommunikation zwischen SPS und Robotersteuerung läuft via Ethercat, Profinet und Ethernet IP. So können die Roboter einfach über Funktionsbausteine der SPS programmiert werden. Die eigentliche Bahnplanung übernimmt aber weiterhin der Roboter-Controller. Auch die umfangreichen Safetyfunktionen der CS9 Steuerung bleiben aktiv.
- Kuka Mxautomation: Mit Kukas Schnittstelle PLC mxAutomation können Maschinenbauer die Robotersteuerung in ihre vorhandenen Maschinensteuerungen integrieren. KUKA.PLC mxAutomation kann mit einer Vielzahl an Steuerungen genutzt werden, darunter Siemens (Sinumerik, Step7, Simatic und Simotion) sowie Codesys, Rockwell Allen Bradley, Labview, Beckhoff, Schneider-Electric, B&R, Lenze und Mitsubishi. Gleichzeitig bleiben alle Vorteile und Eigenschaften der Robotersteuerung erhalten, wie z.B. die Bewegungsplanung der jeweiligen Robotermechanik, die energieeffizienten Bewegungsalgorithmen oder die Safety-Funktionen.
- Yaskawa Motologix: Bei Yaskawa heißt die SPS-Schnittstelle Motologix. Mit der Motologix Schnittstelle lassen sich Yaskawas Motoman-Roboter über die SPS steuern, dabei unterstützt Motologix neben Profinet (Siemens) auch Ethernet/IP (Rockwell) und Powerlink (B&R). Mit Motologix lassen sich Motoman-Roboter dann schnell mit den gängigen Programmiersprachen nach IEC-61131 wie Codesys in der SPS programmieren und steuern.
- Fanuc QSSR: Fanuc konzentriert sich bei der Roboterintegration vor allem auf seine hauseigene CNC-Steuerungen. Dafür gibt es unter anderem das Paket QSSR (Quick and Simple Start-up of Robotization). Dieses erleichtert die Anbindung eines Roboters an eine Werkzeugmaschine ebenso wie das Setup und den anschließenden Betrieb. Fanuc hat für QSSR aber auch eine Standardschnittstelle geschaffen, die sich auch zur Anbindung von Drittsteuerungen eignet.
- Siemens mit herstellerübergreifender Integration: Eine universelle Roboterbibliothek für sein TIA Portal hat Siemens mit der Simatic Robot Library geschaffen. Die Spezifikation entstand in enger Zusammenarbeit mit den Roboterherstellern ABB, Comau, Epson, Fanuc, Kawasaki, Kuka, Panasonic, Stäubli, Techman, Yamaha und Yaskawa. Mithilfe der Simatic Robot Library kann man also einen Großteil der am Markt befindlichen Roboter im TIA Portal programmieren – ohne spezifische Programmierkenntnisse für einen Robotertyp. Mit der einheitlichen Umgebung im TIA Portal sparen Anwender bis zu 30 % Zeit beim Engineering, verspricht Siemens.
- Siemens Run MyRobot /DirectControl: Siemens kooperiert darüber hinaus mit Comau, um Comaus Roboter mit Sinumerik Run MyRobot /DirectControl direkt in die Sinumerik CNC zu integrieren. Die Programmierung des Roboters erfolgt rein über Sinumerik. Mehr noch: Die Sinumerik CNC steuert mit /DirectControl die Mechanik der Roboter direkt, ganz ohne separate Robotersteuerung und übernimmt neben der Antriebsregelung des Roboterarms auch robotertypische Sicherheitsfunktionen.
ABB mit B&R: Auch ABB integriert seine Roboter unter dem Stichwort „maschinenintegrierte Robotik“ komplett die Maschinensteuerungen der Tochter B&R. Durch die tiefe Integration des Roboters in die Maschinensteuerung wird nur noch eine Steuerung und ein Engineering-System für die Entwicklung, Diagnose und Wartung benötigt. Die benutzerfreundliche Programmierung ist ein weiterer Vorteil, der sich aus der Verschmelzung von Roboter und Maschine ergibt – Kenntnisse spezieller Robotiksprachen sind nicht erforderlich. B&R verspricht Zeiteinsparungen von 60 bis 70 Prozent. Weiterer Vorteil der tief in die Maschine integrierten Robotik ist die Präzision bei der Synchronisierung von Robotik und Maschinensteuerung.
Welche Software-Tools erleichtern das Programmieren von Robotern?
Um Roboter einfach zu programmieren, haben Software-Unternehmen wie Wandelbots, Artiminds und Drag&Bot einfach bedienbare-Software Lösungen entwickelt.
- Wandelbots: Wandelbots aus Dresden kombinierte ein intuitives Eingabegerät (Tracepen) mit einer App. So können selbst Laien Roboter programmieren, ohne eine einzige Zeile Code selbst zu schreiben ( „No-Code-Robotic“). Mit dem Tracepen macht der Anwender dem Roboter die Bewegung vor, die dieser später ausführen soll. Dazu fährt der Nutzer mit dem sensorbestückten Tracepen das Werkstück entlang, das der Roboter später beispielsweise entgraten oder schweißen soll. Die Software übersetzt den grafischen Pfad in die roboterspezifische Programmiersprache und überträgt ihn auf den Robotercontroller. Dieser führt den Roboterpfad im Anschluss genau so aus, als wäre er herkömmlich programmiert worden. Inzwischen bietet Wandelbots den Tracepen aber nicht mehr an, sondern konzentriert sich auf eine Software-only-Strategie.
- Artiminds: Die Robot Programming Suite (RPS) des KIT-Spin-offs Artminds basiert auf der Kombination und Parametrisierung wiederverwendbarer Funktionsbausteine. Mit diesen kann der Anwender per Drag&Drop anspruchsvolle Roboterprogramme erstellen, ohne eine einzige Zeile Robotercode selbst schreiben zu müssen. Die rund 60 Bausteine decken nahezu alle Aufgabenstellungen ab. Wizards führen den Programmierer durch den Einrichtungsprozess. Der üblicherweise hohe Programmieraufwand zur Integration von Kameras, Kraft-Momenten-Sensoren, elektrischen Greifern und SPS entfällt. Artiminds RPS generiert anschließend automatisch einen nativen Robotercode, der direkt auf der Standardsteuerung des Roboterherstellers läuft und auch auf andere unterstütze Robotermarken übertragen werden kann.
- Drag&Bot: Auch die Software des Start-ups Drag&Bot (eine Ausgründung des Fraunhofer IPA aus Stuttgart) basiert auf einem Baukasten aus fertigen Software-Bausteinen, die mittels intuitivem Drag&Drop ohne Robotik-Knowhow zu einem Roboterprogramm zusammengestellt werden können. Im Drag&Bot Builder können aus vordefinierten Funktionsblöcken Applikationen wie ‚Roboter bewegen‘, ‚Greifer auf/zu‘ oder ‚Palettieren‘ erstellt werden. Wizards helfen, die notwendigen Einstellungen über eine graphische Benutzeroberfläche zu konfigurieren. Fertige Programme können einfach aus der Cloud geladen werden. Inzwischen gehört Drag&Bot zum Steuerungsspezialisten Keba Industrial Automation aus Linz.
Zudem haben inzwischen auch eine ganze Reihe von klassischen Industrieroboterherstellern einfach bedienbare Oberfläche für die Roboter-Programmierung entwickelt, die zumindest die Bedienung der Cobots des jeweiligen Herstellers durch eine grafische Oberfläche vereinfachen. Hier einige Beispiele:
- Kuka mit iiQKA.OS
- ABB mit Wizard Easy Programming
- Denso nutzt Blockly
- Epson mit RC+ Express
Fazit: Welche Programmiermethode ist für die jeweilige Anwendung die beste?
Welche Programmiermethode für die jeweilige Anwendung die beste ist, hängt von den Rahmenbedingungen ab. Zwei wichtige Fragen sind in dem Zusammenhang:
1. Wer programmiert die Roboteranwendung?
- Erfahrene Roboterprogrammierer und Systemintegratoren legen bei der Inbetriebnahme Wert auf breite Funktionalität und Effizienz und bevorzugen daher das klassische Roboter-Handbediengerät (das Teach-Pendant).
- Einsteiger und Bediener ohne speziellen Programmierhintergrund empfinden das zeilenbasierte Roboter-Programmieren als „old school“ und bevorzugen daher eher das Handführen des Roboters oder ein Smart Pendant.
2. Wie häufig muss der Roboter im Betrieb umprogrammiert werden?
- Wenig Änderung: Die meisten Roboter in hochautomatisierten Anlagen werden bei der Inbetriebnahme einmal programmiert und laufen dann lange ohne Programmänderung. Die Programmierzeit ist im Verhältnis zur eigentlichen Laufzeit der Anlage verschwindend gering. Bauteilvarianten oder Bauteiltoleranzen können bereits in der Programmstruktur berücksichtigt werden. Hier bieten sich klassische Programmiermethoden an
- Viel Änderung: Wenn sich Bauteile oder Aufgabenstellungen des Robotersystems dagegen ständig ändern, sind jedoch einfache Programmiermethoden sinnvoll, weil sie die Stillstandzeiten der Anlage beim Umprogrammieren reduzieren. In Frage kommen hier das direkte Handführen des Roboters, smarte Tablets, Programmierstifte oder auf intuitive Programmierung ausgelegte Software-Umgebungen.
Wie vereinfacht Künstliche Intelligenz (KI) die Roboterprogrammierung?
Mit Hilfe von künstlicher Intelligenz (KI) und Machine Learning soll die Roboterprogrammierung künftig noch einfacher werden. Das Ziel: Roboter sollen künftig quasi selbst erkennen und lernen, was sie tun sollen.
- Beim Imitation Learning kann man den Roboter durch Vormachen programmieren. Auf Basis von Bildern und anderen gesammelten Daten imitiert der Roboter dann einen manuell ausgeführten Prozess.
- Beim Reinforcement Learnig wird das maschinelle Lernen dazu genutzt, dass dert Roboter beim Ausführen von Prozessen immer besser wird, in dem er aus den ausgeführten Handlungen lernt und sich so selbst optimiert. Dieses „Learning-by-Doing“ kann zunächst auch in einer 3D-Simulation stattfinden.
Wie groß das Potenzial von KI und Machine Learning ist, hat Google gezeigt. Der Internetkonzern hat in einem Forschungsprojekt mehrere Roboter vor Kisten mit Spielzeug gestellt und diese Roboter über ein neuronales Netz verbunden. Dann hat Google den Robotern die Aufgabe gegeben, die Kisten zu leeren – aber das genaue Vorgehen nicht im Detail programmiert. Mit Learning by Doing haben sich die Roboter diesen komplexen Griff in die Kiste dann selbst beigebracht und dabei über das neuronale Netz auch voneinander gelernt.
Dass solche KI-Ansätze bereits in der Praxis ankommen, zeigt das Beispiel des Berliner Start-ups Micropsi. Micropsi hat die KI-basierte Robotersteuerung Mirai entwickelt, die die Auge Hand Kooperation des Roboters verbessert. Micropsis KI lernt vom Menschen: Der Mensch gibt Bewegungen mit der Hand vor und demonstriert dem Roboter so auch Varianzen in den Abläufen. Mit einer Kamera, die am Robotergelenk montiert ist, und weiteren Sensoren nimmt Mirai die Bewegungsabläufe auf und trainiert mithilfe der aufgenommenen Daten ein neuronales Netzwerk, um so die Bewegungen zu verallgemeinern. Das Ergebnis: Der Roboterarm leitet auch in unbekannten Situationen eigenständig die richtige Bewegung ab und erreicht das gewünschte Ziel.
Mehr zum Thema Robotik