DE102011082800A1 - System und Verfahren zur automatisierten Erstellung von Roboterprogrammen - Google Patents

System und Verfahren zur automatisierten Erstellung von Roboterprogrammen Download PDF

Info

Publication number
DE102011082800A1
DE102011082800A1 DE201110082800 DE102011082800A DE102011082800A1 DE 102011082800 A1 DE102011082800 A1 DE 102011082800A1 DE 201110082800 DE201110082800 DE 201110082800 DE 102011082800 A DE102011082800 A DE 102011082800A DE 102011082800 A1 DE102011082800 A1 DE 102011082800A1
Authority
DE
Germany
Prior art keywords
workpiece
plan
robot
tool
der
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE201110082800
Other languages
English (en)
Other versions
DE102011082800B4 (de
Inventor
Christoph Eberst
Massimo Ferri
Bernhard Stöffler
Riccardo Tornese
Gerhard Umgeher
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CONVERGENT INFORMATION TECHNOLOGIES GmbH
Original Assignee
CONVERGENT INFORMATION TECHNOLOGIES GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CONVERGENT INFORMATION TECHNOLOGIES GmbH filed Critical CONVERGENT INFORMATION TECHNOLOGIES GmbH
Priority to DE102011082800.1A priority Critical patent/DE102011082800B4/de
Priority to CN201280055001.5A priority patent/CN104010774B/zh
Priority to KR1020147009832A priority patent/KR102028770B1/ko
Priority to PCT/EP2012/067413 priority patent/WO2013037693A2/de
Priority to US14/345,313 priority patent/US9701019B2/en
Publication of DE102011082800A1 publication Critical patent/DE102011082800A1/de
Application granted granted Critical
Publication of DE102011082800B4 publication Critical patent/DE102011082800B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40385Compare offline teached point with online teached point, modify rest as function of error

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

Es wird ein Verfahren zum automatisierten, computergestützten Erzeugen von Arbeitsablaufplänen für die Behandlung oder Bearbeitung eines Werkstücks mit einem Werkzeug durch einen Industrieroboter offenbart. Gemäß einem Beispiel der Erfindung umfasst das Verfahren folgendes: Das Bereitstellen 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 beeinflussende Prozessparameter, wobei eine Werkzeugbahn die Soll-Bewegung des Werkzeugs entlang des Werkstücks festlegt; Das Definieren eines Zustandsraumes, der variable, die Behandlung bzw. Bearbeitung beeinflussende Parameterwerte beschreibt, wobei jeder Punkt des Raumes eine konkrete Kombination von möglichen Parameterwerten darstellt; Das Diskretisieren des Raumes in einzelne Zustände; Das Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des Ausgangsplanes für einen oder mehrere diskrete Zustände und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend einem vorgebbaren Kriterium; und iteratives Modifizieren des Ausgangsplanes, anschließendes Simulieren der Behandlung bzw. Bearbeitung 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.

Description

  • Die Erfindung betrifft ein System und ein Verfahren zur automatisierten Programmierung und Optimierung von robotischen Arbeitsabläufen eines Industrieroboters mit einer Robotersteuerung.
  • Industrieroboter werden herkömmlich über eine Roboterprogrammiersprache programmiert. Das Ergebnis der Programmierung besteht in einem Programm, das die Robotersteuerung insbesondere hinsichtlich der Bewegungen des spezifischen Roboters instruiert. Die Programmierung von Robotern ist ein zeitaufwändiger Prozess. Bei klassischen Programmierverfahren für Roboter arbeiten ”on-line”, d. h. der Roboter ”lernt” (durch Aufzeichnung) 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 beschleunigen, 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 Ergebnis der Programmierung ist ein mit Hilfe der Simulation validiertes Roboterprogramm. Wenn die Simulation und die Off-line-Programmierung abgeschlossen sind, wird das Roboterprogramm 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 hinsichtlich genauer Robotersimulationen, die nicht nur die Bewegung des Roboters reproduzieren, sondern auch die Programmausführung, ja sogar Systemfehler simuliert, die bei dem realen 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 vermeiden. Auf der Grundlage dieser Notwendigkeit sind in der Simulationssoftware für die Robotersimulation zunehmend genaue Modelle der realen Robotersteuerungen aufgenommen worden, was dazu geführt hat, dass so genannte ”virtuelle Robotersteuerungen” 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 Abarbeitung des tatsächlichen Roboterprogramms. Die Publikationen WO 03/059582 und DE 11 2008 003 963 T5 beschreiben beispielhafte 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 explizit angegeben, entweder durch die Definition aller Achswerte bzw. Achsstellungen des Industrieroboters oder durch die Definition kartesischer TCP-Koordinatenwerte (Positionskoordinaten x, y, z, und Winkelkoordinaten α, β, γ) plus eventuell die zu verwendende Konfiguration (Ellenbogen oben/unten, etc.) oder die zusätzlicher Achswerte bei Zwischenpositionen, 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-Programmierung bestimmt, welche ebenfalls (manuell oder halbautomatisch) 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 Steuerungsvorrichtung des Industrieroboters geplant, interpoliert und abgefahren. 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 an 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 unterstützt werden von bekannten Methoden insbesondere Anwendungen mit zusätzlicher Komplexität in Form weiterer Freiheitsgraden oder Variationen (Toleranzen) welche bei der Programmierung berücksichtigt werden müssen wie z. B.
    • (A) aktive Bewegung des Werkstücks, die in dem Roboterprogramm berücksichtigt werden müssen, wie z. B. wenn berücksichtigt werden muss, dass das Werkstück auf einem Förderer bewegt wird, während der Roboter beispielsweise fest montiert ist, (oder das Werkstück von einem weiteren Roboter oder Aktuator (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, beispielsweise Schwankungen der Werkstückform oder -lage 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 besteht also darin, eine Offline-Generierung von ”robusten” Roboterprogrammen zu ermöglichen, welche trotz zum Zeitpunkt der Programmierung unbekannten Variationen des Werkstücks oder von Prozessparametern oder trotz zusätzlicher Freiheitsgrade wie eine dem Werkstück überlagerte Bewegung zuverlässig und vorhersagbar arbeiten.
  • Diese Aufgabe wird durch das Verfahren gemäß Anspruch 1 gelö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 Werkzeug durch einen Industrieroboter offenbart. Gemäß einem Beispiel der Erfindung umfasst das Verfahren folgendes: Das Bereitstellen 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 beeinflussende Prozessparameter, wobei eine Werkzeugbahn die Soll-Bewegung des Werkzeugs entlang des Werkstücks festlegt; Das Definieren eines Zustandsraumes, der variable, die Behandlung bzw. Bearbeitung beeinflussende Parameterwerte beschreibt, wobei jeder Punkt des Raumes eine konkrete Kombination von möglichen Parameterwerten darstellt; Das Diskretisieren des Raumes in einzelne Zustände; Das Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des Ausgangsplanes für einen oder mehrere diskrete Zustände und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend einem vorgebbaren Kriterium; und iteratives Modifizieren des Ausgangsplanes, anschließendes Simulieren der Behandlung bzw. Bearbeitung 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.
  • Das Verfahren kann weiter aufweisen: Das Zuordnen des optimierten Planes sowie den bei der Iteration verwendeten Zustand zu einer ersten Gruppe; Das Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des optimierten Planes für einen weiteren diskreten Zustand und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend der vorgebbaren Kostenfunktion; Das Zuordnen des bei der Simulation verwendeten weiteren Zustand 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 unterschreitet.
  • 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 entsprechend 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 verwendete Zustand wird einer ersten Gruppe zugeordnet.
  • Vor dem iterativen Modifizieren eines Plans für einen konkreten Zustand, kann durch Simulation geprüft werden, ob mit einem bereits zuvor optimierten Plan für den konkreten Zustand ein Bearbeitungs- bzw. Behandlungsergebnis erzielt wird, für das die Kostenfunktion einen vorgegebenen Schwellwert unterschreitet.
  • Gemäß einem weiteren Beispiel der Erfindung umfasst das Verfahren folgendes: Das Bereitstellen 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 beschreibende Prozessparameter, wobei eine Werkzeugbahn die Soll-Bewegung des Werkzeugs entlang des Werkstücks festlegt; Das Definieren eines Zustandsraumes, der mögliche Reihenfolgen und Startzeitpunkte der Werkzeugbahnen des Anfangsplans beschreibt, wobei jeder Punkt des Raumes eine konkrete Reihenfolge mit einem konkreten Startzeitpunkt beschreibt; Das Diskretisieren des Raumes in einzelne Zustände; Das Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des Ausgangsplanes für unterschiedliche diskrete Zustände und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend einem vorgebbaren Kriterium; und Iteratives Modifizieren des Ausgangsplanes, anschließendes Simulieren – unter Berücksichtigung einer dem Werkstück überlagerten Bewegung – der Behandlung bzw. Bearbeitung 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 spezifiziert 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 Bearbeitung eines bewegten Werkstücks mit einem Werkzeug durch einen Industrieroboter entsprechend einem Plan umfassend einer Vielzahl von durch Wegpunkte definierten Roboterbewegung, wobei jedem Wegpunkt eine Soll-Position des Werkstücks zugeordnet ist; das Verfahren umfasst während des Ausführens einer Roboterbewegung folgendes: Messen der Ist-Position des Werkstücks und Ermitteln von dessen Geschwindigkeit; Berechnen einer aktuellen Soll-Position des Werkstücks für die aktuelle Position des Roboters unter Verwendung der den Wegpunkten zugeordneten Soll-Positionen des Werkstücks, beispielsweise mit Hilfe von Interpolation; Berechnen der Differenz zwischen Soll- und Ist-Position des Werkstücks; und Bestimmen der nächsten zu erreichenden Soll-Position des Roboters und des Zeitpunkts, zu dem diese erreicht werden soll, durch Auswahl eines Wegpunktes gemäß dem Plan, oder durch Interpolation 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 beschrä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:
  • 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;
  • 2 eine schematische Darstellung des Zustandsraums der n Parametervariationen für n = 2 und n = 3;
  • 3 ein Diagram mit einer Darstellung des Versatzes zwischen Roboter und Werkstück, für die einzelne Wegpunkte der Werkzeugbahnen erreichbar sind;
  • 4 ein Flowchart mit einem Beispiel des erfindungsgemäßen Verfahrensablaufs;
  • 5 Details für den Schritt II des Verfahrensablaufs aus 4;
  • 6 Details des Verfahrensablaufs aus 5 für eine erste Alternative (Berücksichtigung der Bewegung eines Werkstücks);
  • 7 Details des Verfahrensablaufs aus 5 für eine zweite Alternative (Berücksichtigung vom Parametervariationen);
  • 8 Details für den Schritt III des Verfahrensablaufs aus 4;
  • 9 Details des Verfahrensablaufs aus 8 für eine erste Alternative (ein Plan für alle Zustände);
  • 10 Details des Verfahrensablaufs aus 8 für eine erste Alternative (P Pläne für alle Zustände);
  • 11 einen Flowchart des Verfahrensablaufs für Schritt V des Verfahrens aus 4 (die ON-line Ausführung eines Programms mit Berücksichtigung der zusätzlichen Dimension ”Werkstückbewegung”);
  • 12 einen Flowchart des Verfahrensablaufs für Schritt V des Verfahrens aus 4 (die ON-line Ausführung eines Programms mit Berücksichtigung der zusätzlichen Dimension ”Parametervariationen”);
  • 13 Details des Verfahrensablaufs für Schritt III aus den 8 bis 10 Links: Bewegungsplanung (links) und Rechts: Simulation.
  • In den Abbildungen bezeichnen gleiche Bezugszeichen gleiche oder ähnliche Komponenten mit gleicher bzw. ähnlicher Bedeutung.
  • Wie eingangs bereits erwähnt unterstützen bekannte Methoden der Bahnplanung und Offline-Roboterprogrammierung nicht ausreichend 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 Anwendungen Bezug genommen, bei denen die Oberfläche eines Werkstü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 behandelnde 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. Abweichungen der Form und/oder der Lage des Werkstückes von den bei der Erstellung des Roboterprogramms angenommenen Sollwerten oder Abweichungen von anderen Prozessparametern von den jeweiligen Sollwerten. Derartige Prozessparameter wären bei einer robotergestützten Lackierung z. B. die von einer Sprühpistole 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 robotergestützten Polieren z. B. der vom Roboter auf die zu polierende Oberfläche des Werksstücks ausgeübte Druck während des Polierens oder die Wechselwirkung zwischen Material und Poliermedium. Allgemein werden unter Prozessparameter alle Parameter verstanden, welche das Arbeitsergebnis des Roboters (also z. B. die Qualität der Lackierung oder der Reinigung, des Polierens, etc.) nennenswert beeinflusst.
  • Bevor das Verfahren zur Erzeugung robuster Roboterprogramme im Einzelnen erläutert wird, wird noch einmal auf die Problematik der erwähnten zusätzlichen Freiheitsgrade (dem Werkstück überlagerte Bewegung) bzw. der Parametervariationen (Form und Lage des Werkstücks, andere Prozessparameter) eingegangen.
  • 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 bearbeitende Werkstück für eine Ausführung einer programmierten Anwendung/Bearbeitung nicht gestoppt bzw. aus der Fördereinrichtung 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 Vorschubinformation 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 bewegte 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 Werkstü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 Roboters) nicht mit dem Werkstück kollidiert.
  • Für komplexere Aufgaben, besteht die Möglichkeit zur Bearbeitung bewegter Werkstücke darin, den Roboter (d. h. die Roboterbasis) auf eine Zusatzachse zu stellen, welche den Roboter über weite oder über kritische Bereiche der Anwendung synchron 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 Bearbeitung eines bewegten Werkstücks kann in vielen Fällen eine zusätzliche Achse, die den Roboter entlang der Bewegungsrichtung 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 herkö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ücksichtigen. Das heißt, in der Produktion treten in relevanten Parametern (z. B. Werkstückform und -lage, weitere Prozessparameter, 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 tolerierbaren Bereichs liegen, die Ausführbarkeit der Anwendung oder die Qualität des Ergebnisses beeinträchtigen können. Das automatisiert erzeugte Roboterprogramm soll jedoch möglichst robust sein, d. h. die Ausführung des jeweiligen Roboterprogramms muss für ein möglichst breites Spektrum an einzelnen oder kombinierten Variationen/Schwankungen/Störungen ein Prozessergebnis liefern das den Qualitätskriterien entspricht. Die Programmierung von Anwendungen, die derartige, zusätzliche Komplexitäten aufweisen, wird, weil unvorhergesehene (deterministische oder statistische) Schwankungen in der Programmierung berücksichtigt werden müssen, von bekannten Methoden der Offline-Programmierung nicht ausreichend unterstü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 Werkstücks nicht in dem vorgegebenen, ”erlaubten” Bereich) wird die Anwendung nicht gestartet. Da mit konventionellen Methoden nur weniger robuste Programme programmiert werden können, und die Programmierung für verschiedene Störungen zeitaufwendig ist, müssen die Toleranzen mit hohem Aufwand klein gehalten 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 Parametervariationen bzw. des zusätzlichen Freiheitsgrads bei der Programmierung des Roboters zu Berücksichtigen ist, sieht ein automatisiertes Verfahren zur Erstellung von Roboterprogrammen Folgendes vor. Zunächst erfolgt die Planung der Werkzeugbahnen 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 Fachmann eine Vielzahl von (automatischen und halbautomatischen) Verfahren zur Bahnplanung zur Verfügung. Am Ende dieser Bahnplanung steht ein ”Plan”, d. h. eine Festlegung der Soll-Trajektorie des TCP (und damit des Werkzeugs) im Zielkoordinatensystem, was im Normalfall ohne Weiteres in ein Roboterprogramm umgesetzt werden kann. Diese Situation ist beispielhaft in 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 Werkstücks, Parametervariationen) erfolgt dann automatisiert wie im folgenden beschrieben.
  • Vorab-Analyse des Plans/Schnelltest
  • Für den Fall, dass Variationen der Werkstückform und -lage 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. ausreichender Farbauftrag, genügend Druck beim Polieren, etc.). Für die Simulation kann z. B. ein virtueller Roboter mit virtueller Robotersteuerung (z. B. ”realistic robot simulation”, RRS oder ähnliches) verwendet werden. Die erwähnten verschiedenen Kombinationen von Parametervariationen werden so ausgewählt, dass der gesamte Bereich möglicher Parametervariationen, 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 2 ist dies für die Variation zweier Parameter (n = 2, 2a) bzw. dreier Parameter (n = 3, 2b) dargestellt. 2a zeigt z. B. als Parametervariationen die Abweichung 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. 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 Kombination von Minima und Maxima betrachtet werden erhält man 3n verschiedene Zustände (Punkte im Zustandsraum der Parametervariationen). Bei (alternativer oder zusätzlicher) Betrachtung der mittleren Abweichungen ist die Zahl dieser diskreten Zustände 2n. Alternativ können – für eine schnelle Betrachtung – die maximalen Abstände vom Ursprung auf den einzelnen Achsen des Zustandsraumes aufgetragen werden, was inklusive dem Ursprung 2n + 1 Zustände ergibt. Die konkrete Weise der Diskretisierung des Zustandsraumes der Parametervariationen spielt jedoch keine Rolle, wesentlich ist nur, dass die interessierenden Bereiche des Zustandsraumes der Parametervariationen hinreichend ”abgetastet” werden, sodass die ”Abtastung” des interessierenden Zustandsraumes alle möglichen Kombinationen von Variationen der einzelnen Parameter berücksichtigt. 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 Zustand 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 bearbeiteten Werkstücks das Prozessergebnis einem vorab definierten Gütekritierium (z. B. Anpressdruck beim Polieren in einem definierten Bereich, Farbauftrag im Bereich einer Sollstärke, etc.) entspricht.
  • Auch in dem Fall, dass eine dem Werkstück überlagerte Bewegung 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 Prozessergebnis entlang den Bahnen einem vorgegebenen Qualitätskriterium entspricht (z. B. ausreichender Farbauftrag, genügend Druck beim Polieren, etc.). In diesem Fall, ist ein Zustand nicht ein konkreter Satz (n-Tupel) von Parameterabweichungen, sondern eine konkrete Reihenfolge von Bahnen sowie ein damit assoziierter Startzeitpunkt der Bearbeitung und ggf. eine bestimmte vorgegebene überlagerte Bewegung der Roboterbasis (sofern vorgesehen). Diese Situation ist in 3 verdeutlicht. Die gerade Linie zeigt den (bei konstanter Relativgeschwindigkeit zwischen Werkstück und Roboterbasis) linear ansteigenden Versatz zwischen Werksstück und Roboterbasis an. Des Weiteren sind für jede Werkzeugbahn (Ziffer 21 in 1) eingezeichnet, für welchen Versatz die einzelnen (aufeinanderfolgenden) Punkte (vertikale Linien) der jeweiligen Bahn für den Roboter kollisionsfrei erreichbar ist. Unter der Annahme einer konstanten Relativgeschwindigkeit können z. B. die Steigung der Geraden (entspricht der Geschwindigkeit), der Offset der Geraden (entspricht den Anfangsversatz) sowie die Reihenfolge und dazugehörige Startzeitpunkt (und, sofern vom Prozess erlaubt, die Ausführungsrichtung) der Bahnen angepasst werden. Ein ”Zustand” entspricht z. B. einer konkreten Kombination aus Steigung, Offset und Bahnreihenfolge mit dazugehörigen Startzeitpunkten. Ein Zustand, bei dem sämtliche vertikalen Linien von der Geraden geschnitten werden, ist insofern in Ordnung, als alle Bahnen grundsätzlich erreichbar sind. Dies ist für eine beliebige Anzahl von Zuständen im Schnelltest überprüfbar. Für jeden Zustand kann zudem ermittelt werden in welchen Bereichen ein vordefiniertes 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 Beschleunigungsgrenzen 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. Erstens: es wird ein Plan eines Arbeitslaufes am Werkstück bereitgestellt. 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 Parametervariationen oder zusätzliche Freiheitsgrade des Werkstücks berücksichtigt werden. In diesem Schritt wird auch definiert, ob und wie eine zusätzliche Achse die Roboterbasis bewegt. Zweitens: es wird der Zustandsraum festgelegt, der entweder (bei Störungen/Toleranzen) die berücksichtigenden Parametervariationen oder (bei bewegtem Werkstück) die Reihenfolge und die dazugehörigen Startzeiten der Werkzeugbahnen und den Startzeitpunkt (bzw. den Startversatz zwischen Roboterbasis und Werkstück) repräsentiert. Nach der Diskretisierung werden die einzelnen Zustände einem Schnelltest unterzogen, in dem überprü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ätskriterien 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ätskriterium 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 hinreichend viele (mehr als eine minimale Anzahl) ”brauchbare Zustände” übrig, kann gefolgert werden, dass der im ersten Schritt erstellte Plan prinzipiell ungeeignet ist. Die verbleibenden Zustände definieren den Bereich im Zustandsraum, für den der im ersten Schritt erstellte Plan grundsätzlich geeignet ist und durch Modifikationen in einen praxistauglichen 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 Verfahrens – 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 Werkstückoberfläche, dass für Zustände, für die z. B. der Anpressdruck beim Polieren im Bereich ”vorne links” des Werkstücks immer unterschritten wurde. Ähnlich beim Beispiel des Lackierens: hier kann es z. B. vorkommen, dass in bestimmten Randbereichen 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 Geschwindigkeit zur Oberfläche ausführen kann. Auch diese Zustände würden demnach in eine Gruppe eingeordnet. Der oben beschriebene Schnelltest bewertet also diskrete Zustände. Das Kriterium (die ”Messlatte”), anhand dessen entschieden wird, ob der Plan für einen bestimmten Zustand als unbrauchbar verworfen wird, kann je nach Anwendung/Zielsetzung 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 unmodifiziert ”OK” sein wird, (2.) in der nächsten Stufe auch mehrere Pläne (z. B. für jede definierte Gruppe einer) generiert werden können, und (3.) es im Allgemeinen angestrebt wird, in der nächsten Stufe (dem folgenden Schritt der Feinplanung/Optimierung/Validierung) für möglichst viele (am besten für alle) Zustände brauchbare Pläne zu generieren. Die Option des ”Abbrechens” dient eher dazu, dass – wenn für zu wenig Zustände ein gutes Ergebnis erzielt werden kann – es häufig zielführender 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ände bewertete Plan als ”Startlösung” für einen weiteren Optimierungsschritt herangezogen.
  • Durch die im vorangegangenen Schnelltest vorgenommene Gruppierung ist es häufig möglich, mit einer Optimierung (d. h. mit einem optimierten Plan), das Ergebnis zu verbessern. Dabei kann das Ziel sein, einen optimierten Plan zu finden, der trotz des Vorhandenseins von Störungen bzw. von Parametervariationen bzw. trotz Bewegung des Werkstück zufrieden stellend funktioniert. Im dem Fall, dass mögliche Parametervariationen berücksichtigt werden müssen, kann das Ziel auch lauten, mehrere verschiedene optimierte Pläne für unterschiedliche Teilbereiche möglicher Parametervariationen/Störungen zu finden. Beispielsweise kann ein Plan für jede im vorangegangenen Schnelltest definierte Gruppe erzeugt werden. Bei der späteren tatsächlichen Umsetzung des Plans, wird das Werkstück mit Sensoren (z. B. Kameras, Laserscanner, Lichtschnittsensoren, etc.) vermessen und die ”Position” der Abweichungen im Zustandsraum der Parametervariationen ermittelt. Je nachdem, in welchem Teilbereich die Störungen bzw. Parametervariationen dann tatsächlich liegen, wird der für den betreffenden Bereich optimierte Plan (bzw. das darauf aufbauende Roboterprogramm) verwendet.
  • In dem erwähnten Optimierungsschritt wird der gesamte Prozess (also z. B. der vom Roboter durchgeführte Lackier- oder Poliervorgang) im Schnelltest ermittelte ”Startlösung” vollständig mit Hilfe einer virtuellen Robotersteuerung simuliert und das Ergebnis, beispielsweise mit Hilfe einer Kostenfunktion, bewertet. In diese Kostenfunktion fließen unterschiedliche Größen (ggf. unterschiedlich gewichtet) ein z. B. der (prozentuale) Anteil der nicht ausführbaren Bahnen, der Anteil der Werkstückoberfläche, bei dem das oben erwähnte Qualitätskriterium unter- oder überschritten worden ist, das Überschreiten von Beschleunigungsgrenzen etc. Ziel der Optimierung ist es, diese Kostenfunktion zu minimieren. Um diese Minimierung zu erreichen, kann der Ausgangs-Plan auf verschiede Weise angepasst werden. Beispielsweise kann die Reihenfolge sowie die zugehörige Startzeit der Bahnen und der Startzeitpunkt (bzw. der Anfangsversatz zw. Roboterbasis und Werkstück) der Ausführung des Plans geändert werden, es kann die Geschwindigkeit des Werkzeugs entlang der Bahnen angepasst 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 angepasst werden. Durch iteratives Anpassen und anschließende Simulation des Plans, kann so die Kostenfunktion minimiert und ein in diesem Sinne optimaler Plan ermittelt werden. Die erwä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 Reihenfolge (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 (Bewegungen, Schaltpunkte, Signale, Waits etc.) und zusammen mit der Information über die zusätzlich zu berücksichtigende Komplexitä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 werden kann) gespeichert.
  • Beispiele
  • Das oben beschriebene Verfahren zur computergestützten automatisierten (computergestützten) Erzeugung von optimierten Arbeitsabläufen (Pläne) für Roboter bzw. von entsprechenden Roboterprogrammen bietet den in der Entwicklungsphase Vorteil, dass der Planungsingenieur, oder das eingesetzte automatische 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) ausgehend von dem für den vereinfachten Fall entwickelten Plan automatisiert berücksichtigt wird. Im Folgenden wird das bisher 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. Allgemein kann sich das Werkstück in vorgegebener Weise in N Freiheitsgraden bewegen. Gleichzeitig kann sich die Roboterbasis mit der Zeit (in ebenfalls vorgebbarer Weise) bewegen. Im folgenden Beispiel wird das Werkstück mit einem Linearförderer (z. B. Fließband, N = 1) bewegt. In einem ersten Schritt werden die Werkzeugbahnen für die gewünschte Arbeitsaufgabe des Roboters in an sich bekannter Weise (in Werkstückkoordinaten im Zielkoordinatensystem) geplant oder spezifiziert als würde das Werkstück (sowie die Roboterbasis) ruhen. Alternativ können konventionell generierte Roboterprogramme eingelesen werden und in Werkzeugbahnen 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 vorgegebenem 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 dritten Fall kann diese Bewegung vorerst vorgegeben und im nachfolgenden 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ängige) 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 Analyse ermittelt wie oben bereits erläutert. Der Zustandsraum wird diskretisiert, wobei die diskreten Zustände im vorliegenden Beispiel jeweils eine konkrete Reihenfolge der Werkzeugbahnen und einen konkreten Startzeitpunkt (Start-Versatz) darstellen. Dabei ist jede einzelne Werkzeugbahn (siehe 1, Ziffer 21) durch so genannte Wegpunkte auf der Werkzeugbahn unterteilt, die die jeweilige Bahn in Bahnsegmente unterteilt. Diese Unterteilung ist fest vorgegeben, kann aber im nachfolgenden Optimierungsschritt ggf. noch geändert werden. Eine Bahn ist also durch die Summe ihrer Wegpunkte definiert. Für jede Werkzeugbahn des zuvor entworfenen Plans (siehe 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 durchgehende oder unterbrochene vertikale Linie auf die (Versatz-) Y-Achse aufgetragenen exemplarisch in 3 dargestellten Diagrams eingezeichnet werden. Anhand der Soll-Geschwindigkeit des Werkzeugs und der Länge (in 6-dimensionalen Konfigurationsraum) der Pfade zwischen zwei benachbarten Wegpunkte (Abschnitte der jeweiligen Werkzeugbahn) wird ermittelt/geschätzt wie weit diese vertikale Linien (welche erlaubte Verschiebungen repräsentieren) zeitlich (im Diagram in 3 in horizontaler Richtung) auseinander liegen. Zwischen den letzten und ersten Wegpunkten aufeinander folgender Werkzeugbahnen (siehe 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äsentiert 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 Umkonfiguration 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 Bewegungsmuster) des Förderers ergibt ebenfalls eine Kurve über die Zeit in dem Diagram aus 3. Wie weiter oben bereits erläutert ist diese Kurve bei einer Relativbewegung mit konstanter Geschwindigkeit eine Gerade die diagonal über die Versatz-Achse und die Zeit-Achse verläuft (siehe 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. aufgrund eines festgelegten Gütekriteriums als geeignet beurteilte) Reihenfolgen von Werkzeugbahnen und dazugehörige Startzeiten wie folgt festgelegt: Durch Variation der Reihenfolge und Startzeitpunkte der Werkzeugpfade (= Werkzeugbahnen), optional auch ihrer Ausführungsrichtung, werden Anordnungen (Zustände) gesucht, bei denen die Bewegungskurve des Werkstücks (diagonal verlaufende Gerade in 3) die vertikalen Linien der einzelnen Wegpunkte (repräsentieren den erlaubten Versatz) aller Pfade schneidet. Der maximale und minimale 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 Transformationsfenster) 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 einzelnen Werkzeugbahnen kann beispielsweise der Abstand der einzelnen Schnittpunkte der Bewegungskurve des Förderers zu den Endpunkten des in Y-Richtung aufgetragenen erlaubten Versatzes (oder zu den Rändern des Zeitfensters) eines Werkzeugpfades 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 (Feinplanung/Optimierung/Validierung) und der realen Ausführung länger braucht. Wahlweise können auch die (zeitlichen) Abstände zwischen den einzelnen Werkzeugpfaden maximieren werden (Pufferzeiten). Wenn keine ausführbare Reihenfolge gefunden werden kann oder wenn für die gefundenen Reihenfolge die verbleibenden Zeitpuffer (zeitlicher Abstand zwischen Ausführungszeitpunkt des Pfades und Zeitfenster) kleiner als eine minimale Schwelle sind, ist kann in der folgenden Feinplanung/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 Verfahren abgebrochen und an den Entwickler (oder an das automatische OLP-Tool) zurückgemeldet, dass die Strategie (z. B. einen Roboter mit fester Basis zu wählen oder das festgelegte Bewegungsmuster der Roboterbasis) und/oder die zuvor ohne Berü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 vorteilhaften Ausgestaltung werden die bestmöglichen Reihenfolgen 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 Startzeitpunkte) 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 Arbeitszelle mit Hilfe eines virtuellen Roboters mit virtueller Robotersteuerung simuliert. Bei der Optimierung werden (nach an sich bekannten Algorithmen) dabei die Startzeitpunkte und die Ausführungsgeschwindigkeit einer den Werkzeugbahnen entsprechenden Bewegung (inklusive der Zeiten zwischen der Ausführung der einzelnen Bahnen), sowie in geringem (definierbaren) Maße die auszuführenden Bahnen selbst verändert mit dem Ziel, die in bei der Simulation erhaltenen (geschätzten) Werte 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 Parameterüberschreitung wie z. B. Anpressdruck..) ergibt. Dabei wird bei der Prozesssimulation das jeweilige Ergebnis für einen optimierten Plan (z. B. Reinigungswirkung beim Reinigen: gereinigt, nicht gereinigt, unsicher, etc.) im Zusammenhang mit der Oberflächenbeschreibung (z. B. CAD-Daten) des Werkstücks gespeichert. In einer Ausführungsbeispiel des Verfahrens werden durch die Planung- oder Optimierungsalgorithmen die Positionen 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 eingehalten werden maximiert wird. ”Lücken” oder ”Fehlstellen” (z. B. beim Lackieren, Polieren, etc.) werden stärker gewichtet, so dass diese bevorzugt geschlossen werden und zusammenhä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, auswirkenden) Maluswert oder nur über ihren negativen Einfluss auf das Prozessergebnis bewertet werden. Als weiteres Optimierungskriterium kann vorgegeben werden, die Zykluszeit (d. h. die gesamte für den Prozess vom Roboter benötigte Arbeitszeit) beizubehalten, unter einer maximalen Zeit zu halten oder weiter zu minimieren. Ganz allgemein sei festgehalten, dass jede Minimierung einer Kostenfunktion identisch ist zu einer Maximierung einer zur Kostenfunktion komplementären Nutzenfunktion. Wird die Kostenfunktion minimiert wird automatisch die komplementäre Nutzenfunktion 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 berechnet. Die Bewegungsplanung basiert beispielsweise auf probabilistischen Methoden (z. B. ”Rapidly Exploring Random Trees”, RRT, oder ”Probabilistic Road Maps”, PPM, oder andere) welche im Zustandsraum (z. B. Gelenkwinkel und deren Geschwindigkeiten 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 beschriebenen Verfahren zur Behandlung von bewegten Werkstücken muss jedoch das Zeitverhalten und die Beschränkungen von Geschwindigkeiten und Beschleunigungen der Achsen berücksichtigt werden. Dazu wird der Zustandsraum, innerhalb welchem die (obigen) bekannten Verfahren suchen, beschränkt, indem berücksichtigt wird, dass von jedem Zustand aus nur eine eingeschränkte weitere Änderung der Position und Geschwindigkeit möglich ist. Dazu wird für jeden Wegpunkt i der Zustand (Position und Geschwindigkeit) jeder Achse fortgeschrieben bis zum Zeitpunkt des nächsten Wegpunktes i + 1 für die begrenzenden Fälle der maximal negativen bzw. positiven Beschleunigung von dem Wegpunkt i weg. Zusätzlich wird vom Zustand im aktuellen Wegpunkt i die beide extremen Fälle der Bewegung (maximale Beschleunigung) bis zu dem Zustand am Wegpunkt i – 1 vorgeschrieben. 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 Überlappungsbereich existiert (für alle Achsen) gibt es eine Änderung des Zustands der die realen Beschränkungen der Achsen in Beschleunigung und Geschwindigkeit respektiert. Da die folgende 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 Achsposition 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 entscheidender als die Geschwindigkeit, beim Lackieren ist oft die Einhaltung der Werkzeuggeschwindigkeit über der Oberfläche kritischer).
  • In diesem derart eingeschränkten Zustandsraum wird nach bekannten (z. B. PRM, RRT) Methoden die genaue kollisionsfreie Bewegung geplant und simuliert. Bei ausreichender Rechenzeit wird in einem Ausführungsbeispiel des hier beschriebenen Verfahrens 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 wunschgemäß 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 (Reihenfolgen 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ührungsbeispiel des hier beschriebenen Verfahrens wird dabei die Ursache für das Verwerfen eines Plans, d. h. nicht ausführbare (Teile der) Werkzeugbahnen oder Bereiche am Werkstück bei denen der Prozess nicht akzeptable Ergebnisse liefert, rückgemeldet (und die Werkzeugbahnen welche dazu beitragen).
  • Im auf die Feinplanung/Optimierung/Validierung folgenden Schritt werden (auf der tatsächlichen Robotersteuerung ausführbare) Roboterprogramme generiert und mit Zusatzinformation ü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 welchen Soll-Zeitpunkt oder für welche Werkstückposition, messbar ü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. festzulegen, welche Wegpunkte (optional mit welcher Geschwindigkeit) 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 deterministischem Verhalten könnte z. B. festgelegt werden, zu welchen Zeitpunkt ein Wegpunkt erreicht werden soll. Im Falle eines Förderers mit Schwankungen wird beispielsweise festgelegt zu welcher Position des Förderers soll ein Wegpunkt erreicht 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 einer 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 Fortschritt der Roboterbewegung in Bezug auf die Förderbewegung (vorrauseilend, hinterherhinken) nach bekannten Regelprinzipien (im einfachsten Fall ein PID-Regler) steigert, senkt oder beibehält. Mit Hilfe dieser Realisierung werden (1.) Ungenauigkeiten in der Planung der Roboterbewegung (insbesondere Fehler im Modell der Roboterdynamik und der Steuerung) kompensiert und (2.) die Robotergeschwindigkeit an möglicherweise schwankende oder wechselnde Fördergeschwindigkeit angepasst (selbst bis zu einem vollen Stopp oder einer Rückwärtsbewegung des Förderers). Die Programme mit Verknüpfung zur (Förder- oder) Werkstückbewegung werden auf den Robotercontroller geladen oder zwischengespeichert und stehen für die On-line-Ausführung bereit.
  • Der oben beschriebene Aspekt der Erfindung kann also allgemein 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 erwä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 abhängig von der aktuellen Position des Roboters unter Verwendung der den Wegpunkten zugeordneten Soll-Positionen des Werkstücks. Dies kann beispielsweise auch mit Hilfe von Interpolation 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 Vorgabe der Bahngeschwindigkeit des Werkzeugs geschehen, womit der Ankunftszeitpunkt 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 Geschwindigkeit) des Förderers. Abhängig davon, ob bei der Ausführung des Programms die gemessene Förderbewegung der geplanten vorrauseilt oder nachhinkt können die Geschwindigkeitswerte (je Position/Wegstück) des Programms gehoben oder gesenkt werden. 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 Vorauseilens, 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ückwä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/Variationen bei den Parametern des Prozesses (Abweichende Mengen oder Haftung von Lack, Wirksamkeit von Schleifmedien, Reinigungswirkung, Menge oder Haftung des Staubes) auftreten können (im folgenden Parametervariationen genannt). Die tatsächlichen Werte der Parametervariationen können zum Teil vor oder während der Ausführung gemessen werden, sind zum Zeitpunkt der Planung aber nicht bekannt (nur deren Schwankungsbreite). Die diesbezügliche Problematik und das grundsätzliche 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 Werkzeugpfade (in Werkstückkoordinaten) ohne Berücksichtigung der Parametervariationen (d. h. für einen idealisierten Fall) geplant oder spezifiziert bzw. aus vorhandenen Programmen eingelesen und konvertiert. Zudem werden die zu berücksichtigenden Parametervariationen definiert (z. B. Verteilung je Dimension, maximaler Schwankungsbereich, Konfidenzintervall für jeden variablen Parameter, etc.). Optional können auch Abhängigkeiten und Korrelationen zwischen den variablen Parametern berücksichtigt werden. In diesem Schritt wird auch die Strategie 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 keine 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 abdeckt oder (3.) mehrere optimierte Programme (obere Grenze definiert) geniert werden sollen, welche zusammen den gesamten Bereich der Parametervariationen abdecken, welche dann zur Ausführungszeit gemessen werden. Gemäß einem Ausführungsbeispiel 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 vorangegangenen Beispiel 1 der Einfluss der zusätzlich zu berücksichtigenden 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 definierten variierenden Parameter) deren Schwankungsbreite eingegeben und durch Kombination ein N-dimensionaler Zustandsraum definiert, der dann so diskretisiert (”abgetastet”) wird, dass eine diskrete Menge von kombinierten Störungen/Variationen (= Zuständen) vorliegt. Beispiele für die Diskretisierung des Zustandsraumes der Parametervariationen wurden unter Bezugnahme auf 2 bereits diskutiert. Zustände die aufgrund von Korrelation oder gegenseitigen Ausschluss 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 Ausgangs-Plan) geprüft. Das heißt, der Prozess und die Roboterbewegung werden simuliert, und der jeweilige Zustand wird bewertet, 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 Zustände, bei denen (ausschließlich/überwiegend) gleichartige Probleme in der Roboterbewegung an gleichen Abschnitten der Werkzeugpfade und/oder (gleichartige) Probleme in der Prozessqualität (abgespeichert und ausgewertet als Prozessergebnis über den einzelnen Regionen an der Oberfläche des Werkstücks) an gleichen Ort am Werkstücks auftreten, ebenfalls jeweils zu einer Gruppe zusammengefasst werden. In dem Anwendungsfall, bei dem ein Werkstück durch den Roboter lackiert werden soll, werden z. B. jene Zustände von Parametervariationen in eine Gruppe eingeordnet, bei denen im gleichen Bereich der Werkstückoberfläche der (in der Prozesssimulation simulierte) Lackauftrag z. B. zu gering ist.
  • Zur Bewertung der Eignung des Ausgangsplans in Bezug auf die zur Berücksichtigung der Parametervariationen gewählten Strategie 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 Parametervariationen) werden so überlagert, dass das lokal (gemeint ist die Position auf der Werkstückoberfläche bzw. auf der Werkzeugbahn) jeweils schlechtere Ergebnis das bessere überschreibt. Es wird sozusagen der Worst-Case über die Simulationen 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 ”dominieren” wenn der selbe Abschnitt in einer anderen Simulationen ausführbar ist.
  • Variante 2: Es wird der Anteil der Zustände ausgewertet für welche die Simulation kein hinreichend gutes Ergebnis vorhersagt (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 Anteil 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 Feinplanung/Optimierung nicht gelingen wird, 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 alle Zustände” als bei der Strategie ”P Pläne für alle Zustände”. Alternativ kann bei der Strategie ”P Pläne” auch getestet 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/Validierung) 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 Anfangs-Plan auf Basis bekannter Verfahren modifiziert und optimiert. Als optimal gilt wiederum ein Plan für den eine vorab definierte Kostenfunktion minimiert wird. In diese Kostenfunktion können einfließen: der Anteil des zu bearbeitenden Werkstücks für den das simulierte Prozessergebnis (abgespeichert mit den dazugehörigen Werkstückoberflächenkoordinaten) außerhalb der erlaubten Toleranzen liegt (ggf. gewichtet mit dem Grad der Abweichung), die Ausführungszeit etc. Gemäß einem Beispiel des hier beschriebenen Verfahrens wird die aktuell zu optimierende Version des Plans immer gleich für alle oder mehrere verschiedene (zufällige und in Anzahl zunehmende) Zustände (der Störung/Parametervariation) simuliert und die Ergebnisse derart überlagert, dass (lokal) nicht brauchbare 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 abgearbeitet 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 zunächst simuliert werden, ob ein zuvor optimierter Plan (für einen Zustand derselben Gruppe oder ein für eine andere Gruppe optimierter Plan) ein hinreichendes Simulationsergebnis liefert (innerhalb vorgebbarer Toleranzen). Dazu wird der Prozess über alle, gemäß Robotersimulation ausführbaren, Bahnen des Werkzeugs simuliert und in Bezug auf das Werkstück (z. B. beim Lackieren die Schichtdicke auf der Oberflächenbeschreibung (z. B. Mesh, CAD-Daten, etc.)) überlagert und gespeichert, wobei auftretende kritische Situationen (Kollisionen, Überschreitungen von Anpresskräften etc.) positive Ergebnisse überschreiben (Auf diese Art wird, wie bereits zuvor erläutert, der Worst-Case ermittelt). Das Ergebnis der Prozesssimulation ist z. B. die resultierende Schichtdicke oder die Reinigungswirkung auf der Beschreibung der Werkstückoberflä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 gereinigt”, ”unsicher”, etc. Ist der Anteil der relevanten Werkstückoberfläche, bei der die Qualitätskriterien eingehalten werden, im Verhältnis zur Gesamtoberfläche über einer geforderten Schranke (wobei verschiedene Regionen (z. B. Designkanten) oder die Art und Schwere der Überschreitung in der Bewertung verschieden gewichtet werden können), oder ist der Anteil der verworfenen Pfade klein gernug, so wird der aktuell 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 Ausgangsplan 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 ungeeignet 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 Gruppe von Zuständen ein modifizierter Plan übrig.
  • Ist für keinen der bereits gebildeten Pläne das Simulationsergebnis hinreichend, so wird für den aktuell geprüften Zustand 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/Adaptierung verwendet wird, der zuvor am besten (wenn auch nicht hinreichend) bewertet wurde, oder alternativ der Anfangs-Plan aus dem ersten Schritt. Die Feinplanungs- bzw. Optimierungsalgorithmen gemäß Stand der Technik (z. B. ”Particle Swarm Optimization”) 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 Werkstückoberfläche verschoben, verkippt, leicht angehoben, etc., um das Prozessergebnis zu verbesserten. Vorzugsweise werden ”Lücken” oder ”Fehlerstellen” stärker gewichtet, so dass diese bevorzugt geschlossen bzw. beseitigt werden und zusammenhängende Regionen erreicht werden, welche die Qualitätskriterien erfüllen. Zudem wird (mit einer Bewegungsplanung wie im Beispiel 1) oder nach Stand der Technik) für jede Werkzeugbahn (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 Simulationsergebnis liefern. Die Dauer der Bewegung (d. h. die vom Roboter für die Ausführung der Bearbeitung benötigte Zeit) kann ein weiteres Kriterium der Optimierung sein. Zustand und optimierter 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 Ausnahmebehandlung 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 Parametervariationen abgedeckt ist, oder abgebrochen wenn für einen 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 einen Zustand keine Lösung gefunden wurde (zurück zur Bestimmung eines neuen, verbesserten Ausgangs-Plans) oder nur die Zustände für die keine Lösung gefunden wurde werden zwischengespeichert 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 alle 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 Zusatzinformation (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) Roboterprogramm (Liste von Gelenkzuständen, Splines, Signalen etc.) durch ”Abtasten” (Diskretisieren) der geplanten Roboterbewegung konvertiert und zusammen mit der Zusatzinformation ü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-line-Ausführung der Programme erfassen Sensoren die Information betreffend die tatsä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 Optimierungsschritt beschrieben optimiert werden.
  • In der Folge wird das oben Beschriebene noch einmal zusammengefasst und vertiefend erläutert anhand der 4 bis 13. Entsprechend dem der Erfindung zugrunde liegenden Verfahren (4) wird erst eine idealisierte Anwendung geplant (bzw. programmiert). Idealisiert heißt hierbei z. B. (quasi-) statisch bzw. ohne Störungen. Alternativ können auch existierende Programme eingelesen und konvertiert werden (Schritt I). Erst danach wird automatisiert die zusätzliche, durch Dynamik (Werkstückbewegung) oder Störungen bedingte zusätzliche Komplexität/Dimension berücksichtigt, und es werden die Pläne und Programme generiert, die für diese komplexeren Fälle einsetzbar sind.
  • Dies geschieht wie folgt: In einer Vorverarbeitung wird der Einfluss der zusätzlichen Komplexität/Dimension (dem Werkstück überlagerte Bewegung, Parametervariationen) auf den ursprüngliche Plan bzw. das ursprüngliche Programm simuliert und das Prozessergebnis (Qualität der Lackierung, des Polierens, etc.) wird bewertet und ein Schnelltest (Schritt II) sucht ein Schnelltest zur ”Grobplanung” nach ”Startlösungen” oder Fällen (weiter oben als Zustande im Zustandsraum der Parametervariationen bzw. im Zustandsraum der möglicher Bewegungsmuster bezeichnet). Diese werden in einer Schleife abgearbeitet und gefundene Lösungen werden optimiert und validiert und ggf. zusammengefasst (Schritt III). Aus gefunden Plänen wird ein oder werden mehrere Programme zusammengefügt.
  • 4 zeigt insbesondere:
    • I. Module zur Planung/Definition oder zum Einlesen einer Roboteranwendung ohne Berücksichtigung der zusätzlichen Komplexität (I.1). Vorbereitend zur späteren Behandlung der zusätzlich zu berücksichtigenden Komplexität/Dimension wird (metrische) Information über diese eingegeben oder eingelesen (I.2.) und die ”Strategie” (Bewegungsmuster der Roboterbasis oder mehrere Pläne für mehrere Gruppen von Zuständen) zu deren Behandlung in der späteren Planung eingeben bzw. eingelesen (I.3.).
    • I.1. Modul zur Planung der Bahnen des Werkzeugs in Werkstückkoordinaten bzw. zum Einlesen existierender Programme und Konvertieren in Werkzeugbahnen in Werkstückkoordinaten.
    • I.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).
    • I.3. Schnittstelle zur Bestimmung der zu verwendenden Strategie. Im Fall zu berücksichtigender Werkstückbewegung: Wahl der Roboterbasis, feststehend vs. montiert auf Zusatzachsen (inklusive Festlegung deren Länge, Dynamik und Lage zum Werkstückförderer).
    • II: Schnelltest und Vorauswahl: Modul zur schnellen („stichprobenartigen”) Simulation und Analyse des Einflusses der zusätzlichen zu berücksichtigenden Komplexität/Dimension auf die Anwendung. Rückmeldung, dass Strategie und/oder der ohne Berücksichtigung der zusätzlichen Komplexität in I festgelegte ”Plan” nicht realisierbar sind, oder schnelle (ungenaue) Planung zur Festlegung wie diese im Schritt III Planung abgearbeitet werden sollen. In Fall A (dem Werkstück ist eine zusätzliche Bewegung überlagert) wird simuliert/analysiert, bei welchen Verschiebungen zwischen Werkstück und Roboterbasis die Werkzeugbahnen (laut Schnelltest) ausführbar sind (siehe 3). Aus diesen ”Zeitfenstern”/”Korridoren” und aus den über die Sollgeschwindigkeit des Werkzeugs geschätzten Ausführungszeiten der Werkzeugbahnen (siehe 1, Ziffer 21) werden eine oder mehrere günstige Reihenfolgen und Startzeiten der Pfade festgelegt welche in der Feinplanung (Schritt III) im Detail geprüft und optimiert werden. Während dieser Festlegung kann zugleich festgestellt werden, wenn keine Reihenfolge gefunden werden 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 werden können, die gegen bereits geringe zeitlichen Störungen (z. B. Schwankungen der Geschwindigkeit des Förderers) nicht robust sind. In diesem Fall wird zu Schritt I zurückgegangen, um die initialen Werkzeugbahnen (den Anfangs-Plan) oder die Strategie zu ändern. Im Fall B (zu berücksichtigende Parametervariationen) wird der Plan aus Schritt I für verschiede Zustände (Kombinationen konkreter Störungen/Parametervariationen) simuliert. Alle (diskretisierten) Störungen, 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 anderen Zustände werden zu Fällen gruppiert, wenn (ausschließlich/überwiegend) gleichartige ”Probleme” in der Roboterbewegung (Kollisionen oder nicht erreichbar) an gleichen Abschnitten der Werkzeugbahnen und/oder (gleichartige) Probleme in der Prozessqualität (abgespeichert und ausgewertet als Prozessergebnis über den einzelnen Regionen an der Oberfläche des Werkstücks oder an Formen, Merkmalen oder Unterbaugruppen 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 Bewegungsprobleme bei den Bahnen ”überlagert” (Problemstellen setzen sich durch, um den Worst-Case zu erhalten). Unterschreitet der Prozentsatz der Problemstellen (Anteil 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ückgegangen. Überschreitet der Prozentsatz eine wählbare obere Schwelle so wird ebenfalls der Anfang-Plan verworfen und nach Schritt I zurückgegangen.
    • II.1 Bestimmen diskreter zu testender Zustände, die die zusätzliche Dimension in ihrer definierten ”Ausdehnung” sparse diskretisieren. 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 + 1)N oder (2)N oder 2·N + 1, siehe 2) welche die kombinierten N Einzelstörungen wiedergeben.
    • II.2 Schnelle Simulation des Anfangs-Plans auf Ausführbarkeit in Bezug auf die Dimension/Störung. Fall A: Ermittlung der Ausführbarkeit jeder einzelner Werkzeugbahn für jeden Versatz (aus II.1). Bestimmung von Versatz-”Fenstern” für die jede Bahn einzeln ausführbar ist. Fall B: Simulation (Ausführbarkeit und Prozessergebnis) aller Werkzeugbahnen für jeweils einen Zustand (Störungsfall aus II.1). In einem Ausführungsbeispiel 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 geplante Roboterbewegung simuliert werden.
    • II.3. Detaillierte Simulation und Planung, Fall A: Ermittlung der Ausführbarkeit jeder einzelnen Bahn für jeden Versatz (aus II.1). Bestimmung von Versatz-”Fenstern” für die jeder Pfad einzeln ausführbar ist. Ermittlung von Reihenfolgen und Startzeitpunkten der Pfade, so dass diese – mit Soll-Geschwindigkeit ausgeführt – jeweils 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 II.1) mit gleichartigem Simulationsergebnis in Gruppen, für die in Schritt III jeweils ein Plan generiert werden soll. Bewerten ob Rücksprung zu Schritt I nötig.
    • II.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.
    • II.b. Aufbereitete Information, wie die zusätzliche Komplexität/Dimension geprüft, diskretisiert (abgetastet) werden soll.
    • II.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 vollständige Bearbeitung).
    • II.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, II.c) für welche die jeweilige Bahn gemäß einfacher Prüfung ausführbar ist.
    • II.e. Auswahl der Strategie, Fall A: z. B. ohne Zusatzsachse, mit Zusatzachse, ggf. mit Information über deren Dimensionierung (Länge, Lage, Dynamik). Fall B: ”ein Programm für alle möglichen Parametervariationen”, ”P Programme für P Gruppen von Parametervariationen”.
    • II.g. Falls die Evaluierung ergibt, das der Anfangs-Plan (Werkzeugbahnen) für die gewählte Strategie passend ist: Übergabe der initialen Werkzeugbahnen (II.c) und (Fall A) Reihenfolgen, Startzeitpunkte, 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 II vorgeschlagenen Zustände (Grobpläne, Reihenfolge und Startzeitpunkte der Pfade) dahingehend optimiert und bewertet, dass jeder einzelne Pfad und die Zwischenbewegungen mit den dynamischen Robotermodell (mit begrenzten Beschleunigungen und Geschwindigkeiten) in der Zeit geplant und mit der zeitlich veränderlichen Arbeitszelle simuliert werden. Die Optimierung verändert dabei Startzeitpunkte und Ausführungsgeschwindigkeit einer Bewegung, sowie geringfügig die ausgeführte Pfade mit dem Ziel den Abstand von den Roboter-Werkstück Versatz der gerade noch erreichbar ist zu maximieren. Im Fall B wird gemäß einem Ausführungsbeispiel unterschieden, ob die Strategie lautet ”ein Plan für alle” oder ”P Pläne für alle”. Für die Strategie ”ein Plan für alle” wird nur der Anfangs-Plan iterativ mit bekannten Verfahren optimiert wobei als Kriterium minimiert werden: Anteil des zu bearbeitenden Werkstücks (i. d. R. als Prozentsatz der zu bearbeitenden Oberfläche), für den das simulierte Ergebnis (dann abgespeichert auf der Oberfläche) nicht innerhalb der erlaubten Toleranzen liegt (bzw. gewichtet, z. B. entsprechend dem Grad der Abweichung), Ausführungszeit, 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 Anzahl zunehmende) Zustände (der Störungen) simuliert und das Ergebnis ”überlagert”, vorteilhaft so überlagert, dass die Störungen die guten Ausführungen überschreiben. Für die Strategie ”P Pläne für alle” werden die in II gefunden Gruppen nacheinander abgearbeitet 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”, oder für jeden getesteten Zustand der aktuellen Gruppe wird erst simuliert, ob ein zuvor optimierter Plan (der selben Gruppe oder für eine andere Gruppe optimierter Plan) ein hinreichendes Simulationsergebnis liefert. Wenn ja, wird es der Gruppe zugeordnet (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 vorteilhaften Ausführung werden alle neu (anders als ursprünglich) 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 abhängig von den Simulationsergebnissen für getestete Zustände der Gruppe gewählt werden, um an/nahe Bereichsrä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 Zusatzinformation (A: Zeit, B: abgedeckter Bereich der Parametervariationen) gespeichert. In beiden Fällen ist eine abschließende Bewertung vorteilhaft – ggf. Rücksprung zu I.
    • III.1. Schleife über alle initialen Reihenfolgen (Fall A) oder (Fall B) Fälle/Gruppen.
    • III.2. Planung/Optimierung variiert die Pfade in Zeitpunkt, Geschwindigkeit, deren genauen Verlauf zur Minimierung der (in III.3) simulierten Problemstellen (z. B. in Prozent der Oberfläche) und/oder zur Minimierung der Ausführungszeit.
    • III.3. Simulation der Roboterbewegung über die Zeit und des daraus resultierenden Prozessergebnisses (verwendet in III.2).
    • III.a. Variierte Prozessbahn;
    • III.b. Simulationsergebnis: Genau (mit Robotermodell) simulierte Roboterbewegung (inklusive Abweichungen von der idealen Soll-Bahn) und dem dafür simulierten Prozessergebnis (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;
    • III.c Rücksprung bis alle Gruppen oder Reihenfolgen abgearbeitet sind oder ein ausreichend gutes Ergebnis erzielt wird;
    • III.d Rücksprung zu Schritt I, wenn keine Lösungen gefunden wird (für einen oder hinreichend großen Anteil der Fälle);
    • III.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).
    • IV. Generierung von Programmen mit Zusatzinformation ü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 Geschwindigkeiten 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 welches dichter gesetzt/abgetastet ist, als für einen Robotercontroller nötig; und ii) ein Abarbeitungsprogramm in Form einer Schleife, welches den aktuellen Ist-Wert (Position und Geschwindigkeit) 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 Fortschritt der Bewegung des Roboters in Bezug auf die Förderbewegung (vorrauseilend, hinterherhinken) mit einem einfachen bekannten Regelprinzip (P, PID, ...) anpasst (Line-Tracking). Mit dieser vorteilhaften Realisierung werden Fehler in der Planung der Roboterbewegung (insbesondere Fehler im Modell des Roboterdynamik und der Steuerung) kompensiert und die Robotergeschwindigkeit passt sich automatisch der Fördergeschwindigkeit 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ützpunkten (oder Splines etc.) mittels Abtastung der geplanten Bewegungen. Abspeichern zusammen mit der Zusatzinformation über den Anwendungsbereich (= messbare Parametervariation der jeweiligen Gruppe)
    • IV.1 Modul zum konvertieren von Plänen in ausführbare Roboterprogramme mit Zusatzinformation und Speichern.
    • IV.a. Ausführbare Roboterprogramme mit Zusatzinformation für die Verwendung in Bezug auf zusätzliche Komplexität/Dimension.
    • V: On-line Abarbeitung:
    • Fall A: Sensorielle Erfassung der Dimension Förderbewegung (Position und Geschwindigkeit) und Abarbeiten des Programms gemäß dem Bewegungsfortschritt des Förderers. Vorteilhafter Fall wie in IV beschrieben.
    • Fall B: Sensorielle Erfassung des Ist-Wertes der Störung(en) und Auswahl der entsprechenden Gruppe. Abarbeiten des dieser Gruppe zugeordneten Programms. Optional interpolieren oder optimieren mit der genau gemessenen 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äß interpretierten Sensordaten.
    • II.a Information über zusätzlich zu berücksichtigende Dimension/Komplexität
    • II.c Werkzeugbahnen in Werkstückkoordinaten (inkl. Information Werkstück, z. B. CAD)
    • II.e Information über Strategie zur Berücksichtigung der zusätzlichen Dimension/Komplexität
  • 5 zeigt insbesondere detaillierte Beschreibung der Eingabe/Planung vor der Berücksichtigung der zusätzlichen Komplexität/Dimension (Überblick: 4).
    • I. Planung/Definition o. Berücksichtigung der zusätzlichen Dimension/Komplexität;
    • I.1 Eingabe von Information über das Werkstück (z. B. CAD Daten und relevante Fläche);
    • I.2 Definition der Anwendung z. B. aus vorgelagerten Prozessschritten (z. B. Q. S);
    • I.3. GUI zur Interaktiven Definition der Anwendung;
    • I.4. Modul zum prozessorientieren Planen der Werkezeugbewegungen;
    • I.5. Schnittstelle zum Einlesen existierender Programme und Pläne;
    • I.6. OLP Modul;
    • I.7. Modul zur Konvertierung konventioneller Programme in Werkzeugbahnen in Werkstückkoordinaten;
    • I.8. Speichern der Werkzeugpfade;
    • I.9. Schnittstelle zur Eingabe der Information über die Veränderung der Zelle über die Zeit. Im Falle des ”Line-Tracking” (Fall A) ist dies die gemessene Bewegungsgeschwindigkeit eines Förderers und damit des Werkstücks, und frühester Start- spätester Endzeitpunkt des Programms oder der möglichen Variationen (Fall B) (Im Falle der Prozessabsicherung sind dies Information über Einzelstörungen und ggf. deren Abhängigkeiten oder Ausschluss);
    • I.10. Schnittstelle zur Auswahl der Strategie zum Umgang mit der zusätzlichen Dimension;
    • II. Automatische Analyse und Vorverarbeitung (wird beschrieben in 5 und im Detail in 6 (Fall A) und 7 (Fall B);
    • I.a: Information über das Werkstück (i. d. R. CAD und Zusatzinformation z. B. Markierung der zu bearbeitenden Fläche des Werkstücks)
    • I.b. On-line erzeugte Information über Anwendung: Z. B. Anweisungsliste (Werkzeug + Werkstückorientiert) aus Sensorik bzw. QS. (Gefundene Fehler/Markierungspunkte/Markierungspfade...)
    • I.c. Interaktiv definierte Werkzeugbahnen (in Werkstückkoordinaten)
    • I.d. Roboterprogramme (existierend, eingelesen)
    • I.e. Roboterprogramme (in OLP generiert)
    • I.f. Werkzeugbahnen in Werkstückkoordinaten (inkl. Information Werkstück, z. B. CAD)
    • I.g. Werkzeugbahnen in Werkstückkoordinaten (inkl. Information Werkstück, z. B. CAD)
    • II.a. Information über zusätzlich zu berücksichtigende Dimension/Komplexität
    • II.c Werkzeugbahnen in Werkstückkoordinaten (inkl. Information Werkstück, z. B. CAD)
    • II.e Information über Strategie zur Berücksichtigung der zusätzlichen Dimension/Komplexität
  • 6 zeigt im Detail:
    • I. Planung/Definition ohne Berücksichtigung der zusätzlichen Dimension/Komplexität, wird beschrieben in 4 und im Detail in 5;
    • II. Automatische Analyse der Auswirkung d. zusätzliche Dimension und Vorverarbeitung;
    • II.1. Ermittlung/Festlegung des Suchraums und der Abtastung (= zu testenden Zustände);
    • II.2. Aufbau einer „Feasibilty Map” d. h. Versatz der Werkstücke für den Wegepunkte/Werkzeugpfade kollisionsfrei erreichbar oder ausführbar sind;
    • II.3. Simulation der Erreichbarkeit/Ausführbarkeit der Wegpunkte (der Werkzeugbahnen);
    • II.4. Falls Zusatzachsen: Ermittlung vorteilhafter Konfigurationen dieser Achsen über die Zeit, z. B. durch Maximieren der Breite der zur Verfügung stehende Puffer;
    • II.5. Optimieren der Reihenfolge: Verändern der Reihenfolge der Werkzeugpfade (immer alle Wegpunkte eines Werkzeugpfads) und Bewertung. Kriterium (siehe 3): Die Linie, die die Bewegung des Förderers repräsentiert, schneidet alle (oder möglichst viele) vertikalen Linien, die die erlaubten Verschiebungen je Wegpunkt 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 II.6);
    • II.6. Optimieren des Startzeitpunktes der Werkzeugpfade (und ggf. deren Bahngeschwindigkeit). Maximiert wird entweder der Abstand zum spätest möglichen Zeitpunkt (d. h. ein Puffer wird aufgebaut der Verzögerungen in der Roboterbewegung toleriert) oder Abstand zum frühest und spätest möglichen Zeitpunkt (d. h. der Puffer ist symmetrisch);
    • II.7 Speichern und Bewerten der Lösung(en);
    • II.a. Information über Bewegung/Veränderung der Zelle über die Zeit,
    • II.b. Strategie zur Berücksichtigung dieser zusätzlichen Dimension/Komplexität,
    • II.c. Werkzeugpfade (in Werkstückkoordinaten), Info über Werkstück und Zelle,
    • II.d. (Menge der) zu testende Zustände (Variationen)
    • II.e. Wegpunkte der Werkzeugpfade (optional Segmente oder ganze Werkzeugpfade) – und aktuell zu prüfender Zustand,
    • II.f. Bewertung der Erreichbarkeit/Ausführbarkeit des Werpunktes für den aktuellen Zustand,
    • II.g. Feasibility Map,
    • II.h. Strategie zur Berücksichtigung dieser zusätzlichen Dimension/Komplexitä,
    • II.i. Werkzeugbahnen, Feasibilty Map und Konfiguration der Zusatzachsen (über die Zeit),
    • II.j. gefundene, optimierte Reihenfolgen der Werkzeugpfade,
    • II.k. Rücksprung wenn keine Reihenfolge gefunden,
    • II.l. gefundene, optimierte Startzeitpunkte und Bewegungsgeschwindigkeiten der Werkzeugbahnen,
    • II.m. Rücksprung, wenn keine Startzeitpunkte für Reihenfolge gefunden,
    • II.n. Rücksprung, wenn für keine Reihenfolge ausführbare Startzeitpunkte gefunden (aber Ergebnis knapp),
    • II.o. Werkzeugpfade mit Startzeitpunkten und Geschwindigkeit (Wegpunkte als Punkte in der Zeit). Zusätzlich erlaubte Verschiebungen (max_delay) (in Zeit oder in Bezug auf Versatz Werkstück – Förderer),
    • II.p Rücksprung wenn keine hinreichend bewerte Lösung (Reihenfolge/Startzeitpunkte).
  • 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ätzlichen Dimension/Komplexität, wird beschrieben in 4 und im Detail in 5;
    • II. Automatische Analyse und Vorverarbeitung (Fall B)
    • II.1. Festlegung der Abtastung. Festlegen der Zustände zur Abdeckung der (in II.a spezifzierten) Breite der zusätzlichen Dimension und Reduktion zur Berücksichtigung von (in II.a spezifizierten) Korrelationen/Abhängigkeiten,
    • II.2.a. (Schleife zum) Abarbeiten jedes Zustands aus IIb. Aufruf der Simulation/Planung für jeden Zustand,
    • II.2.b. Bewertung des Ergebnisses der Simulation für den aktuell getesteten Zustand. Gruppieren der Zustände nach ähnlichen Ergebnissen („gleiche Probleme am gleichen Ort, Bewegungsabschnitt”),
    • II.3. Plane/simuliere die Roboterbewegung für den aktuell getesteten Zustand und die Werkzeugpfade (des Plans),
    • II.4. Simuliere den Prozess für die Roboterbewegung,
    • II.5. Bewerte das Ergebnis II.i für die gewählte Strategie. Insbesondere vergleiche Anzahl der Gruppen ob ein oder mehrere Pläne (später Programme) erlaubt.
  • II.5 kann und II.2.b können zusammengezogen werden um die Schleifenbearbeitung frühzeitig abarbeiten zu können.)
    • II.a. Information über zusätzliche Dimension. Anzahl der einzelnen Variationen und Breite ihrer jeweiligen Streuung (z. B. min-max). Evtl. Korrelationen, Ausschluss etc.,
    • II.b. Liste der zum Abtasten/Analyse des Raums der neuen Dimension(en) zu prüfenden Zustände,
    • II.c Werkzeugpfade (und Information über Werkstück, z. B.
    • CAD und zu bearbeitende Bereiche),
    • II.d. Werkzeugpfad und Zustand,
    • II.e. Wenn keine hinreichend gute Roboterbewegung gefunden (die X% erfolgreich ausführt): Abbruch,
    • II.f. Geplante und simulierte Roboterbewegung und aktueller Zustand,
    • II.g. Simulationsergebnis das Roboterbewegung aus II.3 = II.f,
    • II.h ... bis alle Zustände abgerabietet
    • II.i. Alle Zustände und Ergebnisse,
    • II.j. Strategie,
    • II.k Abbruch, wenn nicht hinreichen,
    • II.l Weitergabe von Gruppierten Zuständen (und initiale Werkzeugpfade).
  • II.2, II.3, II.4, II.5 greifen auf die Informationen betreffend das Werkstück zu, ohne dass die Informationsflüsse hier explizit dargestellt wurden.
  • 8 betrifft den Schritt III für den Fall der zu berücksichtigenden Werkstückbewegung, den automatischen Feinplanungs-/optimierungs/Validierungsschritt und zeigt insbesondere:
    • III.1.a (und III.1.b) Schleife und Bewertung über alle gefunden Sequenzen, Abbruch nach allen, oder optional nach erster hinreichend guter Sequenz (über Schwelle),
    • III.2. Anpassung der Werkzeugpfade an begrenzte Beschleunigung und Geschwindigkeit der einzelnen Achsen durch Modifikation der Wegpunkte,
    • III.3. State-x-time Planung für die modifizierten Bahnen,
    • III.4. Simulation des Roboterbewegung und des Prozessergebnisses für die geplanten Roboterbahnen (in veränderlicher Umgebung),
    • III.a. Werkzeugbewegungen inkl. Sequenz und Timing,
    • III.b. Modifizierte Roboterbewegungen (im Zustandsraum),
    • III.c Geplante Roboterbewegungen für Werkzeugpfade und Zwischenbewegung,
    • III.d Simulierte geplante Roboterbewegung,
    • III.e Simulierte Roboterbewegung oder keine Lösung (z. B. bei Timeout, etc.),
    • III.f Rücksprung zu III.2 sofern geplante Roboterbewegung keine Lösung (mit Problem/Ursache warum keine Lösung),
    • III.g Am besten bewerteter (Plan im Detailierungsgrad einer) Roboterbewegung im Zustandsraum inklusive Information über Zustand (gleichzeitig mit geplanter Roboterbewegung stattfindende Änderung der Zelle)/Information übe Zeit/Förderer,
    • III.h. Rücksprung solange weitere Reihenfolgen und kein Timeout.
  • 9 betrifft den Schritt III für den Fall der zu berücksichtigenden Parametervariationen, den automatischen Feinplanungs-/optimierungs/Validierungsschritt und zeigt für die Strategie ”Ein Plan für alle” insbesondere:
    • III.1.a und III.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ührungszeit oder Maximierung Abstand von Kollisionen, etc. Planung einer genauen Roboterbewegung für die Werkzeugbahn. (Details in 13, links)
    • III.2.a: Schleife über verschiedene (einige zufällig gewählte bis alle) Zustände. Beispielsweise werden in den ersten Iterationen nur ein (mit Zufallsgenerator gewählter und je Iteration zunehmend vollständiger) Teil aller Zustände getestet. Der Anteil (in Prozent) wird in III.1.a festgelegt.
    • III.2.b. Zusammenfassung des Ergebnisses, vorteilhaft in einer worst-case-Überlagerung der Ergebnisse auf dem Werksstück.
    • III.3. Simulation des Roboterbewegung und des Prozessergebnisses für die geplanten Roboterbahnen aus III1. je Zustand aus II. (Details in 13, rechts).
    • III.a. Roboterbewegung,
    • III.b. Roboterbewegung und gewählter zu simulierender Zustand,
    • III.c. Ergebnis der Simulation,
    • III.d. Rücksprung solange nicht alle Zustände abgearbeitet
    • III.e. Zusammengefasstes Ergebnis über alle simulierten Zustände (z. B. Worst-case),
    • III.f. Rückgabe zur Optimierung (solange kein Timeout, hinreichendes Ergebnis, Konvergenz, ...).
  • 10 betrifft den Schritt III für den Fall der zu berücksichtigenden Parametervariationen, den automatischen Feinplanungs-/optimierungs/Validierungsschritt und zeigt für die Strategie ”Ein Plan für alle” insbesondere:
    • III.1.a Schleife über alle in II initial gefundenen Gruppen;
    • III.1.b Schleifenende, Speichern der Gruppen und Evaluierung: Rücksprung solange nicht alle Gruppen abgearbeitet, ansonsten weiter. Sofern etablierte Gruppen größer erlaubte Anzahl N an Programmen (Strategie gesetzt in I) Ausstieg, zurück zu I);
    • III.2.a Bestimmung der zu testenden Zustände innerhalb der Gruppe und Abarbeitung als Schleife. In einer vorteilhaften 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 Zustandsraum;
    • III.2.b Schleifenende. Abspeichern des getesteten Zustands zu einer existierenden Gruppe oder Bildung neuer Gruppe. Rücksprung sofern nicht ausreichend dicht abgetastet oder weiter. Sofern die Anzahl der bereits gebildeten Gruppen größer als die erlaubte Anzahl N an Programmen: Ausstieg und zurück zu I). Evaluierung ob Gruppe ausreichend komplette hier (oder in IIa);
    • III.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);
    • III.3.b Schleifenende. Zwischenspeichern und Bewerten der Simulationsergebnis für die getesteten Pläne (Ausführbar, Dauer, Prozessergebnis, ggf. Stabilität/Abstand von Kollisionen). Z. B.: Abbruch wenn Simulationsergebnis für den Plan der zur Gruppe gehört hinreichend gut, ansonsten testen für alle Pläne und Auswahl des Besten;
    • III.4 Simulation der Roboterbewegung und des Prozesses (Details in 13, rechts);
    • III.5.a (und III.5.b) Optimierung der Werkzeugbahnen durch Variation (a) und Bewertung (b) gemäß Kriterien: Maximierung des Anteils der Oberfläche mit brauchbarem Prozessergebnisses, Minimierung der Ausführungszeit oder Maximierung Abstand von Kollisionen, etc. Planung einer genauen Roboterbewegung für die Werkzeugbahn. (Details in 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.
    • III.a. Aktuelle zu testende Gruppe und zu testender Plan (im Detailierungsgrad Werkzeugbahnen)
    • III.b. Aktuelle zu testender Zustand und zu testender Plan (im Detailierungsgrad Werkzeugbahnen)
    • III.c. Aktuelle zu testender Zustand und zu testender Plan (im Detailierungsgrad Werkzeugbahnen) entweder initial oder andere gefunden Pläne... .
    • III.d. Bewertung
    • III.e. Rücksprung wenn Plan nicht hinreichend bewertet (oder Variante – wenn nicht der initiale Plan passt solange bis alle Pläne getestet)
    • III.f Zustand und passende Gruppe gefunden: Übersprungen der weiteren Optimierung wenn passender Plan gefunden
    • III.g. Zustand (wenn kein bisheriger Plan passend)
    • III.h. Optimierte Roboterbewegung (nur beim ersten mal geändert!)
    • III.i Ergebnis aus Bewegungssimulation und Prozesssimulation
    • III.j. Rückgabe zur Optimierung (solange kein Timeout, hinreichendes Ergebnis, Konvergenz, ...)
    • III.k. Zustand und passende Gruppe (m. Plan) oder kein Plan für diesen Zustand generierbar.
    • III.l Rückgabe bis ausreichend Dicht getestet (hier auch Abbruch wie in III.o, III.q.)
    • III.m Zustand + Gruppe + Plan
    • III.n Rücksprung zu Schleifenanfang bis alle Gruppen abgearbeitet.
    • III.o Abbruch
    • III.p Gruppe und Plan
    • III.q Abbruch
    • III.r Alle gebildeten Gruppen inkl. Plan je Gruppe
  • Gemäß einem Ausführungsbeispel können für eine Gruppe, für welche bereits ein Plan in III.5 optimiert wurde, jene Zustände, für die in III.3 dieser Plan kein hinreichend gutes Ergebnis liefert, zwischengespeichert werden und erst nachdem alle (anderen) Zustände getestet wurden (und ggf. Pläne modifiziert 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 geringer gehalten werden.
  • 11 zeigt Details des Verfahrensablaufs aus 4 für Schritt V (On-line Ausführung eines Programms mit Berücksichtigung der Werkstückbewegung). Insbesondere Zeigt 11:
    • V.1 Sensor zum erfassen der Information über die zusätzliche 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 Programmfortschritt und an die extrahierte Information über die Bewegung des Förderers. Variable Auswahl der nächste Stützpunkte aus dem Programm mit überdicht abgetasteten Stützpunkten (je nach Förderer-Position und Geschwindigkeit Stützpunkt) oder auch Interpolation und Geschwindigkeit für die nächste Bewegung (v variabel), 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.b Interpretierte Information, z. B. Position und Bewegungsgeschwindigkeit des Werkstücks,
    • V.c. Angepasste Programm/Wegpunkte (Point-to-Point, PTP).
  • 12 zeigt Details des Verfahrensablaufs aus 4 für Schritt V (On-line Ausführung eines Programms mit Berücksichtigung der Parametervariationen). Insbesondere Zeigt 12:
    • V.1 Sensor zum Rrfassen der Information über die zusätzliche 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 Lageabweichung ist in Wertebereich/Zustandsraum der Gruppe). Einspeisung in Robotersteuerung;
    • V.4 Robotersteuerung bzw. Roboter Motion-Control.
    • V.a. Sensorinformation über zusätzliche Dimension, z. B. Kamerabild, Punktwolke,
    • V.b Interpretierte Information, z. B. erkannte Lage (bzw. Lageabweichung) des Werkstücks,
    • V.c. Ausgewähltes Roboterprogramm (PTP).
  • 13 zeigt Details im Verfahrensablauf des Optimierungsschrittes III wie in den 8 bis 10 gezeigt. 13 zeigt insbesondere:
    • III.1.a Werkzeugpfad (= Werkzeugbahn); Optimierer: Variiert Wegepunkte der Pfade (beinhaltet Anstellung des Werkzeugs zum Werkstück) mit bekannten Methoden entsprechen Bewertung aus III.1.b.
    • III.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, Minimiert den Anteil der Segmente der Werkzeugbahnen, die laut Planung und Simulation mit dem Roboter nicht ausführbar sind. Zwischenspeichern Ergebnis (Plan mit Prozentanteil für den Prozess und Roboterbewegung in Ordnung sind, Ausführungszeit).
    • III.a.2. Nachbehandlung Werkzeugbahn: Kollisionsvermeidung für Werkzeug und Glättung. Überwachung von Parametergrenzen? Variation kleiner als Grenzwert (sonst wäre es neu und III.a.1 überschrieben/Wirkungslos).
    • III.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.
    • III.b.1 Bewegungssimulation (dynamisches Modell),
    • III.b.2 Bewertung auf Ausführbarkeit (Kollisionsfrei) Ausführungszeit,
    • III.b.3 Modelle, inklusive Modell der Zelle, Roboter, Werkstück, Werkzeug, Prozess,
    • III.b.4 Prozesssimulation;
    • III.a.a Werkzeugpfade variiert;
    • III.a.b Zugriff auf Modell Werkzeug und Werkstück;
    • III.a.c Rückgabe wenn keine kollisionsfreie Werkzeugbewegung gefunden für die Änderung kleiner als Grenzwert;
    • III.a.d Geglättete Werkzeugpfade ohne Werkzeugkollisionen;
    • III.a.e Geplante Roboterbewegungen für Werkzeugpfade und Zwischenbewegung;
    • III.a.f keine Roboterbewegung gefunden;
    • III.b.a Zugriff auf Modelle;
    • III.b.b Simulierte geplante Roboterbewegung;
    • III.b.c. Geprüfte Roboterbewegung
    • III.b.d. Rücksprung wenn Roboterbewegung nicht OK.
    • III.b.e Zugriff auf Modelle (Prozess, Werkzeug, Werkstück).
    • III.b.f. Roboterbewegung und Bewertung (Simulationsergebnis Prozess)
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • WO 03/059582 [0003]
    • DE 112008003963 T5 [0003]
  • Zitierte Nicht-Patentliteratur
    • Weihua Sheng et al.: ”Automated CAD-guided robot path planning for spray painting of compound surfaces”, in: Proc. of the IEEE/RSJ International Conference an Intelligent Robots and Systems (IROS 2000), Bd. 3, S. 1918–1923 [0004]
    • Tapio Heikkilä et al.: ”Model Based Interactive Path Planning for Surface Following Robot Tasks”, SPIE Proc. Vol. 3208, S. 551–561, 26. Sept. 1997 [0004]

Claims (12)

  1. Verfahren zum automatisierten, computergestützten Erzeugen von Arbeitsablaufplänen für die Behandlung oder Bearbeitung eines Werkstücks mit einem Werkzeug durch einen Industrieroboter das Verfahren umfasst: Bereitstellen 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 beeinflussende Prozessparameter, wobei eine Werkzeugbahn die Soll-Bewegung des Werkzeugs entlang des Werkstücks festlegt; Definieren eines Zustandsraumes, der variable, die Behandlung bzw. Bearbeitung beeinflussende Parameterwerte beschreibt, wobei jeder Punkt des Raumes eine konkrete Kombination von möglichen Parameterwerten darstellt; Diskretisieren des Raumes in einzelne Zustände; Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des Ausgangsplanes für einen oder mehrere diskrete Zustände und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend einem vorgebbaren Kriterium; Iteratives Modifizieren des Ausgangsplanes, anschließendes Simulieren der Behandlung bzw. Bearbeitung 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; Durchführen der Iteration solange bis die Kostenfunktion ein Minimum erreicht oder einen Schwellwert unterschreitet und somit ein optimierter Plan für den jeweiligen Zustand gefunden ist.
  2. Verfahren gemäß Anspruch 1, das weiter umfasst: Zuordnen des optimierten Planes sowie den bei der Iteration verwendeten Zustand zu einer ersten Gruppe; Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des optimierten Planes für einen weiteren diskreten Zustand und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend der vorgebbaren Kostenfunktion; Zuordnen des bei der Simulation verwendeten weiteren Zustand zu der ersten Gruppe, wenn die Kostenfunktion für den weiteren Zustand einen weiteren Schwellwert unterschreitet; Zuordnen des bei der Simulation verwendeten weiteren Zustand zu einer weiteren Gruppe, wenn die Kostenfunktion für den weiteren Zustand den weiteren Schwellwert nicht unterschreitet.
  3. Verfahren gemäß Anspruch 2, das weiter umfasst: Iteratives Modifizieren des optimierten Planes, anschließendes Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des modifizierten Planes für den weiteren Zustand und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend der Kostenfunktion; Durchführen der Iteration solange bis die Kostenfunktion ein Minimum erreicht oder einen Schwellwert unterschreitet und somit ein weiter optimierter Plan für den weiteren Zustand gefunden ist; Zuordnen des optimierten Planes sowie den bei der Iteration verwendeten Zustand zu einer ersten Gruppe.
  4. Verfahren gemäß Anspruch 1, 2 oder 3, wobei vor dem iterativen Modifizieren eines Plans für einen konkreten Zustand, durch Simulation geprüft wird, ob mit einem bereits zuvor optimierten Plan für den konkreten Zustand ein Bearbeitungs- bzw. Behandlungsergebnis erzielt wird, für das die Kostenfunktion einen vorgegebenen Schwellwert unterschreitet.
  5. Verfahren zum automatisierten, computergestützten Erzeugen von Arbeitsablaufplänen für die Behandlung oder Bearbeitung eines Werkstücks mit einem Werkzeug durch einen Industrieroboter das Verfahren umfasst: Bereitstellen 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 beschreibende Prozessparameter, wobei eine Werkzeugbahn die Soll-Bewegung des Werkzeugs entlang des Werkstücks festlegt; Definieren eines Zustandsraumes, der mögliche Reihenfolgen und Startzeitpunkte der Werkzeugbahnen des Anfangsplans beschreibt, wobei jeder Punkt des Raumes eine konkrete Reihenfolge mit einem konkreten Startzeitpunkt beschreibt; Diskretisieren des Raumes in einzelne Zustände; Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des Ausgangsplanes für unterschiedliche diskrete Zustände und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend einem vorgebbaren Kriterium; Iteratives Modifizieren des Ausgangsplanes, anschließendes Simulieren – unter Berücksichtigung einer dem Werkstück überlagerten Bewegung – der Behandlung bzw. Bearbeitung 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; Durchführen der Iteration solange bis die Kostenfunktion ein Minimum erreicht oder einen Schwellwert unterschreitet und somit ein optimierter Plan für den jeweiligen Zustand gefunden ist.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei vor dem iterativen Modifizieren sämtliche Zustände verworfen werden, für die das mit dem Ausgangsplan simulierte Bearbeitungs- bzw. Behandlungsergebnisses einem vorgebbaren Kriterium nicht genügt.
  7. Verfahren gemäß Anspruch einem der Ansprüche 1 bis 6, wobei das Modifizieren eines Plans zumindest eines der Folgenden Schritte umfasst: das Ändern der Ausführungsreihenfolge der Werkzeugbahnen eines Plans; das Ändern der Ausführungsgeschwindigkeit einer Werkzeugbahn oder eines Segments einer Werkzeugbahn; Verschieben der Position einer Werkzeugbahn oder einzelner Segmente einer Werkzeugbahn; Ändern der Position und der Winkellage des Werkzeugs relativ zum Werkstück entlang einzelner Werkzeugbahnen oder Bahnsegmente; Ändern der Roboterkonfiguration für einzelne Werkzeugbahnen oder Bahnsegmente; Ändern einer vom Werkzeug auf das Werkstück ausgeübte Kraft oder eines sonstigen Parameters betreffend die Wechselwirkung zwischen Werkstück und Werkzeug.
  8. Verfahren gemäß Anspruch 5 oder 6 und 7, soweit auf Anspruch 5 rückbezogen, das weiter umfasst: spezifizieren eines Bewegungsmusters der Roboterbasis und Berücksichtigen dieses Bewegungsmusters bei der Simulation.
  9. Verfahren gemäß Anspruch 5 oder 6 bis 8, soweit auf Anspruch 5 rückbezogen, bei der das Simulieren umfasst: Berechnen eines Zeitfensters bzw. eines Fensters bezüglich der Verschiebung zwischen Roboterbasis und Werkstück, für die ein Wegpunkt einer Werkzeugbahn vom Werkzeug erreichbar ist.
  10. Verfahren gemäß Anspruch 9, wobei die Kostenfunktion umso größer ist, je näher das Werkzeug beim simulierten Ausführen einer Werkzeugbahn am Rande des Zeitfensters ist.
  11. Verfahren gemäß Anspruch 5 oder 6 bis 10, soweit auf Anspruch 5 rückbezogen, das weiter umfasst: für jeden optimierten Plan, Zuordnen einer Soll-relativposition zwischen Werkstück und Roboterbasis zu jedem Wegpunkt einer Werkzeugbahn.
  12. Verfahren zum Steuern eines Roboters zur Behandlung oder Bearbeitung eines bewegten Werkstücks mit einem Werkzeug durch einen Industrieroboter entsprechend einem Plan umfassend einer Vielzahl von durch Wegpunkte definierten Roboterbewegung, wobei jedem Wegpunkt eine Soll-Position des Werkstücks zugeordnet ist; das Verfahren umfasst während des Ausführens einer Roboterbewegung folgendes: Messen der Ist-Position des Werkstücks und Ermitteln von dessen Geschwindigkeit; Berechnen einer aktuellen Soll-Position des Werkstücks für die aktuelle Position des Roboters unter Verwendung der den Wegpunkten zugeordneten Soll-Positionen des Werkstücks, beispielsweise mit Hilfe von Interpolation; Berechnen der Differenz zwischen Soll- und Ist-Position des Werkstücks; Bestimmen der nächsten zu erreichenden Soll-Position des Roboters und des Zeitpunkts, zu dem diese erreicht werden soll, durch Auswahl eines Wegpunktes gemäß dem Plan, oder durch Interpolation zwischen zwei Wegpunkten gemäß Plan, derart, dass die Differenz zwischen Soll- und Ist-Position des Werkstücks verringert oder minimiert wird.
DE102011082800.1A 2011-09-15 2011-09-15 System und Verfahren zur automatisierten Erstellung von Roboterprogrammen Active DE102011082800B4 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102011082800.1A DE102011082800B4 (de) 2011-09-15 2011-09-15 System und Verfahren zur automatisierten Erstellung von Roboterprogrammen
CN201280055001.5A CN104010774B (zh) 2011-09-15 2012-09-06 用于自动生成机器人程序的系统和方法
KR1020147009832A KR102028770B1 (ko) 2011-09-15 2012-09-06 로봇 프로그램의 자동 생성을 위한 시스템 및 방법
PCT/EP2012/067413 WO2013037693A2 (de) 2011-09-15 2012-09-06 System und verfahren zur automatisierten erstellung von roboterprogrammen
US14/345,313 US9701019B2 (en) 2011-09-15 2012-09-06 System and method for the automatic generation of robot programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011082800.1A DE102011082800B4 (de) 2011-09-15 2011-09-15 System und Verfahren zur automatisierten Erstellung von Roboterprogrammen

Publications (2)

Publication Number Publication Date
DE102011082800A1 true DE102011082800A1 (de) 2013-03-21
DE102011082800B4 DE102011082800B4 (de) 2016-04-14

Family

ID=47751017

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011082800.1A Active DE102011082800B4 (de) 2011-09-15 2011-09-15 System und Verfahren zur automatisierten Erstellung von Roboterprogrammen

Country Status (1)

Country Link
DE (1) DE102011082800B4 (de)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013013847A1 (de) * 2013-08-20 2015-02-26 Kuka Roboter Gmbh Energieoptimales Konfigurieren eines Manipulators
DE102016010945B3 (de) * 2016-09-09 2017-10-26 Dürr Systems Ag Optimierungsverfahren für einen Beschichtungsroboter und entsprechende Beschichtungsanlage
CN111460599A (zh) * 2019-01-02 2020-07-28 大族激光科技产业集团股份有限公司 一种激光焊接夹具的设计方法
US11141856B2 (en) 2018-06-25 2021-10-12 Tata Consultancy Services Limited Systems and methods for generating control system solutions for robotics environments
CN113703461A (zh) * 2021-08-31 2021-11-26 库卡机器人制造(上海)有限公司 路径确定方法、装置、机器人和可读存储介质
CN113894795A (zh) * 2021-11-17 2022-01-07 青岛九维华盾科技研究院有限公司 一种工业机器人外部轴位置优化方法
CN114536346A (zh) * 2022-04-06 2022-05-27 西南交通大学 一种基于人机协作和视觉检测的机械臂精确路径规划方法
CN116038708A (zh) * 2023-01-30 2023-05-02 北京大学 基于内部预演的机械手臂趋近规划方法及装置
CN116985142A (zh) * 2023-09-25 2023-11-03 北京航空航天大学 一种机器人运动规划方法、装置和机器人
DE102022101000B4 (de) 2021-12-10 2024-03-21 Academy Of Mathematics And Systems Science Chinese Academy Of Sciences Verfahren und Vorrichtung zum Erzeugen einer CAM-orientierten Zeit-Spline-Kurve und -Oberfläche
DE102015222942B4 (de) 2015-11-20 2024-05-08 Robert Bosch Gmbh Verfahren zum Bewegen eines Manipulators und Vorrichtung mit Manipulator

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017010244A1 (de) 2017-11-03 2019-05-09 Kuka Deutschland Gmbh Verfahren und Steuermittel zum Steuern einer Roboteranordnung
DE102019128583B4 (de) * 2019-10-23 2022-03-10 Franka Emika Gmbh Optimierungsmodi für Steuerprogramme eines Robotermanipulators
DE102020103852B4 (de) 2020-02-14 2022-06-15 Franka Emika Gmbh Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator
DE102022205349A1 (de) 2022-05-30 2023-11-30 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Erzeugen eines Sicherheitsprogramms für eine Recheneinheit einer technischen Vorrichtung

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727132A (en) * 1994-08-25 1998-03-10 Faunc Ltd. Robot controlling method for tracking a moving object using a visual sensor
DE10162967A1 (de) * 2000-12-25 2002-07-25 Seiko Epson Corp Verfahren zur Steuerung eines Roboters und dieses Verfahren verwendende Robotersteuerung
WO2003059582A2 (en) 2001-12-27 2003-07-24 Prophet Control Systems Limited Program robots with off-line design
EP1700667A1 (de) * 2005-03-09 2006-09-13 Fanuc Ltd Lernvorrichtung und -Verfahren für das Laserschweißen
EP1769891A2 (de) * 2005-09-28 2007-04-04 Fanuc Ltd Offline Programmiergerät für einen Roboter
US20070106421A1 (en) * 2003-11-23 2007-05-10 Abb Research Ltd. Method for optimising the performance of a robot
DE102008027475A1 (de) * 2008-06-09 2009-12-10 Kuka Roboter Gmbh Vorrichtung und Verfahren zur rechnergestützten Generierung einer Manipulatorbahn
DE112008003963T5 (de) 2008-08-12 2011-06-22 Abb Technology Ab System und Verfahren zur Off-line-Programmierung eines Industrieroboters
EP2345512A1 (de) * 2010-01-14 2011-07-20 Syddansk Universitet Verfahren zum Finden praktikabler Gelenkbahnen für einen N-DOF-Roboter mit Rotationsinvariantenprozess (N > 5)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003035275A1 (en) * 2001-10-26 2003-05-01 Inropa Aps A method of automatically treating of a surface

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727132A (en) * 1994-08-25 1998-03-10 Faunc Ltd. Robot controlling method for tracking a moving object using a visual sensor
DE10162967A1 (de) * 2000-12-25 2002-07-25 Seiko Epson Corp Verfahren zur Steuerung eines Roboters und dieses Verfahren verwendende Robotersteuerung
WO2003059582A2 (en) 2001-12-27 2003-07-24 Prophet Control Systems Limited Program robots with off-line design
US20070106421A1 (en) * 2003-11-23 2007-05-10 Abb Research Ltd. Method for optimising the performance of a robot
EP1700667A1 (de) * 2005-03-09 2006-09-13 Fanuc Ltd Lernvorrichtung und -Verfahren für das Laserschweißen
EP1769891A2 (de) * 2005-09-28 2007-04-04 Fanuc Ltd Offline Programmiergerät für einen Roboter
DE102008027475A1 (de) * 2008-06-09 2009-12-10 Kuka Roboter Gmbh Vorrichtung und Verfahren zur rechnergestützten Generierung einer Manipulatorbahn
DE112008003963T5 (de) 2008-08-12 2011-06-22 Abb Technology Ab System und Verfahren zur Off-line-Programmierung eines Industrieroboters
EP2345512A1 (de) * 2010-01-14 2011-07-20 Syddansk Universitet Verfahren zum Finden praktikabler Gelenkbahnen für einen N-DOF-Roboter mit Rotationsinvariantenprozess (N > 5)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHENG, R.M.H.; POON, S.C.L.; MONTOR, T.: "Adaptive Synchronization Control of Robotic Manipulator Operating in an Intelligent Workcell", In: IEEE Transaction on Industrial Electronics, Vol. 37, No. 2, April 1990, S. 119-126 *
CHENG, R.M.H.; POON, S.C.L.; MONTOR, T.: „Adaptive Synchronization Control of Robotic Manipulator Operating in an Intelligent Workcell", In: IEEE Transaction on Industrial Electronics, Vol. 37, No. 2, April 1990, S. 119-126
Tapio Heikkilä et al.: "Model Based Interactive Path Planning for Surface Following Robot Tasks", SPIE Proc. Vol. 3208, S. 551-561, 26. Sept. 1997
Weihua Sheng et al.: "Automated CAD-guided robot path planning for spray painting of compound surfaces", in: Proc. of the IEEE/RSJ International Conference an Intelligent Robots and Systems (IROS 2000), Bd. 3, S. 1918-1923

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013013847A1 (de) * 2013-08-20 2015-02-26 Kuka Roboter Gmbh Energieoptimales Konfigurieren eines Manipulators
DE102015222942B4 (de) 2015-11-20 2024-05-08 Robert Bosch Gmbh Verfahren zum Bewegen eines Manipulators und Vorrichtung mit Manipulator
DE102016010945B3 (de) * 2016-09-09 2017-10-26 Dürr Systems Ag Optimierungsverfahren für einen Beschichtungsroboter und entsprechende Beschichtungsanlage
US11141856B2 (en) 2018-06-25 2021-10-12 Tata Consultancy Services Limited Systems and methods for generating control system solutions for robotics environments
CN111460599A (zh) * 2019-01-02 2020-07-28 大族激光科技产业集团股份有限公司 一种激光焊接夹具的设计方法
CN111460599B (zh) * 2019-01-02 2024-03-26 大族激光科技产业集团股份有限公司 一种激光焊接夹具的设计方法
CN113703461B (zh) * 2021-08-31 2023-10-27 库卡机器人制造(上海)有限公司 路径确定方法、装置、机器人和可读存储介质
CN113703461A (zh) * 2021-08-31 2021-11-26 库卡机器人制造(上海)有限公司 路径确定方法、装置、机器人和可读存储介质
CN113894795A (zh) * 2021-11-17 2022-01-07 青岛九维华盾科技研究院有限公司 一种工业机器人外部轴位置优化方法
CN113894795B (zh) * 2021-11-17 2023-11-28 青岛九维华盾科技研究院有限公司 一种工业机器人外部轴位置优化方法
DE102022101000B4 (de) 2021-12-10 2024-03-21 Academy Of Mathematics And Systems Science Chinese Academy Of Sciences Verfahren und Vorrichtung zum Erzeugen einer CAM-orientierten Zeit-Spline-Kurve und -Oberfläche
CN114536346B (zh) * 2022-04-06 2023-04-07 西南交通大学 一种基于人机协作和视觉检测的机械臂精确路径规划方法
CN114536346A (zh) * 2022-04-06 2022-05-27 西南交通大学 一种基于人机协作和视觉检测的机械臂精确路径规划方法
CN116038708A (zh) * 2023-01-30 2023-05-02 北京大学 基于内部预演的机械手臂趋近规划方法及装置
CN116985142B (zh) * 2023-09-25 2023-12-08 北京航空航天大学 一种机器人运动规划方法、装置和机器人
CN116985142A (zh) * 2023-09-25 2023-11-03 北京航空航天大学 一种机器人运动规划方法、装置和机器人

Also Published As

Publication number Publication date
DE102011082800B4 (de) 2016-04-14

Similar Documents

Publication Publication Date Title
DE102011082800B4 (de) System und Verfahren zur automatisierten Erstellung von Roboterprogrammen
WO2013037693A2 (de) System und verfahren zur automatisierten erstellung von roboterprogrammen
DE69535687T2 (de) Biegevorrichtung mit Mitteln zur Durchführung von Installationsvorgängen
DE102009048252B4 (de) In eine numerisch gesteuerte Maschine eingebaute Kollisionsverhinderungsvorrichtung
DE112016000582B4 (de) Lehreinrichtung, Lehrverfahren und Robotersystem
DE69534977T2 (de) Biegemaschine mit einer Steuerung zur Erstellung und Ausführung eines Metallplattenbiegeplanes
DE102018122376B3 (de) Verfahren und Vorrichtung zur kollisionsfreien Bewegungsplanung eines Manipulators
DE102015000587B4 (de) Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
EP1086407B1 (de) Steuerverfahren für einen industrieroboter
DE112010000794T5 (de) Verfahren zum Steuern eines Roboterwerkzeugs
DE102014018973B4 (de) Numerische Steuerung zum Glätten des Werkzeugwegs im Betrieb basierend auf Daten in Tabellenform
DE102010017763A1 (de) Gerät zum Anzeigen des Werkzeugwegs für Werkzeugmaschinen
DE102017009822A1 (de) Maschinenlernvorrichtung und Bearbeitungszeitvorhersagevorrichtung
DE102009004285A1 (de) Verfahren und Vorrichtung zur Optimierung, Überwachung oder Analyse eines Prozesses
DE112019000097B4 (de) Steuervorrichtung, Arbeitsroboter, Programm und Steuerverfahren
EP3873703B1 (de) Rechnergestützte optimierung einer numerisch gesteuerten bearbeitung eines werkstücks
DE102009007932A1 (de) Qualitätsgesteuertes Produktions- und Prüfverfahren
DE102014118001A1 (de) Verfahren zur Bewegungssimulation eines Manipulators
DE102021103726A1 (de) Messparameter-Optimierungsverfahren und -Vorrichtung sowie Computersteuerprogramm
DE102016012227A1 (de) Verfahren zur automatischen Lagekorrektur eines Roboterarms
DE102022130341A1 (de) Punktmengen-störungsprüfung
WO2017063887A1 (de) Synchronisierung mehrerer roboter
DE102019000890B4 (de) Robotersystem zum Ausführen einer Lernsteuerung basierend auf Bearbeitungsergebnissen und diesbezügliches Steuerverfahren
DE102008013400A1 (de) Verfahren zur Ermittlung von Verriegelungsbereichen wenigstens eines im Raum bewegbaren ersten Objekts
EP1152212A2 (de) Vorrichtung und Verfahren zur Kalibrierung eines Betätigungsarmes eines Roboters

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final