-
HINTERGRUND
-
Gebiet
-
Die vorliegende Offenlegung betrifft das Gebiet der Bewegungssteuerung von Industrierobotern und spezieller ein Optimierungsverfahren der Bewegungsplanung von Robotern, welches eine Anfangsbezugsstrecke für die iterative Optimierungsberechnung einer neuen Strecke durch Auswahl einer zuvor berechneten Strecke erzeugt, die ähnliche Start- und Zielpunkte und Beschränkungen der Kollisionsvermeidung wie die neue Strecke aufweist, und Modifizierung der Punktpositionen entlang der zuvor berechneten Strecke basierend auf Unterschieden zwischen den Start- und Zielpunkten der neuen Strecke relativ zu der zuvor berechneten Strecke.
-
Erörterung des Stands der Technik
-
Der Einsatz von Industrierobotern zur Durchführung eines breiten Bereichs von Vorgängen der Herstellung, Montage und Materialbewegung ist bekannt. Bei einigen Roboteranwendungen ändert sich die Position von Start- und/oder Zielpunkten für jede Roboteraufgabe. Dies ist zum Beispiel der Fall, wenn es die Aufgabe des Roboters ist, ein Teil von einem hineinführenden Förderband aufzuheben und das Teil an eine freie Stelle in einem Versandbehälter zu legen. Bei diesen Anwendungen muss die neue Bewegungsstrecke des Roboters für jede Aufgabe in Echtzeit berechnet werden. Darüber hinaus sind Hindernisse in vielen Arbeitsraumumgebungen des Roboters vorhanden und können sich auf der Strecke der Roboterbewegung befinden. Die Hindernisse können dauerhafte Strukturen wie etwa Maschinen und Verankerungen sein, oder die Hindernisse können zeitweilig oder nicht ortsgebunden sein. Kollisionen zwischen dem Roboter und einem beliebigen Hindernis müssen unbedingt vermieden werden.
-
Ein Verfahren zur Bewegungsplanung von Robotern ist verbunden mit dem Modellieren eines Optimierungsproblems auf der Basis der Start-/Zielpunkte, von Beschränkungen der Kollisionsvermeidung und anderen Beschränkungen, dem Festlegen einer Anfangsbezugsstrecke als einer ersten Iteration zur Optimierungsberechnung und dem Abarbeiten der Optimierungsberechnung, bis sie sich vorher festgelegten Kriterien annähert. Das häufigste Verfahren im Stand der Technik zur Festlegung der Anfangsbezugsstrecke ist einfach das Festlegen einer geradlinigen Strecke vom Startpunkt zum Zielpunkt der neuen Strecke. Jedoch ist wegen der Beschränkungen der Kollisionsvermeidung und eventuell anderer, auf Grenzen der Roboterbewegung bezogene Beschränkungen die angenäherte endgültige Lösung für die neue Strecke häufig ganz anders als die geradlinige Anfangsstrecke.
-
Ein Problem bei den Verfahren im Stand der Technik zur Modellierung der Optimierung einer Bewegungsplanung von Robotern ist, dass viele Iterationen nötig sind, um die angenäherte endgültige Lösung für die neue Strecke wegen der signifikanten Abweichung von der geradlinigen Anfangsstrecke zu berechnen. Wenn viele Iterationen benötigt werden, um eine angenäherte Lösung zu erreichen, braucht die Berechnung der Bewegungsplanung zu lange, um in einer Umgebung zweckmäßig zu sein, in der die Berechnungen in Echtzeit durchgeführt werden müssen, wenn der Roboter arbeitet.
-
Angesichts der oben beschriebenen Umstände besteht Bedarf an einem Optimierungsverfahren zur Bewegungsplanung von Robotern, das eine verfeinerte Anfangsbezugsstrecke nutzt, um sich schnell einer Lösung anzunähern.
-
ZUSAMMENFASSUNG
-
Entsprechend der technischen Lehre der vorliegenden Offenlegung wird ein Optimierungsverfahren zur Bewegungsplanung von Robotern durch eine verfeinerte Anfangsbezugsstrecke offengelegt. Wenn durch Bewegungsoptimierung eine neue Strecke berechnet werden soll, wird eine angehende Bezugsstrecke aus der Abspeicherung ausgewählt, die zuvor berechnet wurde und die Start- und Zielpunkte und Beschränkungen der Kollisionsvermeidung aufweist, die der neuen Strecke ähnlich sind. Die angehende Bezugsstrecke wird an allen Zustandspunkten entlang ihrer Länge eingestellt, um den Unterschied zwischen den Start- und Zielpunkten der neuen Strecke im Vergleich mit denjenigen der zuvor berechneten Strecke zu berücksichtigen, um die Anfangsbezugsstrecke zu erzeugen. Die Anfangsbezugsstrecke, die eingestellt ist, um den Start- und Zielpunkten zu entsprechen, wird anschließend als ein Startzustand für die Berechnung der Bewegungsoptimierung verwendet. Durch Verwendung einer Anfangsbezugsstrecke, die der angenäherten neuen endgültigen Strecke ähnlich ist, nähert sich die Optimierungsberechnung schneller an, als wenn eine unkritische Anfangsbezugsstrecke verwendet wird.
-
Zusätzliche Merkmale der derzeit offengelegten Vorrichtungen und Verfahren erschließen sich aus der folgenden Beschreibung und angehängten Ansprüchen, wenn sie in Verbindung mit den begleitenden Zeichnungen betrachtet werden.
-
Figurenliste
-
- 1 ist die Darstellung eines Industrieroboters, der einen Arbeitsablauf zum Aufheben, Bewegen und Legen durchführt, wobei eine neue Strecke für jedes, zu bewegende Werkstück berechnet werden muss, und die Arbeitsbereichsumgebung ein oder mehrere, zu umgehende Hindernisse einschließt.
- 2 ist ein Ablaufdiagramm eines Verfahrens zur Optimierung der Bewegungsplanung von Robotern im Szenario von 1 unter Verwendung einer verfeinerten Anfangsbezugsstrecke nach einer Ausführungsform der vorliegenden Offenlegung;
- 3A, 3B und 3C sind Darstellungen eines Verfahrens zur Modifizierung einer zuvor berechneten Strecke basierend auf Start- und Zielpunkten einer neuen Strecke zur Bereitstellung einer verfeinerten Anfangsbezugsstrecke gemäß einer Ausführungsform der vorliegenden Offenlegung;
- 4 ist ein Kurvenbild, das bildlich das Näherungsverhalten einer Optimierung der Bewegungsplanung der Verfahren der vorliegenden Offenlegung im Vergleich zu Verfahren im Stand der Technik darstellt;
- 5 ist ein Kurvenbild, das bildlich die Berechnungszeit einer Optimierung der Bewegungsplanung für die Verfahren der vorliegenden Offenlegung im Vergleich zu den Verfahren im Stand der Technik darstellt;
- 6A ist die Abbildung eines Roboters mit Bildspuren der vielen Streckeniterationen, die bei Optimierung einer Bewegungsplanung mittels einer unkritischen Anfangsbezugs gemäß den an sich bekannten Verfahren berechnet werden; und
- 6B ist eine Abbildung eines Roboters mit Bildspuren der bei Optimierung der Bewegungsplanung berechneten wenigen Streckeniterationen mittels eines verfeinerten Anfangsbezugs gemäß Ausführungsformen der vorliegenden Offenlegung.
-
AUSFÜHRLICHE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Die folgende Erörterung der auf ein Verfahren zur Optimierung der Bewegungsplanung von Robotern gerichteten Ausführungsformen der Offenlegung unter Verwendung eines verfeinerten Anfangsbezugs ist nur beispielhafter Natur und in keiner Weise beabsichtigt, die offengelegten Vorrichtungen und Verfahren oder ihre Anwendungen oder Einsätze zu begrenzen.
-
Es ist bekannt, Industrieroboter für verschiedene Vorgänge der Herstellung, Montage und Materialbewegung zu nutzen. Bei einigen Arten dieser Arbeitsgänge muss der Roboter programmiert werden, um sich entlang einer Strecke mit einem Startpunkt und einem Bestimmungsort (Zielpunkt), die von einem Arbeitsgang zum nächsten unterschiedlich sind, zu bewegen. Zum Beispiel können bei einem Arbeitsgang zum Bewegen, Aufheben und Legen die eingehenden Teile auf einem Förderband durch den Roboter jederzeit an einer anderen Position aufgehoben werden, und Teile, die durch den Roboter in einen Versandbehälter gelegt werden, werden an einer anderen zugewiesenen Position innerhalb des Behälters abgelegt. Es gibt viele andere beispielhafte Anwendungen, bei denen für jede einzelne Aufgabe oder Arbeitsgang des Roboters eine neue Strecke berechnet werden muss.
-
Darüber hinaus sind Hindernisse in vielen Arbeitsbereichsumgebungen des Roboters vorhanden und können sich in der Strecke der Roboterbewegung befinden - das heißt, es können zwischen den Start- und Zielpunkten, oder allgemeiner dargelegt, zwischen einer aktuellen Position des Roboters und dem Bestimmungsort des Roboters, ein oder mehrere Hindernisse angeordnet sein. Die Hindernisse können dauerhafte Strukturen wie etwa Maschinen und Verankerungen sein, oder die Hindernisse können zeitweilig oder nicht ortsgebunden sein.
-
1 ist eine Darstellung eines Industrieroboters, der in einem Szenario des oben beschriebenen Typs einen Arbeitsgang zum Aufheben, Bewegen und Legen durchführt, wobei eine neue Strecke für jedes, zu bewegende Werkstück berechnet werden muss, und die Arbeitsbereichsumgebung eine oder mehrere, zu umgehende Hindernisse enthält. Ein Roboter 100 mit einem Greifer 102 arbeitet innerhalb eines Arbeitsraums 104. Die Bewegung des Roboters 100 wird durch eine Steuereinheit 110 gesteuert, die typischerweise über ein Kabel 112 mit dem Roboter 100 in Verbindung steht. Die Steuereinheit 110 liefert Gelenkbewegungsbefehle an den Roboter 100 und empfängt Gelenkpositionsdaten von Kodierern in den Gelenken des Roboters 100, wie es an sich bekannt ist. Die Steuereinheit 110 liefert außerdem Befehle zur Steuerung des Greifers 102. Das Szenario zum Aufheben, Bewegen und Legen von 1 ist nur erläuternd und beispielhaft. Die Verfahren zur Optimierung der Bewegungsplanung der vorliegenden Offenlegung sind auf jede Art von Roboterarbeitsgängen anwendbar, und der Greifer 102 kann durch jede Art von Roboterwerkzeug ersetzt werden.
-
Eine Kamera 120 steht mit der Steuereinheit 110 in Verbindung und liefert Bilder des Arbeitsraums 104. Bilder von der Kamera 102 können genutzt werden, um die Position und Ausrichtung von auf dem Roboter zu bearbeitenden Werkstücken oder von Örtlichkeiten zu ermitteln, in denen ein Werkstück durch den Roboter 100 anzuordnen ist, oder auch bewegliche oder vorübergehende Hindernisse in dem Arbeitsraum 104 zu erkennen. In einigen Ausführungsformen wird die Kamera 120 überhaupt nicht benötigt, weil eine Bewegung von Hindernissen nicht möglich ist, und es werden andere Einrichtungen zur Erkennung von Start- und Zielpositionen der Werkstücke, die durch den Roboter 100 zu bewegen sind, verwendet.
-
Im Arbeitsraum 104 kommt auf einem Förderband 140 ein Werkstück 130 an. Die Aufgabe des Roboters 100 ist es, das Werkstück 130 von dem Förderband 140 aufzugreifen, das Werkstück 130 zu bewegen und es in einen Behälter 150 (wie ein Versandbehälter) zu legen. Wiederum ist dies nur ein Beispiel veränderlicher Start- und Zielpositionen; wobei viele andere Beispiele ins Auge gefasst werden können. Position und Orientierung eines Startpunkts 160 werden basierend auf Informationen über die Position des Werkstücks 130 auf dem Förderband 140 und der Geschwindigkeit des Förderbands 140 festgelegt. Eine Ausrichtung des Werkstücks 130 an dem Startpunkt 160 wird benötigt, um eine Orientierung für den Greifer 102 zu bestimmen. Ähnlich werden Position und Ausrichtung eines Zielpunkts 162 basierend auf Informationen über das nächste verfügbare Fach oder eine Position innerhalb des Behälters 150 festgelegt. Ein dazwischen liegender Punkt 164 ist in 1 auf halbem Weg zwischen dem Startpunkt 160 und dem Zielpunkt 162 dargestellt. Bei aktuellen Berechnungen der Bewegungsplanung von Robotern werden mehrere dazwischen liegende Bahnpunkte berechnet, um alle Streckenbeschränkungen zu erfüllen, wobei eine ruckfreie Werkzeugbahn berechnet wird, die durch die Vielzahl von Bahnpunkten verläuft.
-
Ein als Wand dargestelltes Hindernis 170 ist zwischen dem Startpunkt 160 und dem Zielpunkt 162 vorhanden. Es kann auch eingeschätzt werden, dass die Seiten des Behälters 150 Hindernisse darstellen, die von dem Roboter 100 umgangen und bei der Wegplanung berücksichtigt werden müssen. Es können auch andere Hindernisse vorhanden sein.
-
Für jedes auf dem Förderband 140 ankommende Werkstück 130 muss durch die Steuereinheit 110 eine neue Strecke berechnet werden, was den Roboter 100 veranlasst, den Greifer 102 von einer Ausgangs- oder Annäherungsposition entlang eines Streckenabschnitts 180 zum Greifen des Werkstücks 130 am Startpunkt 160 zu bewegen und das Werkstück 130 entlang eines Streckenabschnitts 182 zum Zielpunkt 162 zu bewegen, während das Hindernis 170 umgangen wird, und dann den Greifer 102 in die Ausgangs- oder Annäherungsposition in Vorbereitung auf das nächste Werkstück 130 zurückzuführen. Die neue Strecke muss sehr schnell durch die Steuereinheit 110 berechnet werden, weil die Streckenberechnung in Echtzeit so schnell durchgeführt werden muss, wie der Roboter 110 ein Werkstück 130 bewegen und zurückkehren kann, um das nächste zu greifen.
-
Es wurden Optimierungsverfahren entwickelt, die an sich zur Berechnung von Roboterbewegungen bekannt sind, sodass das Werkzeug einer Strecke von einem speziellen Startpunkt zu einem speziellen Zielpunkt folgt, während eine Kollision des Roboters mit beliebigen Hindernissen vermieden wird und andere Arten von Beschränkungen erfüllt werden. Diese bekannten Verfahren sind jedoch entweder mit Rechenleistung befasst gewesen oder haben andere Optimierungsalgorithmen bei dem Versuch, Berechnungszeit zu reduzieren untersucht. Gemäß den Verfahren der vorliegenden Offenlegung kann Rechenleistung im Wesentlichen eher verbessert werden durch Bereitstellung einer verfeinerten Anfangsbezugsstrecke für die Optimierungsroutine als durch die in früheren Verfahren genutzte unkritische Bezugsstrecke.
-
2 ist ein Ablaufdiagramm 200 eines Verfahrens zur Optimierung der Bewegungsplanung von Robotern im Szenario von 1, bei dem eine verfeinerte Anfangsbezugsstrecke genutzt wird, nach einer Ausführungsform der vorliegenden Offenlegung. Beim Kästchen 202 sind Position und Form beliebiger Hindernisse (das Hindernis 170 und alle anderen) in dem Roboterarbeitsraum 104 festgelegt. Die Hindernisse können durch CAD-Daten im Koordinatenrahmen des Arbeitsraums oder durch Daten von einem Sensor wie etwa der Kamera 120, wie zuvor beschrieben, festgelegt werden. Die Hindernisdaten sind typischerweise Festkörper, Flächen oder Anhäufungen von Flächenpunkten und müssen ausreichend sein, um eine Beschränkung der Kollisionsvermeidung im Optimierungsproblem modellieren zu können. Die Beschränkung der Kollisionsvermeidung wird modelliert, sodass der Mindestabstand zwischen jedem Teil des Roboters 100 und einem beliebigen Hindernis einen vorbestimmten Schwellenwert für jeden Streckenpunkt in der berechneten Bewegung überschreitet, wobei der Mindestabstand in jeder geeignet effizienten Weise berechnet wird wie etwa, indem geometrische Stammfunktionen um die Roboterteile und die Hindernisse herum festgelegt werden, oder durch Modellieren der Hindernisse als eine Abstandsfeldmatrix.
-
Im Kästchen 204 sind Start- und Zielpunkte (qstart, qziel) festgelegt für eine Roboterstrecke, basierend auf einer Aufgabe, die der Roboter durchführen soll. Gemäß 1 kann der Startpunkt 160 basierend auf der Position eines ankommenden Werkstücks 130 auf dem Förderband 140 festgelegt sein, und der Zielpunkt 162 kann basierend auf einer zugeordneten Position für das im Behälter 150 anzuordnende Werkstück 130 festgelegt sein. Der dazwischen liegende Punkt 164 ist nicht als Eingabe in die Bewegungsoptimierung festgelegt; der dazwischen liegende Punkt 164 ist eine Ausgabe der Optimierungsberechnung zusammen mit anderen Punkten der Strecke. Beim Kästchen 206 wird eine Anfangsbezugsstrecke erzeugt. Die Anfangsbezugsstrecke stellt einen Startpunkt (eine Anfangslösung) zur iterativen Berechnung der Bewegungsoptimierung bereit. Bei früheren Verfahren der Bewegungsoptimierung ist die Anfangsbezugsstrecke typischerweise unkritisch als eine gerade Linie vom Startpunkt zum Zielpunkt festgelegt. Mittels Verfahren der vorliegenden Offenlegung wird eine verfeinerte Anfangsbezugsstrecke basierend auf einer zuvor berechneten Strecke erzeugt, die ähnliche Start- und Zielpunkte aufweist. Dieses Verfahren wird nachstehend ausführlich erörtert, was zurück zur Erörterung der Berechnungen im Kästchen 206 führt.
-
Im Kästchen
208 wird das Problem der Bewegungsoptimierung in der Robotersteuereinheit modelliert. Modellierung des Bewegungsoptimierungsproblems umfasst das Festlegen einer Zielfunktion und verschiedener Beschränkungsfunktionen. Das Bewegungsoptimierungsproblem kann an sich festgelegt werden, um eine optimale Strecke q wie folgt zu finden:
sodass:
wobei f (q) die Zielfunktion der Optimierung ist (wie etwa eine Streckenlänge des Werkzeugmittelpunkts), die über die gesamte Roboterbewegung einschließlich Posen q = {q
1, ..., q
T} zu minimieren ist, g(q) Ungleichheitsbeschränkungen sind, die erfüllt sein müssen (wie etwa: innerhalb von Grenzen bleibende Gelenkpositionen, Gelenkgeschwindigkeiten, Beschleunigungen und Erschütterung und Geschwindigkeit des Werkzeugmittelpunkts, Beschleunigung und Erschütterung, die unterhalb von Grenzen bleiben; und eine typisch festgelegte Kollisionsvermeidungsbeschränkung, wobei der Mindestabstand von Roboter zu Hindernis größer als ein Schwellenwert d
safe für alle Posen des Roboters in der Bewegungslösung) sein muss, h(q) Gleichheitsbeschränkungen sind, die erfüllt sein müssen (wie etwa: die Positionen der Start- und Zielpunkte eingehalten werden müssen; und Gleichungen der Systemdynamik oder Bewegungslehre erfüllt sein müssen).
-
Beim Kästchen 210 wird das Optimierungsproblem gelöst. Die Optimierungslösung ist eine iterative Berechnung, die mit einer Bewertung der Beschränkungen und einer Zielfunktion für die Anfangsbezugsstrecke q beginnt, wobei zusätzliche Strecken bis zur Näherung an eine Lösung, in der die Beschränkungen erfüllt sind und sich die Zielfunktion auf einem Minimum befindet, bewertet werden. Um das Näherungsverhalten der Berechnungen zu verbessern, kann das Problem der Optimierung vor einer Lösung konvexifiziert werden. Das Optimierungsproblem zu konvexifizieren, umfasst das Approximieren einer oder mehrerer der Beschränkungen als Polynomzeitfunktionen, wobei die daraus resultierende Berechnung leichter lösbar ist und nur eine optimale Lösung ergibt. In einer Ausführungsform wird die Ungleichheitsbeschränkung der Kollisionsvermeidung linearisiert, indem sie als eine Taylorentwicklung 1. Ordnung approximiert wird.
-
Nach der optionalen Konvexifizierung wird das Optimierungsproblem beim Kästchen 210 mit einer Prüfung an der Entscheidungsraute 212 gelöst, um zu bestimmen, ob sich die Lösung innerhalb einer vorgegebenen Toleranz angenähert hat. Beim Kästchen 214 wird die angenäherte Optimierungslösung interpoliert, um eine gesamte Bewegungsbahn des Roboters einschließlich aller Gelenkbewegungen und der Werkzeugbewegung festzulegen, welche die Beschränkungsfunktionen erfüllt - einschließlich einer Beschränkung der Kollisionsvermeidung, Beschränkungen einer Gelenkbewegung und dem Werkzeug, das die präzisierten Start- und Zielpunkte (qstart, qziel) aufweist.
-
Wenn an der Entscheidungsraute 212 eine angenäherte Lösung erreicht ist, wird die geplante Strecke beim Kästchen 216 außerdem in einer Datenbank oder einem Datenbehälter als eine Strecke p gespeichert. Entsprechend den Verfahren der vorliegenden Offenlegung kann die gespeicherte Strecke p, die eine Vielzahl von Streckenpunkten (p0, ..., p1) enthält, als Basis für eine neue Anfangsbezugsstrecke in einer späteren Optimierungsfolge der Bewegungsplanung genutzt werden. Im Laufe der Zeit wird im Datenbehälter eine große Anzahl von geplanten Strecken für eine gegebene Aufstellung eines Roboterarbeitsraums gespeichert.
-
Es wird ein Fall betrachtet, bei dem eine neue Optimierungsberechnung der Bewegungsplanung gemäß dem Ablaufdiagramm 200 von 2 durchzuführen ist. Beim Kästchen 206 kann eher eine verfeinerte Anfangsbezugsstrecke unter Nutzung der offengelegten Verfahren berechnet werden als eine unkritische Anfangsbezugsstrecke, wie etwa eine geradlinige Strecke von qstart zu qziel, zu verwenden. Wenn man beim Kästchen 206 darauf stößt, eine Anfangsbezugsstrecke zu erzeugen, bewegt sich der Vorgang zum Kästchen 218, wo eine angehende Strecke von den vielen im Datenbehälter gespeicherten, geplanten Strecken ausgewählt wird. Die angehende Strecke wird in erster Linie auf der Basis von Ähnlichkeit oder Nähe der Start- und Zielpunkte (qstart, qziel) der neuen Strecke zu dem Anfang und zu den Endpunkten (p0, p1) der gespeicherten, geplanten Strecke ausgewählt. Bei Auswahl der angehenden Strecke können auch andere Faktoren berücksichtigt werden - wie etwa die Qualität der Lösung (Konvergenzniveau), die Gleichheit von zu umgehenden Hindernissen entlang der Strecke, usw. Nachdem die angehende Strecke aus dem Speicher zuvor geplanter Strecken beim Kästchen 218 ausgewählt ist, kehrt der Vorgang zum Kästchen 206 zurück, um eine verfeinerte Anfangsbezugsstrecke zu berechnen.
-
3A, 3B und 3C sind Abbildungen eines Verfahrens zur Modifizierung einer zuvor berechneten Strecke basierend auf Start- und Zielpunkten einer neuen Strecke, um eine verfeinerte Anfangsbezugsstrecke nach einer Ausführungsform der vorliegenden Offenlegung bereitzustellen. Das gegenwärtig offenbarte Verfahren umfasst die im Bereich 220 enthaltenen Schritte, die in 2 mit einer gestrichelten Umrisslinie dargestellt sind. Die Berechnung einer in 3A, 3B und 3C dargestellten, verfeinerten Anfangsbezugsstrecke erscheint im Kästchen 206 innerhalb des Bereichs 220.
-
In 3A ist eine Strecke 310 dargestellt. Die Strecke 310 ist die angehende Strecke, die beim Kästchen 218 aus der Ablage von im Kästchen 216 gespeicherten, zuvor geplanten Strecken ausgewählt ist. Die Strecke 310 umfasst eine Vielzahl von Punkten pα, einschließlich eines ersten Punktes 312 (p0) und eines letzten Punktes 314 (p1). Wie früher erwähnt, sollten der erste Punkt 312 (p0) und der letzte Punkt 314 (p1) der angehenden Strecke 310 in ziemlich enger Nachbarschaft jeweils zu den Start- und Zielpunkten (qstart, qziel) der zu planenden neuen Strecke liegen.
-
In
3B ist der erste Punkt
312 (p
0) der angehenden Strecke
310 nahe einem ersten Punkt
322 (q
0) der festzulegenden Anfangsbezugsstrecke dargestellt. Der erste Punkt
322 (q
0) der festzulegenden Anfangsbezugsstrecke ist mit dem Startpunkt (q
start) der zu planenden Strecke gleichbedeutend. Eine Abweichung
332 (δ
0) ist als Vektordifferenz zwischen dem ersten Punkt
322 (q
0) der festzulegenden Anfangsbezugsstrecke und dem ersten Punkt
312 (p
0) der angehenden Strecke
310 festgelegt. Das heißt:
-
In gleicher Weise ist der letzte Punkt
314 (p
1) der angehenden Strecke
310 nahe einem letzten Punkt
324 (q
1) der festzulegenden Anfangsbezugsstrecke dargestellt. Der letzte Punkt
324 (q
1) der festzulegenden Anfangsbezugsstrecke ist gleichbedeutend mit dem Zielpunkt (q
ziel) der zu planenden Strecke. Eine Abweichung
334 (δ
1) ist als Vektordifferenz zwischen dem letzten Punkt
324 (q
1) der festzulegenden Anfangsbezugsstrecke und dem letzten Punkt
324 (p
1) der angehenden Strecke
310 festgelegt. Das heißt, die Abweichung
334 wird berechnet als:
-
In
3C schließt eine neue Anfangsbezugsstrecke
340 eine Vielzahl von aus den Punkten q
α der angehenden Strecke
310 berechneten Punkten p
α , die Abweichungen (δ
0, δ
1) an beiden Enden und den proportionalen Abstand α entlang der Strecke ein. Das heißt, jeder Punkt in der neuen Anfangsbezugsstrecke
340 wird berechnet als:
wobei jedes α im Bereich von Null bis Eins (α ∈ [0,1] liegt.
-
In 3C ist ersichtlich, dass die neue Anfangsbezugsstrecke 340 eine Form besitzt, die der der angehenden Strecke 310 sehr ähnlich ist. Durch Vertauschen und Skalieren der angehenden Strecke 310 wie oben festgelegt, weist die neue Anfangsbezugsstrecke 340 Endpunkte auf, die mit den Start- und Zielpunkten (qstart, qziel) der zu planenden, neuen Strecke zusammenpassen. Außerdem wird die neue Anfangsbezugsstrecke 340, wenn die angehende Strecke 310 aus einem Bestand von zuvor geplanten Strecken ausgewählt ist, welche die gleiche oder ähnliche Umgebung wie die zu planende neue Strecke aufweisen, eine Form besitzen, die eine gute Näherung für eine optionale Strecke ist. Die neue Anfangsbezugsstrecke 340 ist vielleicht nicht ganz optimal - das heißt, sie kann ein wenig zu weit weg von den Hindernissen verlaufen (und somit die Zielfunktion nicht minimieren), oder sie kann ein wenig zu nahe an den Hindernissen verlaufen (und somit keine Ungleichheitsbeschränkung der Kollisionsvermeidung erfüllen) - jedoch dient die neue Anfangsbezugsstrecke 340 als sehr guter Anfangspunkt (Anfangsiteration) für die Optimierungsberechnung. Die neue Anfangsbezugsstrecke 340 ist für das Kästchen 208 des Ablaufdiagramms 200 zum Modellieren und Lösen des Optimierungsproblems vorgesehen.
-
4 ist ein Diagramm 400, das im Vergleich zu früheren Verfahren das Näherungsverhalten der Bewegungsplanungsoptimierung der vorliegenden Offenlegung bildlich darstellt. Das Diagramm 400 stellt grafisch Werte der Zielfunktion f auf einer vertikalen Achse 410 im Vergleich zu Werten einer Zustandsvariablen x auf einer horizontalen Achse 420 dar. Die zu berechnende optimierte Strecke wird durch einen Zustand x∗ dargestellt. Das Diagramm 400 schließt eine Kurve 430 ein, die Iteration und Näherungsverhalten einer Optimierungsberechnung der Bewegungsplanung darstellt, welche mit einer unkritischen Anfangsbezugsstrecke beginnt. Die Kurve 430 umfasst eine ziemlich große Anzahl von Iterationen, wobei ersichtlich ist, dass sie um Iterationen wandert und einschließt, die nicht gleichmäßig und direkt zum Zustand x∗ des optimierten Lösungspfades führen. Dies ist die Eigenschaft des Näherungsverhaltens bei komplexen Optimierungsproblemen, wenn die Anfangsbezugslösung von der optimalen Lösung weit weg ist.
-
Das Diagramm 400 enthält auch eine Kurve 400, die eine Iteration und das Näherungsverhalten einer Optimierungsberechnung der Bewegungsplanung zeigt, die mit einer verfeinerten Anfangsbezugsstrecke gemäß Ausführungsformen der vorliegenden Offenlegung beginnt. Die verfeinerte Anfangsbezugsstrecke wird 3A, 3B und 3C entsprechend, und wie oben erörtert, berechnet. Die Kurve 440 umfasst eine kleine Anzahl von Iterationen, wobei ersichtlich ist, dass sie direkt zum Zustand x∗ des optimierten Lösungspfades führt. Dieses schnelle Näherungsverhalten stellt aufgrund der Ähnlichkeit der verfeinerten Anfangsbezugsstrecke mit der optimalen Strecke einen bedeutenden Nutzen der gegenwärtig offengelegten Verfahren dar. Bei allen Berechnungsanwendungen einer Bewegungsplanung ist die sich aus der verfeinerten Anfangsbezugsstrecke ergebende schnelle Näherung wünschenswert und ist besonders wünschenswert, wenn Berechnungen der Bewegungsplanung für robotergesteuerte Anwendungen mit eindeutigen Start- und/oder Zielpunkten für jede Aufgabe in Echtzeit durchgeführt werden müssen.
-
5 ist ein Diagramm 500, das die Berechnungszeit einer Bewegungsplanungsoptimierung für die Verfahren der vorliegenden Offenlegung im Vergleich zu früheren Verfahren bildlich darstellt. Das Diagramm 500 stellt grafisch auf einer vertikalen Achse 510 eine Optimierung (Berechnung) der Bewegungsplanung dar im Vergleich zu einer Anzahl von Interpolationspunkten (die Anzahl von Punkten α) in der zu berechnenden Strecke auf einer horizontalen Achse 520. Das Diagramm 500 enthält eine die Berechnungszeiten darstellende Kurve 530 auf einer typischen Robotersteuereinheit für eine Optimierungsberechnung der Bewegungsplanung, die mit einer unkritischen Anfangsbezugsstrecke beginnt. Die Kurve 530 steigt drastisch für größere Zahlen von Interpolationspunkten an, wobei sich Berechnungszeiten einer Sekunde annähern. Dies ist wiederum die Eigenschaft des Näherungsverhaltens bei komplexen Optimierungsproblemen, wenn die Anfangsbezugslösung weit weg von der optimalen Lösung ist, und die zu Berechnungszeiten führt, die zu lange sind, um in Echtzeit ausgeführt zu werden.
-
Das Diagramm 500 enthält außerdem eine die Berechnungszeiten darstellende Kurve 540 auf der gleichen typischen Robotersteuereinheit für eine Optimierungsberechnung der Bewegungsplanung, die mit einer verfeinerten Anfangsbezugsstrecke beginnt, gemäß Ausführungsformen der vorliegenden Offenlegung. Die Kurve 540 steigt für größere Zahlen von Interpolationspunkten nur leicht an, bei Berechnungszeiten nahe oder unter 0,2 Sekunden - um einen Faktor von 3 bis 4 weniger als die entsprechenden Berechnungszeiten, die sich aus einer unkritischen Anfangsbezugsstrecke ergeben.
-
Wenn Berechnungen der Bewegungsplanung für robotergesteuerte Anwendungen mit eindeutigen Start- und/oder Zielpunkten für jede Aufgabe in Echtzeit durchgeführt werden müssen, ist die Differenz zwischen den in 5 dargestellten Berechnungszeiten der Bewegungsplanung besonders signifikant. Die gegenwärtig offengelegten Verfahren ermöglichen es, schnell genug Berechnungen der Bewegungsplanung auszuführen, um einen Arbeitsgang des Roboters mit voller Geschwindigkeit aufrechtzuerhalten, wobei Verfahren der Bewegungsplanung im Stand der Technik mit einer unkritischen Anfangsbezugsstrecke es erfordern können, die Robotergeschwindigkeit zu reduzieren, um darauf zu warten, dass Berechnungen der Bewegungsplanung abgeschlossen sind.
-
6A ist eine Darstellung eines Roboters 600 mit Bildspuren der vielen Streckeniterationen, die bei Optimierung der Bewegungsplanung unter Verwendung eines unkritischen Anfangsbezuges entsprechend an sich bekannter Verfahren berechnet werden. In 6A (und unten erörterte 6B) ist das Szenario, dass der Roboter 600 ein Werkstück von einem Gestell 610 aufgreift und das Werkstück in einen Behälter 620 legt. Das Gestell 610 könnte durch ein hereinführendes Förderband ersetzt werden, und der Behälter 620 könnte abgegrenzte Fächer darin aufweisen, wodurch es erforderlich ist, für jedes Werkstück eine neue Bewegungsstrecke zu berechnen.
-
In 6A erfordert die Optimierungsberechnung viele Iterationen, um eine Näherung an eine endgültige Strecke 640 nach Beginn mit einer unkritischen Anfangsbezugsstrecke 630 zu erreichen. Die zu jeder Iteration zugehörige Strecke ist in 6A gezeichnet. Die vielen Iterationen (Strecken 630, 632, 634, usw.) stellen die Punkte auf der Kurve 430 von 4 dar. Von der unkritischen (geradlinigen) Anfangsbezugsstrecke 630 ergeben die nächsten wenigen Iterationen Strecken, die sich aufzuwölben beginnen, jedoch nicht ausreichend, um Kollision zwischen dem durch die Seitenwand des Behälters 620 dargestellten Hindernis zu vermeiden. Schließlich wird die Strecke 640 gefunden, die sich hoch genug wölbt, sodass sie über der Seitenwand des Behälters 620 verläuft; wobei jedoch viele Iterationen nötig sind, um wegen fehlender Ähnlichkeit zur unkritischen Anfangsbezugsstrecke 630 die Strecke 640 zu finden.
-
6B ist eine Darstellung des Roboters 600 mit Bildspuren der wenigen Streckeniterationen, die bei Optimierung der Bewegungsplanung unter Verwendung eines verfeinerten Anfangsbezugs gemäß Ausführungsformen der vorliegenden Offenlegung berechnet werden. In 6B erfordert die Optimierungsberechnung wenige Iterationen, um eine Näherung an eine endgültige Strecke 660 nach Beginn mit einer verfeinerten Anfangsbezugsstrecke 650 zu erreichen. Die wenigen Iterationen (die Strecken 650 und 660 und nur eine dazwischen liegende) stellen die Punkte auf der Kurve 440 von 4 dar. Die verfeinerte Anfangsbezugsstrecke 650 ist der endgültigen Strecke 660 so ähnlich, dass die Optimierungsberechnung sich in gerade zwei Iterationen nach dem Anfangsbezug annähert. 6B stellt optisch die mit dem Optimierungsverfahren der Bewegungsplanung unter Verwendung einer verfeinerten Anfangsbezugsstrecke gemäß der vorliegenden Offenlegung verbundene Leistungsfähigkeit dar. Die Leistungsfähigkeit führt zu viel kürzeren Berechnungszeiten als Verfahren im Stand der Technik, was eine Bewegungsplanung für Anwendungen in Echtzeit ermöglicht, bei denen für jedes Werkstück eine neue Strecke berechnet werden muss.
-
In der vorhergehenden Erörterung sind durchweg verschiedene Computer und Steuereinheiten beschrieben und eingeschlossen. Es soll verständlich werden, dass die Softwareanwendungen und Module dieser Computer und Steuereinheiten auf einem oder mehreren Rechengeräten mit einem Prozessor und einem Speichermodul abgearbeitet werden. Insbesondere schließt dies einen Prozessor in der oben erörterten Robotersteuereinheit 110 von 1 ein. Speziell ist der Prozessor in der Steuereinheit 110 gestaltet, eine verfeinerte Anfangsbezugsstrecke für Optimierungsberechnungen der Streckenplanung in der Weise bereitzustellen, die in der vorhergehenden Offenlegung und insbesondere im Ablaufdiagramm 200 durchweg beschrieben ist. Es ist auch möglich, dass ein anderer Computer die Optimierung der Bewegungsplanung durchführt und die berechnete Strecke der Steuereinheit 110 zur Verfügung stellt, wobei in diesem Fall die Steuereinheit 110 einfach den Roboter 100 steuert, und der andere Computer gestaltet ist, die verfeinerte Anfangsbezugsstrecke für Optimierungsberechnung in der Streckenplanung bereitzustellen und zu nutzen.
-
Wie oben behandelt, verbessern die offengelegten Verfahren für ein Optimierungsverfahren zur Bewegungsplanung von Robotern unter Verwendung einer verfeinerten Anfangsbezugsstrecke die Geschwindigkeit und Zuverlässigkeit einer Roboterstreckenplanung. Die offengelegten Verfahren bewirken eine viel schnellere Näherung an eine optimale Strecke als wahrgenommen wird, wenn eine unkritische Anfangsbezugsstrecke verwendet wird, wobei die schnelle Näherung es ermöglicht, eine Streckenplanung für Anwendungen, bei denen für jedes Werkstück eine neue Strecke berechnet werden muss, in Echtzeit durchzuführen.
-
Während oben eine Anzahl beispielhafter Aspekte und Ausführungsformen des Optimierungsverfahrens zur Bewegungsplanung von Robotern unter Verwendung einer verfeinerten Anfangsbezugsstrecke erörtert wurden, wird der Fachmann Modifizierungen, Vertauschungen, Ergänzungen und Unterkombinationen davon erkennen. Es ist deshalb beabsichtigt, dass die folgenden angefügten Ansprüche und danach eingeführte Ansprüche alle diese Modifizierungen, Vertauschungen, Ergänzungen und Unterkombinationen, wie sie innerhalb ihres wahren Geistes und Geltungsbereichs bestehen, einschließen.