-
Technisches Gebiet
-
Die Erfindung betrifft ein mit Hilfe eines Industrieroboters durchgeführtes Arbeitsverfahren, beispielsweise ein Verfahren zum Behandeln von Oberflächen von Werkstücken oder zur Montage von Teilen an einem Werkstück. Beispiele hierfür sind das robotergestützten Lackieren, Reinigen, Polieren oder Schleifen von Oberflächen eines Werkstücks (z.B. einer Fahrzeugkarosse) oder der Zusammenbau von Teilen, z.B. der Einbau eines Sitzes in ein Fahrzeug in einer Fertigungsstraße.
-
Hintergrund
-
In der industriellen Serienproduktion, beispielsweise in einer Fließbandfertigung, Fließ- oder Linienproduktion bzw. Produktion in Transferstrassen, werden viele Arbeitsschritte und Prozesse mit Hilfe von Industrierobotern abgearbeitet. Mit Hilfe von Robotern werden beispielsweise Oberflächen von Werkstücken gereinigt, poliert, geschliffen, lackiert oder in sonstiger Weise behandelt. Ein weiteres Beispiel ist die robotergestützte Montage von Bauteilen an oder in einem Werkstück, das Durchführen eines Schweißprozesses, etc. Das bekannteste und zur Zeit wichtigste Anwendungsgebiet für robotergestützte Arbeitsverfahren mag die Serienproduktion in der Automobilindustrie sein. In diesem Beispiel wäre das Werkstück eine Fahrzeugkarosse, an der während des Produktionsprozesses die unterschiedlichsten Arbeiten mit Hilfe von Industrierobotern durchgeführt werden, beispielsweise Lackierarbeiten, das Durchführen von (Punkt-)Schweißarbeiten, der Einbau von Komponenten wie z.B. Sitze, etc.
-
Während der Industrieroboter einen vorab festgelegten (geplanten, programmierten oder mittels "Teach-in" eingelernten) Arbeitsablauf in seiner Arbeitszelle abarbeitet, kann das Werkstück (z.B. die Fahrzeugkarosse) auch entlang einer definierten Bahn, beispielsweise mit einer Hänge- oder Bodenfördereinrichtung (auch als "Fließband" bezeichnet), weiterbewegt werden.
-
Der gesamte Arbeitsvorgang des Roboters wird bei modernen Systemen größtenteils über OLP (Off-line-Programmierung) programmiert. Eine voll- oder teilautomatisierte Planung der von dem Roboter durchzuführenden Arbeitsabläufe wird jedoch zunehmend erforscht und verwendet. Unterschiedlichste computergestützte Planungsverfahren wurden dazu im Laufe der Zeit entwickelt und publiziert. Als Beispiele für ein OLP-System sei das etablierte Produkt SIEMENS Robcad/SIEMENS PLM genannt. Für den Einsatz von OLP wird auch auf die Publikation Dong et. al: „Off-line programming of Spot-weld Robot for Car-body in White Based on Robcad“, in: Proc. Of the IEEE International Conference on Mechatronics and Automation, 2007. (ICMA 2007), S: 763–768, verwiesen. Als Beispiele für Verfahren zur automatischen Planung von robotergestützten Arbeitsabläufen seien die Publikationen Weihua Sheng et al.: "Automated CAD-guided robot path planning for spray painting of compound surfaces", in: Proc. of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2000), Bd. 3, S. 1918–1923, sowie Tapio Heikkilä; Lluis G. Ferrer, Matti Annala: "Model Based Interactive Path Planning for Surface Following Robot Tasks", SPIE Proc. Vol. 3208, S. 551–561, 1997, genannt.
-
Für derartige automatisierte Planungsverfahren und Offline-Programmierverfahren werden üblicherweise (CAD-)Modelle des Werkstückes verwendet sowie virtuelle Modelle von Roboter und Prozess bzw. deren Steuerungen, mit deren Hilfe der geplante Arbeitsvorgang des Roboters (oder der Roboter) in seiner Gesamtheit geplant, simuliert und programmiert werden kann. Einen guten Überblick zu automatisierten Bahnplanungs- und Programmierverfahren für Industrieroboter findet man auch in D. Kugelmann: Aufgabenorientierte Offline-Programmierung von Industrierobotern, in: Forschungsberichte IWB, Bd. 127, Herbert Utz Verlag, 1999 sowie in H. Cheng et al. „Automated Industrial Robot Path Planning for Spray Painting Process: A Review“ in Proc. 4th IEEE Conference on Automation Science and Engineering, August 23–26, 2008, S. 522–527.
-
DE 10 2008 007 438 A1 beschreibt ein Verfahren zum Wiederanfahren eines Roboters nach einer vorzeitigen Unterbrechung an einer Unterbrechungsstelle. In
EP 1 625 918 B1 ist eine Programmiervorrichtung beschrieben, die dazu dient, einen Roboter in seine Wartestellung zurück zu fahren.
EP 1 731 273 A2 beschreibt ein Gerät und ein Verfahren zum Steuern eines Roboters für mehrere Arbeitseinheiten.
-
Der vorab geplante und programmierte Arbeitsvorgang (Lackieren, Polieren, Schleifen, Schweißen, Montieren, etc.) wird danach während der Serienproduktion für jedes Werkstück abgearbeitet. In der Praxis kommt es jedoch immer wieder vor, dass der Arbeitsvorgang nicht wie geplant abgearbeitet werden kann. Dies kann beispielsweise bei einem unerwarteten Stromausfall der Fall sein. Die häufigeren Ursachen sind jedoch eine unvorhergesehene Blockade der geplanten bzw. programmierten Bewegungsbahn des Roboters durch ein Hindernis (ein fehlerhaft montiertes Bauteil, ein vergessenes Objekt oder, bei einer fehlerhaften Positionierung des Werkstücks, ein Teil des Werkstücks selbst), eine manuell oder automatisch (aufgrund einer automatischen Kollisionserkennung bzw. Kollisionsprognose) ausgelöste Notabschaltung oder ein manuell oder automatisch ausgelöster Stopp bei einem Fehler im Prozess (z.B. Werkzeugbruch, inkorrekt gegriffene Bauteile, falsch montierte Teile, Fehler in der Materialzufuhr, andere Prozessstörungen, etc.). Eine weitere Situation in der ein Not-Aus ausgelöst oder ein Programm während der Ausführung angehalten oder unterbrochen wird, kann vor der eigentlichen Produktion während des Testens und des iterativen Optimierens/Programmierens von neuen Programmen oder Programmteilen auftreten, auch ohne dass oben beispielhaft benannte Störungen auftreten müssen. Die Unterbrechungen sind dann allein dadurch bedingt, dass die Roboterprogramme noch Fehler aufweisen, die erst während des Testens eliminiert werden sollen.
-
Nach Beseitigung des Problems bzw. Entfernung des Hindernisses kann die Produktion oder der Testlauf, d.h. der Arbeitsablauf des Roboters nicht ohne weiteres fortgesetzt werden. Dies kann unterschiedliche Gründe haben. Ein Grund ist, dass der Roboter nach der Abschaltung aufgrund der Trägheit in einer Endposition stehen bleibt die von der programmierten Soll-Bahn abweicht, oder von der aus er aufgrund seiner Trägheit nicht mehr die verbleibende Sollbahn hinreichend genau ausführen kann. Andere Gründe liegen in dem Prozess selbst. Beispielsweise könnte bei einer Fortsetzung des Prozesses an jener Stelle der Bewegungsbahn des Roboters, bis zu der der Arbeitsablauf vor der Unterbrechung korrekt abgearbeitet wurde, das vom Roboter bediente Werkzeug (z.B. eine Auspresspistole für Dichtstoffe oder Klebstoffe) mit dem zuvor aufgetragenen Material (z.B. Dichtstoff, Klebstoff) in Berührung kommen (und z.B. verschmieren), da der Roboter bis an jene Stelle seiner Bahn zurückfahren müsste, an der die Unterbrechung stattgefunden hat. Unter Umständen (z.B. bei Lackierprozessen) müsste der Roboter den Prozess sogar an einer Stelle seiner Bewegungsbahn fortsetzen, die vor der Stelle der Unterbrechung liegt, da der Roboter an der Stelle der Unterbrechung für die Fortsetzung des Prozesses seine Sollgeschwindigkeit wieder erreicht haben muss, er aber nicht beliebig schnell beschleunigen kann. In manchen Fällen kann der Prozess gar nicht oder nur mit unerwünschten Qualitätseinbußen fortgesetzt werden (z.B. weil der Lack an der Stelle der Unterbrechung schon ausgehärtet oder angetrocknet ist, oder durch die Unterbrechung zu viel Lack an einer Stelle aufgetragen wurde). Daher wird fallweise zwischen Abbruch (und Neustart mit ggf. neuem Werkstück) und Wiederaufnahme entschieden.
-
Für beide Fälle könnte die Robotersteuerung den Roboter zwar so ansteuern, dass er den vor dem Stillstand zurückgelegten Weg oder das Wegstück in "Rückwärtsrichtung" durchläuft, jedoch kann die Bewegungsbahn des Roboters in Rückwärtsrichtung blockiert sein, beispielsweise weil der Roboter vor der Abschaltung ein sperriges Bauteil gegriffen, Material aufgetragen oder umgeformt hat, oder weil das Werkstück (z.B. die Fahrzeugkarosse) mit Hilfe der erwähnten Fördereinrichtung bereits ein Stück weiterbewegt worden ist und nun das Werkstück selbst, dessen Aufnahme oder die Fördereinrichtung die "Rückabwicklung" des Weges oder des letzten Wegstücks blockiert. Ein "Ausfädeln" des Roboterarmes sowie die Positionierung des Roboters an einer Position, von der ausgehend der unterbrochene Arbeitsvorgang fortgesetzt oder neu gestartet werden kann, muss daher in der Praxis oft manuell mittels einer Handsteuerung durchgeführt werden. Dieses Problem ist am Beispiel eines Lackierroboters in der Publikation
DE 37 11 020 A1 (Sp. 3, Z. 41–53) erläutert. Die Wiederaufnahme des regulären Produktionsbetriebs kann aufgrund der geschilderten Probleme oft sehr lange dauern. Die Robotersteuerung "weiß" im Allgemeinen nicht, auf welchem Weg der Roboter wieder an eine "sichere Ausgangsposition" zurückgefahren werden kann, von der aus der Arbeitsablauf des Roboters weitergeführt oder neu begonnen werden kann. Ein automatisches Ausfädeln des Roboters ist daher nicht ohne weiteres möglich und lange Produktionsstopps oder Verzögerungen beim Testen neuer Programme sind die Folge.
-
Das der Erfindung zugrunde liegende Problem besteht also darin, ein Verfahren zum robotergestützten Durchführen eines Arbeitsvorganges so auszugestalten, dass es nach einer außerplanmäßigen Unterbrechung möglichst rasch fortgesetzt oder neu gestartet werden kann.
-
Zusammenfassung der Erfindung
-
Dieses Problem wird durch das Verfahren gemäß Anspruch 1 gelöst. Beispielhafte Ausführungsformen und Weiterentwicklungen der Erfindung sind Gegenstand der abhängigen Ansprüche.
-
Es wird ein Verfahren zum Durchführen eines von zumindest einem Industrieroboter an einem Werkstück durchgeführten Arbeitsablaufes beschrieben, der aufgrund einer Störung unterbrochen wurde. Das Verfahren umfasst das Erfassen von Daten, die den Zustand des/der Industrieroboter/s, des/der Werkzeuge, des/der Werkstücks/e und die Art der Störung repräsentieren sowie das Ermitteln eines mathematischen Modells, welches den/die Industrieroboter, das Werkstück und die Störung beschreibt. Das Verfahren umfasst weiter die automatische, computergestützte Planung von mindestens einer Bewegungsbahn für den/die Industrieroboter, die geeignet ist zur Fortsetzung des unterbrochenen Arbeitsablaufs oder zur Überführung des/der Industrieroboter/s in einer sichere Ausgangsposition, von der aus der Arbeitsablauf an dem Werkstück (oder mit einem neuen Werkstück) erneut gestartet werden kann oder ein folgender Arbeitsablauf an dem nächsten Werkstück gestartet werde kann. Im Anschluss wird die so geplante Bewegungsbahn automatisch in ein von einer Robotersteuerung ausführbares Roboterprogramm umgesetzt.
-
Eine „Störung“ im Sinne der obigen Beschreibung kann auch darin bestehen, dass der Arbeitsablauf (der Programmablauf) zu Test- oder Optimierungszwecken bewusst unterbrochen wird, um eventuelle Fehler im Programm zu korrigieren oder ganz allgemein den gewünschten Arbeitsablauf zu optimieren. Das hier beschriebene Verfahren kann also auch dazu dienen, den Prozess des Testens oder Optimierens eines Roboterprogramms zu erleichtern und zu beschleunigen.
-
Ein mathematisches Modell, welches den Industrieroboter, das Werkstück und ggf. die Störung beschreibt, kann jede beliebige insbesondere softwaremäßige Darstellung (z.B. eine Datenbank) sein, die den tatsächlichen physikalischen Zustand des Gesamtsystems (soweit notwendig) beschreibt. Das Modell muss lediglich so gestaltet sein, dass anhand des Modells eine computergestützte Bahnplanung durchgeführt werden kann. Gegebenfalls sind die definierten Softwareschnittstellen des verwendeten Softwaretools zu beachten.
-
Kurze Beschreibung der Abbildungen
-
Die Erfindung wird in der Folge unter Bezugnahme auf die folgenden Abbildungen näher erläutert. Die in den Abbildungen dargestellten Ausführungsbeispiele sind dabei nicht als Einschränkung in Bezug auf die vorliegende Erfindung zu verstehen, vielmehr wird Wert darauf gelegt, das der Erfindung zugrunde liegende Prinzip zu erläutern. In den in den Abbildung dargestellten Figuren bezeichnen gleiche Bezugszeichen gleiche oder ähnliche Komponenten bzw. Signale mit gleicher oder ähnlicher Bedeutung.
-
1 ist ein Blockschaltbild zur Illustration eines ersten Beispiels des erfindungsgemäßen Systems bzw. Verfahrens;
-
2 ist ein Blockschaltbild zur Illustration eines zweiten Beispiels des erfindungsgemäßen Systems bzw. Verfahrens;
-
3 ist ein Ablaufdiagramm zur Illustration der automatischen Bahnplanung gemäß dem Beispiel aus 1.
-
Detaillierte Beschreibung
-
In der folgenden Beschreibung wird – als illustratives Beispiel – von einem durch einen Industrieroboter durchgeführtes Verfahren zur Behandlung (Lackieren, Polieren, etc.) einer Werkstückoberfläche (z.B. Oberfläche einer Fahrzeugkarosserie) ausgegangen. Das erfindungsgemäße Verfahren ist jedoch auch auf andere robotergestützte Arbeitsabläufe anwendbar wie beispielsweise die Montage von Komponenten an einem Werkstück, etc. Ferner wird davon ausgegangen, dass der Industrieroboter einen bestimmten Arbeitsablauf (d.h. ein Roboterprogramm) an einem Werkstück durchführt und dieser Arbeitsablauf unterbrochen wird, beispielsweise durch eine automatisch ausgelöste Notabschaltung weil mit Hilfe geeigneter Sensoren eine (drohende) Kollision mit einem Hindernis detektiert wurde.
-
Das gesamte System, welches hier betrachtet wird, umfasst neben dem Werkstück, einen oder mehrere Industrieroboter inklusive Robotersteuerung, Roboterperipherie (z.B. am Roboter angeordnete Werkzeuge wie Sprühpistole, Schweißgerät, Greifer, sonstiges Zubehör, etc), ein Softwaretool zur automatisierten Bewegungsbahnplanung und Roboterprogrammerzeugung, und ein oder mehrere Module (Hard- und Software), die dazu ausgebildet sind, den "Zustand" des gesamten Systems unmittelbar nach der Unterbrechung des ursprünglich ausgeführten Arbeitsablaufes zu ermitteln und die ermittelten Daten dem Softwaretool zur Verfügung zu stellen. Optional kann das System noch eine Fördereinrichtung, ("Fließband") umfassen, welche das Werkstück bewegt, sowie ein Bedieninterface, um eine Interaktion mit einer Bedienperson zu ermöglichen. In diesem Zusammenhang umfasst der Zustand des gesamten Systems unmittelbar nach der Unterbrechung insbesondere folgendes:
- – die Position (d.h. sämtliche Gelenkwinkel des Roboters) des Roboters,
- – die Position der Fördereinrichtung,
- – optional die zurückliegende Bewegung des Roboters und der Fördereinrichtung,
- – gegebenenfalls Informationen über den Zustand der Werkzeuge (letzte Position vor der Unterbrechung, Werkzeug- und/oder Prozessparameter, Zeitpunkt des Abschaltens oder der Störung, etc.),
- – optional die Historie des Prozesses (zeitliche Aufzeichnung der Werkzeug- bzw. Prozessparameter bis zum Zeitpunkt der Unterbrechung, Zeitpunkt des Abschaltens oder der Störung im Prozess)
- – optional das (die) abgearbeitete(n) Programm(e)
- – den Zeitpunkt der Unterbrechung, d.h. die Position im unterbrochenen Roboterprogramm, und
- – die Ursache der Unterbrechung (manueller Not-Aus, tatsächliche Kollision, drohende Kollision, welche rechtzeitig erkannt wurde, Über- oder Unterschreiten der erlaubten Prozessparameter, etc.).
-
Es handelt sich hierbei nicht um eine vollständige Auflistung, vielmehr werden alle Informationen gesammelt, die den Zustand des gesamten Systems beschreiben, soweit diese Informationen (Daten) für das weitere Verfahren, wie es in der Folge beschrieben wird, benötigt werden. Die Module zur Ermittlung des Zustandes des Systems und des Prozesses unmittelbar nach der Unterbrechung umfassen einerseits Hardwarekomponenten (Positionssensoren, die (teilweise) auch von der Robotersteuerung verwendet werden), als auch geeignete Softwarekomponenten, beispielsweise zur Ermittlung der Position im Roboterprogramm, an der der Arbeitsablauf unterbrochen wurde. Nicht sämtliche Informationen müssen automatisch ermittelt werden. Manche Informationen betreffend den Zustand des Systems können auch manuell durch eine Bedienperson eingegeben werden, beispielsweise, dass das Werkstück fehlerhaft eingespannt ist, d.h. sich nicht in der Soll-Lage befindet. Andere nicht direkt messbare Informationen, beispielsweise die genaue Position eines Hindernisses, welches zur Unterbrechung der Ausführung des ursprünglichen Arbeitsablaufes geführt hat, können auch aus den verfügbaren Informationen geschätzt werden. In dem erwähnten Beispiel kann die Position eines Hindernisses aus der Roboterposition, an der die Unterbrechung ausgelöst wurde, und Motorströmen vor und während der Kollision geschätzt werden.
-
Die durch das Modul (bzw. die Module) zur Ermittlung des Zustandes des Systems gesammelten Zustandsinformationen können, zusammen mit einem CAD-Modell des Werkstücks, verwendet werden, um eine realistische (mathematische) Beschreibung des gesamten Systems (Werkstück, Roboter, Fördereinrichtung, Werkszeuge, etc.) zu ermitteln. In der Folge wird ein Softwaretool zur automatisierten Bewegungsbahnplanung und Roboterprogrammerzeugung verwendet um, basierend auf den gesammelten Informationen über den Zustand des Systems nach der Unterbrechung, einen "Ausweg" aus der Situation zu planen und die Robotersteuerung entsprechend umzuprogrammieren.
-
Für die erwähnte Aufgabe werden dem Softwaretool zur automatisierten Bewegungsbahnplanung und Roboterprogrammerzeugung folgende Informationen zur Verfügung gestellt:
- – die gesammelten Daten betreffend den Zustand des Gesamtsystems unmittelbar nach der Unterbrechung inklusive dem unterbrochenen Roboterprogramm und einem CAD-Model des Werkstücks und der Arbeitszelle, also eine vollständige mathematische bzw. geometrische Modellbeschreibung des Gesamtsystems (Roboter inkl. Steuerung, Werkstück, Werkzeuge, Arbeitszelle, etc),
- – eine Beschreibung des Soll-End-Ergebnisses des unterbrochenen Arbeitsablaufes (Prozessergebnis), und
- – eine "sichere" Ausgangslage für den Roboter, von der aus der Arbeitsablauf (Prozess) fortgesetzt oder neu gestartet werden kann.
-
Das Softwaretool zur automatisierten Bewegungsbahnplanung und Roboterprogrammerzeugung wird in der Folge dazu verwendet, automatisch einen "Ausweg" aus der Situation zu planen um den unterbrochenen Arbeitsablauf wieder aufzunehmen oder abzubrechen und mit dem gleichen oder einem neuen Werkstück neu zu beginnen. Je nach Art des (unterbrochenen) Arbeitsablaufes gibt es hierzu mehrere Möglichkeiten. Bei der ersten Option versucht das Softwaretool die restliche Bewegungsbahn des unterbrochenen Arbeitsablaufes in einer Weise umzuplanen, dass der unterbrochene Arbeitsablauf – ggf. modifiziert – fortgesetzt werden kann, und das erwünschte Soll-Ergebnis erreicht wird. Der geplante, modifizierte Arbeitsablauf und das Prozessergebnis kann simuliert werden. Wird das erwünschte Prozessergebnis erreicht (ist z.B. die Dicke des Lackauftrags ausreichend), wird automatisch ein entsprechendes Roboterprogramm in an sich bekannter Weise erzeugt und auf die Robotersteuerung geladen. Die erwähnte Simulation und das simulierte Prozessergebnis kann bei Bedarf auch von einer Bedienperson geprüft werden, bevor das modifizierte Roboterprogramm erzeugt und ausgeführt wird.
-
Bei der zweiten Option wird nicht nach einer modifizierten Bewegungsbahn für den Roboter gesucht, die eine Fortsetzung des unterbrochenen Arbeitsablaufs ermöglicht. Vielmehr wird eine neue Bewegungsbahn für den Roboter zu einer vorgebbaren "sichereren" Ausgangsposition geplant, von der ausgehend der ursprüngliche (jedoch unterbrochene) Arbeitsablauf erneut gestartet oder fortgesetzt werden kann, oder an der der Roboter auf das nächste Werkstück und/oder das nächte Programm wartet. Vor dem Fortsetzen bzw. vor dem Neustart wird also eine Ausgangsposition angefahren. Auf diese Weise wird eine einfache Entfernung des Hindernisses oder ein Austausch eines (z.B. defekten) Werkstücks bzw. das Zuführen des nächsten regulär abzuarbeitenden Werkstücks ermöglicht. Die derart geplante Roboterbewegungsbahn wird automatisiert in ein entsprechendes Roboterprogramm umgesetzt und auf die Robotersteuerung geladen. Die Robotersteuerung kann dann automatisch aus dem Werkstück "ausfädeln", auch wenn – wie oben erläutert – eine einfache "Rückwärtsausführung" des ursprünglichen Programms nicht mehr möglich ist. Die beschriebene zweite Option kann auch ausgeführt werden, wenn die erste Option nicht zu einem positiven Ergebnis führt, d.h. wenn keine Bewegungsbahn gefunden werden kann, die es ermöglicht, den unterbrochenen Arbeitsablauf fortzusetzen, oder wenn das Werkstück beschädigt wurde (zerkratzt, eingetrockneter Lack, Klebstoff, etc.) so dass eine weitere Bearbeitung nicht möglich ist.
-
Die beiden beschriebene Optionen werden im Folgenden anhand der in den Figuren dargestellten Blockdiagramme näher erläutert. Insbesondere soll auf die Funktion der dargestellten Komponenten eingegangen werden. In 1 ist das Gesamtsystem zur Durchführung eines robotergestützten Arbeitsablaufes in Form eines Blockdiagrams dargestellt, in dem das Zusammenwirken der einzelnen Komponenten dargestellt ist. Die folgende Beschreibung geht wieder von der Situation aus, dass ein durch ein Roboterprogramm definierter Arbeitsablauf unterbrochen wird (detektierte Kollision, manueller Not-Aus, etc.). Bis zur Unterbrechung schickt die Robotersteuerung 40 Steuerbefehle bzw. Steuersignale an den (die) Industrieroboter 50 und ggf. an die Fördereinrichtung 51. Um der Robotersteuerung 40 eine Positions-, Kraft- oder Geschwindigkeitsregelung zu ermöglichen, können am Roboter 50 und an der Fördereinrichtung 51 unterschiedliche Größen (Position, Gelenkwinkel, Drehmomente, Kraft, Motorströme, etc.) gemessen und an die Robotersteuerung 40 rückgeführt werden. Die unmittelbare Steuerung/Regelung des (der) Industrieroboter 50 und ggf. der Fördereinrichtung 51 erfolgt in an sich bekannter Weise. Eine Kollisionserkennung kann in der Robotersteuerung z.B. dadurch realisiert werden, dass an einer bestimmten Stelle im Roboter eine definierte Maximalkraft überschritten wird. Eine Kollisionsvorhersage kann beispielsweise mit Hilfe von Näherungssensoren (z.B. kapazitive, induktive oder taktile Sensoren z.B. am Roboter und/oder am Werkzeug) oder durch Bewegungsraum- bzw. -Schutzraumüberwachung (z.B. mit Hilfe von Lichtschranken, Lichtzäunen, aktiven oder passiven optischen 2D- oder 3D-Sensoren, Ultraschallsensoren, etc.) realisiert werden.
-
Nach der (außerplanmäßigen und unerwünschten) Unterbrechung des Arbeitsablaufes "sammelt" das Modul 30 zur Zustandsermittlung, sämtliche Informationen, die zur Erstellung eines mathematischen Modells des Gesamtsystems notwendig sind. Dies sind insbesondere Informationen betreffend die aktuelle Position des Roboters 50 und der Fördereinrichtung 51 (und damit des Werkstücks), der Zustand (bei einem Greifer z.B. offen/geschlossen) und die Position des am Roboter angebrachten Werkzeugs und ggf. die Position und der Zustand weiterer Aktoren in der Arbeitszelle sowie Messwerte von Sensoren (z.B. Lageinformationen, etc.), Aufzeichnung der zurückliegenden Achs-Bewegung des Roboters, Drehmomente, Ströme zur automatischen Schätzung einer möglichen Kollision des Roboters (z.B. durch Ermittlung des Segments des Roboters und der Position am Segment an der eine unerwartete Kraft auf dem Roboter einwirkt, aus einem Vergleich von Soll- und Ist-Geschwindigkeiten bzw. Soll- und Ist-Kräften/Momenten bzw. -Ströme der einzelnen Achsen während der Roboterbewegung), sowie manuell über ein Benutzerinterface eingegebene Information (z.B. Werkstück um 5° verdreht eingespannt, etc.).
-
Optional wird zusätzlich die Information über das Soll-Arbeitsergebnis der robotischen Applikation (d.h. des vom Roboter durchgeführten Prozesses) gesammelt, z.B. in Form von prozessrelevanten Soll-Parametern (z.B. Soll-Schichtdicke und Schwankungsbreite je Region des Werkstücks) oder das bei der Planung bzw. Programmierung simulierte Prozessergebnis (z.B. simulierte Schichtdicke über der Oberfläche des Werkstücks). Alternativ kann das Sollergebnis rekonstruiert werden, indem der Prozess für das auszuführende Programm (nicht bis zum Abbruch sondern) bis zum Ende des Programms simuliert wird und das Ergebnis als Soll-Ergebnis definiert wird. Für den Fall wird auch das Simulationsmodell für den Prozess geladen (wenn nicht schon vorhanden) um das Ergebnis der abgebrochenen Ausführung und der (um-)geplanten Weiterführung simulieren zu können. Das Modul 30 ist dazu ausgebildet, dem Softwaretool 10 zur automatisierten Bahnplanung ein komplettes geometrisches/mathematisches Modell zur Verfügung zu stellen, soweit es für die folgende Bahnplanung benötigt wird. In einer beispielhaften Realisierung wird aus der Information ein CAD (oder ähnliches) Modell und ein Bahnbeschreibung generiert wie sie auch in regulären OLP oder automatischen Bahnplanung gemäß dem Stand der Technik verwendet werden, und Hindernisse werden als Objekte (Wände, Flächen, Volumen) in dem CAD-Modell oder als belegte Volumen / Belegträume dargestellt.
-
Basierend auf dem erwähnten Modell plant das Softwaretool 10 eine modifizierte Bewegungsbahn für den (die) Industrieroboter 50 bzw. die Fördereinrichtung 51. Das Planungsziel ist es, wie oben erwähnt, eine modifizierte Bewegungsbahn zu finden, die geeignet ist, den unterbrochenen Arbeitsablauf fortzusetzen. Die automatisch geplante modifizierte Bewegungsbahn kann dann zusammen mit dem ausgeführten Prozess (z.B. Lackieren des Werkstücks) mit Hilfe einer virtuellen Roboter- und Prozesssteuerung simuliert und validiert werden. Entspricht das Ergebnis bestimmten vordefinierbaren Kritierien (z.B. Lackauftrag flächendeckend in ausreichender Stärke) wird die von dem Softwaretool 10 automatisch geplante modifizierte Bewegungsbahn in ein entsprechendes Roboterprogramm (Programmgenerierungs-Tool 20) umgesetzt. Entspricht das Ergebnis nicht dem Sollergebnis, wird eine Bahn geplant, mit der der Roboter kollisionsfrei eine sichere (geplante oder vorgegebene) Ausgangslage für die Ausführung der nächsten Programme (für das nächste oder das gleiche Werkstück) erreicht. Das auf diese Weise erzeugte, modifizierte Programm wird auf die Robotersteuerung 40 geladen und kann ausgeführt werden.
-
Das System in 2 ist im Wesentlichen identisch mit dem System aus 1. Der einzige Unterschied besteht darin, dass nicht nach einer Möglcihkeit zur Fortführung des unterbrochenen Arbeitsablaufes gesucht wird, um das Soll-Arbeitsergebnis zu erreichen, sondern nach einer Möglichkeit, eine dem Softwaretool 10 zur automatischen Bahnplanung vorgegebenen "sicheren" Ausgangsposition anzufahren (wie weiter oben bereits erwähnt), von der ausgehend der unterbrochene Prozess wieder aufgenommen oder (in vielen Fällen) von der ausgehend das Programm problemlos für dasselbe Bauteil, für ein ausgetauschtes identisches Bauteil oder für die nächste Aufgabe des Roboters (nächstes Bauteil und nächstes Programm) neu gestartet werden kann. Die sichere Ausgangsposition ist derart gewählt, dass der Industrieroboter manuelle Arbeiten am Werkstück oder den Austausch des Werkstücks, oder das ausschleusen des Werkstücks und die reguläre Zuführung des nächsten Werkstück für das nächste Programm nicht behindern kann. Anstatt einer modifizierten Bewegungsbahn, um den unterbrochenen Prozess fortzusetzen, wird eine Bewegungsbahn hin zu der sicheren Ausgangsposition geplant und ggf. mit Hilfe der virtuellen Robotersteuerung simuliert. Die automatisch geplante Bahn wird in ein entsprechendes Roboterprogramm umgesetzt (Programmgenerierungs-Tool 20) und auf die Robotersteuerung 40 geladen. Auf diese Weise wird die Robotersteuerung in die Lage versetzt, den Industrieroboter nach dem ungewollten Stopp des Prozesses den Roboter aus dem Werkstück auszufädeln. Der Roboter kann dabei grundsätzlich jede geeignete Bahn nehmen, ohne die Notwendigkeit das letzte Wegstück rückwärts zu durchfahren (was aus den eingangs erwähnten Gründen oft nicht möglich ist. Diese unter Bezugnahme auf 2 beschriebene Variante kann nicht nur anstatt der in Bezug auf 1 beschriebenen Variante ausgeführt werden, sondern auch zusätzlich dazu, insbesondere dann, wenn die Planung gemäß 1 nicht möglich ist oder (bei der Validierung und Bewertung der geplanten modifizierten Bahn) zu keinem ausreichend gutem Ergebnis führt.
-
Ein Beispiel für die von dem Softwaretool 10 zur automatischen Bahnplanung durchgeführten Schritte ist als Ablaufdiagramm in 3 dargestellt. Dem Softwaretool 10 zur automatischen Bahnplanung wird die von dem Modul 30 ermittelte Information über den Zustand des Systems und Prozesses wie oben beschrieben zugeführt. Basierend auf diesem Modell des aktuellen Zustandes unmittelbar nach der Unterbrechung des Arbeitsablaufes und dem ursprünglichen Roboterprogramm kann der Arbeitsablauf (d.h. der Prozess, beispielsweise das Lackieren) bis zur Unterbrechung simuliert werden. Das Simulationsergebnis wird in einem Bewertungsschritt überprüft. In diesem Bewertungsschritt wird aus dem simulierten Prozessergebnis (Zwischenergebnis nach der Unterbrechung) ein Qualitätskriterium bzw. Gütekriterium berechnet, anhand dessen beurteilt werden kann, ob der Prozess überhaupt fortsetzbar ist, oder ob das Werkstück durch die Unterbrechung des Arbeitsablaufes unbrauchbar wurde. Dies geschieht z.B. beim Beschichten durch Differenzbildung zwischen der laut Planung erreichbaren Schichtdicke und der Soll-Schichtdicke über die Fläche des Werkstücks und die anschließende Auswertung der Größe oder des Anteils jener Fläche(n), bei der die Differenz außerhalb einer erlaubten Abweichung liegt. Abhängig von der Relevanz des jeweiligen Flächenabschnitts kann die erlaubte Differenz für jeden Flächenabschnitt anders gewählt sein. Für abtragende Prozesse (Schleifen, Fräsen) wird die Differenz des Abtrags oder der Form von einem Soll-Abtrag oder einer Solll-Form analog gebildet und ausgewertet. Für das Beispiel nicht (groß-)flächig auftragender Prozesse (Kleben, Abdichten, Schweißen, Auftragsschweißen, Metallspritzen...) erfolgt der Vergleich der laut Planung aufgetragenen Klebe-, Dicht- oder Schweißraupe, etc. nach Volumen und Ort auf dem Bauteil mit dem Sollwert (gibt Auskunft darüber ob Raupen verschoben, fehlplatziert, oder zu dick/dünn sind). In einer Implementierung werden vorab weitere Vorgaben des Prozesses (z.B. Kleben, Lackieren,) wie maximale Unterbrechungsdauer des Prozesses (wegen Aushärten/Antrocknen/Abkühlen, etc...) überwacht und die Weiterbearbeitung abgebrochen wenn diese überschritten ist.
-
Im dem Fall, dass die Bewertung ergibt, dass das Werkstück gemäß des bisherigen Arbeitsablaufes oder durch die Unterbrechung des Arbeitsablaufes unbrauchbar geworden ist (siehe Pfeil mit Beschriftung "nicht ok"), wird eine automatische Bahnplanung durchgeführt, um eine geeignete Bewegungsbahn für den Roboter zu der sicheren Ausgangsposition zu finden (vgl. Erläuterungen zu 2). Die geplante Bahn wird dem Roboterprogrammgenerierungs-Tool 20 zugeführt und dieses setzt die geplante Bahn in ein entsprechendes Roboterprogramm um. Die Robotersteuerung (siehe 2) kann dann den Industrieroboter 50 in die sichere Ausgangsposition fahren, das Werkstück kann ersetzt und der zuvor unterbrochene Arbeitsablauf erneut an einem neuen Werkstück fortgesetzt werden, oder die nächste (d.h. eine planmäßig folgende) Aufgabe an dem nächsten Werkstück durchgeführt werden.
-
Im dem Fall, dass die Bewertung ergibt, dass das Werkstück gemäß bisherigem Arbeitsablaufs und trotz der Unterbrechung des Arbeitsablaufes noch in Ordnung ist und der Arbeitsablauf grundsätzlich am gleichen Werkstück fortgesetzt werden kann (siehe Pfeil mit Beschriftung "ok"), wird eine automatische Bahnplanung durchgeführt, um eine für die Fortsetzung des unterbrochenen Arbeitsablaufes geeignete modifizierte Bewegungsbahn für den Roboter zu finden. Dabei wird die verbleibende Bahn modifiziert bzw. optimiert mit dem Ziel die Differenz zu minimieren zwischen a) dem Sollergebnis und b) dem Ausgangszustand, d.h. dem Prozessergebnis zum Zeitpunkt des Stopps, zuzüglich des für die restliche modifizierte Bahn des Arbeitsablaufs simulierten Prozessergebnisses, wobei diese gebildet wird wie weiter oben schon beschrieben (z.B. Auswertung der Differenz der Schichtdicke über die Oberfläche des Werkstücks). Vor dem Umsetzen der geplanten modifizierten Bewegungsbahn des Roboters in ein entsprechendes Roboterprogramm kann der restliche Prozess (z.B. das Fertiglackieren des Werkstückes) noch simuliert werden und das simulierte Prozessergebnis bewertet werden. Wenn die Bewertung ergibt, dass das simulierte Prozessergebnis vorgebbaren Qualitätskriterien genügt, dann wird die geplante modifizierte Bahn dem Roboterprogrammgenerierungs-Tool 20 zugeführt und dieses setzt die geplante Bahn in ein entsprechendes Roboterprogramm um. Die Robotersteuerung (siehe 2) kann dann den Industrieroboter 50 derart steuern, dass der unterbrochene Prozess fortgesetzt werden kann. Wenn die Bewertung ergibt, dass das simulierte Prozessergebnis vorgebbaren Qualitätskriterien nicht genügt (z.B. Anteil der Fläche in dem der Lackauftrag außerhalb der Toleranzen größer als ein vorgebbares Maximum), kann die geplante Bahn verworfen werden und eine andere Bewegungsbahn zur sicheren Ausgangsposition ermittelt werden (siehe Pfeil mit Beschriftung "nicht ok"), wie weiter oben schon beschrieben.
-
Die in den Figuren dargestellten Blockschaltbilder enthalten Blöcke, die jeweils eine funktionale oder logische Einheit bilden. Abhängig von der jeweiligen Anwendung können die Funktionen mehrerer Blöcke durch die selbe Software oder Softwarekomponente realisiert werden. Die in den Figuren getroffene funktionale Gliederung muss sich auch nicht in der tatsächlichen Hardwarerealisierung wieder finden, da verschiedene Funktionen durch die selbe Hardware (z.B. ein Industriecomputer) verwirklicht werden können. Des Weiteren ist zu erwähnen, dass die geplanten Bewegungsbahnen für einen Roboter aus einer Vielzahl von Teilbahnen zusammengesetzt sein können, die sequentiell vom jeweiligen Roboter durchlaufen werden. So werden beispielsweise für einen Lackierprozess häufig Bewegungsbahnen geplant, die aus im wesentlichen parallel verlaufenden Teilbahnen zusammengesetzt sind, sodass sich insgesamt eine mäanderförmige Bewegungsbahn ergibt. Es kann auch vorkommen, dass zwischen einzelnen Teilbahnen die Robotersteuerung den eigentlichen Arbeitsablaug (z.B. den Lackiervorgang) kurz pausiert, um den Roboter umzukonfigurieren (z.B. von „Linkshänder“ auf „Rechtshänder“, etc).