| JP52088963 | INDUSTRIAL ROBOT |
| JP11277468 | CONTROL DEVICE FOR ROBOT |
| JP60261676 | CONTROL METHOD OF WELDING START POSITION |
KLÜGER, Peter (Untere Feldstrasse 11, Stadtbergen, 86391, DE)
KURTH, Johannes (Schrofenstrasse 36, Augsburg, 86163, DE)
HÜTTENHOFER, Manfred (Gregor-Probst-Str. 18, Meitingen, 86405, DE)
SONNER, Christian (Astallerstr. 10, München, 80339, DE)
KLÜGER, Peter (Untere Feldstrasse 11, Stadtbergen, 86391, DE)
KURTH, Johannes (Schrofenstrasse 36, Augsburg, 86163, DE)
HÜTTENHOFER, Manfred (Gregor-Probst-Str. 18, Meitingen, 86405, DE)
| Patentansprüche 1 . Verfahren zur computergestützten Steuerung einer Roboteranordnung mit wenigstens zwei Robotern (1 , 2), mit den Schritten: Bestimmen wenigstens eines Prozessabschnittspunktes (q1 E, q2,E); Ermitteln einer Prozessabschnittszeit (T) für den Prozessabschnittspunkt; Vorgabe einer Abschnittszeit (T) für wenigstens einen Roboter (1 ) der Roboteranordnung auf Basis der Prozessabschnittszeit (T); und Optimieren eines Arbeitsablaufes (gi(s(t)) dieses Roboters (1 ) auf Basis der vorgegebenen Abschnittszeit (ΤΊ+ΔΤ). 2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass der Arbeitsablauf eines Roboters auf Basis der vorgegebenen Abschnittszeit optimiert wird, wobei ein Gütekriterium der Optimierung auf Basis einer Energiegröße (E) des Roboters ermittelt wird. 3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zur Optimierung eines Arbeitsablaufes dieser, insbesondere mit einem dynamischen Modell des Roboters, für wenigstens zwei verschiedene Parameterwerte von Parametern simuliert wird, die den Arbeitsablauf wenigstens teilweise bestimmen. 4. Verfahren naeh einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zur Optimierung des Arbeitsablaufes eines Roboters auf Basis der vorgegebenen Abschnittszeit ein Bahngeschwindigkeitsprofil (s(t)) und/oder eine Bahnkurve (g-i(s)) bestimmt wird. 5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Transferabschnitt (a) in einem Arbeitsablauf (qi(s)) eines Roboters ermittelt und optimiert wird. 6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine minimale Abschnittszeit (T,) für wenigstens zwei Roboter (i=1 , 2) der Roboteranordnung ermittelt wird, und dass die Prozessabschnittszeit (T) auf Basis dieser minimalen Abschnittszeiten (Tj) ermittelt wird. 7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Optimierung des Arbeitsablaufes eines Roboters wenigstens teilweise durch dessen Steuerung (R,) erfolgt. 8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Vorgabe der Abschnittszeit für einen Roboter durch eine Steuerung (Z) der Roboteranordnung erfolgt. 9. Steuermittel (Z, Ri) zur computergestützten Steuerung einer Roboteranordnung mit wenigstens zwei Robotern (1 , 2), mit: einem Prozessabschnittspunktmittel (Z) zum Bestimmen wenigstens eines Prozessabschnittspunktes (qi, E, q2, E); einem Prozessabschnittszeitmittel (Z, R,) zum Ermitteln einer Prozessabschnittszeit (T) für den Prozessabschnittspunkt; einem Abschnittszeitmittel (Z) zum Vorgeben einer Abschnittszeit (T) für wenigstens einen Roboter (1 ) der Roboteranordnung auf Basis der Prozessabschnittszeit (T); und einem Optimierungsmittel (Ri) zum Optimieren eines Arbeitsablaufes (gi(s(t)) dieses Roboters auf Basis der vorgegebenen Abschnittszeit, dadurch gekennzeichnet, dass das Steuermittel zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet ist. 10. Steuermittel nach Anspruch 9, dadurch gekennzeichnet, dass eines seiner Mittel wenigstens teilweise in einer Steuerung (Rj) eines Roboters der Roboteranordnung und/oder in einer Steuerung (Z) der Roboteranordnung implementiert ist. 1 1. Computerprogrammprodukt mit einem darauf gespeichertem Computerprogramm zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche 1 bis 8. |
Verfahren und Steuermittel zur Steuerung einer Roboteranordnung
Die vorliegende Erfindung betrifft ein Verfahren und ein Steuermittel zur
computergestützten Steuerung einer Roboteranordnung mit wenigstens zwei
Robotern.
Bei Roboteranordnungen mit zwei oder mehr Robotern kann zwischen koordinierten und kooperativen Prozessen unterschieden werden: während bei kooperativen
Prozessen die Roboter synchron als Achsen eines virtuellen Hyperroboters fungieren, um beispielsweise gemeinsam eine von den Robotern gehaltene Nutzlast zu bewegen, führen im koordinierten Roboterbetrieb Roboter Teilaufgaben a priori unabhängig von anderen Robotern aus.
Um hierbei Kollisionen zu vermeiden, werden nach betriebsinterner Praxis Prozesse in Prozessabschnitte unterteilt, die erst von allen kollisionsgefährdeten Robotern abgearbeitet worden sein müssen, bevor sie einen nachfolgenden Prozessabschnitt beginnen dürfen. Sollen beispielsweise zwei Roboter abwechselnd Nutzlasten im selben Arbeitsraum bewegen, können solche Prozessabschnitte durch den Austritt eines Roboters aus diesem Arbeitsraum vorgegeben werden, so dass der jeweils andere Roboter erst in einem nachfolgenden Prozessabschnitt in den - nun freien - Arbeitsraum eindringen darf. Arbeitsabläufe, insbesondere Bewegungen, von einzelnen Robotern werden jedoch in der Regel zeitoptimal gesteuert, i.e. so, dass der Roboter den Arbeitsablauf in der minimal möglichen Zeit abarbeitet, die beispielsweise aus Beschränkungen in Antriebskräften und -momenten, Gelenkgeschwindigkeiten und -beschleunigungen und/oder kartesischen Geschwindigkeiten von Referenzpunkten wie dem TCP resultieren kann. Dies führt bei dem oben erläuterten, in Prozessabschnitte getakteten koordinierten Prozess dazu, dass der bzw. die schnelleren Roboter, i.e. diejenigen, die den jeweiligen Prozessabschnitt in geringerer minimaler Zeit abarbeiten, am Ende des Prozessabschnitts auf den jeweils langsamsten Roboter warten und somit bei ihrem zeitoptimalen Arbeitsablauf unnötig viel Energie verbraucht haben. Die DE 196 25 637 A1 schlägt zur Kollisionsvermeidung im Mehrroboterbetrieb vor, Kollisionsbereiche in den Raum der gemeinsamen Gelenkkoordinaten zu projizieren und dort zeitoptimale kollisionsfreie Trajektorien zu planen. Die Endzeit des dabei schnelleren Roboters wird auf die Endzeit des langsameren Roboters skaliert, um denselben Punkt im Gelenkkoordinatenraum synchron zu erreichen.
Aufgabe der vorliegenden Erfindung ist es, die Steuerung von Roboteranordnungen mit wenigstens zwei Robotern zu verbessern.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Anspruch 9 stellt ein Steuermittel, Anspruch 1 1 ein Computerprogrammprodukt, insbesondere einen maschinenlesbaren Datenträger bzw. ein Speichermedium, zur Durchführung eines erfindungsgemäßen Verfahrens unter Schutz, wobei ein Mittel im Sinne der vorliegenden Erfindung gleichermaßen hard- und/oder softwaretechnisch ausgebildet sein kann, also insbesondere entsprechende Verarbeitungs-, Rechen-, Speicher- und/oder Datenübertragungseinrichtungen und/oder Programme,
Programmmodule, und dergleichen umfassen kann. Vorteilhafte Weiterbildungen sind Gegenstand der Unteransprüche.
Die vorliegende Erfindung basiert auf dem Grundgedanken, eine Zeitdifferenz, die zwischen einer Zeit, die der langsamste Roboter einer Roboteranordnung zur
Abarbeitung eines Prozessabschnittes benötigt, und der Zeit, die ein schnellerer Roboter der Roboteranordnung bei zeitoptimalem Betrieb benötigen würde, zu nutzen, um den Arbeitsablauf des schnelleren Roboters, insbesondere in Hinblick auf seinen Energieverbrauch, zu optimieren. Im Gegensatz zu einer reinen Skalierung der minimalen Endzeit des schnelleren Roboters auf diejenige des langsameren Roboters kann hier eine Optimierung deutliche Energieeinsparungen ergeben. Allgemein umfasst ein erfindungsgemäßes Verfahren zunächst das Bestimmen eines oder mehrerer Prozessabschnittspunkte. Dabei wird ein Gesamtprozess, den die Roboteranordnung durchführen soll, vorzugsweise in zwei oder mehr Teilprozesse bzw. Prozessabschnitte gegliedert. Diese können sich insbesondere im Rahmen einer Kollisionsvermeidung ergeben, etwa durch die Forderung, dass stets nur ein Roboter in einem gemeinsamen, vorzugsweise veränderlichen, Arbeitsbereich agieren darf. Zusätzlich oder alternativ können Prozessabschnittspunkte auch Synchronisationspunkte sein, an denen zwei oder mehr Roboter zeitgleich eine bestimmte Konfiguration einnehmen müssen, etwa, um eine Nutzlast zu übergeben oder ein durch einen Roboter fixiertes Werkstück durch ein Werkzeug zu bearbeiten, welches ein anderer Roboter führt. Prozessabschnittspunkte können sich
beispielsweise aus dem Fördertakt eines Förderers ergeben, mit dem die
Roboteranordnung zusammenwirkt. Zur kompakteren Darstellung kann auch ein Gesamtprozess ohne weitere Unterteilung einen Prozessabschnitt im Sinne der vorliegenden Erfindung darstellen, dessen einziger Prozessabschnittspunkt dann das Ende des Gesamtprozesses bildet.
Allgemein wird unter einem Prozessabschnittspunkt im Sinne der vorliegenden Erfindung insbesondere ein Punkt verstanden, der einen Zustand von zwei oder mehr Robotern der Roboteranordnung, insbesondere Posen der Roboter, beschreibt, beispielsweise Posen am Ende eines Bearbeitungsprozesses oder einer
Transferbewegung. Wird ein Arbeitsablauf eines Roboters i der Roboteranordnung durch den Verlauf seiner Gelenkkoordinaten q, über einem
Prozesszustandsparameter s 0 < s < s E beschrieben, der Gesamtprozess
entsprechend durch die Gelenkkoordinaten q(s) = [qi(s), q 2 (s),...] der Roboter der Roboteranordnung, kann also ein Prozessabschnittspunkt beispielsweise durch Werte des Prozesszustandsparameters s bzw. die zugehörigen Gelenkkoordinaten oder Roboterposen angegeben werden. Prozessabschnittspunkte können manuell, etwa durch Anklicken in einer graphischen Darstellung des Prozesses oder Eingabe während eines Teachens des Prozesses, und/oder automatisch, etwa in
vorgegebenen Abständen des Prozesszustandsparameters, bestimmt werden.
Dann wird für den jeweiligen Prozessabschnittspunkt eine Prozessabschnittszeit ermittelt. Hierunter wird insbesondere diejenige Zeit verstanden, die die
Roboteranordnung zum Erreichen des Prozessabschnittspunkts unter Abarbeitung des jeweiligen Prozessabschnittes durch die Roboter der Roboteranordnung benötigt. In einer bevorzugten Ausführung wird dazu für zwei oder mehr, insbesondere alle
Roboter der Roboteranordnung, jeweils eine minimale Abschnittszeit ermittelt, die die jeweiligen Roboter mindestens zur Abarbeitung ihres jeweiligen Prozessabschnittes benötigen. Diese minimale Abschnittszeit kann vorzugsweise unter Berücksichtigung maximal zulässiger Antriebskräfte und -momente, Gelenkgeschwindigkeiten und - beschleunigungen und/oder kartesischer Geschwindigkeiten von Referenzpunkten insbesondere dem TCP, bei zeitoptimal geplantem Arbeitsablauf erreicht werden. Die Prozessabschnittszeit kann dann auf Basis dieser minimalen Abschnittszeiten ermittelt werden, insbesondere als größte der minimalen Abschnittszeiten.
Gleichermaßen kann eine Prozessabschnittszeit auch auf Basis anderer
Prozessfaktoren ermittelt werden, beispielsweise der Zeit, die ein Werkstück benötigt, um eine vorgegebene Temperatur zu erreichen, die ein Färb-, Dicht- oder
Klebemittelauftrag zur Trocknung benötigt, oder die eine Werkzeug- oder
Spritzmaschine zur Bearbeitung eines Werkstückes benötigt. Allgemein kann die jeweils längste der Zeiten, die Roboter, Werkzeuge, Werkstücke und/oder weitere Prozessmittel wie Werkzeugmaschinen, Förderer oder dergleichen jeweils zum Erreichen des Prozessabschnittspunktes minimal benötigen, als
Prozessabschnittszeit ermittelt werden. In einer vorteilhaften Weiterbildung kann die so aus den minimal Zeiten ermittelte Prozessabschnittszeit um einen vorgegebenen Wert erhöht werden, um auch für das langsamste Prozessmittel eine Reserve vorzusehen und dieses nicht auszubelasten. Hierzu kann in gleicher weise auch die jeweilige minimale Zeit der einzelnen Prozessmittel um einen vorgegebenen, vorzugsweise individuellen, Wert erhöht werden.
Nun wird auf Basis der Prozessabschnittszeit eine Abschnittszeit für einen oder mehrere Roboter der Roboteranordnung vorgegeben, vorzugsweise nur für Roboter, deren minimale Abschnittszeit nicht die Prozessabschnittszeit bestimmen.
Insbesondere kann die Prozessabschnittszeit selber als Abschnittszeit vorgegeben werden. Gleichermaßen ist es möglich, die Abschnittszeiten beispielsweise um einen vorgegebenen Wert gegenüber der Prozessabschnittszeit zu erhöhen, um auch das langsamste Prozessmittel nicht auszubelasten. Die Abschnittszeit kann beispielsweise als Gesamtzeit, die dem jeweiligen Roboter zur Abarbeitung des Prozessabschnittes zur Verfügung steht, oder auch als Zeitdifferenz gegenüber der vorab ermittelten minimalen Abschnittszeit vorgegeben werden.
Dann wird für den bzw. die Roboter auf Basis der vorgegebenen Abschnittszeit ein Arbeitsablauf optimiert. Dabei kann eine Bahnkurve des Roboters i, die etwa durch die Vorgabe seiner Gelenkwinkel q, über einem Bahnparameter s beschrieben werden kann, vorgegeben sein, um beispielsweise den TCP auf einer vorgegebenen kartesischen Bahn zu führen und so beispielsweise Kollisionen zu vermeiden, eine Schweißnaht abzufahren oder Klebe- oder Farbmittel in einer vorgegebenen
Auftragsbahn aufzubringen. In diesem Falle kann das Bahngeschwindigkeitsprofil s(t), mit dem der Roboter diese vorgegebene Bahn abfährt, optimiert werden. Ist die Bahnkurve des Roboters nicht vorgegeben, weil beispielsweise nur eine Anfangs- und eine Endpose zum Aufnehmen und Ablegen einer Nutzlast durch die
Randbedingungen vorbestimmt sind, während die Transferbahn zwischen diesen Posen noch frei wählbar ist, kann auch die Bahnkurve selber optimiert werden. Hierzu können beispielsweise in einem Optimierer Stützpunkte oder andere Parameter, die die Bahnkurve allgemein beschreiben, etwa die Koeffizienten von Splines oder dergleichen, als variierbare Optimierungsparameter verwendet werden. Zusätzlich oder alternativ kann auch hier das Bahngeschwindigkeitsprofil optimiert werden, insbesondere in einem einstufigen Verfahren, bei dem die Bahnkurve über der Zeit beschrieben wird.
Unter einem Optimieren im Sinne der vorliegenden Erfindung wird insbesondere die Vorgabe eines Arbeitsablaufes, beispielsweise einer Bahnkurve und/oder eines Bahngeschwindigkeitsprofils, verstanden, für das ein oder mehrere Gütekriterien einen Extremal-, insbesondere Minimalwert erreichen. Mehrere Gütekriterien können gemeinsam, vorzugsweise als gewichtete Summe, pareto-optimiert werden. Das bzw. die Gütekriterien müssen für den optimierten Arbeitsablauf nicht globale
Extremalwerte erreichen, insbesondere, wenn eine Ermittlung nicht geschlossen möglich ist oder einen hohen numerischen Aufwand erfordert. Dementsprechend wird in einer bevorzugten Ausführung ein Arbeitsablauf optimiert, indem dieser - vorzugsweise numerisch simuliert - für wenigstens zwei verschiedene
Parameterwerte von Parametern, die den Arbeitsablauf (mit)bestimmen, etwa die vorstehend erläuterten Stützstellen, durchgeführt und als optimaler Arbeitsablauf derjenige bestimmt wird, für den das bzw. die Gütekriterien den niedrigsten Wert aufweisen.
Vorzugsweise ist ein Gütekriterium der Optimierung eine Energiegröße des Roboters. Dabei kann es sich insbesondere um einen Energieverbrauch des Roboters oder eine hiermit korrespondierende Größe handeln, beispielsweise das Integral des Quadrats oder des Betrags der Antriebsleistungen der Antriebe des Roboters. Hieraus wird deutlich, dass eine Energiegröße im Sinne der vorliegenden Erfindung nicht notwendig die physikalische Dimension einer Energie bzw. Arbeit aufweisen muss. Die zu optimierende Energiegröße kann vorzugsweise auch einen Energieverbrauch in der Energieversorgung des Roboters, etwa Verluste in Umrichtern,
Zwischenkreisen oder dergleichen, umfassen.
Zusätzlich oder alternativ kann ein Gütekriterium vorzugsweise eine Belastung des Roboters, beispielsweise maximal auftretende Kräfte bzw. Momente, insbesondere in Gelenken, Antrieben oder dergleichen beschreiben. Auch ein Maß für Schwingungen des Roboters, beispielsweise die Amplituden elastischer Schwingungen oder dergleichen, kann ein Gütekriterium bilden. Weitere Gütekriterien können zusätzlich oder alternativ berücksichtigt werden. Insbesondere, um den Wert eines oder mehrerer der vorgenannten Gütekriterien in einer Simulation für verschiedene Parameterwerte, die den Arbeitsablauf des
Roboters (mit)bestimmen, zu ermitteln, wird in einer bevorzugten Ausführung der vorliegenden Erfindung sein Arbeitsablauf mittels eines dynamischen Modells, insbesondere eines Starrkörper- oder eines elastischen Mehrkörpermodells, simuliert. Ein Arbeitsablauf eines Roboters kann Bearbeitungs- und/oder Transferabschnitte umfassen. Dabei kann ein Bearbeitungsabschnitt insbesondere eine Werkzeug- oder Werkstückführung des Roboters während eines Bearbeitungsprozesses,
beispielsweise eines robotergeführten Schweißens, Klebens, Lackierens, einer spanenden oder spanlosen Bearbeitung oder dergleichen umfassen. Ein
Transferabschnitt kann hingegen insbesondere eine vorgegebene Anfangs- und
Endpose des Roboters aufweisen, wobei eine Roboterbahn zwischen beiden Posen - gegebenenfalls unter Berücksichtigung von Randbedingungen wie Kollisionsfreiheit, Maximalwerten für Antriebskräfte und -momente, Geschwindigkeiten und/oder Beschleunigungen, und dergleichen - frei wählbar ist. Typischerweise ist für einen Bearbeitungsabschnitt eine Bahnkurve und ein
Bahngeschwindigkeitsprofil vorgegeben, um beispielsweise bei vorgegebener Auftragsrate eine Klebe- oder Lackierbahn mit einem gewünschten Klebe- bzw.
Lackauftrag abzufahren. Eine Optimierung ist daher für solche Abschnitte nicht möglich, ohne den auszuführenden Prozess zu beeinträchtigen. In einer bevorzugten Ausführung ist daher vorgesehen, den Prozessabschnitt in einen oder mehrere Transferabschnitte und/oder einen oder mehrere Bearbeitungsabschnitte zu unterteilen und nur den bzw. die Transferabschnitte zu optimieren, um so auch den gesamten Prozessabschnitt zu optimieren. Als Transferabschnitt wird somit allgemein insbesondere ein Prozessabschnitt bzw. ein Teil eines Prozessabschnittes verstanden, in dem eine Bahnkurve und/oder ein Bahngeschwindigkeitsprofil variierbar ist. Üblicherweise ist eine Steuerung einer Roboteranordnung verteilt: dabei führt eine globale Prozess- oder Zellsteuerung eine Steuerung des Gesamtprozesses durch, etwa durch Vorgabe von von den Robotern der Anordnung anzufahrenden Posen bzw. abzufahrenden Bahnkurven, während Robotersteuerungen die einzelnen Roboter steuern, beispielsweise Bahnen zwischen vorgegebenen (Stütz)Posen interpolieren. Ein erfindungsgemäßes Verfahren kann gleichermaßen durch eine Zellsteuerung, eine oder mehrere Robotersteuerungen oder verteilt durch Zellsteuerung und
Robotersteuerungen durchgeführt werden. Dabei kann insbesondere vorgesehen sein, dass die Vorgabe der Abschnittszeit für die Roboter der Roboteranordnung durch eine Steuerung der Roboteranordnung erfolgt, die zusätzlich oder alternativ
Prozessabschnittspunkte bestimmen und eine Prozessabschnittszeit ermitteln kann. Die Optimierung des Arbeitsablaufes eines Roboters, insbesondere eine Simulation seines Arbeitsablaufes zur Bestimmung eines oder mehrerer Gütekriterien für verschiedene, den Arbeitsablauf bestimmende Parameterwerte, kann zusätzlich oder alternativ zu einer Bestimmung einer minimalen Abschnittszeit auf Basis einer zeitoptimal geplanten Roboterbahn vorzugsweise durch die Steuerung des jeweiligen Roboters erfolgen. Hierzu ist in einer bevorzugten Ausführung eine Simulation und ein Optimierer in der jeweiligen Robotersteuerung implementiert.
Ein erfindungsgemäßes Verfahren kann, wenigstens teilweise, offline vorab und/oder online während des Arbeitsablaufes erfolgen. Es ist computergestützt, indem
wenigstens einer der vorstehend erläuterten Schritte wenigstens teilweise
automatisiert durch einen Computer, insbesondere der Zell- bzw. Robotersteuerung, durchgeführt wird. So kann insbesondere die Simulation und Optimierung durch Ausführen entsprechender numerischer Verfahren erfolgen, ebenso die Bestimmung minimaler Abschnittszeiten für zeitoptimale Arbeitsabläufe, die Bestimmung einer Prozessabschnittszeit und dergleichen. Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
Fig. 1 : einen Prozess einer Roboteranordnung nach einer Ausführung der vorliegenden Erfindung; und Fig. 2: den Ablauf eines Verfahrens nach einer Ausführung der vorliegenden
Erfindung.
Fig. 1 zeigt in der oberen Zeile von links nach rechts aufeinanderfolgende Zustände einer Roboteranordnung mit zwei Robotern 1 , 2 bei einem Prozess, der nach einer Ausführung der vorliegenden Erfindung gesteuert wird. In der unteren Zeile der Fig. 1 sind die Verläufe verschiedener Zustandsgrößen, insbesondere Gelenkkoordinaten und deren zeitliche Ableitungen, über der Zeit t für den in der oberen Zeile
angedeuteten Prozess aufgetragen.
In dem Prozess setzen die beiden Roboter 1 , 2 abwechselnd Nutzlasten 3 bzw. 4 aufeinander, die in Fig. 1 ausgefüllt bzw. schraffiert symbolisiert sind. Zum besseren Verständnis weist in dem stark vereinfachten Ausführungsbeispiel der in Fig. 1 obere Roboter 1 der Automatisierungszelle zwei Drehgelenke mit parallelen, vertikalen Drehachsen (senkrecht auf Fig. 1 ) auf, die eine Schwinge 1 .2 mit einer Basis 1 .1 bzw. einen Arm 1 .3 mit der Schwinge 1 .2 verbinden, und deren Stellung durch die
Gelenkkoordinate bzw. den Winkel q-1 ,1 zwischen Basis und Schwinge bzw. den Winkel q 1 2 zwischen Schwinge und Arm beschrieben wird, die zum Vektor q^
zusammengefasst werden können. Ihre erste zeitliche Ableitung bzw.
Gelenkgeschwindigkeit wird mit = dqu /dt (i=1 , 2) bezeichnet, die zweite zeitliche Ableitung bzw. Gelenkbeschleunigung entsprechend mit dco-ij /dt. Am Arm 1 .3 ist ein Greifer 1.4 zum Halten der Nutzlast 3 befestigt. Der zweite Roboter weist in analoger Weise einen an einer Basis 2.1 befestigten Arm 2.3 mit einem Greifer 2.4 zum Halten der Nutzlast 4 auf, dessen Gelenkwinkel zur Basis durch den Winkel q 2 beschrieben wird. Nullwert und Orientierung ergeben sich aus der Zusammenschau der oberen und unteren Zeile der Fig. 1 , i.e. die Gelenkwinkel q^ = (qi,i, q-i.2) und q 2 nehmen für die in der linken Spalte der Fig. 1 dargestellten Pose den Wert 0 an und werden gegen den Uhrzeigersinn positiv gezählt. Der Prozess des abwechselnden Aufnehmens von Nutzlasten 3, 4 durch die Roboter 1 , 2 und deren abwechselnden Aufeinaderstapelns auf einem zwischen den beiden Robotern angeordneten Stapel wird erfindungsgemäß in abwechselnd
aufeinanderfolgende Prozessabschnitte unterteilt. In einem ersten Prozessabschnitt [to, T] wird der Roboter 2 von einer Ablagepose, in der er eine Nutzlast 4 auf dem Stapel absetzt, in eine Aufnahmepose überführt, in der er eine weitere Nutzlast 4 von einem Förderer (nicht dargestellt) aufnimmt. Der erste Roboter 1 transportiert in diesem ersten Prozessabschnitt eine Nutzlast 3 von einem anderen Förderer (nicht dargestellt) auf den Stapel und setzt sie dort ab. In einem darauffolgenden zweiten Prozessabschnitt [T, 2T = t 0 ] transportiert umgekehrt der Roboter 2 eine Nutzlast 4 von dem Förderer auf den Stapel, während nun der Roboter 1 von der Ablagepose in die Aufnahmepose überführt wird, um eine weitere Nutzlast 3 aufzunehmen.
Anschließend folgt wieder ein erster Prozessabschnitt etc.. Hierdurch ist gewährleistet, dass die beiden Roboter 1 , 2 im gemeinsamen Arbeitsraum über dem Stapel nicht miteinander kollidieren. Diese Unterteilung kann beispielsweise während der Planung des Gesamtprozesses manuell oder automatisch erfolgen.
Nun wird, beispielsweise vorab während einer Prozessablaufsplanung, für jeden Prozessabschnitt, i.e. den vorstehend erläuterten ersten und zweiten
Prozessabschnitt, jeweils durch eine Robotersteuerung der zeitoptimale Arbeitsablauf bzw. die zeitoptimale Bewegung q,(t) für den jeweiligen Roboter i = 1 , 2 bestimmt.
Für den Roboter 2 ergibt sich im Ausführungsbeispiel der in der unteren Zeile der Fig. 1 dargestellte Verlauf seines Gelenkwinkels q 2 und dessen erster bzw. zweiter zeitlicher Ableitung dq 2 /dt, da> 2 /dt über der Zeit t. Dabei beschleunigt der Roboter 2, wie in Fig. 1 strichpunktiert dargestellt, in der ersten Hälfte des Prozessabschnittes mit einer durch sein maximal zulässiges Antriebsdrehmoment limitierte Beschleunigung und bremst in der zweiten Hälfte mit der betragsmäßig gleichen, negativen
Beschleunigung durch ein entsprechendes Gegendrehmoment wieder zum Stillstand ab, wodurch sich ein entsprechendes, in der Bahnplanung gebräuchliches
Geschwindigkeitstrapezprofil ergibt, das im Ausführungsbeispiel zu einem
Geschwindigkeitsdreiecksprofil entartet und in Fig. 1 strichliert eingezeichnet ist.
Hierdurch ergibt sich die bei zeitoptimalem Arbeitsablauf des Roboters 2 mindestens erforderliche Zeit, die für beide Prozessabschnitte gleich ist und die jeweilige mininnale Abschnittszeit T 2 darstellt.
In gleicher Weise kann für den Roboter 1 eine minimale Abschnittszeit Ti ermittelt werden, die im Ausführungsbeispiel, beispielsweise aufgrund stärkerer
Antriebsmotoren und/oder geringerer Massen und somit größerer zulässigerer Beschleunigungen, kleiner ist als die minimale Abschnittszeit T 2 des Roboters 2.
Die Robotersteuerung R, des jeweiligen Roboters i = 1 , 2 bestimmt zunächst, beispielsweise nach einem Teachen der Aufnahme- und Ablageposen, die oben erläuterte minimale Abschnittszeit Tj, beispielsweise durch Simulation und numerische Optimierung, und überträgt diese an die Zellensteuerung Z (vgl. Fig. 2).
In der Zellensteuerung Z wird hieraus eine Prozessabschnittszeit T als Maximum der minimalen Abschnittszeiten Tj ermittelt (T = ΜΑΧΟΊ , T 2 ) = T 2 ) und die Differenz ATj = T - Tj zwischen dieser Prozessabschnittszeit T und der jeweiligen minimalen
Abschnittszeit Tj an die einzelnen Roboter i = 1 , 2 übertragen (vgl. Fig. 2). In den einzelnen Robotersteuerungen R, wird der jeweilige Prozessabschnitt in einen oder mehrere Transferabschnitte s a und/oder einen oder mehrere
Bearbeitungsabschnitt s b unterteilt, die in Fig. 1 durch die Abschnitte„a" bzw.
„b" angedeutete sind. Im Ausführungsbeispiel sind dies zwei kurze
Bearbeitungsabschnitte b zum Aufnehmen bzw. Ablegen der Nutzlast durch
Schließen bzw. Öffnen des Greifers, in denen der Arbeitsablauf, insbesondere die Bewegung, des jeweiligen Roboters nicht verändert werden darf. Zwischen den Bearbeitungsabschnitten b ergibt sich ein Transferabschnitt a, in dem der
Arbeitsablauf, insbesondere die Bewegung, des Roboters zwischen der Aufnahme- und der Ablagepose frei wählbar ist und optimiert werden kann. Die Steuerung Ri des Roboters 1 optimiert nun den Arbeitsablauf, hier die Bewegung, des Roboters in diesem Transferabschnitt a unter der Randbedingung, dass diese nach Ti + Δ Ti abgeschlossen ist, i.e. schlägt diese Zeitdifferenz der
Transferbewegung zu (T(s a, E) -> T(s a , E) + Δ T-i). Der Index„E" bezeichnet die
Endposition. Im Ausführungsbeispiel kann die Robotersteuerung Ri die Bewegung qi(t), i.e. die Bahnkurve q^s) und das Bahngeschwindigkeitsprofil s(t), für den Transferabschnitt a optimieren. Als Gütekriterium wird ein Kennwert für die vom Roboter 1 benötigte Energie, beispielsweise ein Integral über das Quadrat seiner Antriebsmomente, unter der Nebenbedingung minimiert, dass die Bewegung innerhalb der zur Verfügung stehenden Zeit abgeschlossen sein muss. Dabei ergibt sich, dass der Roboter 1 zunächst seinen Arm 1.3 einschwenkt, um das Trägheitsmoment um die Drehachse der Basis 1.1 zu minimieren, dann die Basis um 180° verschwenkt und schließlich den Arm 1.3 wieder ausschwenkt, um die Ablagepose zu erreichen. Ist hingegen die Bahnkurve q-i(s) für den Transferabschnitt vorgegeben, um
beispielsweise eine Kollision mit nicht dargestellten Hindernissen zu vermeiden, kann für diese Bahnkurve das Bahngeschwindigkeitsprofil s(t) für die Bedingung, dass die benötigte Energie E des Roboters 1 minimal wird (E = E mjn ), optimiert und so wiederum der Energieverbrauch reduziert werden. Prinzipiell kann die oben erläuterte Energieoptimierung auch für den Roboter 2 durchgeführt werden. Diese führt jedoch auf den bereits anfänglich ermittelten zeitoptimalen Arbeitsablauf, da nur mit diesem die vorgegebene Abschnittszeit eingehalten werden kann. Allgemein ist es daher in einer vorteilhaften Ausführung vorgesehen, die Optimierung nur für den- bzw. diejenigen Roboter durchzuführen, deren minimale Abschnittszeit nicht die Prozessabschnittszeit bestimmt.
Die Prozessabschnittszeit muss nicht der größten minimalen Abschnittszeit entsprechen. Beispielsweise kann in obigem Beispiel die auf Basis der minimalen Abschnittszeit des Roboters 2 ermittelte Prozessabschnittszeit um einen
vorgegebenen Wert vergrößert werden, um die Belastung des Roboters 2 durch ständiges Abfahren zeitoptimaler Bahnen zu reduzieren. Dies kann in einer vorteilhaften Weiterbildung nur für einen der beiden abwechselnden
Prozessabschnitte durchgeführt werden, in dem dann beispielsweise die
Antriebsmotoren des Roboters 2 infolge der submaximalen Belastung abkühlen können. Bezugszeichenliste
1 , 2 Roboter
1.1 , 2.1 Basis
1.2 Schwinge
1.3, 2.3 Arm
1.4, 2.4 Greifer
3, 4 Nutzlast
Qu Gelenkwinkel Basis - Schwinge (Roboter 1) qi,2 Gelenkwinkel Schwinge - Arm (Roboter 1) q2 Gelenkwinkel Basis - Arm (Roboter 2) d /dt Ableitung nach Zeit t
T Prozessabschnittszeit
a Transferabschnitt
b Bearbeitungsabschnitt
z Zellensteuerung
Ri, R2 Robotersteuerung
