System und Verfahren zur automatisierten Erstellung von
Roboterprogrammen
Die Erfindung betrifft ein System und ein Verfahren zur auto¬ matisierten Programmierung und Optimierung von robotischen Arbeitsabläufen eines Industrieroboters mit einer Roboter¬ steuerung .
Industrieroboter werden herkömmlich über eine Roboterprogram¬ miersprache programmiert . Das Ergebnis der Programmierung be¬ steht in einem Programm, das die RoboterSteuerung insbesonde¬ re hinsichtlich der Bewegungen des spezifischen Roboters in¬ struiert . Die Programmierung von Robotern ist ein zeitaufwän¬ diger Prozess . Bei klassischen Programmierverfahren für Robo¬ ter arbeiten "on-line" , d.h. der Roboter "lernt " (durch Auf¬ zeichnung) im Betrieb die gewünschten Bewegungen ( "Teach- in" ) , was voraussetzt, dass der Roboter bereits aufgebaut und ist . Um Zeit zu sparen und den Start der Produktion zu be¬ schleunigen, wurden Verfahren entwickelt , Roboter "off-line" zu programmieren . Herkömmlicherweise wird dies durch eine Off-line-Programmierung (OLP ) mit inkludiertem (alternativ auch mit externem) Simulationswerkzeug bewerkstelligt , das auf einem externen Computer läuft . Die Ausgabe bzw . das Er¬ gebnis der Programmierung ist ein mit Hilfe der Simulation validiertes Roboterprogramm. Wenn die Simulation und die Off¬ line-Programmierung abgeschlossen sind, wird das Roboterpro¬ gramm auf den Steuerrechner (die RoboterSteuerung) des dem realen Roboter übertragen .
Das Off-line-Programmierungs- und Simulationswerkzeug enthält Beschreibungen des Roboters und der RoboterSteuerung, die es zu simulieren versucht . Es besteht eine Notwendigkeit hin¬ sichtlich genauer RoboterSimulationen, die nicht nur die Be-
wegung des Roboters reproduzieren, sondern auch die Programm¬ ausführung, ja sogar Systemfehler simuliert , die bei dem rea¬ len Roboter auftreten können . In der Praxis wird versucht , für die Neuinstallation eines Roboters möglichst keine teure Ausrüstung zu binden und ein Anhalten der Produktion zu ver¬ meiden . Auf der Grundlage dieser Notwendigkeit sind in der SimulationsSoftware für die RoboterSimulation zunehmend ge¬ naue Modelle der realen RoboterSteuerungen aufgenommen wor¬ den, was dazu geführt hat , dass so genannte "virtuelle Robo- terSteuerungen" während der Simulation verwendet werden . Eine virtuelle RoboterSteuerung ist eine ausreichend genaue Reprä¬ sentation einer realen RoboterSteuerung, wobei sie nicht nur die Bewegung des Roboters simuliert , sondern auch die Abar¬ beitung des tatsächlichen Roboterprogramms . Die Publikationen WO 03/059582 und DE 11 2008 003 963 T5 beschreiben beispiel¬ hafte Verfahren zum Programmieren eines Industrieroboters mit Hilfe einer virtuellen RoboterSteuerung .
Damit der Industrieroboter seinen Tool-Center-Point (TCP) auf der gewünschten Bahn bewegt , benötigt die RoboterSteuerung also ein geeignetes Roboterprogramm. Konventionell werden für die Steuerung des Industrieroboters alle Freiheitsgrade ex¬ plizit angegeben, entweder durch die Definition aller Achs¬ werte bzw . AchsStellungen des Industrieroboters oder durch die Definition kartesischer TCP-Koordinatenwerte (Positions¬ koordinaten x, y, z , und Winkelkoordinaten (X, ß, γ) plus eventuell die zu verwendende Konfiguration (Ellenbogen oben/unten, etc . } oder die zusätzlicher Achswerte bei Zwi¬ schenpositionen, so dass eindeutig auf die Roboterposition geschlossen werden kann . Die eindeutigen Positionen werden beispielsweise direkt vor Ort mittels Teach-in (was aus den oben erwähnten Gründen oft unerwünscht oder nicht möglich ist ) oder indirekt über die oben erwähnte Offline-Program-
mierung bestimmt , welche ebenfalls (manuell oder halbautoma¬ tisch) am Computer mit Hilfe von CAD-Modellen der vom Roboter zu bearbeitenden Werkstücke erfolgt . Normalerweise möchte man keine große Menge von Punkten auf diese Weise definieren, sondern wie z . B . in zahlreichen existierenden Anwendungen nur den Anfangs- und Endpunkt er einzelnen Bahnen des TCP . Die Bewegung auf dieser Bahn wird dann von der SteuerungsVor¬ richtung des Industrieroboters geplant , interpoliert und ab¬ gefahren . Unterschiedliche bekannte Bahnplanungsverfahren für Roboter sind z.B. in den Publikationen DE 60205928 T2 sowie 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, und Tapio Heikkilä et al . : "Model Based Interactive Path Planning for Surface Following Robot Tasks" , SPIE Proc . Vol. 3208, S . 551-561, 26. Sept . 1997, beschrieben . Nicht ausreichend un¬ terstützt werden von bekannten Methoden insbesondere Anwen¬ dungen mit zusätzlicher Komplexität in Form weiterer Frei¬ heitsgraden oder Variationen (Toleranzen) welche bei der Pro¬ grammierung berücksichtigt werden müssen wie z.B.
(A) aktive Bewegung des Werkstücks , die in dem Roboterpro¬ gramm berücksichtigt werden müssen, wie z.B. wenn berücksich¬ tigt werden muss , dass das Werkstück auf einem Förderer be¬ wegt wird, während der Roboter beispielsweise fest montiert ist , (oder das Werkstück von einem weiteren Roboter oder Ak- tuator (Dreh-Kipp-Tisch, etc . ) positioniert oder bewegt wird) , oder
(B) Störungen, die sich auf das Ergebnis der Bearbeitung des Werkstücks durch den Roboter auswirken und gegen die man sich absichern muss , d.h. es muss ein Programm generiert werden,
welches auch in Gegenwart dieser (während der Programmierung in ihrem Wert /Ausmaß unbekannten) Störungen robust ist . Dies ist z.B. der Fall , wenn Störungen oder Abweichungen, bei¬ spielsweise Schwankungen der Werkstückform oder -läge oder Schwankungen anderer Prozessparameter auftreten können .
Diesen Fällen ist gemein, dass zusätzliche Freiheitsgrade oder Varianten eingeführt werden, die mit bekannten Methoden zur Offline-Programmierung von Robotern, wenn überhaupt , nur sehr schwer berücksichtigt werden können .
Die der vorliegenden Erfindung zugrunde liegende Aufgabe be¬ steht also darin, eine Offline-Generierung von "robusten" Ro¬ boterprogrammen zu ermöglichen, welche trotz zum Zeitpunkt der Programmierung unbekannten Variationen des Werkstücks oder von Prozessparametern oder trotz zusätzlicher Freiheits¬ grade wie eine dem Werkstück überlagerte Bewegung zuverlässig und vorhersagbar arbeiten . Diese Aufgabe wird durch das Verfahren gemäß Anspruch 1 ge¬ löst . Beispielhafte Ausgestaltungen und Weiterentwicklungen des Verfahrens sind Gegenstand der Unteransprüche .
Es wird ein System und ein Verfahren zum automatisierten, Computergestützten Erzeugen von Arbeitsablaufplänen für die Behandlung oder Bearbeitung eines Werkstücks mit einem Werk¬ zeug durch einen Industrieroboter offenbart . Gemäß einem Bei¬ spiel der Erfindung umfasst das Verfahren folgendes : Das Be¬ reitstellen eines Ausgangsplanes umfassend eine Vielzahl von Werkzeugbahnen für ein Werkstück in einer bestimmten Soll- Lage und für bestimmte, die Behandlung bzw . Bearbeitung be¬ einflussende Prozessparameter, wobei eine Werkzeugbahn die Soll-Bewegung des Werkzeugs entlang des Werkstücks festlegt ;
Das Definieren eines Zustandsraumes , der variable, die Be¬ handlung bzw . Bearbeitung beeinflussende Parameterwerte be¬ schreibt , wobei jeder Punkt des Raumes eine konkrete Kombina¬ tion von möglichen Parameterwerten darstellt ; Das
Diskretisieren des Raumes in einzelne Zustände ; Das Simulie¬ ren der Behandlung bzw . Bearbeitung des Werkstücks unter Ver¬ wendung des Ausgangsplanes für einen oder mehrere diskrete Zustände und Bewerten des simulierten Bearbeitungs- bzw . Be¬ handlungsergebnisses entsprechend einem vorgebbaren Kriteri- um; und iteratives Modifizieren des Ausgangsplanes , anschlie¬ ßendes Simulieren der Behandlung bzw . Bearbeitung des Werk¬ stücks unter Verwendung des modifizierten Planes für mindes¬ tens einen diskreten Zustand und Bewerten des simulierten Be¬ arbeitungs- bzw . Behandlungsergebnisses entsprechend einer vorgebbaren Kostenfunktion . Die Iteration wird solange durch¬ geführt , bis die Kostenfunktion ein Minimum erreicht oder ei¬ nen Schwellwert unterschreitet und somit ein optimierter Plan für den jeweiligen Zustand gefunden ist . Das Verfahren kann weiter aufweisen : Das Zuordnen des opti¬ mierten Planes sowie den bei der Iteration verwendeten Zu¬ stand zu einer ersten Gruppe ; Das Simulieren der Behandlung bzw . Bearbeitung des Werkstücks unter Verwendung des opti¬ mierten Planes für einen weiteren diskreten Zustand und Be- werten des simulierten Bearbeitungs- bzw . Behandlungs¬ ergebnisses entsprechend der vorgebbaren Kostenfunktion; Das Zuordnen des bei der Simulation verwendeten weiteren Zu¬ stand zu der ersten Gruppe, wenn die Kostenfunktion für den weiteren Zustand einen weiteren Schwellwert unterschreitet ; und das Zuordnen des bei der Simulation verwendeten weiteren Zustand zu einer weiteren Gruppe, wenn die Kostenfunktion für den weiteren Zustand den weiteren Schwellwert nicht unter¬ schreitet .
Schließlich kann das Iterative Modifizieren des optimierten Planes , und das anschließendes Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des modifizierten Planes für den weiteren Zustand durchgeführt werden, wobei das simulierte Bearbeitungs- bzw . Behandlungsergebnis ent¬ sprechend der Kostenfunktion bewertet wird . Die Iteration wird solange durchgeführt , bis die Kostenfunktion ein Minimum erreicht oder einen Schwellwert unterschreitet und somit ein weiter optimierter Plan für den weiteren Zustand gefunden ist . Der optimierte Plan sowie der bei der Iteration verwen¬ dete Zustand wird einer ersten Gruppe zugeordnet .
Vor dem iterativen Modifizieren eines Plans für einen konkre- ten Zustand, kann durch Simulation geprüft werden, ob mit ei¬ nem bereits zuvor optimierten Plan für den konkreten Zustand ein Bearbeitungs- bzw . Behandlungsergebnis erzielt wird, für das die Kostenfunktion einen vorgegebenen Schwellwert unter¬ schreitet .
Gemäß einem weiteren Beispiel der Erfindung umfasst das Ver¬ fahren folgendes : Das Bereitstellen eines Ausgangsplanes um¬ fassend eine Vielzahl von Werkzeugbahnen für ein Werkstück in einer bestimmten Soll-Lage und für bestimmte, die Behandlung bzw . Bearbeitung beschreibende Prozessparameter, wobei eine Werkzeugbahn die Soll-Bewegung des Werkzeugs entlang des Werkstücks festlegt ; Das Definieren eines Zustandsraumes , der mögliche Reihenfolgen und Start Zeitpunkte der Werkzeugbahnen des Anfangsplans beschreibt , wobei jeder Punkt des Raumes ei- ne konkrete Reihenfolge mit einem konkreten Start Zeitpunkt beschreibt ; Das Diskretisieren des Raumes in einzelne Zustän¬ de ; Das Simulieren der Behandlung bzw . Bearbeitung des Werk¬ stücks unter Verwendung des Ausgangsplanes für unterschiedli-
che diskrete Zustände und Bewerten des simulierten Bearbei¬ tungs- bzw . Behandlungsergebnisses entsprechend einem vorgeb¬ baren Kriterium; und Iteratives Modifizieren des Ausgangspla¬ nes , anschließendes Simulieren - unter Berücksichtigung einer dem Werkstück überlagerten Bewegung - der Behandlung bzw . Be¬ arbeitung des Werkstücks unter Verwendung des modifizierten Planes für mindestens einen diskreten Zustand und Bewerten des simulierten Bearbeitungs- bzw . Behandlungsergebnisses entsprechend einer vorgebbaren Kostenfunktion . Die Iteration wird solange durchgeführt bis die Kostenfunktion ein Minimum erreicht oder einen Schwellwert unterschreitet und somit ein optimierter Plan für den jeweiligen Zustand gefunden ist .
Vor dem iterativen Modifizieren können sämtliche Zustände verworfen werden, für die das mit dem Ausgangsplan simulierte Bearbeitungs- bzw . Behandlungsergebnisses dem vorgebbaren Kriterium nicht genügt .
Es kann zudem ein Bewegungsmusters der Roboterbasis spezifi- ziert werden und dieses Bewegungsmusters bei der Simulation berücksichtigt werden .
Ein Beispiel der Erfindung betrifft auch ein System und ein Verfahren zum Steuern eines Roboters zur Behandlung oder Be- arbeitung eines bewegten Werkstücks mit einem Werkzeug durch einen Industrieroboter entsprechend einem Plan umfassend ei¬ ner Vielzahl von durch Wegpunkte definierten Roboterbewegung, wobei jedem Wegpunkt eine Soll-Position des Werkstücks zuge¬ ordnet ist ; das Verfahren umfasst während des Ausführens ei- ner Roboterbewegung folgendes : Messen der Ist-Position des
Werkstücks und Ermitteln von dessen Geschwindigkeit ; Berech¬ nen einer aktuellen Soll-Position des Werkstücks für die ak¬ tuelle Position des Roboters unter Verwendung der den Weg-
punkten zugeordneten Soll-Positionen des Werkstücks , bei¬ spielsweise mit Hilfe von Interpolation; Berechnen der Diffe¬ renz zwischen Soll- und Ist-Position des Werkstücks ; und Be¬ stimmen der nächsten zu erreichenden Soll-Position des Robo¬ ters und des Zeitpunkts , zu dem diese erreicht werden soll , durch Auswahl eines Wegpunktes gemäß dem Plan, oder durch In¬ terpolation zwischen zwei Wegpunkten gemäß Plan, derart , dass die Differenz zwischen Soll- und Ist-Position des Werkstücks verringert oder minimiert wird .
Die Erfindung wird in der Folge anhand von in den Abbildungen dargestellten Beispielen näher erläutert . Die Erfindung be¬ schränkt sich jedoch nicht auf die dargestellten Beispiele . Vielmehr wird Wert darauf gelegt , das der Erfindung zugrunde liegende Prinzip zu erläutern . In den Abbildungen zeigt :
Figur 1 eine Skizze eines Industrieroboters und eines vom
Roboter bearbeiteten Werkstücks mit den vom Roborer auszuführenden Werkzeugbahnen auf/ an der Oberfläche des Werkstücks ;
Figur 2 eine schematische Darstellung des Zustandsraums der n Parametervariationen für n=2 und n=3 ; Figur 3 ein Diagram mit einer Darstellung des Versatzes zwischen Roboter und Werkstück, für die einzelne Wegpunkte der Werkzeugbahnen erreichbar sind;
Figur 4 ein Flowchart mit einem Beispiel des erfindungsge¬ mäßen Verfahrensablaufs ;
Figur 5 Details für den Schritt I I des Verfahrensablaufs aus Fig . 4 ;
Figur 6 Details des Verfahrensablaufs aus Fig . 5 für eine erste Alternative (Berücksichtigung der Bewegung eines Werkstücks ) ;
Figur 7 Details des Verfahrensa laufs aus Fig . 5 für eine zweite Alternative (Berücksichtigung vom Parameter¬ variationen) ; Figur 8 Details für den Schritt III des Verfahrensablaufs aus Fig . 4 ;
Figur 9 Details des Verfahrensablaufs aus Fig . 8 für eine erste Alternative (ein Plan für alle Zustände) ;
Figur 10 Details des Verfahrensablaufs aus Fig . 8 für eine erste Alternative (P Pläne für alle Zustände) ;
Figur 11 einen Flowchart des Verfahrensablaufs für Schritt V des Verfahrens aus Fig . 4 (die ON-line Ausführung eines Programms mit Berücksichtigung der zusätzli¬ chen Dimension "Werkstückbewegung") ;
Figur 12 einen Flowchart des Verfahrensablaufs für Schritt V des Verfahrens aus Fig . 4 (die ON-line Ausführung eines Programms mit Berücksichtigung der zusätzli¬ chen Dimension "Parametervariationen") ;
Figur 13 Details des Verfahrensablaufs für Schritt III aus den Fig . 8 bis 10 Links : Bewegungsplanung (links ) und Rechts : Simulation .
In den Abbildungen bezeichnen gleiche Bezugs zeichen gleiche oder ähnliche Komponenten mit gleicher bzw. ähnlicher Bedeu¬ tung . Wie eingangs bereits erwähnt unterstützen bekannte Methoden der Bahnplanung und Offline-Roboterprogrammierung nicht aus¬ reichend Anwendungen mit zusätzlicher Komplexität in Form weiterer Freiheitsgraden (z.B. eine dem Werkstück überlagerte Bewegung) oder Variationen (z.B. Toleranzen der Werkstücklage und/ oder von Prozessparameter) welche bei der Programmierung berücksichtigt werden müssen .
Als Beispiele wird in der folgenden Beschreibung auf Anwen¬ dungen Bezug genommen, bei denen die Oberfläche eines Werk- Stücks mit Hilfe eines Roboters behandelt werden soll (z.B. lackiert , gereinigt , poliert , etc . ) . Der erwähnte zusätzliche Freiheitsgrad ergibt sich z.B. dadurch, dass das zu behan¬ delnde Werkstück während der Behandlung durch den Roboter (beispielsweise mit Hilfe eines Förderbandes ) linear bewegt wird . Die erwähnten Variationen bzw . Toleranzen sind z.B. Ab¬ weichungen der Form und/ oder der Lage des Werkstückes von den bei der Erstellung des Roboterprogramms angenommenen Sollwer¬ ten oder Abweichungen von anderen Prozessparametern von den jeweiligen Sollwerten . Derartige Prozessparameter wären bei einer robotergestützten Lackierung z.B. die von einer Sprüh¬ pistole pro Zeit abgegebene Menge an Farbe und/ oder deren Haftungseigenschaft auf der Oberfläche des Werkstücks (davon kann benötigte Sprühwinkel abhängen) , bei einem roboterge¬ stützten Polieren z.B. der vom Roboter auf die zu polierende Oberfläche des Werksstücks ausgeübte Druck während des Polie¬ rens oder die Wechselwirkung zwischen Material und Polierme¬ dium. Allgemein werden unter Prozessparameter alle Parameter verstanden, welche das Arbeitsergebnis des Roboters (also
z.B. die Qualität der Lackierung oder der Reinigung, des Po¬ lierens , etc . ) nennenswert beeinflusst .
Bevor das Verfahren zur Erzeugung robuster Roboterprogramme im Einzelnen erläutert wird, wird noch einmal auf die Proble¬ matik der erwähnten zusätzlichen Freiheitsgrade (dem Werk¬ stück überlagerte Bewegung) bzw . der Parametervariationen (Form und Lage des Werkstücks , andere Prozessparameter) ein¬ gegangen .
In der Produktion werden Werkstücke häufig mit automatischen Fördereinrichtungen (z.B. Deckenförderer, Bodenförderer, etc . ) kontinuierlich oder von Arbeitszelle zu Arbeitszelle befördert . Dabei wäre es wünschenswert , wenn das zu bearbei- tende Werkstück für eine Ausführung einer programmierten An¬ wendung/Bearbeitung nicht gestoppt bzw . aus der Förderein¬ richtung ausgeschleust werden müsste, sondern sich mit einer vorgegebenen Geschwindigkeit weiterbewegt . Die Programmierung von nicht trivialen Anwendungen, bei denen sich ein Werkstück bewegt , während die Roboterbasis selbst z.B. fest montiert ist (Line-Tracking) , beinhaltet jedoch eine zusätzliche in der Programmierung zu bewältigende Komplexität .
Bei für sehr einfache Anwendungen bekannten Lösungen gleicht der Roboter-Controller die Bewegung des Werkstücks aus , indem er sein Zielkoordinatensystem (das Koordinatensystem des Werkstücks aus Sicht des Roboters ) mit der Vorschubinformati¬ on des Förderers verschiebt . Da die reine Verschiebung des Koordinatensystems keine Prüfung auf Kollisionen beinhaltet , erfordert dieser Ansatz , dass beim Aufbau der Zelle an sich schon die Kollisionsfreiheit gewährleistet wird . Erreicht kann dies beispielsweise dadurch werden, dass der Roboter so montiert ist , dass er beim Ausführen der Anwendung aus einem
freien Bereich, beispielsweise von oben her, gegen das beweg¬ te Werkstück herangeführt wird . Dieses Verfahren eignet sich nicht für Anwendungen, bei denen der Roboter längeren Kontakt zwischen einem Werkzeug und einem Werkstück herstellen soll , insbesondere wenn das Werkzeug über die Werkstückoberfläche bewegt werden soll , oder wenn es sich um ein komplexes Werk¬ stück handelt , da nicht über längere Zeit und eine weitere Bewegung des Werkstücks hinweg vorab sichergestellt werden kann, dass der Roboter (beispielsweise der Ellbogen des Robo- ters ) nicht mit dem Werkstück kollidiert .
Für komplexere Aufgaben, besteht die Möglichkeit zur Bearbei¬ tung bewegter Werkstücke darin, den Roboter (d.h. die Robo¬ terbasis ) auf eine Zusatzachse zu stellen, welche den Roboter über weite oder über kritische Bereiche der Anwendung syn¬ chron mit dem Werkstück bewegt . So entspricht die Anwendung der an einem stehendem Werkstück, mit dem Nachteil zusätzlich erforderlicher Achsen, Kosten, Platz und Wartung . Für die Be¬ arbeitung eines bewegten Werkstücks kann in vielen Fällen ei- ne zusätzliche Achse, die den Roboter entlang der Bewegungs¬ richtung des Werkstücks verschieben kann, nötig sein . Jedoch lassen sich oft bessere Ergebnisse erzielen, wenn der Roboter nicht zwangsläufig mit der selben Geschwindigkeit synchron zum Werkstück bewegt wird . Der asynchrone Fall ist mit her- kömmlichen Methoden der Offline-Roboterprogrammierung jedoch nicht oder nur sehr schwer zu bewerkstelligen .
Neben der (an sich bekannten) Bewegung des Werkstücks sind häufig a-priori unbekannte Parametervariationen zu berück- sichtigen . Das heißt , in der Produktion treten in relevanten Parametern (z.B. Werkstückform und -läge, weitere Prozesspa¬ rameter, bei mobilen Robotern auch die Position und Bewegung des Roboters selbst ) Schwankungen, Variationen und/oder Stö-
rungen und somit Abweichungen vom Ideal (d.h. von bekannten Sollwerten) auf, welche, sofern sie jenseits eines tolerier¬ baren Bereichs liegen, die Ausführbarkeit der Anwendung oder die Qualität des Ergebnisses beeinträchtigen können . Das au¬ tomatisiert erzeugte Roboterprogramm soll jedoch möglichst robust sein, d.h. die Ausführung des jeweiligen Roboterpro¬ gramms muss für ein möglichst breites Spektrum an einzelnen oder kombinierten Variationen/ Schwankungen/ Störungen ein Pro¬ zessergebnis liefern das den Qualitätskriterien entspricht . Die Programmierung von Anwendungen, die derartige, zusätzli¬ che Komplexitäten aufweisen, wird, weil unvorhergesehene (de¬ terministische oder statistische) Schwankungen in der Pro¬ grammierung berücksichtigt werden müssen, von bekannten Me¬ thoden der Offline-Programmierung nicht ausreichend unter¬ stützt .
In der Regel wird erst nach der Programmierung, d.h. während eines Betriebs der Anlage durch Tests oder durch Simulation des fertigen Programms , ermittelt bis zu welchen Schwankungen die Anwendung gewünschte Ergebnisse liefert . Diese Toleranzen müssen dann eingehalten werden und sind beispielsweise mit entsprechenden Sensoren zu validieren . Liegen die Werte au¬ ßerhalb der Toleranzen (z.B. liegt die Position des Werk¬ stücks nicht in dem vorgegebenen, "erlaubten" Bereich) wird die Anwendung nicht gestartet . Da mit konventionellen Metho¬ den nur weniger robuste Programme programmiert werden können, und die Programmierung für verschiedene Störungen zeitaufwen¬ dig ist , müssen die Toleranzen mit hohem Aufwand klein gehal¬ ten werden oder ein Abbruch der Anwendung wird häufiger durchgeführt als dies mit robusten Programmen erforderlicher wäre .
Vereinfachte Vorplanung
Um der zusätzlichen Komplexität, die aufgrund der Parameter¬ variationen bzw. des zusätzlichen Freiheitsgrads bei der Pro- grammierung des Roboters zu Berücksichtigen ist , sieht ein automatisiertes Verfahren zur Erstellung von Roboterprogram¬ men Folgendes vor . Zunächst erfolgt die Planung der Werkzeug¬ bahnen auf "klassischem Weg" an einem idealisierten Fall , d.h. unter der Annahme dass sämtliche ParameterSchwankungen null sind und Form und Lage des Werkstücks den jeweiligen Sollwerten entsprechen . Des Weiteren wird angenommen, dass das Werkstück still steht . Für diesen Fall stehen dem Fach¬ mann eine Vielzahl von (automatischen und halbautomatischen) Verfahren zur Bahnplanung zur Verfügung . Am Ende dieser Bahn- planung steht ein "Plan" , d.h. eine Festlegung der Soll-
Tra jektorie des TCP (und damit des Werkzeugs ) im Zielkoordi¬ natensystem, was im Normalfall ohne Weiteres in ein Roboter¬ programm umgesetzt werden kann . Diese Situation ist beispiel¬ haft in Fig . 1 dargestellt . Abgebildet sind ein Manipulator 10 mit sechs Freiheitsgraden auf einer ortsfesten Basis 11.
Der TCP 12 hält das Werkzeug (z.B. die Sprühpistole für einen Lackiervorgang) . Auf dem schematisch dargestellten Werkstück 20 sind die geplanten Bahnen 21 dargestellt , welche - als Beispiel - mäanderförmig verbunden sind . Je nach Anwendung kann es auch notwendig sein, die Bahnen immer in der gleichen Richtung zu durchfahren .
Die Gesamtheit der geplanten Bahnen stellt einen Plan dar, der als Ausgangspunkt für die folgenden Schritte dient . Diese Daten können auch einem bereits existierenden Roboterprogramm entnommen werden, wobei das Programm in Werkzeugbahnen 21 in Werkstückkoordinaten umgerechnet wird . Die Berücksichtigung zusätzlicher Komplexität (überlagerte Bewegung des Werk-
Stücks , Parametervariationen) erfolgt dann automatisiert wie im folgenden beschrieben .
Vorab-Analyse des Plans / Schnelltest
Für den Fall , dass Variationen der Werkstückform und -läge und andere Parametervariationen berücksichtigt werden sollen, wird der ursprüngliche Plan für verschiedene Kombinationen von Parametervariationen bzw . Störungen simuliert , um zu überprüfen, ob der Plan für den jeweiligen Fall grundsätzlich ausführbar ist (d.h. die Bahn erreichbar und kollisionsfrei) und ob das Prozessergebnis bei der Ausführung dieser Bahnen einem vorgegebenen Qualitätskriterium entspricht (z.B. aus¬ reichender Farbauftrag, genügend Druck beim Polieren, etc . ) . Für die Simulation kann z.B. ein virtueller Roboter mit vir¬ tueller RoboterSteuerung (z.B. "realistic robot Simulation" , RRS oder ähnliches ) verwendet werden . Die erwähnten verschie¬ denen Kombinationen von Parametervariationen werden so ausge¬ wählt , dass der gesamte Bereich möglicher Parametervariatio- nen, und insbesondere die "worst cases " abgedeckt sind . In anderen Worten, der Zustandsraum der Parametervariationen wird diskretisiert . Jeder diskrete Punkt im Zustandsraum wird durch ein n-Tupel mit konkreten Parametervariationen reprä¬ sentiert . In Fig . 2 ist dies für die Variation zweier Parame- ter (n=2 , Fig . 2a) bzw . dreier Parameter (n=3 , Fig . 2b) dar¬ gestellt . Fig . 2a zeigt z.B. als Parametervariationen die Ab¬ weichung der Lage des Werkstücks von der Sollposition in x- und in y-Richtung . Der Koordinatenursprung im Zustandsraum wäre also die ideale Lage (Sollposition) des Werkstücks . Fi- gur 2b zeigt die gleiche Situation für drei Parameter . Im
Allgemeinen ist der Zustandsraum der Parametervariationen n- dimensional . Bei einer Diskretisierung des Zustandsraum in einer Weise, dass zusätzlich zur Sollposition nur die Kombi-
nat ion von Minima und Maxima betrachtet werden erhält man 3R verschiedene Zustände (Punkte im Zustandsraum der Parameter¬ variationen) . Bei (alternativer oder zusätzlicher) Betrach¬ tung der mittleren Abweichungen ist die Zahl dieser diskreten Zustände 2n . Alternativ können - für eine schnelle Betrach¬ tung - die maximalen Abstände vom Ursprung auf den einzelnen Achsen des Zustandsraumes aufgetragen werden, was inklusive dem Ursprung 2n+l Zustände ergibt . Die konkrete Weise der Diskret isierung des Zustandsraumes der Parametervariationen spielt jedoch keine Rolle, wesentlich ist nur, dass die inte¬ ressierenden Bereiche des Zustandsraumes der Parametervaria¬ tionen hinreichend "abgetastet" werden, sodass die "Abtas¬ tung" des interessierenden Zustandsraumes alle möglichen Kom¬ binationen von Variationen der einzelnen Parameter berück- sieht igt . Die oben erwähnte Überprüfung (als "Schnelltest " bezeichnet ) des ursprünglichen Plans wird für jeden diskreten Zustand von Parametervariationen vorgenommen . Für jeden Zu¬ stand wird in dem Schnelltest überprüft , ob der ursprüngliche Plan ausführbar ist (erreichbar und kollisionsfrei) und in welchen Bereichen der geplanten Bahnen und/ oder des bearbei¬ teten Werkstücks das Prozessergebnis einem vorab definierten Gütekrit ierium (z.B. Anpressdruck beim Polieren in einem de¬ finierten Bereich, Farbauftrag im Bereich einer Sollstärke, etc . ) entspricht .
Auch in dem Fall , dass eine dem Werkstück überlagerte Bewe¬ gung berücksichtigt werden soll , wird der ursprüngliche Plan für verschiedene "Zustände" simuliert , um zu überprüfen, ob der Plan für den jeweiligen Fall grundsätzlich ausführbar ist (d.h. die Bahn erreichbar und kollisionsfrei) und ob das Pro¬ zessergebnis entlang den Bahnen einem vorgegebenen Qualitäts¬ kriterium entspricht (z.B. ausreichender Farbauftrag, genü¬ gend Druck beim Polieren, etc . ) . In diesem Fall , ist ein Zu-
stand nicht ein konkreter Satz (n-Tupel ) von Parameterabwei¬ chungen, sondern eine konkrete Reihenfolge von Bahnen sowie ein damit assoziierter Start Zeitpunkt der Bearbeitung und ggf . eine bestimmte vorgegebene überlagerte Bewegung der Ro- boterbasis (sofern vorgesehen) . Diese Situation ist in Fig . 3 verdeutlicht . Die gerade Linie zeigt den (bei konstanter Re¬ lativgeschwindigkeit zwischen Werkstück und Roboterbasis ) li¬ near ansteigenden Versatz zwischen Werksstück und Roboterba¬ sis an . Des Weiteren sind für jede Werkzeugbahn (Ziffer 21 in Fig . 1 ) eingezeichnet , für welchen Versatz die einzelnen
(aufeinanderfolgenden) Punkte (vertikale Linien) der jeweili¬ gen Bahn für den Roboter kollisionsfrei erreichbar ist . Unter der Annahme einer konstanten Relativgeschwindigkeit können z.B. die Steigung der Geraden (entspricht der Geschwindig- keit) , der Offset der Geraden (entspricht den Anfangsversat z ) sowie die Reihenfolge und dazugehörige Start Zeitpunkt (und, sofern vom Prozess erlaubt , die Ausführungsriehtung) der Bah¬ nen angepasst werden . Ein " Zustand" entspricht z.B. einer konkreten Kombination aus Steigung, Offset und Bahnreihenfol- ge mit dazugehörigen Start Zeitpunkten . Ein Zustand, bei dem sämtliche vertikalen Linien von der Geraden geschnitten wer¬ den, ist insofern in Ordnung, als alle Bahnen grundsätzlich erreichbar sind . Dies ist für eine beliebige Anzahl von Zu¬ ständen im Schnelltest überprüfbar . Für jeden Zustand kann zudem ermittelt werden in welchen Bereichen ein vordefinier¬ tes Qualitätskriterium eingehalten wird und in welchen nicht . Für den Fall , dass eine bewegliche Roboterbasis stückweise synchron mit dem Förderer bewegt wird, kann die Gerade auch die Form einer Sägezahnkurve annähern . Bei freier Wahl der (linearen) Bewegung der Roboterbasis , kann der Zusammenhang zwischen Versatz und Zeit statt einer Geraden eine weitgehend beliebige (aufgrund von Geschwindigkeits- und Beschleuni¬ gungsgrenzen in Steigung und Krümmung begrenzte) Funktion der
Zeit sein . Ist der Roboter fest montiert , so ist die Steigung der Geraden durch die Förderbewegung vorgegeben, welche aber in der Regel vorgegeben ist und nicht geändert werden kann . Die beiden ersten Schritte des beschriebenen beispielhaften Verfahrens können also wie folgt zusammengefasst werden . Ers¬ tens : es wird ein Plan eines Arbeitslaufes am Werkstück be¬ reitgestellt . Dieser Plan umfasst die Bahndaten des Werkzeugs im Zielkoordinatensystem (des Werkstücks ) und kann z.B. einem auf herkömmliche Weise geplanten Roboterprogramm entnommen werden, wobei bei der Programmierung keine Parametervariatio¬ nen oder zusätzliche Freiheitsgrade des Werkstücks berück¬ sichtigt werden . In diesem Schritt wird auch definiert , ob und wie eine zusätzliche Achse die Roboterbasis bewegt . Zwei- tens : es wird der Zustandsraum festgelegt , der entweder (bei Störungen/Toleranzen) die berücksichtigenden Parametervaria¬ tionen oder (bei bewegtem Werkstück) die Reihenfolge und die dazugehörigen Startzeiten der Werkzeugbahnen und den Start¬ zeitpunkt (bzw . den Startversatz zwischen Roboterbasis und Werkstück) repräsentiert . Nach der Diskretisierung werden die einzelnen Zustände einem Schnelltest unterzogen, in dem über¬ prüft wird, ob - für den jeweiligen Zustand - der im ersten Schritt vorgegebene Plan grundsätzlich ausführbar (d.h. alle Bahnen erreichbar) ist und ob (und an welchen Stellen des Werkstückes ) das Arbeitsergebnis vorgegebenen Qualitätskrite¬ rien entspricht oder nicht .
Zustände, für die eine bestimmte Anzahl oder ein bestimmter Anteil (in Prozent ) von Bahnen nicht (oder nicht hinreichend vollständig) erreichbar bzw . ausführbar ist , oder für die das Arbeitsergebnis nicht über einen hinreichend (vordefinierter Schwellwert ) großen Bereich des Werkstücks dem Qualitätskri¬ terium genügt , werden durch diese Bewertung verworfen und im
nächsten Schritt nicht weiter behandelt. Bleibt kein oder ( im Falle zu berücksichtigender Parametervariationen) nicht hin¬ reichend viele (mehr als eine minimale Anzahl ) "brauchbare Zustände" übrig, kann gefolgert werden, dass der im ersten Schritt erstellte Plan prinzipiell ungeeignet ist . Die ver¬ bleibenden Zustände definieren den Bereich im ZuStandsräum, für den der im ersten Schritt erstellte Plan grundsätzlich geeignet ist und durch Modifikationen in einen praxistaugli¬ chen Plan übergeführt werden kann . Je nach Ausgestaltung des Verfahrens kann - wenn an dieser Stelle Zustände verworfen werden müssen - das Verfahren auch abgebrochen werden, um im ersten Schritt einen alternativen Anfangsplan zu erstellen . Nach dem Schnelltest können - je nach Ausgestaltung des Ver¬ fahrens - die (verbleibenden, nicht verworfenen) Zustände gruppiert werden . Die Gruppierung wird derart vorgenommen, dass Zustände, bei denen gleichartige Defizite an gleichen Bereichen des Werkstücks auftreten, in die gleiche Gruppe eingeordnet werden . Gleiche Defizite an gleichen Bereichen des Werkstücks bedeutet z.B. im Fall des Polierens der Werk- Stückoberfläche, dass für Zustände, für die z.B. der Anpress¬ druck beim Polieren im Bereich "vorne links " des Werkstücks immer unterschritten wurde . Ähnlich beim Beispiel des Lackie¬ rens : hier kann es z.B. vorkommen, dass in bestimmten Randbe¬ reichen für gewisse Zustände der Farbauftrag zu dick oder zu dünn ist , da z.B. der TCP die Bahn gar nicht , nicht mehr im richtigen Winkel oder nicht mehr mit korrekter Geschwindig¬ keit zur Oberfläche ausführen kann . Auch diese Zustände wür¬ den demnach in eine Gruppe eingeordnet .
Der oben beschriebene Schnelltest bewertet also diskrete Zu- stände . Das Kriterium (die "Messlatte" ) , anhand dessen ent¬ schieden wird, ob der Plan für einen bestimmten Zustand als unbrauchbar verworfen wird, kann je nach Anwendung/ ZielSet¬ zung sehr unterschiedlich sein . Im Fall zu berücksichtigender
Parametervariationen können auch noch verhältnismäßig
"schlechte" Ergebnisse (mit starkem Optimierungsbedarf in der nächsten Stufe) akzeptiert werden, bevor der Plan für einen Zustand tatsächlich verworfen wird, wohingegen im Fall der zu berücksichtigenden Werkstückbewegung die Latte deutlich höher angesetzt werden kann (auch wenn dann am Ende nur mehr ein Zustand übrig bleibt ) . Der Unterschied ergibt sich deshalb, da (1.) im Fall zu berücksichtigender Parametervariationen ein Plan in der Regel nie für alle Zustände unmodifi ziert "OK" sein wird, (2.) in der nächsten Stufe auch mehrere Pläne (z.B. für jede definierte Gruppe einer) generiert werden kön¬ nen, und (3.) es im Allgemeinen angestrebt wird, in der nächsten Stufe (dem folgenden Schritt der Feinplanung/Opti¬ mierung/Validierung) für möglichst viele (am besten für alle) Zustände brauchbare Pläne zu generieren . Die Option des "Ab- brechens " dient eher dazu, dass - wenn für zu wenig Zustände ein gutes Ergebnis erzielt werden kann - es häufig zielfüh¬ render ist , ganz von vorne zu beginnen, und den Ausgangs-Plan zu ändern . Im Fall der zu berücksichtigenden Bewegung des Werkstücks genügt theoretisch ein brauchbarer Zustand (d.h. , eine brauchbare Reihenfolge der Bahnen mit Startzeiten, etc . ) , um einen Plan zu genieren . Mehrere Zustände erhöhen die Wahrscheinlichkeit bzw . können nach einem Vergleich unter Umständen ein besseres Ergebnis liefern .
Optimierung und Validierung
In dem oben noch nicht beschriebenen dritten Schritt wird der durch den Schnelltest gestestete und für verschiedene Zustän- de bewertete Plan als " Startlösung" für einen weiteren Opti¬ mierungsschritt herangezogen .
Durch die im vorangegangenen Schnelltest vorgenommene Grup¬ pierung ist es häufig möglich, mit einer Optimierung (d.h. mit einem optimierten Plan) , das Ergebnis zu verbessern . Da¬ bei kann das Ziel sein, einen optimierten Plan zu finden, der trotz des Vorhandenseins von Störungen bzw. von Parameterva¬ riationen bzw. trotz Bewegung des Werkstück zufrieden stel¬ lend funktioniert . Im dem Fall , dass mögliche Parametervaria¬ tionen berücksichtigt werden müssen, kann das Ziel auch lau¬ ten, mehrere verschiedene optimierte Pläne für unterschiedli- che Teilbereiche möglicher Parametervariationen/ Störungen zu finden . Beispielsweise kann ein Plan für jede im vorangegan¬ genen Schnelltest definierte Gruppe erzeugt werden . Bei der späteren tatsächlichen Umsetzung des Plans , wird das Werk¬ stück mit Sensoren (z.B. Kameras , Laserscanner, Lichtschnitt- Sensoren, etc . ) vermessen und die "Position" der Abweichungen im Zustandsraum der Parametervariationen ermittelt . Je nach¬ dem, in welchem Teilbereich die Störungen bzw . Parametervari¬ ationen dann tatsächlich liegen, wird der für den betreffen¬ den Bereich optimierte Plan (bzw . das darauf aufbauende Robo- terprogramm) verwendet .
In dem erwähnten Optimierungsschritt wird der gesamte Prozess (also z.B. der vom Roboter durchgeführte Lackier- oder Po¬ liervorgang) im Schnelltest ermittelte " Startlösung" voll- ständig mit Hilfe einer virtuellen RoboterSteuerung simuliert und das Ergebnis , beispielsweise mit Hilfe einer Kostenfunk¬ tion, bewertet . In diese Kostenfunktion fließen unterschied¬ liche Größen (ggf . unterschiedlich gewichtet ) ein z.B. der (prozentuale) Anteil der nicht ausführbaren Bahnen, der An- teil der Werkstückoberfläche, bei dem das oben erwähnte Qua¬ litätskriterium unter- oder überschritten worden ist , das Überschreiten von Beschleunigungsgrenzen etc . Ziel der Opti¬ mierung ist es , diese Kostenfunktion zu minimieren . Um diese
Minimierung zu erreichen, kann der Ausgangs-Plan auf ver¬ schiede Weise angepasst werden . Beispielsweise kann die Rei¬ henfolge sowie die zugehörige Startzeit der Bahnen und der Start Zeitpunkt (bzw. der Anfangsversat z zw . Roboterbasis und Werkstück) der Ausführung des Plans geändert werden, es kann die Geschwindigkeit des Werkzeugs entlang der Bahnen ange¬ passt werden, die Lage der Bahnen auf der Werkstückoberfläche kann (in vorgegebenen Grenzen) verändert werden, der Abstand zwischen Werkstück und Werkzeug (z.B. Sprühpistole) sowie die Winkellage des Werkzeugs relativ zur Oberfläche kann ange¬ passt werden . Durch iteratives Anpassen und anschließende Si¬ mulation des Plans , kann so die Kostenfunktion minimiert und ein in diesem Sinne optimaler Plan ermittelt werden . Die er¬ wähnten Optionen zur Modifikation des Plans sind als Beispiel zu verstehen und nicht als abschließende Aufzählung . Auch sind nicht alle aufgezählten Optionen zwingend . Es kann auch z.B. versucht werden nur mit einer Variation der Startzeiten und der Ausführungsgeschwindigkeit der Bahnen einen gültigen modifizierten/optimierten Plan zu erzeugen, ohne die Reihen- folge (die im Schnelltest ermittelt wurde) der Bahnen wieder zu ändern .
Umsetzen in ein Roboterprogramm In einem vierten Schritt werden, nach dem Finden ausreichend guter Pläne, diese Pläne (alle oder ein Teil davon) in ein oder mehrere ausführbare Roboterprogramme übersetzt (Bewegun¬ gen, Schaltpunkte, Signale, Waits etc . ) und zusammen mit der Information über die zusätzlich zu berücksichtigende Komple- xität (z.B. Soll-Bewegungsfortschritt des Förderes für Start und Ende jeder Bahn oder für jeden Wegpunkt innerhalb einer Bahn, oder der Bereich der Störung/Parametervariation für den
der jeweilige Plan als ganzes gültig ist und ausgeführt wer¬ den kann) gespeichert .
Beispiele
Das oben beschriebene Verfahren zur Computergestützten auto¬ matisierten (Computergestützten) Erzeugung von optimierten Arbeitsabläufen (Pläne) für Roboter bzw . von entsprechenden Roboterprogrammen bietet den in der Entwicklungsphase Vor- teil , dass der Planungsingenieur, oder das eingesetzte auto¬ matische OLP- oder Planungstool , nur den vereinfachten Fall zu betrachten braucht und die zusätzliche Komplexität (die durch einer dem Werkstück überlagerten Bewegung oder durch die Berücksichtigung von Parametervariationen entsteht ) aus- gehend von dem für den vereinfachten Fall entwickelten Plan automatisiert berücksichtigt wird . Im Folgenden wird das bis¬ her allgemein beschriebene Verfahren noch an - verallgemeinerbaren - Beispiel näher erläutert . Beispiel 1 : Das erste Beispiel behandelt den Fall , dass dem Werkstück eine (vorgegebene) Bewegung überlagert ist . Allge¬ mein kann sich das Werkstück in vorgegebener Weise in N Frei¬ heitsgraden bewegen . Gleichzeitig kann sich die Roboterbasis mit der Zeit (in ebenfalls vorgebbarer Weise) bewegen . Im folgenden Beispiel wird das Werkstück mit einem Linearförde¬ rer (z.B. Fließband, N=l ) bewegt .
In einem ersten Schritt werden die Werkzeugbahnen für die ge¬ wünschte Arbeitsaufgabe des Roboters in an sich bekannter Weise (in Werkstückkoordinaten im Zielkoordinatensystem) ge- plant oder spezifiziert als würde das Werkstück (sowie die Roboterbasis ) ruhen . Alternativ können konventionell gene¬ rierte Roboterprogramme eingelesen werden und in Werkzeugbah¬ nen im Werkstückkoordinatensystem transformiert werden . Unter
"konventionell generiert " wird unter anderem verstanden, dass der Programmierung die oben erwähnte Annahme eines ruhenden Werkstücks zugrunde liegt . Die Bewegung des Linearförderers ist meist durch den Produktionsablauf fest vorgegeben und ist meist nicht beeinflussbar. Jedenfalls wird die Bewegung des Förderers in diesem Schritt (ggf . entsprechend den Vorgaben) definiert . Gleichzeitig wird die "Strategie" festgelegt , wie mit dieser zusätzlichen Komplexität , die durch die Bewegung des Werkstücks entsteht , umgegangen wird . Hierzu gibt es in der Praxis im Wesentlichen drei Möglichkeiten : Der Roboter steht erstens auf einer fest positionierten Roboterbasis , zweitens auf (mindestens ) einer Zusatzachse mit fest vorgege¬ benem Bewegungsmuster oder, drittens , auf einer oder mehreren Zusatzachsen mit frei planbarem Bewegungsmuster (optional kann auch ein bevorzugtes Verhalten festgelegt werden, wie z.B. minimale Beschleunigungen, minimaler Weg oder minimale Energie oder Bewegung synchron zur Förderbewegung) . Im drit¬ ten Fall kann diese Bewegung vorerst vorgegeben und im nach¬ folgenden Optimierungsschritt auch modifiziert werden . Ist die Bewegung des Werkstücks vorgegeben und die Bewegung der Roboterbasis definiert , ist damit auch die Relativbewegung zwischen Roboterbasis und Werkstück und somit der (zeitabhän¬ gige) Versatz zwischen Roboterbasis und Werkstück festgelegt . In Folge ( zweiter Schritt , Schnelltest ) wird der Einfluss der zusätzlich zu berücksichtigenden Komplexität (d.h. der dem Werkstück überlagerte Bewegung) auf die Anwendung (d.h. auf die Ausführung des entworfenen Plans ) in einer schnellen Ana¬ lyse ermittelt wie oben bereits erläutert . Der Zustandsraum wird diskretisiert , wobei die diskreten Zustände im vorlie¬ genden Beispiel jeweils eine konkrete Reihenfolge der Werk¬ zeugbahnen und einen konkreten Start Zeitpunkt (Start-Versatz) darstellen . Dabei ist jede einzelne Werkzeugbahn (siehe Fig .
1, Ziffer 21 ) durch so genannte Wegpunkte auf der Werkzeug¬ bahn unterteilt , die die jeweilige Bahn in Bahnsegmente un¬ terteilt . Diese Unterteilung ist fest vorgegeben, kann aber im nachfolgenden Optimierungs schritt ggf . noch geändert wer- den . Eine Bahn ist also durch die Summe ihrer Wegpunkte defi¬ niert . Für jede Werkzeugbahn des zuvor entworfenen Plans (siehe Fig . 1, Ziffer 21 ) wird getestet bzw . simuliert , für welche diskreten (Start-) Versatzwerte einzelne Wegpunkte (oder Segmente) der jeweiligen Werkzeugbahn erreicht werden können . Zur Veranschaulichung kann das Ergebnis als durchge¬ hende oder unterbrochene vertikale Linie auf die (Versatz-) Y-Achse aufgetragenen exemplarisch in Fig . 3 dargestellten Diagrams eingezeichnet werden . Anhand der Soll- Geschwindigkeit des Werkzeugs und der Länge (in 6- dimensionalen Konfigurat ionsräum) der Pfade zwischen zwei be¬ nachbarten Wegpunkte (Abschnitte der jeweiligen Werkzeugbahn) wird ermittelt/geschätzt wie weit diese vertikale Linien (welche erlaubte Verschiebungen repräsentieren) zeitlich ( im Diagram in Fig . 3 in horizontaler Richtung) auseinander lie- gen . Zwischen den letzten und ersten Wegpunkten aufeinander folgender Werkzeugbahnen (siehe Fig . 1, Ziffer 21 ) wird auf der (X-) Zeit-Achse die geschätzte oder simulierte Zeit für die Bewegung des Roboters zwischen den Bahnen als zeitlicher Abstand berücksichtigt . Dieser zeitlicher Abstand repräsen- t iert jene Zeit , die der Roboter nach dem Ende der Ausführung einer Werkzeugbahn benötigt , um die Ausführung der nächsten Werkzeugbahn zu beginnen . Beispielsweise kann eine
Umkonfigurat ion der Ellenbogenkonfiguration des Roboters (vom "Ellbow-up" zum "Ellbow-down" ) zwischen der Ausführung zweier Werkzeugbahnen notwendig sein . Bei Bedarf kann der Roboter zwischen zwei Bahnen auch bis zum Start der Ausführung der nächsten Bahn warten . Die Soll-Geschwindigkeit (bzw . das Be¬ wegungsmuster) des Förderers ergibt ebenfalls eine Kurve über
die Zeit in dem Diagram aus Fig. 3. Wie weiter oben bereits erläutert ist diese Kurve bei einer Relativbewegung mit kon¬ stanter Geschwindigkeit eine Gerade die diagonal über die Versatz-Achse und die Zeit-Achse verläuft (siehe Fig . 3 ) .
Auf Basis der simuliert Werte (d.h. auf Basis der simulierten zeitlichen Abstände zwischen den Wegpunkten und den einzelnen Werkzeugbahnen) werden eine oder mehrere günstige (d.h. auf¬ grund eines festgelegten Gütekriteriums als geeignet beur- teilte) Reihenfolgen von Werkzeugbahnen und dazugehörige
Startzeiten wie folgt festgelegt : Durch Variation der Reihen¬ folge und Start Zeitpunkte der Werkzeugpfade (= Werkzeugbah¬ nen) , optional auch ihrer Ausführungsriehtung, werden Anord¬ nungen (Zustände) gesucht , bei denen die Bewegungskurve des Werkstücks (diagonal verlaufende Gerade in Fig . 3 ) die verti¬ kalen Linien der einzelnen Wegpunkte (repräsentieren den er¬ laubten Versatz ) aller Pfade schneidet . Der maximale und mi¬ nimale Versatz , bei denen die Bewegungskurve des Werkstücks die senkrechten Linien (theoretisch mögliche Versatzwerte für den jeweiligen Wegpunkt ) aller Wegpunkte einer Bahn gerade noch schneidet definiert auch ein Zeitfenster (oder Transfor¬ mationsfenster) für die jeweilige Bahn . Innerhalb dieses Fensters kann die jeweilige Werkzeugbahn vom Roboter (gemäß dem Schnelltest ) ausgeführt werden .
Bei der Festlegung der Reihenfolgen und Startzeiten der ein¬ zelnen Werkzeugbahnen kann beispielsweise der Abstand der einzelnen Schnittpunkte der Bewegungskurve des Förderers zu den Endpunkten des in Y-Richtung aufgetragenen erlaubten Ver- satzes (oder zu den Rändern des Zeitfensters ) eines Werkzeug¬ pfades maximiert werden . Alternativ kann auch der Abstand vom spätest möglichen Endzeitpunkt maximiert werden . Im zweiten Fall können Werkzeugbahnen auch verzögert ausgeführt werden,
womit die Lösung ausführbar bleibt wenn der Roboter in der (nachfolgenden) vollen dynamischen Simulation (Feinpla¬ nung/Optimierung/Validierung) und der realen Ausführung län¬ ger braucht . Wahlweise können auch die (zeitlichen) Abstände zwischen den einzelnen Werkzeugpfaden maximieren werden (Puf¬ ferzeiten) . Wenn keine ausführbare Reihenfolge gefunden wer¬ den kann oder wenn für die gefundenen Reihenfolge die ver¬ bleibenden Zeitpuffer (zeitlicher Abstand zwischen Ausfüh¬ rungszeitpunkt des Pfades und Zeitfenster) kleiner als eine minimale Schwelle sind, ist kann in der folgenden Feinpla¬ nung/Optimierung mit hoher Wahrscheinlichkeit kein gültiger Plan gefunden werden oder nur Pläne die bei bereits geringen zeitlichen Störungen (z.B. Schwankungen der Geschwindigkeit des Förderers ) nicht robust sind . In dem Fall wird das Ver- fahren abgebrochen und an den Entwickler (oder an das automa¬ tische OLP-Tool ) zurückgemeldet , dass die Strategie (z.B. ei¬ nen Roboter mit fester Basis zu wählen oder das festgelegte Bewegungsmuster der Roboterbasis ) und/oder die zuvor ohne Be¬ rücksichtigung der zusätzlichen Komplexität festgelegten Werkzeugpfade nicht realisierbar sind . Danach muss ein neuer bzw . modifizierter Ausgang-Plan entworfen werden, und/oder die Bewegung der Roboterbasis angepasst werden, worauf das automatisierte Verfahren erneut gestartet wird . In einer vor¬ teilhaften Ausgestaltung werden die bestmöglichen Reihenfol- gen inklusive der als kritisch / nicht planbar analysierten
Pfade zur Unterstützung der manuellen Neuplanung/Modifikation angezeigt .
Die im ersten Schritt initial geplanten Werkzeugbahnen (der "Ausgangs-Plan" ) und ihre im zweiten Schritt (Schnelltest ) gefundenen geeigneten Zustände (Reihenfolge und Start Zeitpunk¬ te) werden im folgenden, nun erläuterten Optimierungsschritt (nacheinander, in einer Schleife) verfeinert , optimiert und
bewertet. Dabei werden die genauen Roboterbewegungen für jede einzelne Bahn sowie die Zwischenbewegungen zwischen diesen mit dem dynamischen Robotermodell (berücksichtigt begrenzte Beschleunigung, Geschwindigkeit ) in der sich aufgrund der gleichzeitigen Werkstückbewegung zeitlich verändernden Ar¬ beitszelle mit Hilfe eines virtuellen Roboters mit virtueller RoboterSteuerung simuliert . Bei der Optimierung werden (nach an sich bekannten Algorithmen) dabei die Start Zeitpunkte und die Ausführungsgeschwindigkeit einer den Werkzeugbahnen ent- sprechenden Bewegung (inklusive der Zeiten zwischen der Aus¬ führung der einzelnen Bahnen) , sowie in geringem (definierba¬ ren) Maße die auszuführenden Bahnen selbst verändert mit dem Ziel , die in bei der Simulation erhaltenen (geschätzten) Wer¬ te für die folgenden Kriterien zu maximieren : die Länge (in Prozent ) der ausführbaren Werkzeugpfade und/oder der Anteil der Oberfläche des Werkstücks , bei dem die ProzessSimulation für die (präzise simulierten) ausgeführten Werkzeugpfade gute Prozessergebnisse (weder zu viel/wenig Abtrag, noch Parame¬ terüberschreitung wie z.B. Anpressdruck.. ) ergibt . Dabei wird bei der ProzessSimulation das jeweilige Ergebnis für einen optimierten Plan (z.B. ReinigungsWirkung beim Reinigen : ge¬ reinigt , nicht gereinigt , unsicher, etc . ) im Zusammenhang mit der OberflächenbeSchreibung (z.B. CAD-Daten) des Werkstücks gespeichert . In einer Ausführungsbeispiel des Verfahrens wer- den durch die Planung- oder Optimierungsalgorithmen die Posi¬ tionen des Werkzeuges (und damit des Roboters in Bezug zur Oberfläche) so verändert , dass der Anteil der relevanten Werkstückoberfläche bei denen die Qualitätskriterien einge¬ halten werden maximiert wird . "Lücken" oder "Fehlstellen" (z.B. beim Lackieren, Polieren, etc . ) werden stärker gewich¬ tet , so dass diese bevorzugt geschlossen werden und zusammen¬ hängende Regionen erreicht werden . Verworfene Bewegungen (d.h. Bahnen und/oder einzelne Bahnsegmente) können mit einem
(sich auf die Maßzahl, die das Prozessergebnis bewertet , aus¬ wirkenden) Maluswert oder nur über ihren negativen Einfluss auf das Prozessergebnis bewertet werden . Als weiteres Opti¬ mierungskriterium kann vorgegeben werden, die Zykluszeit (d.h. die gesamte für den Prozess vom Roboter benötigte Ar¬ beitszeit ) beizubehalten, unter einer maximalen Zeit zu hal¬ ten oder weiter zu minimieren . Ganz allgemein sei festgehal¬ ten, dass jede Minimierung einer Kostenfunkt ion identisch ist zu einer Maximierung einer zur Kostenfunkt ion komplementären Nut zenfunkt ion . Wird die Kostenfunkt ion minimiert wird auto¬ matisch die komplementäre Nut zenfunkt ion maximiert .
Aus den Werkzeugpfaden wird über die inverse Kinematik für alle geplanten Wegpunkte für jede Roboterachse deren Soll- Position und Sollgeschwindigkeit für einen Soll-Zeitpunkt be¬ rechnet . Die Bewegungsplanung basiert beispielsweise auf probabilist ischen Methoden (z.B. "Rapidly Exploring Random Trees" , RRT, oder "Probabilistic Road Maps " , PPM, oder ande¬ re) welche im Zustandsraum (z.B. Gelenkwinkel und deren Ge- schwindigkeiten und die Zeit ) nach Verbindungen von Start und Endpositionen suchen, wobei ein Wegpunkt Start- bzw . End- Punkt für verbundene Bahnsegmente ist . In dem hier beschrie¬ benen Verfahren zur Behandlung von bewegten Werkstücken muss jedoch das Zeitverhalten und die Beschränkungen von Geschwin- digkeiten und Beschleunigungen der Achsen berücksichtigt wer¬ den . Dazu wird der Zustandsraum, innerhalb welchem die (obi¬ gen) bekannten Verfahren suchen, beschränkt , indem berück¬ sichtigt wird, dass von jedem Zustand aus nur eine einge¬ schränkte weitere Änderung der Position und Geschwindigkeit möglich ist . Dazu wird für jeden Wegpunkt i der Zustand (Po¬ sition und Geschwindigkeit ) jeder Achse fortgeschrieben bis zum Zeitpunkt des nächsten Wegpunktes i+1 für die begrenzen¬ den Fälle der maximal negativen bzw . positiven Beschleunigung
von dem Wegpunkt i weg. Zusätzlich wird vom Zustand im aktu¬ ellen Wegpunkt i die beide extremen Fälle der Bewegung (maxi¬ male Beschleunigung) bis zu dem Zustand am Wegpunkt i-1 vor¬ geschrieben . Erlaubte Zustände je Achse können nur zwischen den beiden extremen Verläufen liegen - d.h. in der zwischen Minimum und Maximum aufgespannten Fläche . Nur wenn über den gesamten Abschnitt zwischen zwei Wegpunkten diese Flächen vom Wegpunkt i vorwärts und Wegpunkt i+1 rückwärts ein Überlap¬ pungsbereich existiert ( für alle Achsen) gibt es eine Ände- rung des Zustands der die realen Beschränkungen der Achsen in Beschleunigung und Geschwindigkeit respektiert . Da die fol¬ gende Wegplanung im Zustandsraum (nach bekannten Methoden) Verbindungen nur von Zuständen in diesem Überlappungsbereich suchen darf, wird eine Optimierung nach bekannten Methoden vorangestellt welche a) die Überlappungsfläche maximiert , und b) "Einschnürungen" des Zustandsraumes mit einem Malus belegt (ungültig) . Dazu werden von der Planung die Zustände in Achs¬ position und -Geschwindigkeit und Zeitpunkt des Erreichens modifiziert, wobei jede Veränderung mit Kosten belegt wird (Kosten können je nach Prozess variieren, so ist z.B. bei kontaktbasierter Reinigung die Lage des Werkzeugs entschei¬ dender als die Geschwindigkeit , beim Lackieren ist oft die Einhaltung der WerkZeuggeschwindigkeit über der Oberfläche kritischer) .
In diesem derart eingeschränkten Zustandsraum wird nach be¬ kannten (z.B. PRM, RRT) Methoden die genaue kollisionsfreie Bewegung geplant und simuliert . Bei ausreichender Rechenzeit wird in einem Ausführungsbeispiel des hier beschriebenen Ver- fahrens der Prozess für die so genau vorhergesagte Bewegung des Roboters simuliert . Das Ergebnis wird wie beschrieben in Bezug zur Oberfläche gespeichert und der Anteil der wunschge-
maß bearbeiteten (Qualitätskriterium im Sollbereich) Flächen als zu maximierendes Kriterium verwendet .
Die Optimierung wird beendet , sobald das Ergebnis für eine Reihenfolge hinreichend gut ist , die Konvergenz verlangsamt ist oder eine Anzahl an Iterationen überschritten ist . Je nach Realisierung können alle im vorangegangenen Schnelltest ermittelten "Zustände" (Reihenfolgen mit Anfangszeiten der Bahnen) getestet werden oder beim ersten hinreichend gutem Ergebnis die Schleife abgebrochen werden .
Wenn für keine der im Schnelltest vorgeplanten Zustände (Rei¬ henfolgen mit Startzeiten) eine brauchbare Lösung gefunden wurde , wird zurückgegangen zum ersten Schritt und es muss ein neuer Ausgangsplan entworfen werden . Gemäß einem Ausführungs¬ beispiel des hier beschriebenen Verfahrens wird dabei die Ur¬ sache für das Verwerfen eines Plans , d.h. nicht ausführbare (Teile der) Werkzeugbahnen oder Bereiche am Werkstück bei de¬ nen der Prozess nicht akzeptable Ergebnisse liefert , rückge- meldet (und die Werkzeugbahnen welche dazu beitragen) .
Im auf die Feinplanung/Optimierung/Validierung folgenden Schritt werden (auf der tatsächlichen RoboterSteuerung aus¬ führbare) Roboterprogramme generiert und mit Zusat zinformati- on über die zusätzlich Komplexität "Bewegung des Werkstücks " versehen . Dazu wird die geplante Bewegung des Roboters diskretisiert (z.B. in gleichen Zeitabständen oder gleichen Weglängen) und als Wegpunkte ( "Point-to-Point " , PTP, Splines etc . ) inklusive Geschwindigkeit gespeichert , zusammen mit der Angabe für welche Soll-Position des Förderers (bzw . für wel¬ chen Soll-Zeitpunkt oder für welche Werkstückposition, mess¬ bar über den Weg-Encoderwert der Förderers ) diese Wegpunkte zu erreichen sind . In einer statischen Umgebung (Werkstück
ruht) wäre es ausreichend, die Bahn festzulegen, d.h. festzu¬ legen, welche Wegpunkte (optional mit welcher Geschwindig¬ keit ) abzufahren sind . Für den hier beschriebenen Fall wird zusätzlich festgelegt , wann der jeweilige Wegpunkt erreicht werden muss . Im Falle eines Förderers mit vollständig deter¬ ministischem Verhalten könnte z.B. festgelegt werden, zu wel¬ chen Zeitpunkt ein Wegpunkt erreicht werden soll . Im Falle eines Förderers mit Schwankungen wird beispielsweise festge¬ legt zu welcher Position des Förderers soll ein Wegpunkt er- reicht sein soll .
Vorteilhaft ist die Ausgabe des Programms in zwei Teilen : a) Als Liste von Positionen und Geschwindigkeiten (der Roboter- Achsen oder des TCP ) mit den zugehörigen Sollpositionen von (Werkstück oder} Förderer, wobei diese letztere dichter diskretisiert sein kann als für ein Robotercontroller für die Ausführung nötig und b) ein Abarbeitungsprogramm in Form ei¬ ner Schleife, welches den aktuellen Ist-Wert (Position und Geschwindigkeit } des Förderers ausliest und abhängig davon die nächste Sollposition des Roboters aus der Liste aus (a) wählt oder interpoliert und die Geschwindigkeit abhängig von der aktuellen Geschwindigkeit des Förderers und dem Fort¬ schritt der Roboterbewegung in Bezug auf die Förderbewegung (vorrauseilend, hinterherhinken) nach bekannten Regelprinzi- pien ( im einfachsten Fall ein PID-Regler) steigert , senkt oder beibehält . Mit Hilfe dieser Realisierung werden (1.) Un¬ genauigkeiten in der Planung der Roboterbewegung (insbesonde¬ re Fehler im Modell der Roboterdynamik und der Steuerung) kompensiert und (2. ) die Robotergeschwindigkeit an möglicher- weise schwankende oder wechselnde Fördergeschwindigkeit ange- passt (selbst bis zu einem vollen Stopp oder einer Rückwärts¬ bewegung des Förderers ) . Die Programme mit Verknüpfung zur (Förder- oder) Werkstückbewegung werden auf den Robotercon-
troller geladen oder zwischengespeichert und stehen für die On-1ine-Ausführung bereit .
Der oben beschriebene Aspekt der Erfindung kann also allge- mein als Verfahren zum Steuern eines Roboters zur Behandlung oder Bearbeitung eines bewegten Werkstücks mit einem Werkzeug Zusammengefasst werden . Der Roboter führt dabei eine Bewegung entsprechend einen Plan aus , der durch eine Vielzahl von durch Wegpunkte definiert ist . Jedem Wegpunkt ist , wie er™ wähnt , eine Soll-Position des Werkstücks zugeordnet . Während des Ausführens einer Roboterbewegung wird die Ist-Position des Werkstücks gemessen und dessen Geschwindigkeit ermittelt . Die aktuelle Soll-Position des Werkstücks wird berechnet ab¬ hängig von der aktuellen Position des Roboters unter Verwen- dung der den Wegpunkten zugeordneten Soll-Positionen des
Werkstücks . Dies kann beispielsweise auch mit Hilfe von In¬ terpolation erreicht werden . Die Differenz zwischen Soll- und Ist-Position des Werkstücks wird berechnet . Davon abhängig wird die nächste zu erreichenden Soll-Position (Wegpunkt ) des Roboters und der dazugehörige Zeitpunkt (das kann durch Vor¬ gabe der Bahngeschwindigkeit des Werkzeugs geschehen, womit der Ankunfts Zeitpunkt am Wegpunkt festgelegt wird) bestimmt , zu dem diese erreicht werden soll . Dazu wird ein Wegpunktes gemäß dem Plan ausgewählt , oder durch Interpolation zwischen zwei Wegpunkten des Plans ein Punkt berechnen, derart , dass die aktuelle Differenz zwischen Soll- und Ist-Position des Werkstücks beim nächsten Wegpunkt verringert oder minimiert wird . Zur der (zeitlich entkoppelten) tatsächlichen On-line-
Ausführung der Programme erfassen Sensoren die Information über die Bewegung des Werkstücks (Position und Geschwindig¬ keit ) des Förderers . Abhängig davon, ob bei der Ausführung
des Programms die gemessene Förderbewegung der geplanten vor- rauseilt oder nachhinkt können die Geschwindigkeitswerte (je Position/ Wegstück) des Programms gehoben oder gesenkt wer¬ den . In der beschriebenen vorteilhaften Realisierung der Zweiteilung des Programms mit dichter Diskretisierung der Pfade können zudem die nächste Positionswerte abhängig von der momentanen Geschwindigkeit des Förderers und des Voraus¬ eilens , Nachhinkens neu berechnet/ interpoliert werden, bis hin zur Berechnung zeitlich unveränderter Positionswerte bei stehendem Förderer, oder Berechnung von Positionen die laut Planung zeitlich zurückliegen (wenn der Förderer sich rück¬ wärts bewegt ) .
Beispiel 2 : Im zweiten Beispiel muss berücksichtig werden, dass in der Automation Positions- oder Bewegungsabweichungen von Werkstück oder Roboter oder Abweichungen/ Störungen/Varia¬ tionen bei den Parametern des Prozesses (Abweichende Mengen oder Haftung von Lack, Wirksamkeit von Schleifmedien, Reini¬ gungswirkung, Menge oder Haftung des Staubes ) auftreten kön- nen ( im folgenden Parametervariationen genannt ) . Die tatsäch¬ lichen Werte der Parametervariationen können zum Teil vor oder während der Ausführung gemessen werden, sind zum Zeit¬ punkt der Planung aber nicht bekannt (nur deren Schwankungs¬ breite) . Die diesbezügliche Problematik und das grundsät zli- che Vorgehen zur Berücksichtigung von Parametervariationen, um robuste Pläne für Roboter zu generieren, wurde weiter oben schon diskutiert .
In einem ersten Schritt werden (wie im Beispiel 1 ) die Werk- zeugpfade (in Werkstückkoordinaten) ohne Berücksichtigung der Parametervariationen (d.h. für einen idealisierten Fall ) ge¬ plant oder spezifiziert bzw . aus vorhandenen Programmen ein¬ gelesen und konvertiert . Zudem werden die zu berücksichtigen-
den Parametervariationen definiert (z.B. Verteilung je Dimen¬ sion, maximaler Schwankungsbereich, Konfidenz intervall für jeden variablen Parameter, etc . ) . Optional können auch Abhän¬ gigkeiten und Korrelationen zwischen den variablen Parametern berücksichtigt werden . In diesem Schritt wird auch die Stra¬ tegie für die Berücksichtigung der Parametervariationen in der automatischen Planung festgelegt . Letzteres ist z.B., dass (1.) genau ein Programm generiert werden soll (wie im Beispiel 1), welches alle Variationen abdeckt (z.B. wenn kei- ne Sensoren zu deren Messung eingesetzt werden können/ sollen) oder (2. ) genau ein Programm generiert werden soll , welches einen möglichst großen Bereich der Parametervariationen ab¬ deckt oder (3.) mehrere optimierte Programme (obere Grenze definiert ) geniert werden sollen, welche zusammen den gesam- ten Bereich der Parametervariationen abdecken, welche dann zur Ausführungs zeit gemessen werden . Gemäß einem Ausführungs¬ beispiel erfolgt eine Angabe welche einzelne Einflüsse nicht messbar sind, d.h. nicht in verschiedene "Gruppen" unterteilt werden dürfen . Die Gruppierung von verschiedenen Zuständen im Raum der Parametervariationen wurde ebenfalls weiter oben schon angesprochen .
In einem zweiten Schritt (Schnelltest ) wird analog zum voran¬ gegangenen Beispiel 1 der Einfluss der zusätzlich zu berück- sichtigenden Komplexität ( zuvor die Bewegung des Werkstücks , nun die Parametervariationen) auf die Anwendung in einer schnellen Analyse ermittelt . Dazu wird für N zu untersuchende Parameter/Dimensionen (N ist die Anzahl der einzelnen defi¬ nierten variierenden Parameter) deren Schwankungsbreite ein- gegeben und durch Kombination ein N-dimensionaler Zustands- raum definiert , der dann so diskretisiert ( "abgetastet" ) wird, dass eine diskrete Menge von kombinierten Störun¬ gen/Variationen (=Zuständen) vorliegt . Beispiele für die
Diskretisierung des Zustandsraumes der Parametervariationen wurden unter Bezugnahme auf Fig . 2 bereits diskutiert . Zu¬ stände die aufgrund von Korrelation oder gegenseitigen Aus¬ schluss einzelner Störungen nicht auftreten können, können gemäß einem Ausführungsbeispiel eliminiert werden .
Danach wird für jeden diskreten Zustand die ursprünglich ( im ersten Schritt ) definierten Werkzeugbahnen (d.h. der Aus¬ gangs-Plan) geprüft . Das heißt , der Prozess und die Roboter- bewegung werden simuliert , und der jeweilige Zustand wird be¬ wertet , gemäß dem Anteil an (nicht-) ausführbaren Bewegungen und gemäß dem Anteil an der Oberfläche des Werkstück, für den das Prozessergebnis als gut , schlecht , kollidierend (oder metrisch etc . ) simuliert wurde .
Alle Zustände für welche obige Simulation des Ausgangs-Plans ein zufrieden stellendes Ergebnis (Maßstab hierfür ist das Erreichen eines vorab definierten Qualitätskritieriums , wie weiter oben bereits diskutiert ) liefert , werden als Gruppe zusammengefasst und zusammen mit diesem Plan gespeichert . Die verbleibenden Zustände werden ebenfalls gruppiert , wobei Zu¬ stände, bei denen (ausschließlieh/überwiegend) gleichartige Probleme in der Roboterbewegung an gleichen Abschnitten der Werkzeugpfade und/oder (gleichartige) Probleme in der Pro- zessqualität (abgespeichert und ausgewertet als Prozessergeb¬ nis über den einzelnen Regionen an der Oberfläche des Werk¬ stücks ) an gleichen Ort am Werkstücks auftreten, ebenfalls jeweils zu einer Gruppe zusammengefasst werden . In dem Anwen¬ dungsfall , bei dem ein Werkstück durch den Roboter lackiert werden soll , werden z.B. jene Zustände von Parametervariatio¬ nen in eine Gruppe eingeordnet , bei denen im gleichen Bereich der Werkstückoberfläche der (in der ProzessSimulation simu¬ lierte) Lackauftrag z.B. zu gering ist .
Zur Bewertung der Eignung des Ausgangsplans in Bezug auf die zur Berücksichtigung der Parametervariationen gewählten Stra¬ tegie wird gemäß dem hier beschriebenen Ausführungsbeispiel wie folgt vorgegangen .
Variante 1 : Die Einzelergebnisse Simulationen des Ausgangs- Plans für die einzelnen Zustände (Kombination von Parameter¬ variationen) werden so überlagert , dass das lokal (gemeint ist die Position auf der Werkstückoberfläche bzw . auf der Werkzeugbahn) jeweils schlechtere Ergebnis das bessere über¬ schreibt . Es wird sozusagen der Worst-Case über die Simulati¬ onen des Ausgangs-Plans für alle Zustände gebildet . Dies gilt sowohl für Regionen des Werkstücks bei denen eine schlechter bewertetes simuliertes Prozessergebnis ( für einen Zustand) alle besseren überschreibt , als auch für Werkzeugbahnen bei denen nicht ausführbare Abschnittweise für einen Zustand "do¬ minieren" wenn der selbe Abschnitt in einer anderen Simulati¬ onen ausführbar ist .
Variante 2 : Es wird der Anteil der Zustände ausgewertet für welche die Simulation kein hinreichend gutes Ergebnis vorher¬ sagt (die Schwere des Einzelprobleme kann gewichtet werden) . Als Kriterium für einen Abbruch und Rücksprung zu Schritt 1 (Erstellung des Ausgangs-Plans am vereinfachten Fall ) kann bei der "Variante 2 " der Anteil der simulierten Zustände mit nicht ausreichendem Ergebnis und bei der "Variante 1 " der An¬ teil der (nach der Überlagerung aller Simulationsergebnisse) als nicht brauchbar beurteilten Werkstückoberfläche und/oder der Anteil der nicht ausführbaren Werkzeugpfade herangezogen werden . Unterschreitet dieses Kriterium eine untere Schwelle, so wird davon ausgegangen, dass es der folgenden Feinpla-
nung/Optimierung nicht gelingen wi rd, mit nur einem einzigen oder einer begrenzten Anzahl von Plänen ( später umgewandelt in Roboterprogramme) alle Zustände zu berücksichtigen (evtl . mit geringen Einschränkungen) . Ist der Anteil höher als eine wählbare Schwelle so wird der Ausgang-Plan verworfen und es muss ein neuer Ausgangs-Plan entworfen werden (wie im obigen Beispiel 1. Der Schwellwert ist abhängig von der gewählten Strategie und liegt höher bei der Strategie "Ein Plan für al¬ le Zustände" als bei der Strategie "P Pläne für alle Zustän- de" . Alternativ kann bei der Strategie "P Pläne" auch getes¬ tet werden, ob die ermittelte Anzahl der Gruppen kleiner oder gleich der Anzahl P von gewünschten Plänen ist .
Im nächsten Schritt (Schritt 3 , Feinplanung/Optimierung/Vali- dierung) werden die Werkzeugbahnen des Ausgangs-Plans für die gefunden Gruppen optimiert und detaillierter simuliert . Gemäß einem Ausführungsbeispiel wird dabei unterschieden, ob die Strategie lautet : "Ein Plan für alle Zustände" oder "P Pläne für alle Zustände" .
Für die Strategie "Ein Plan für alle Zustände" wird der An¬ fangs-Plan auf Basis bekannter Verfahren modifiziert und op¬ timiert . Als optimal gilt wiederum ein Plan für den eine vor¬ ab definierte Kostenfunktion minimiert wird . In diese Kosten- funktion können einfließen : der Anteil des zu bearbeitenden Werkstücks für den das simulierte Prozessergebnis (abgespei¬ chert mit den dazugehörigen Werkstückoberflächenkoordinaten) außerhalb der erlaubten Toleranzen liegt (ggf . gewichtet mit dem Grad der Abweichung) , die Ausführungs zeit etc . Gemäß ei- nem Beispiel des hier beschriebenen Verfahrens wird die aktu¬ ell zu optimierende Version des Plans immer gleich für alle oder mehrere verschiedene ( zufällige und in Anzahl zunehmen¬ de) Zustände (der Störung/Parametervariation) simuliert und
die Ergebnisse derart überlagert , dass (lokal ) nicht brauch¬ bare Prozessergebnisse (z.B. Lackauftrag zu gering in einem bestimmten Oberflächenbereich) brauchbare Prozessergebnisse für andere Zustände überschreiben, um so den Worst-Case zu ermitteln . Bei dieser Strategie sind alle diskreten Zustände des Raums der Parametervariationen praktisch in einer einzige Gruppe eingeordnet .
Für die Strategie "P Pläne für alle Zustände" werden die beim Schnelltest gebildeten Gruppen von Zuständen nacheinander ab¬ gearbeitet und für jede Gruppe ein eigener Plan optimiert . Dies kann entweder für alle getesteten Zustände einer Gruppe so durchgeführt werden wie für die Strategie "ein Plan für alle Zustände" (siehe oben) .
Alternativ kann für jeden Zustand der aktuellen Gruppe zu¬ nächst simuliert werden, ob ein zuvor optimierter Plan ( für einen Zustand derselben Gruppe oder ein für eine andere Grup¬ pe optimierter Plan) ein hinreichendes Simulationsergebnis liefert (innerhalb vorgebbarer Toleranzen) . Dazu wird der
Prozess über alle, gemäß RoboterSimulation ausführbaren, Bah¬ nen des Werkzeugs simuliert und in Bezug auf das Werkstück (z.B. beim Lackieren die Schichtdicke auf der Oberflächenbe- schreibung (z.B. Mesh, CAD-Daten, etc . ) ) überlagert und ge- speichert , wobei auftretende kritische Situationen (Kollisio¬ nen, Überschreitungen von Anpresskräften etc . ) positive Er¬ gebnisse überschreiben (Auf diese Art wird, wie bereits zuvor erläutert , der Worst-Case ermittelt ) . Das Ergebnis der Pro¬ zessSimulation ist z.B. die resultierende Schichtdicke oder die ReinigungsWirkung auf der Beschreibung der Werkstückober¬ fläche . Beim Lackieren sind das z.B. Werten in Mikrometer oder Angaben wie "OK" , "zu dick" , "zu dünn" oder dgl . ) . Beim Reinigen sind das z.B. Angaben wie "gereinigt " , "nicht gerei-
nigt " , "unsicher" , etc . Ist der Anteil der relevanten Werk¬ stückoberfläche, bei der die Qualitätskriterien eingehalten werden, im Verhältnis zur Gesamtoberfläche über einer gefor¬ derten Schranke (wobei verschiedene Regionen (z.B. Designkan- ten) oder die Art und Schwere der Überschreitung in der Be¬ wertung verschieden gewichtet werden können) , oder ist der Anteil der verworfenen Pfade klein gernug, so wird der aktu¬ ell getestete Zustand dem getesteten Plan zugeordnet , ohne dass der Plan verändert wird . Je nach Realisierung kann der erste passende Plan verwendet werden, oder es kann aus allen Plänen der mit dem besten Bewertung verwendet werden . Gemäß einem Ausführungsbeispiel wird für jede Gruppe der Ausgangs¬ plan nur für einen Zustand der Gruppe optimiert und dann wird geprüft , ob dieser Plan auch für alle anderen Zustände der Gruppe geeignet ist . Jene Zustände, für die der Plan ungeeig¬ net ist , werden in eine neue Gruppe eingeordnet . Alternativ kann vor der Optimierung eines Plans für einen Zustand einer Gruppe versucht werden, ob ein bereits für eine andere Gruppe optimierter Plan geeignet ist . Wenn ja, können die jeweiligen Gruppen zusammengefasst werden . Am Ende bleibt für jede Grup¬ pe von Zuständen ein modifizierter Plan übrig .
Ist für keinen der bereits gebildeten Pläne das Simulations¬ ergebnis hinreichend, so wird für den aktuell geprüften Zu- stand eine neue Gruppe initiiert , und der Optimierungsprozess (analog zu der Strategie "ein Plan für Alle" ) für den Zustand angestoßen, wobei in einer vorteilhaften Realisierung der (bislang generierte) Plan als Start für die Optimierung/Adap¬ tierung verwendet wird, der zuvor am besten (wenn auch nicht hinreichend) bewertet wurde, oder alternativ der Anfangs-Plan aus dem ersten Schritt . Die Feinplanungs- bzw . Optimierungs- algorithmen gemäß Stand der Technik (z.B. "Particle Swarm Optimizat ion" ) variieren die Werkzeugbahnen in Bezug zum
Werkstück (insbesondere zur Werkstückoberfläche derart , dass der Anteil der relevanten Werkstückoberfläche, bei dem die Qualitätskriterien eingehalten werden, maximiert wird . Die Bahnsegmente einer Werkzeugbahn werden also relativ zur Werk- Stückoberfläche verschoben, verkippt , leicht angehoben, etc, um das Prozessergebnis zu verbesserten . Vorzugsweise werden "Lücken" oder "Fehlerstellen" stärker gewichtet , so dass die¬ se bevorzugt geschlossen bzw . beseitigt werden und zusammen¬ hängende Regionen erreicht werden, welche die Qualitätskrite- rien erfüllen . Zudem wird (mit einer Bewegungsplanung wie im Beispiel 1 ) oder nach Stand der Technik) für jede Werkzeug¬ bahn (und deren Verbindung) eine ausführbare Roboterbewegung gesucht/geplant . Werkzeugbahnen welche ganz oder teilweise nicht ausführbar sind können zusätzlich mit einem Maluswert bewertet werden oder lediglich keinen Beitrag zum Simulati¬ onsergebnis liefern . Die Dauer der Bewegung (d.h. die vom Ro¬ boter für die Ausführung der Bearbeitung benötigte Zeit ) kann ein weiteres Kriterium der Optimierung sein . Zustand und op¬ timierter Plan werden als eine neue Gruppe gespeichert . Spä- ter untersuchte Zustände, die mit demselben Plan abgedeckt werden können, werden der Gruppe zugeordnet
In einer alternativen Ausführung werden alle Zustände, für die basierend auf der Gruppierung aus dem Schnelltest kein geeigneter Plan gefunden wurde und für die folglich eine neue Gruppe definiert wurde, oder neu in eine andere (als beim Schnelltest ) Gruppe zugeordnete Zustände für eine Ausnahmebe¬ handlung vorgemerkt , bei der nach Abarbeiten aller Zustände nochmals geprüft wird, ob diese neu gebildeten Gruppen weiter zusammengefasst werden können .
Die Schleife wird weitergeführt bis für jede Gruppe ein Plan existiert , d.h. der gesamte definierte Zustandsraum der Para-
metervariationen abgedeckt ist , oder abgebrochen wenn für ei¬ nen Zustand kein Plan gefunden werden kann, oder die Zahl der Gruppen die erlaubte Anzahl an Plänen übersteigt . Je nach Vorgabe kann die Schleife abgebrochen werden, sobald für ei- nen Zustand keine Lösung gefunden wurde ( zurück zur Bestim¬ mung eines neuen, verbesserten Ausgangs-Plans } oder nur die Zustände für die keine Lösung gefunden wurde werden zwischen¬ gespeichert und im Anschluss wird nur für diese Zustände ein neuer Anfangs-Plan erstellt , während die gefundenen Lösungen beibehalten werden .
Idealerweise können (genug Simulationszeit vorausgesetzt) in einer nachgeschalteten Optimierung die Pläne nochmal über al¬ le im Gruppe/Cluster enthaltenen Variationen optimiert werden wie für Strategie 1 ("Ein Plan für Alle" ) beschrieben .
Der oder die Pläne wird oder werden zusammen mit der Zusatz¬ information (hier abgedeckte Zustände = Bereich der Stö¬ rung/Parametervariation, für die der jeweilige Plan gültig ist ) gespeichert .
Im nächsten Schritt werden der oder die Pläne in je ein (auf der Steuerung ausführbares = roboter-spezifisches ) Roboter¬ programm (Liste von Gelenkzuständen, Splines , Signalen etc . ) durch "Abtasten" (Diskretisieren) der geplanten Roboterbewe¬ gung konvertiert und zusammen mit der Zusatz Information über die automatisch berücksichtige Dimension ( im diesem Fall der Bereich der erlaubten Parametervariation, für den der Plan der jeweiligen Gruppe gültig ist ) gespeichert .
Zur der (zeitlich entkoppelten) on-1ine-Ausführung der Pro¬ gramme erfassen Sensoren die Information betreffend die tat¬ sächlichen Parametervariationen (oder zumindest einen Teil
derselben) , im vorliegenden Falle die Ist-Werte der einzelnen (messbaren) Störungen (z.B. Lageabweichung in X, Y, Z, etc.) . Dann wird die Gruppe ausgewählt , welche diese konkreten Stö¬ rungen/Parametervariationen beinhaltet , und das dieser Gruppe zugeordneten Programm auf die Steuerung hochgeladen . Optional kann der gespeicherte Plan für den gemessenen Zustand wie im obigen Optimierungs schritt beschrieben optimiert werden .
In der Folge wird das oben Beschriebene noch einmal zusammen- gefasst und vertiefend erläutert anhand der Figuren 4 bis 13. Entsprechend dem der Erfindung zugrunde liegenden Verfahren (Fig . 4 ) wird erst eine idealisierte Anwendung geplant (bzw . programmiert,) . Idealisiert heißt hierbei z.B. (quasi™-) sta¬ tisch bzw . ohne Störungen . Alternativ können auch existieren¬ de Programme eingelesen und konvertiert werden (Schritt I ) . Erst danach wird automatisiert die zusätzliche, durch Dynamik (Werkstückbewegung) oder Störungen bedingte zusätzliche Kom¬ plexität/Dimension berücksichtigt , und es werden die Pläne und Programme generiert , die für diese komplexeren Fälle ein- set zbar sind .
Dies geschieht wie folgt : In einer VorVerarbeitung wird der Einfluss der zusätzlichen Komplexität /Dimension (dem Werk¬ stück überlagerte Bewegung, Parametervariationen) auf den ur- sprüngliche Plan bzw . das ursprüngliche Programm simuliert und das Prozessergebnis (Qualität der Lackierung, des Polie¬ rens , etc . ) wird bewertet und ein Schnelltest (Schritt I I ) sucht ein Schnelltest zur "Grobplanung" nach " Start lösungen" oder Fällen (weiter oben als Zustande im Zustandsraum der Pa- rametervariat ionen bzw . im Zustandsraum der möglicher Bewe¬ gungsmuster bezeichnet ) . Diese werden in einer Schleife abge¬ arbeitet und gefundene Lösungen werden optimiert und vali-
diert und ggf . zusammengefasst (Schritt III) . Aus gefunden Plänen wird ein oder werden mehrere Programme zusammengefügt
Fig . 4 zeigt insbesondere :
I . Module zur Planung/Definition oder zum Einlesen einer
Roboteranwendung ohne Berücksichtigung der zusätzli¬ chen Komplexität ( 1.1 ) . Vorbereitend zur späteren Be¬ handlung der zusätzlich zu berücksichtigenden Komple- xität /Dimension wird (metrische) Information über die¬ se eingegeben oder eingelesen (1.2.) und die " Strate¬ gie" (Bewegungsmuster der Roboterbasis oder mehrere Pläne für mehrere Gruppen von Zuständen) zu deren Be¬ handlung in der späteren Planung eingeben bzw . einge- lesen (1.3.) .
1.1. Modul zur Planung der Bahnen des Werkzeugs in Werk¬ stückkoordinaten bzw . zum Einlesen existierender Pro¬ gramme und Konvertieren in Werkzeugbahnen in Werk¬ stückkoordinaten .
1.2. Schnittstelle zum Einlesen/Eingeben der Information über die zusätzliche Dimension, z.B. Beschreibung der Bewegung des Werkstücks über die Zeit (in der Folge Fall A) bzw . der Breite und Verteilung der einzelnen Schwankungen/ Störungen, z.B. Lagefehler in Richtungen eines Koordinatensystems (in der Folge Fall B) .
1.3. Schnittstelle zur Bestimmung der zu verwendenden Stra¬ tegie . Im Fall zu berücksichtigender Werkstückbewe¬ gung : Wahl der Roboterbasis , feststehend vs . montiert auf Zusatzachsen (inklusive Festlegung deren Länge, Dynamik und Lage zum Werkstückförderer) .
I I : Schnelltest und Vorauswahl : Modul zur schnellen
(„stichprobenartigen" ) Simulation und Analyse des Ein-
flusses der zusätzlichen zu berücksichtigenden Komple¬ xität /Dimension auf die Anwendung . Rückmeldung, dass Strategie und/oder der ohne Berücksichtigung der zu¬ sätzlichen Komplexität in I festgelegte "Plan" nicht realisierbar sind, oder schnelle (ungenaue) Planung zur Festlegung wie diese im Schritt III Planung abge¬ arbeitet werden sollen . In Fall A (dem Werkstück ist eine zusätzliche Bewegung überlagert ) wird simu¬ liert/analysiert, bei welchen Verschiebungen zwischen Werkstück und Roboterbasis die Werkzeugbahnen (laut
Schnelltest ) ausführbar sind (siehe Fig . 3 ) . Aus die¬ sen " Zeitfenstern" / "Korridoren" und aus den über die Sollgeschwindigkeit des Werkzeugs geschätzten Ausfüh¬ rungszeiten der Werkzeugbahnen (siehe Fig . 1 , Ziffer 21 ) werden eine oder mehrere günstige Reihenfolgen und
Startzeiten der Pfade festgelegt welche in der Fein¬ planung (Schritt III) im Detail geprüft und optimiert werden . Während dieser Festlegung kann zugleich fest¬ gestellt werden, wenn keine Reihenfolge gefunden wer- den kann oder wenn für die gefundenen Reihenfolge die verbleibenden Zeitpuffer (zeitlicher Abstand zwischen Ausführungzeitpunkt der Werkzeugbahn und Zeitfenster) kleiner als eine minimale Schwelle sind und daher in der Feinplanung (III) bestenfalls Pläne gefunden wer- den können, die gegen bereits geringe zeitlichen Stö¬ rungen (z.B. Schwankungen der Geschwindigkeit des För¬ derers ) nicht robust sind . In diesem Fall wird zu Schritt I zurückgegangen, um die initialen Werkzeug¬ bahnen (den Anfangs-Plan) oder die Strategie zu än- dern . Im Fall B ( zu berücksichtigende Parametervaria¬ tionen) wird der Plan aus Schritt I für verschiede Zu¬ stände (Kombinationen konkreter Störungen/Parameter¬ variationen) simuliert . Alle (diskretisierten) Störun-
gen, für welche die Simulation der ursprünglich (in I ) geplante Plan ein zufriedenstellendes Ergebnis liefert werden als ein "Fall" zusammengefasst (gruppiert ) und zusammen mit diesem Anfang-Plan gespeichert . Allen an- deren Zustände werden zu Fällen gruppiert , wenn (aus¬ schließlich/überwiegend) gleichartige "Probleme " in der Roboterbewegung (Kollisionen oder nicht erreich¬ bar) an gleichen Abschnitten der Werkzeugbahnen und/oder (gleichartige) Probleme in der Prozessquali- tät (abgespeichert und ausgewertet als Prozessergebnis über den einzelnen Regionen an der Oberfläche des Werkstücks oder an Formen, Merkmalen oder Unterbau¬ gruppen des Werkstücks ) an gleichen Ort am Werkstück auftreten . Gleichzeitig werden alle in der Simulation der einzelnen "Zustände" gefundene Prozessprobleme auf dem Werkstück (bei Prozessproblemen) und Bewegungs¬ probleme bei den Bahnen "überlagert " (Problemstellen setzen sich durch, um den Worst-Case zu erhalten) . Un¬ terschreitet der Prozentsatz der Problemstellen (An- teil an der Länge der gesamten Bahnen und Anteil an der zu bearbeitenden Werkstück (Oberfläche, Volumen) ) eine untere Schwelle, kann davon ausgegangen werden, dass es möglich sein wird mit nur einem einzigen in Folge zu optimierenden Plan und damit einem einzigen Roboterprogramm alle jene (gleichartigen) Störungen zu berücksichtigen (evtl . mit geringen Einschränkungen) , und in Schritt III wird demnach verfahren . Ist der Prozentsatz höher, die vorgeschlagene Strategie ist aber nur ein Programm, wird zu Schritt I zurückgegan- gen . Überschreitet der Prozentsatz eine wählbare obere
Schwelle so wird ebenfalls der Anfang-Plan verworfen und nach Schritt I zurückgegangen .
Bestimmen diskreter zu testender Zustände, die die zu¬ sätzliche Dimension in ihrer definierten "Ausdehnung" sparse diskret isieren . Fall A: Automatische Ermittlung der zu testenden Transformationen zwischen Werkstück und Roboterbasis , welche die Bewegung des Werkstücks am Roboter (mit oder ohne 7-Aches ) wiedergibt . Fall B : Automatisches Festlegen der zu testenden Zustände (z.B. (2+l)N oder (2) N oder 2*N+1, siehe Fig. 2) welche die kombinierten N Einzel Störungen wiedergeben . Schnelle Simulation des Anfangs-Plans auf Ausführbar¬ keit in Bezug auf die Dimension/ Störung . Fall A : Er¬ mittlung der Ausführbarkeit jeder einzelner Werkzeug¬ bahn für jeden Versatz (aus I I .1 ) . Bestimmung von Ver- satz- "Fenstern" für die jede Bahn einzeln ausführbar ist . Fall B: Simulation (Ausführbarkeit und Prozesser¬ gebnis ) aller Werkzeugbahnen für jeweils einen Zustand ( Störungsfall aus 11.1 ) . In einem Aus führungsbei spiel kann für eine Variation, die sich nicht auf Lage des Werkstücks die oder Genauigkeit des Roboters beziehen
(sondern z.B. verschieden Wirkungsgrade des Werkzeugs ) auf wiederholte Planung/ Simulation der Roboterbewegung verzichtet werden und der Prozess für eine früher ge¬ plante Roboterbewegung simuliert werden . Detaillierte Simulation und Planung, Fall A : Ermitt¬ lung der Ausführbarkeit jeder einzelnen Bahn für jeden Versatz (aus I I .1 ) . Bestimmung von Versatz -"Fenstern" für die jeder Pfad einzeln ausführbar ist . Ermittlung von Reihenfolgen und Start Zeitpunkten der Pfade, so dass diese - mit Soll-Geschwindigkeit ausgeführt - je¬ weils vollständig innerhalb ihres "Fensters " liegen, d.h. ausgeführt werden . Bewerten ob Rücksprung zu
Schritt I nötig . Fall B : Zusammenfassung von Zuständen (aus I I .1 ) mit gleichartigem Simulationsergebnis in Gruppen, für die in Schritt III jeweils ein Plan gene¬ riert werden soll . Bewerten ob Rücksprung zu Schritt I nötig .
H.a. Information über die zusätzlich Komplexität /Dimension .
Im Fall A über das Bewegungsprofil (Geschwindigkeit , Schwankungen etc . ) der Förderer, im Fall B über die einzelnen Störungen/Parametervariationen und deren zu berücksichtigenden Schwankungsbreite .
11. b . Aufbereitete Information, wie die zusätzliche Komple¬ xität/Dimension geprüft , diskretisiert (abgetastet) werden soll .
11. c . Plan bzw . Werkzeugbahnen in Werkstückkoordinaten, und ggf . Beschreibung des Bereichs des Werkstücks , für den die Bearbeitung durchgeführt werden soll (oder voll¬ ständige Bearbeitung) .
11. d . Simuliertes Ergebnis der Werkzeugbahnen/des Plans
(II . c) für die Zustände (II .b) . Im Fall A: Bahn und
"Fenster" (Menge der gesampelten Positionen, I I . c) für welche die jeweilige Bahn gemäß einfacher Prüfung ausführbar ist .
I I . e . Auswahl der Strategie, Fall A : z.B. ohne Zusatzsachse, mit Zusatzachse, ggf . mit Information über deren Di¬ rnensionierung (Länge, Lage, Dynamik) . Fall B : "ein Programm für alle möglichen Parametervariationen" , "P Programme für P Gruppen von Parametervariationen" .
11. g . Falls die Evaluierung ergibt , das der Anfangs-Plan
(Werkzeugbahnen) für die gewählte Strategie passend ist : Übergabe der initialen Werkzeugbahnen ( 11. c) und (Fall A) Reihenfolgen, Start Zeitpunkte, etc . oder (Fall B) Gruppierung der Zustände gemäß Ergebnis .
II. f. ansonsten Rücksprung. Vorteilhaft inkl. Ergebnisse der Simulation zur Visualisierung/oder Neuplanung .
III: Automatische Detailplanung unter Berücksichtigung der zusätzlichen Dimension . Im Fall A werden die in I I vorgeschlagenen Zustände (Grobpläne, Reihenfolge und Start Zeitpunkte der Pfade) dahingehend optimiert und bewertet , dass jeder einzelne Pfad und die Zwischen¬ bewegungen mit den dynamischen Robotermodell (mit be- grenzten Beschleunigungen und Geschwindigkeiten) in der Zeit geplant und mit der zeitlich veränderlichen Arbeitszelle simuliert werden . Die Optimierung ver¬ ändert dabei Start Zeitpunkte und Ausführungsge¬ schwindigkeit einer Bewegung, sowie geringfügig die ausgeführte Pfade mit dem Ziel den Abstand von den Ro¬ boter-Werkstück Versatz der gerade noch erreichbar ist zu maximieren . Im Fall B wird gemäß einem Ausführungs¬ beispiel unterschieden, ob die Strategie lautet "ein Plan für alle" oder "P Pläne für alle" . Für die Stra- tegie "ein Plan für alle" wird nur der Anfangs-Plan iterativ mit bekannten Verfahren optimiert wobei als Kriterium minimiert werden : Anteil des zu bearbeiten¬ den Werkstücks (i.d.R. als Prozentsatz der zu bearbei¬ tenden Oberfläche) , für den das simulierte Ergebnis (dann abgespeichert auf der Oberfläche) nicht inner¬ halb der erlaubten Toleranzen liegt (bzw . gewichtet , z.B. entsprechend dem Grad der Abweichung) , Ausfüh¬ rungszeit , etc . Im Fall "ein Plan für alle" wird die aktuelle optimierte Version des Plans immer gleich für alle oder mehrerer verschiedene ( zufällige und in An¬ zahl zunehmende) Zustände (der Störungen) simuliert und das Ergebnis "überlagert " , vorteilhaft so überla¬ gert , dass die Störungen die guten Ausführungen über-
schreiben. Für die Strategie "P Pläne für alle" werden die in I I gefunden Gruppen nacheinander abgearbeitet und für jede Gruppe ein eigener Plan optimiert . Dies kann entweder für alle getesteten Zustände einer Grup- pe so durchgeführt werden, wie für die Strategie „ein
Plan für alle", oder für jeden getesteten Zustand der aktuellen Gruppe wird erst simuliert , ob ein zuvor op¬ timierter Plan (der selben Gruppe oder für eine andere Gruppe optimierter Plan) ein hinreichendes Simulat i- onsergebnis liefert . Wenn ja, wird es der Gruppe zuge¬ ordnet (ohne dass der Plan verändert würde) , und wenn nein, wird für den einen aktuell geprüften Zustand der Plan iterativ optimiert (d.h. es entsteht ein neuer Plan) so dass die Kosten (simulierte Probleme, Zeit , etc . ) für nur diesen Zustand minimiert werden . Zustand und Plan bilden eine neue Gruppe . In einer vorteilhaf¬ ten Ausführung werden alle neu (anders als ursprüng¬ lich) zugeordneten Zustände und Zustände, für die eine neue Gruppe "aufgemacht" wurde für Ausnahmebehandlung vorgemerkt , bei der nach Abschluss geprüft wird, ob diese weiter zusammenfassbar sind . Vorteilhaft ist , das die getesteten Zustände innerhalb einer Gruppe ab¬ hängig von den Simulationsergebnissen für getestete Zustände der Gruppe gewählt werden, um an/nahe Be- reichsrändern (Gruppenrändern) und kritischen Stellen genauer (dichter) zu testen als an unkritischen . In Fall A und B wird der Plan oder werden die Pläne mit der Zusatz Information (A : Zeit , B : abgedeckter Bereich der Parametervariationen) gespeichert . In beiden Fäl- len ist eine abschließende Bewertung vorteilhaft - ggf . Rücksprung zu I .
I I I .1. Schleife über alle initialen Reihenfolgen (Fall A) oder (Fall B) Fälle/Gruppen .
I I I .2. Planung/Optimierung variiert die Pfade in Zeitpunkt ,
Geschwindigkeit , deren genauen Verlauf zur Minimierung der (in 111.3 ) simulierten Problemstellen (z.B. in Prozent der Oberfläche) und/oder zur Minimierung der Ausführungs zeit . III.3. Simulation der Roboterbewegung über die Zeit und des daraus resultierenden Prozessergebnisses (verwendet in III .2) .
I I I . a . Variierte Prozessbahn;
Ill.b. Simulationsergebnis: Genau (mit Robotermodell ) simu¬ lierte Roboterbewegung (inklusive Abweichungen von der idealen Soll-Bahn) und dem dafür simulierten Prozess¬ ergebnis (auf Werkstückbeschreibung : z.B. CAD-Modell der Werkstückoberfläche) , ggf . Abbruchsmeldung wenn undurchführbarer Anteil der Bahn oder Rechenzeit oder
Iteration eine zugehörige Schwelle übersteigt ;
111. c Rücksprung bis alle Gruppen oder Reihenfolgen abgear¬ beitet sind oder ein ausreichend gutes Ergebnis er¬ zielt wird;
I I I . d Rücksprung zu Schritt I, wenn keine Lösungen gefunden wird ( für einen oder hinreichend großen Anteil der Fälle) ;
I I I . e Wenn Pläne gefunden : Weitergabe inklusive zugehöriger
Information über die zusätzliche Dimension . ( Im Fall A : Angabe über Zeit oder Position des Förderers für die einzelnen Stützpunkte der Bewegung/Plan, im Fall B : Bereich der Störung, für die die Pläne anzuwenden sind) .
Generierung von Programmen mit Zusatz Information über die zusätzlich Dimension .
Fall A : Konvertierung der (in Achskoordinaten und Zeit ) geplanten Roboterbewegung in ein Roboterprogramm aus Stützpunkten (oder Splines etc . ) mittels Abtastung der geplanten Bewegungen (mit Angaben zu den Geschwin¬ digkeiten und Zeit /Bauteilposition/Encoderwert der Förderers zu dem diese Position erreicht werden soll ) . Das Programm kann in zwei Teilen ausgegeben werden : i ) Als Liste von Positionen und Geschwindigkeiten wel¬ ches dichter gesetzt/abgetastet ist , als für einen Ro¬ botercontroller nötig; und
ii } ein Abarbeitungsprogramm in Form einer Schleife, welches den aktuellen Ist-Wert (Position und Geschwin¬ digkeit ) des Förderers liest und abhängig davon die nächste Sollposition des Roboters aus i) wählt oder interpoliert und die Geschwindigkeit abhängig von der aktuellen Geschwindigkeit des Förderers und den Fort¬ schritt der Bewegung des Roboters in Bezug auf die Förderbewegung (vorrauseilend, hinterherhinken) mit einem einfachen bekannten Regelprinzip (P , PID, .,,} an- passt (Line-Tracking) . Mit dieser vorteilhaften Reali¬ sierung werden Fehler in der Planung der Roboterbewe¬ gung (insbesondere Fehler im Modell des Roboterdynamik und der Steuerung) kompensiert und die Roboterge¬ schwindigkeit passt sich automatisch der Förderge¬ schwindigkeit an, bis zu einem vollen Stopp oder gar einer Rückwärtsbewegung .
Fall B : Für jede Gruppe : Konvertierung der geplanten Roboterbewegung in ein Roboterprogramm aus Stützpunk-
ten (oder Splines etc . ) mittels Abtastung der geplan¬ ten Bewegungen . Abspeichern zusammen mit der Zusatzin¬ formation über den Anwendungsbereich (= messbare Para¬ metervariation der jeweiligen Gruppe)
IV.1 Modul zum konvertieren von Plänen in ausführbare Robo¬ terprogramme mit Zusatz Information und Speichern .
IV. a. Ausführbare Roboterprogramme mit Zusatz Information für die Verwendung in Bezug auf zusätzliche Komplexi¬ tät/Dimension .
V: On-line Abarbeitung :
Fall A : Sensorielle Erfassung der Dimension Förder¬ bewegung (Position und Geschwindigkeit ) und Abarbeiten des Programms gemäß dem Bewegungsfortschritt des För¬ derers . Vorteilhafter Fall wie in IV beschrieben .
Fall B : Sensorielle Erfassung des Ist-Wertes der Stö¬ rung (en) und Auswahl der entsprechenden Gruppe . Abar¬ beiten des dieser Gruppe zugeordneten Programms . Op¬ tional interpolieren oder optimieren mit der genau ge¬ messenen Störung .
V.1. Sensor (en)
V.2. Interpretation des Sensordaten als Wert bezügl . der automatisch berücksichtigten Dimension .
V.3 Auswahl oder Abarbeitung des Programms gemäß interpre¬ tierten Sensordaten .
II . a Information über zusätzlich zu berücksichtigende Di¬ mension/Komplexität
I I . c Werkzeugbahnen in Werkstückkoordinaten (inkl. Informa¬ tion Werkstück, z.B. CAD)
11. e Information über Strategie zur Berücksichtigung der zusätzlichen Dimension/Komplexität
Figur 5 zeigt insbesondere detaillierte Beschreibung der Ein¬ gabe/Planung vor der Berücksichtigung der zusätzlichen Kom¬ plexität/Dimension (Überblick : Fig .4 ) .
Planung/Definition o . Berücksichtigung der zusätzli¬ chen Dimension/Komplexität ;
Eingabe von Information über das Werkstück (z.B. CAD Daten und relevante Fläche) ;
Definition der Anwendung z.B. aus vorgelagerten Pro¬ zessschritten (z.B. Q . S ) ;
GUI zur Interaktiven Definition der Anwendung;
Modul zum prozessorientieren Planen der Werkezeug- bewegungen;
Schnittstelle zum Einlesen existierender Programme und Pläne ;
OLP Modul;
Modul zur Konvertierung konventioneller Programme in Werkzeugbahnen in Werkstückkoordinaten;
Speichern der Werkzeugpfade ;
Schnittstelle zur Eingabe der Information über die Veränderung der Zelle über die Zeit . Im Falle des "Li- ne-Tracking" (Fall A) ist dies die gemessene Bewe¬ gungsgeschwindigkeit eines Förderers und damit des Werkstücks , und frühester Start- spätester Endzeit¬ punkt des Programms oder der möglichen Variationen (Fall B) ( Im Falle der Prozessabsicherung sind dies Information über EinzelStörungen und ggf . deren Abhän¬ gigkeiten oder Ausschluss ) ;
1.10. Schnittstelle zur Auswahl der Strategie zum Umgang mit der zusätzlichen Dimension; II . Automatische Analyse und VorVerarbeitung (wird be¬ schrieben in Fig . 5 und im Detail in Fig . 6 (Fall A) und Fig. 7 (Fall B) ;
I . a : Information über das Werkstück (i.d.R. CAD und Zusatz- Information z.B. Markierung der zu bearbeitenden Flä¬ che des Werkstücks )
I . b . On-line erzeugte Information über Anwendung : Z.B. An¬ weisungsliste (Werkzeug + Werkstückorientiert ) aus Sensorik bzw . QS . (Gefundene Fehler / Markierungs- punkte / Markierungspfade ...)
I.e. Interaktiv definierte Werkzeugbahnen (in Werkstückko¬ ordinaten)
I . d . Roboterprogramme (existierend, eingelesen)
I.e. Roboterprogramme (in OLP generiert )
I . f . Werkzeugbahnen in Werkstückkoordinaten ( inkl . Informa¬ tion Werkstück, z.B. CAD)
I . g . Werkzeugbahnen in Werkstückkoordinaten (inkl . Informa¬ tion Werkstück, z.B. CAD)
H.a. Information über zusätzlich zu berücksichtigende Di- mension/Komplexität
I I . c Werkzeugbahnen in Werkstückkoordinaten (inkl . Informa¬ tion Werkstück, z.B. CAD)
11. e Information über Strategie zur Berücksichtigung der zusätzlichen Dimension/Komplexität
Figur 6 zeigt im Detail :
Planung/Definition ohne Berücksichtigung der zusätzli¬ chen Dimension/Komplexität , wird beschrieben in Fig . 4 und im Detail in Fig . 5; 11. Automatische Analyse der Auswirkung d . zusätzliche Di¬ mension und Vor erarbeitung;
11.1. Ermittlung/Festlegung des Suchraums und der Abtastung
(= zu testenden Zustände) ;
11.2. Aufbau einer „Feasibilty Map" d.h. Versatz der
Werkstücke für den Wegepunkte/Werkzeugpfade kollisi¬ onsfrei erreichbar oder ausführbar sind; 11.3. Simulation der Erreichbarkeit /Ausführbarkeit der Weg¬ punkte (der Werkzeugbahnen) ;
11.4. Falls Zusatzachsen : Ermittlung vorteilhafter Konfigu¬ rationen dieser Achsen über die Zeit , z.B. durch Maxi - mieren der Breite der zur Verfügung stehende Puffer;
11.5. Optimieren der Reihenfolge : Verändern der Reihenfolge der Werkzeugpfade ( immer alle Wegpunkte eines Werk¬ zeugpfads ) und Bewertung . Kriterium (siehe Fig . 3 ) : Die Linie, die die Bewegung des Förderers repräsen¬ tiert , schneidet alle (oder möglichst viele) vertika¬ len Linien, die die erlaubten Verschiebungen je Weg¬ punkt repräsentieren . Bewertet (maximiert ) wird der Abstand zwischen den Schnittpunkten und (beiden oder dem letzen) der Extremwerten der vertikalen Linien .
Die Zeit für Bewegung zwischen Werkzeugpfaden kann aus einer Standardeinstellung, Schätzung oder Ermittlung stammen (eben so in I I .6 ) ;
11.6. Optimieren des Start Zeitpunktes der Werkzeugpfade (und ggf . deren Bahngeschwindigkeit) . Maximiert wird entwe¬ der der Abstand zum spätest möglichen Zeitpunkt (d.h. ein Puffer wird aufgebaut der Verzögerungen in der Ro¬ boterbewegung toleriert } oder Abstand zum frühest und spätest möglichen Zeitpunkt (d.h. der Puffer ist sym¬ metrisch) ;
II .7 Speichern und Bewerten der Lösung (en) ;
H.a. Information über Bewegung/Veränderung der Zelle über die Zeit ,
11. b . Strategie zur Berücksichtigung dieser zusätzlichen Di- mension/Komplexität ,
11. c . Werkzeugpfade (in Werkstückkoordinaten) , Info über
Werkstück und Zelle,
11. d . (Menge der) zu testende Zustände (Variationen)
11. e . Wegpunkte der Werkzeugpfade (optional Segmente oder ganze Werkzeugpfade) - und aktuell zu prüfender Zu¬ stand,
11. f . Bewertung der Erreichbarkeit /Ausführbarkeit des Wer- punktes für den aktuellen Zustand,
I I . g . Feasibility Map,
I I . h . Strategie zur Berücksichtigung dieser zusätzlichen Di- mension/Komplexitä,
11. i . Werkzeugbahnen, Feasibilty Map und Konfiguration der
Zusatzachsen (über die Zeit ) ,
11. j . gefundene, optimierte Reihenfolgen der Werkzeugpfade, I I . k . Rücksprung wenn keine Reihenfolge gefunden,
11.1. gefundene, optimierte Start Zeitpunkte und Bewegungsge¬ schwindigkeiten der Werkzeugbahnen,
Il.m. Rücksprung, wenn keine Start Zeitpunkte für Reihenfolge gefunden,
11. n . Rücksprung, wenn für keine Reihenfolge ausführbare
Start Zeitpunkte gefunden (aber Ergebnis knapp) ,
I I . o . Werkzeugpfade mit Start Zeitpunkten und Geschwindigkeit
(Wegpunkte als Punkte in der Zeit ) . Zusätzlich erlaub¬ te Verschiebungen (max_delay) (in Zeit oder in Bezug auf Versatz Werkstück - Förderer) ,
11. p Rücksprung wenn keine hinreichend bewerte Lösung (Rei- henfolge/Start Zeitpunkte) .
Figur 7 zeigt im Detail die automatische Analyse der Zustände und Vorbereiten/Einteilen in Gruppen für die Planung in
Schritt III .
I . Planung/Definition ohne Berücksichtigung der zusätz¬ lichen Dimension/Komplexität , wird beschrieben in Fig . 4 und im Detail in Fig . 5; 11. Automatische Analyse und VorVerarbeitung (Fall B)
I I .1. Festlegung der Abtastung . Festlegen der Zustände zur
Abdeckung der (in I I . a spezifzierten) Breite der zu¬ sätzlichen Dimension und Reduktion zur Berücks icht i- gung von (in I I . a spezifizierten) Korrelatio¬ nen/Abhängigkeiten,
I I .2. a . (Schleife zum) Abarbeiten jedes Zustands aus I Ib .
Aufruf der Simulation/Planung für jeden Zustand , I I .2. b . Bewertung des Ergebnisses der Simulation für den ak- tuell getesteten Zustand . Gruppieren der Zustände nach ähnlichen Ergebnissen („gleiche Probleme am gleichen Ort , Bewegungsabschnitt" ) ,
11.3. Plane/ simuliere die Roboterbewegung für den aktuell getesteten Zustand und die Werkzeugpfade (des
Plans) ,
11.4. Simuliere den Prozess für die Roboterbewegung, 11.5. Bewerte das Ergebnis 11. i für die gewählte Strate¬ gie . Insbesondere vergleiche Anzahl der Gruppen ob ein oder mehrere Pläne ( später Programme) erlaubt .
I I .5 kann und I I .2. b können zusammengezogen werden um die Schleifenbearbeitung frühzeitig abarbeiten zu können . )
H.a. Information über zusätzliche Dimension . Anzahl der einzelnen Variationen und Breite ihrer jeweiligen Streuung (z.B. min-max) . Evtl . Korrelationen, Aus™ schluss etc,
11. b . Liste der zum Abtasten/Analyse des Raums der neuen
Dimension (en) zu prüfenden Zustände,
11. c Werkzeugpfade (und Information über Werkstück, z.B.
CAD und zu bearbeitende Bereiche) ,
11. d . Werkzeugpfad und Zustand,
11. e . Wenn keine hinreichend gute Roboterbewegung gefunden
(die X% erfolgreich ausführt ) : Abbruch,
11. f . Geplante und simulierte Roboterbewegung und aktuel¬ ler Zustand,
I I . g . Simulationsergebnis das Roboterbewegung aus I I .3 =
II . f,
11. h ... bis alle Zustände abgerabietet
11. i . Alle Zustände und Ergebnisse,
II . j . Strategie,
11. k Abbruch, wenn nicht hinreichen,
11.1 Weitergabe von Gruppierten Zuständen (und initiale
Werkzeugpfade) .
II.2, 11.3 , 11.4 , 11.5 greifen auf die Informationen betref¬ fend das Werkstück zu, ohne dass die Informationsflüsse hier explizit dargestellt wurden . Figur 8 betrifft den Schritt III für den Fall der zu berück¬ sichtigenden Werkstückbewegung, den automatischen Feinpla- nungs-/optimierungs/VaIidierungsschritt und zeigt insbesonde¬ re : 111.1. a (und 111.1. b} Schleife und Bewertung über alle gefun¬ den Sequenzen, Abbruch nach allen, oder optional nach erster hinreichend guter Sequenz (über Schwelle) , 111.2. Anpassung der Werkzeugpfade an begrenzte Beschleuni¬ gung und Geschwindigkeit der einzelnen Achsen durch Modifikation der Wegpunkte,
111.3. State-x-time Planung für die modifizierten Bahnen, 111.4. Simulation des Roboterbewegung und des Prozessergeb¬ nisses für die geplanten Roboterbahnen (in veränder¬ licher Umgebung) ,
I I I . a . Werkzeugbewegungen inkl . Sequenz und Timing,
I I I . b . Modifizierte Roboterbewegungen ( im Zustandsraum) , 111. c Geplante Roboterbewegungen für Werkzeugpfade und Zwi¬ schenbewegung,
I I I . d Simulierte geplante Roboterbewegung,
111. e Simulierte Roboterbewegung oder keine Lösung (z.B.
bei Timeout , etc . ) ,
111. f Rücksprung zu 111.2 sofern geplante Roboterbewegung keine Lösung (mit Problem / Ursache warum keine Lö- sung) ,
111. g Am besten bewerteter (Plan im Detailierungsgrad ei¬ ner) Roboterbewegung im Zustandsraum inklusive Infor¬ mation über Zustand (gleichzeitig mit geplanter Robo-
terbewegung stattfindende Änderung der Zelle) / In¬ formation übe Zeit / Förderer,
I I I . h . Rücksprung solange weitere Reihenfolgen und kein Ti¬ meout .
Figur 9 betrifft den Schritt III für den Fall der zu berück¬ sichtigenden Parametervariationen, den automatischen Feinpla- nungs-/optimierungs/VaIidierungsschritt und zeigt für die Strategie "Ein Plan für alle" insbesondere :
111.1. a und I I I .1. b . : Optimierung der Werkzeugbahnen durch Variation (a) und Bewertung (b) gemäß Kriterien : Maximierung des Anteils der Oberfläche mit brauchbaren Prozessergebnis (bzw . Minimierung der unbrauchbaren) , Minimierung der Ausfüh¬ rungszeit oder Maximierung Abstand von Kollisionen, etc . Pla¬ nung einer genauen Roboterbewegung für die Werkzeugbahn .
(Details in Fig . 13, links ) 111.2. a : Schleife über verschiedene (einige zufällig gewählte bis alle) Zustände . Beispielsweise werden in den ersten Ite¬ rationen nur ein (mit Zufallsgenerator gewählter und je Ite¬ ration zunehmend vollständiger) Teil aller Zustände getestet . Der Anteil (in Prozent ) wird in I I I .1. a festgelegt .
111.2. b . Zusammenfassung des Ergebnisses , vorteilhaft in ei¬ ner worst-case-Überlagerung der Ergebnisse auf dem Werks¬ stück . 111.3. Simulation des Roboterbewegung und des Prozess¬ ergebnisses für die geplanten Roboterbahnen aus IUI. je Zu¬ stand aus I I . (Details in Fig . 13, rechts ) .
I I I . a . Roboterbewegung,
I I I . b . Roboterbewegung und gewählter zu simulierender Zu¬ stand,
I I I . c . Ergebnis der Simulation,
I I I . d . Rücksprung solange nicht alle Zustände abgearbeitet I I I . e . Zusammengefasstes Ergebnis über alle simulierten Zu¬ stände (z.B. Worst-case) ,
I I I . f . Rückgabe zur Optimierung (solange kein Timeout , hin¬ reichendes Ergebnis , Konvergenz , ...) .
Figur 10 betrifft den Schritt III für den Fall der zu berück sichtigenden Parametervariationen, den automatischen Feinpia nungs-/optimierungs/VaIidierungsschritt und zeigt für die Strategie "Ein Plan für alle" insbesondere :
I I I .1. a Schleife über alle in I I initial gefundenen Gruppen
111.1. b Schleifenende, Speichern der Gruppen und Evaluie¬ rung : Rücksprung solange nicht alle Gruppen abgear¬ beitet , ansonsten weiter . Sofern etablierte Gruppen größer erlaubte Anzahl N an Programmen ( Strategie gesetzt in I } Ausstieg, zurück zu I);
111.2. a Bestimmung der zu testenden Zustände innerhalb der
Gruppe und Abarbeitung als Schleife . In einer vor¬ teilhaften Realisierung ist die Abtastung variabel : 1 ) abhängig von Ergebnissen vorheriger Zustände (dichter wo Probleme, wo Übergänge) , 2 ) Dichter an Grenzen der Gruppe im ZuStandsräum;
I I I .2. b Schleifenende . Abspeichern des getesteten Zustande zu einer existierenden Gruppe oder Bildung neuer Gruppe . Rücksprung sofern nicht ausreichend dicht abgetastet oder weiter . Sofern die Anzahl der be¬ reits gebildeten Gruppen größer als die erlaubte An
z ahl N an Programmen : Ausstieg und zurück zu I ) . Evaluierung ob Gruppe ausreichend komplette hier (oder in IIa) ; I I I .3. a Schleife : Rufe für zu testenden Zustand alle bisher je Gruppe gebildeten Pläne auf und initiiere dessen Simulation . Starte mit der aktuellen Gruppe (Keine Änderung von Plänen hier) ; 111.3. b Schleifenende . Zwischenspeichern und Bewerten der
Simulationsergebnis für die getesteten Pläne (Aus¬ führbar, Dauer, Prozessergebnis , ggf . Stabili¬ tät/Abstand von Kollisionen) . Z.B.: Abbruch wenn Si¬ mulationsergebnis für den Plan der zur Gruppe gehört hinreichend gut , ansonsten testen für alle Pläne und
Auswahl des Besten;
111.4 Simulation der Roboterbewegung und des Prozesses
(Details in Figur 13, rechts ) ;
I I I .5. a (und I I I .5. b) Optimierung der Werkzeugbahnen durch
Variation ( a ) und Bewertung (b) gemäß Kriterien : Ma- ximierung des Anteils der Oberfläche mit brauchbarem Prozessergebnisses , Minimierung der Ausführungs zeit oder Maximierung Abstand von Kollisionen, etc . Pla¬ nung einer genauen Roboterbewegung für die Werkzeug¬ bahn . (Details in Fig . 13, links ) . Ende sobald Schwelle überschritten ist , timeout , max . Anzahl Iterationen, Konvergenz langsamer, etc .
III .6. Abschließende Bewertung (wie vollständig, wie gut )
Vergleich mit Strategie, ggf . Rückgabe zu I .
I I I . a . Aktuelle zu testende Gruppe und zu testender Plan ( im Detailierungsgrad Werkzeugbahnen)
I I I . b . Aktuelle zu testender Zustand und zu testender Plan
( im Detailierungsgrad Werkzeugbahnen)
I I I . c . Aktuelle zu testender Zustand und zu testender Plan
( im Detailierungsgrad Werkzeugbahnen) entweder ini¬ tial oder andere gefunden Pläne....
I I I . d . Bewertung
I I I . e . Rücksprung wenn Plan nicht hinreichend bewertet
(oder Variante - wenn nicht der initiale Plan passt solange bis alle Pläne getestet )
111. f Zustand und passende Gruppe gefunden : Übersprungen der weiteren Optimierung wenn passender Plan gefun¬ den
I I I . g . Zustand (wenn kein bisheriger Plan passend)
I I I . h . Optimierte Roboterbewegung (nur beim ersten mal ge¬ ändert ! )
111. i Ergebnis aus BewegungsSimulation und ProzessSimula¬ tion
Ill.j. Rückgabe zur Optimierung (solange kein Timeout , hin¬ reichendes Ergebnis , Konvergenz , ...)
I I I . k . Zustand und passende Gruppe (m. Plan) oder kein Plan für diesen Zustand generierbar .
111.1 Rückgabe bis ausreichend Dicht getestet (hier auch
Abbruch wie in III . o, I I I . q . )
111. m Zustand + Gruppe + Plan
111. n Rücksprung zu Schleifenanfang bis alle Gruppen abge¬ arbeitet .
111. o Abbruch
I I I . p Gruppe und Plan
111. q Abbruch
111. r Alle gebildeten Gruppen inkl. Plan je Gruppe
Gemäß einem Ausführungsbeispei können für eine Gruppe, für welche bereits ein Plan in I I I .5 optimiert wurde, j ene Zu¬ stände, für die in I I I .3 dieser Plan kein hinreichend gutes Ergebnis liefert , zwischengespeichert werden und erst nachdem alle (anderen) Zustände getestet wurden (und ggf . Pläne modi¬ fiziert wurden) diese nochmals in III mit den Plänen für alle Gruppen getestet werden und ggf . die Generierung neuer Pläne und Gruppen initiieren . Dadurch werden diese Zustände gegen mehr bereits optimierte Pläne getestet und eine Zuordnung ist wahrscheinlicher, und die Zahl der Gruppen kann damit gerin¬ ger gehalten werden .
Figur 11 zeigt Details des Verfahrensablaufs aus Fig . 4 für Schritt V (On-line Ausführung eines Programms mit Berücksich¬ tigung der Werkstückbewegung) . Insbesondere Zeigt Fig . 11 :
V .1 Sensor zum erfassen der Information über die zusätzli¬ che Dimension Bewegung, z.B. Encoder von Fördereren;
V .2 Interpretation der Sensordaten, z.B. Extraktion von
Zustand und Geschwindigkeit des Förderers ;
V .3 Anpassung/Regelung der Programmausführung an den Pro¬ grammfortschritt und an die extrahierte Information über die Bewegung des Förderers . Variable Auswahl der nächste Stützpunkte aus dem Programm mit überdicht ab¬ getasteten Stützpunkten ( j e nach Förderer-Position und Geschwindigkeit Stützpunkt) oder auch Interpolation und Geschwindigkeit für die nächste Bewegung (v varia¬ bel) , und/oder wähle nächste Position;
V .4 RoboterSteuerung bzw . Roboter Motion-Control .
V . a . Sensorinformation über zusätzliche Dimension, z.B.
Encoderwerte,
V . Interpretierte Information, z.B. Position und Bewe¬ gungsgeschwindigkeit des Werkstücks ,
V . c . Angepasste Programm/Wegpunkte (Point-to-Point , PTP ) .
Figur 12 zeigt Details des Verfahrensablaufs aus Fig . 4 für Schritt V (On-line Ausführung eines Programms mit Berücksich tigung der Parametervariationen) . Insbesondere Zeigt Fig . 12
V .1 Sensor zum Erfassen der Information über die zusätzli¬ che Dimension . Z . b . Kamera für Lageerfassung oder Durchflussmessung /Druckmessung,
V .2 Interpretation der Sensordaten, z.B. Lageabweichung des Werkstück oder Schichtdickenauftrag/ Sekunde,
V .3 Auswahl des passende Roboterprogramms (gemessene Lage¬ abweichung ist in Wertebereich/ Zustandsräum der Grup¬ pe) . Einspeisung in RoboterSteuerung;
V .4 RoboterSteuerung bzw . Roboter Motion-Control .
V . a . Sensorinformation über zusätzliche Dimension, z.B. Ka¬ merabild, Punktwolke,
V . b Interpretierte Information, z.B. erkannte Lage (bzw .
Lageabweichung) des Werkstücks ,
V . c . Ausgewähltes Roboterprogramm (PTP) .
Figur 13 zeigt Details im Verfahrensablauf des Optimie¬ rungsschrittes III wie in den Fig . 8 bis 10 gezeigt . Fig . 13 zeigt insbesondere :
I I I .1. a Werkzeugpfad (=Werkzeugbahn) ; Optimierer : Vari¬ iert Wegepunkte der Pfade (beinhaltet Anstellung
des Werkzeugs zum Werkstück) mit bekannten Metho¬ den entsprechen Bewertung aus I I I .1. b .
I I I . a .1. b . Bewertung Kriterium: Minimierung des Anteils der
Fläche des Werkstücks für das die Simulation ein nicht brauchbares Ergebnis meldet . Optional , Mi¬ nimiert den Anteil der Segmente der Werkzeugbah¬ nen, die laut Planung und Simulation mit dem Ro¬ boter nicht ausführbar sind . Zwischenspeichern Ergebnis (Plan mit Prozentanteil für den Prozess und Roboterbewegung in Ordnung sind, Ausführungs¬ zeit ) .
I I I . a .2. Nachbehandlung Werkzeugbahn : Kollisionsvermeidung für Werkzeug und Glättung . Überwachung von Para¬ metergrenzen? Variation kleiner als Grenzwert (sonst wäre es neu und I I I . a .1 übersehrieben/Wir- kungslos ) . 111. a .3 Bewegungsplanung für den Roboter in state-x-time, inklusive Berücksichtigung der Beschleunigungs¬ und Geschwindigkeitsbeschränkungen der Achsen wie in Fehler ! Verweisquelle konnte nicht gefunden werden . beschrieben .
I I I . b .1 Bewegungs Simulation (dynamisches Modell) ,
I I I . b .2 Bewertung auf Ausführbarkeit (Kollisionsfrei)
Aus führungs zeit ,
I I I . b .3 Modelle, inklusive Modell der Zelle, Roboter,
Werkstück, Werkzeug, Prozess ,
I I I . b .4 Prozess Simulation;
I I I . a . a Werkzeugpfade variiert ;
I I I . a . b Zugriff auf Modell Werkzeug und Werkstück ;
Rückgabe wenn keine kollisionsfreie Werkzeugbewe gung gefunden für die Änderung kleiner als Grenz wert ;
Geglättete Werkzeugpfade ohne Werkzeugkollisio¬ nen;
Geplante Roboterbewegungen für Werkzeugpfade und
Zwischenbewegung;
keine Roboterbewegung gefunden;
Zugriff auf Modelle;
Simulierte geplante Roboterbewegung;
Geprüfte Roboterbewegung
Rücksprung wenn Roboterbewegung nicht OK .
Zugriff auf Modelle (Prozess , Werkzeug, Werk¬ stück) .
Roboterbewegung und Bewertung (Simulationsergeb¬ nis Prozess )