-
STAND DER TECHNIK
-
Technisches Gebiet
-
Die vorliegende Offenbarung bezieht sich allgemein auf ein Verfahren zum Abstimmen der Parameter, die bei einem kraftgeregelten robotergestützten Montagevorgang verwendet werden, und insbesondere auf ein Verfahren zum Abstimmen der Kraftregelparameter für die robotergestützte Montage, bei dem eine physikalische Simulation des Montageprozesses mitsamt numerischer Optimierung verwendet wird, um verschiedene Kombinationen der Kraftregelparameter in Simulationen zu erproben, die zufällige Posenunsicherheiten beinhalten, und die Optimierung zu einem Parametersatz konvergiert, der gegenüber den Unsicherheiten am robustesten ist.
-
Erörterung des Standes der Technik
-
Die Verwendung von Industrierobotern zur wiederholten Durchführung eines breiten Spektrums von Herstellungs- und Montagevorgängen ist gut bekannt. Allerdings werden einige Arten von Montagevorgängen, wie beispielsweise das Anbringen einer Autotür mit Scharnierstiften an einer Karosserie mit Scharnierstiftlöchern, immer noch von Hand durchgeführt, wobei eine Maschine das Gewicht der Tür anhebt und eine menschliche Arbeitskraft die Scharnierstifte mit den Löchern ausrichtet und die Tür in Position absenkt. Andere Montagevorgänge sind ebenfalls problematisch für Roboter - wie das Einstecken eines elektrischen Steckverbinders in einen Gegenstecker oder jede sonstige Montage eines straff sitzenden Bauteils in ein anderes. Derartige Vorgänge werden noch oft von Hand ausgeführt, weil Roboter Schwierigkeiten haben, die komplexen Fehlausrichtungen zu erkennen und zu korrigieren, die bei Montageaufgaben mit engen Toleranzen auftreten können. Das heißt, dass der Roboter wegen geringfügiger Abweichungen der Teileposen aufgrund von sowohl Greif- als auch Einspannunsicherheiten ein Teil nicht einfach in seine nominale Einbauposition bewegen kann, sondern die Ausrichtung und Passung eines Teils mit dem anderen Teil bzw. in das andere Teil „ertasten“ muss.
-
Um Montageaufgaben robust gegenüber diesen unvermeidlichen Positionierungsunsicherheiten zu machen, wird bei Robotersystemen normalerweise auf Funktionen auf der Basis der Kraftregelung zurückgegriffen, um unerwünschte Abweichungen auszugleichen. Eine herkömmliche Methode zur Einrichtung und Abstimmung für robotergestützte Montageaufgaben ist die händische Abstimmung, bei der eine menschliche Arbeitskraft ein reales Robotersystem für die Montageaufgabe programmiert, das Programm ausführt und die Kraftregelparameter nach der Versuch-und-Irrtum-Methode vorsichtig anpasst (z. B. jeweils Änderungen von weniger als 10 %). Allerdings ist das Abstimmen und Einrichten dieser Kraftregelungsfunktionen mithilfe physischer Tests zeitaufwändig und teuer, da ein händisches Ausprobieren vorgenommen werden muss und auch, wenn die Abstimmung an realen Systemen durchgeführt wird, eine Umgestaltung erforderlich sein kann, wenn das reale System Anforderungen nicht erfüllt. Die Parameterabstimmung an realen physischen Testsystemen ist auch gefährlich, da Roboter nicht nachgiebig sind und ein unerwarteter Kontakt zwischen Teilen somit zu einer Beschädigung des Roboters, der Teile oder umliegender Spannzeuge oder Strukturen führen kann.
-
Es gibt Systeme für die Abstimmung der Kraftregelparameter für die robotergestützte Montage in einer Simulationsumgebung, doch weisen diese existierenden Systeme mehrere Beschränkungen auf. Einige dieser Systeme sind darauf ausgelegt, nur eine bestimmte Art von Montageaufgabe zu simulieren - wie z. B. Bolzen-in-Loch-Montage oder Einbau eines Planarteils -, und können nicht auf allgemeine Montageaufgaben angewendet werden, da die Techniken vorprogrammierte Bewegungsstrategien beinhalten, die für die jeweilige Art von Montageaufgabe bestimmt sind. Andere existierende Systeme für die Parameterabstimmung in einer Simulationsumgebung erfordern immer noch beträchtliche menschliche Erfahrung und Sachkenntnis, um die Auswahl der in den Simulationen verwendeten Kraftregelparameter zu leiten.
-
In Anbetracht der oben beschriebenen Umstände besteht ein Bedarf an einer verbesserten Technik für die autonome Abstimmung von Kraftregelparametern für allgemeine robotergestützte Montagevorgänge.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Die folgende Offenbarung beschreibt ein Verfahren zum Abstimmen der Kraftregelparameter, die für einen allgemeinen robotergestützten Montagevorgang benötigt werden, wobei bei dem Verfahren numerische Optimierung verwendet wird, um verschiedene Kombinationen der Parameter für einen Kraftregler eines Roboters in einer Simulationsumgebung zu bewerten, die auf der Grundlage einer realen Einrichtung des Roboters aufgebaut ist. Bei diesem Verfahren wird eine autonome Abstimmung für Montageaufgaben auf der Grundlage der Simulation einer Kraftregelung mit geschlossenem Regelkreis durchgeführt, wobei Zufallsstichproben aus einer Verteilung von Kraftregelparameterwerten ausgewählt und bewertet werden und die Optimierungsroutine die Parameterverteilung iterativ neu festlegt, um optimale Werte der Parameter zu finden. Um die Übertragung von Simulationsergebnissen in den Betrieb unter realen Bedingungen zu verbessern und das Planungsergebnis robust gegenüber Unsicherheiten zu machen, wird jedes hypothetische Montageprogramm mithilfe mehrerer Simulationen bewertet, bei denen für jede Simulationsinstanz zufällige Unsicherheiten (z. B. Einspannposenfehler) verwendet werden. Das Abschneiden jeder simulierten Montage wird anhand des Durchschnitts der Simulationsergebnisse bewertet, wodurch sichergestellt wird, dass die ausgewählten Regelparameter unter den meisten möglichen Bedingungen gut abschneiden. Das Abstimmen der Parameter in einer Simulation ist schneller, kostengünstiger und sicherer als das Abstimmen der Parameter in einer physischen Testumgebung. Nachdem die Parameter durch die Simulation gelernt wurden, werden sie zur Durchführung des wirklichen Montagevorgangs auf reale Roboter angewendet.
-
Weitere Merkmale der vorliegenden Offenbarung werden aus der nachstehenden Beschreibung und den beigefügten Patentansprüchen in Verbindung mit den begleitenden Zeichnungen ersichtlich.
-
Figurenliste
-
- 1 ist eine Darstellung eines mit Teilen mit engen Toleranzen durchgeführten robotergestützten Montagevorgangs, die mehrere Quellen einer Teilepositionierungsunsicherheit zeigt, die bei robotergestützten Montagevorgängen Herausforderungen darstellen;
- 2 ist eine Darstellung von Teilen, die mit Roboterunterstützung zusammengebaut werden, wobei die Teile eine Ausrichtung in einer Weise erfordern, die bedingt, dass der Roboter eine Lochsuche in einer zur Einführachse senkrechten Ebene durchführt;
- 3 ist eine Darstellung von Teilen, die mit Roboterunterstützung zusammengebaut werden, wobei die Teile eine Ausrichtung in einer Weise erfordern, die bedingt, dass der Roboter eine Taktsuche durchführt, um eine passende Drehorientierung um die Einführachse zu finden;
- 4 ist eine Blockdiagrammdarstellung eines Simulationssystems, das gemäß einer Ausführungsform der vorliegenden Offenbarung für die Simulation einer Rückkopplungsregelung eines robotergestützten Montagevorgangs eingerichtet ist, einschließlich der Fähigkeit, die Wirksamkeit gegebener Kraftregelparameter zu bestimmen;
- 5 ist eine Querschnittsdarstellung eines robotergestützten Montagevorgangs, die die Montageschritte und die Kraftregelparameter zeigt, die im Simulationssystem von 4 gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet werden;
- 6 ist eine Querschnittsdarstellung des robotergestützten Montagevorgangs von 5, wobei der Vorgang gemäß einer Ausführungsform der vorliegenden Offenbarung mehrere Male unter Verwendung eines Teilepositionierungsvariationsbereichs simuliert wird und jede Simulation unter Verwendung einer Verlustfunktion bewertet wird;
- 7 ist eine Querschnittsdarstellung des robotergestützten Montagevorgangs der 5 und 6, wobei gemäß einer Ausführungsform der vorliegenden Offenbarung mehrere Simulationsgruppen die Teilepositionierungsvariation wie in 6 bewerten, wobei jede der Gruppen andere Werte von Kraftregelparametern aus einer Verteilung verwendet und die Verteilung in einem Optimierungsprozess aktualisiert wird, um optimale Werte der Parameter zu finden;
- 8 ist eine Konzeptdarstellung der Parametersuche und Konvergenz in einem zweidimensionalen Raum unter Verwendung numerischer Optimierung, wie im Stand der Technik bekannt;
- 9 ist ein Flussdiagramm eines Verfahrens zum autonomen Abstimmen der Parameter für einen allgemeinen robotergestützten Montagevorgang unter Verwendung numerischer Optimierung in Verbindung mit einer physikalischen Simulation gemäß einer Ausführungsform der vorliegenden Offenbarung; und
- 10 ist eine Darstellung eines Systems für die autonome Parameterabstimmung durch das Verfahren von 9, wobei die abgestimmten Parameter von einer Robotersteuerung in einem entsprechenden realen robotergestützten Montagevorgang gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet werden.
-
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Die folgende Erörterung der Ausführungsformen der Offenbarung, die ein Verfahren zum Abstimmen der für einen robotergestützten kraftgeregelten Montagevorgang erforderlichen Parameter betrifft, bei dem eine Simulation mit numerischer Optimierung verwendet wird, um verschiedene Kombinationen der Parameter zu bewerten, und eine Teilepositionierungsunsicherheit in die Simulationen einbezogen wird, ist nur beispielhafter Natur und soll die offenbarten Techniken oder ihre Anwendungen und Verwendungen in keiner Weise beschränken.
-
Die Verwendung von Industrierobotern für eine große Vielfalt von Herstellungs- und Montagevorgängen ist gut bekannt. Die vorliegende Offenbarung ist auf die Überwindung der Herausforderungen gerichtet, denen man bei vielen robotergestützten Montagevorgängen begegnet.
-
1 ist eine Darstellung eines mit Teilen mit engen Toleranzen durchgeführten robotergestützten Montagevorgangs, die mehrere Quellen einer Teilepositionierungsunsicherheit zeigt, die bei robotergestützten Montagevorgängen Herausforderungen darstellen. Ein Roboter 100 mit einem Greifer 102 greift ein erstes Teil 110, das mit einem zweiten Teil 120 zusammengebaut werden soll. In diesem Beispiel ist das erste Teil 110 ein Bolzenteil, und das zweite Teil 120 ist ein Lochgebilde. Das Bolzenteil 110 soll in ein Loch im Lochgebilde 120 eingeführt werden. Die Toleranzen der Teile sind bei einer Bolzen-in-Loch-Montage normalerweise recht eng, damit die Baugruppe nach dem Zusammenbau ohne übermäßige Lockerheit betrieben werden kann. Bei einigen Bolzen-in-Loch-Montagen gibt es zwei koaxiale Bolzen an einem Teil, die gleichzeitig in zwei Löcher in dem anderen Teil eingeführt werden müssen, was den Montagevorgang noch schwieriger macht. Viele andere Arten von Gegenstückanordnungen - wie elektrische Steckverbinder, komplexe planare Formen usw. - weisen ähnlich enge Toleranzen auf.
-
Die oben beschriebenen Arten von Montagevorgängen werden noch oft von Hand ausgeführt, weil Roboter Schwierigkeiten haben, die komplexen Fehlausrichtungen zu erkennen und zu korrigieren, die bei Montageaufgaben mit engen Toleranzen auftreten können. Das heißt, dass der Roboter wegen geringfügiger Abweichungen der Teileposen ein Teil nicht einfach in seine nominale Einbauposition bewegen kann, sondern die Ausrichtung und Passung eines Teils mit dem anderen Teil bzw. in das andere Teil „ertasten“ muss. Es gibt viele mögliche Quellen von Fehlern und Unsicherheit bei Teileposen. Erstens kann die exakte Position und Orientierung (zusammen „Pose“) des Bolzenteils 110, wie es im Greifer 102 gegriffen wird, in geringem Umfang von der erwarteten Pose abweichen. Gleichermaßen kann die exakte Pose des gesamten Teils 120 in seinem Spannzeug ebenfalls von der erwarteten Pose abweichen. Bei Systemen, bei denen eine Kamera 130 verwendet wird, um Bilder der Arbeitsraumszene zur Ortsbestimmung bereitzustellen, kann ein Wahrnehmungsfehler auch zur Unsicherheit der relativen Teilepositionierung beitragen. Zudem können Kalibrierungsfehler beim Aufstellen des Roboters 100 und der Spannvorrichtung, die das Teil 120 hält, im Arbeitsraum und geringfügige Variationen der Robotergelenkposition sämtlich weiter zur Teilepositionierungsunsicherheit beitragen.
-
2 ist eine Darstellung von Teilen, die mit Roboterunterstützung zusammengebaut werden, wobei die Teile eine Ausrichtung in einer Weise erfordern, die bedingt, dass der Roboter eine Lochsuche in einer zur Einführachse senkrechten Ebene durchführt. Ein Greifer 202 greift ein Teil 210, das in derselben Weise, wie in 1 gezeigt, in ein Loch 220 eingeführt werden muss. Ein Abstand 230, der aus Gründen der Sichtbarkeit übertrieben ist, stellt die Unsicherheit bei der lateralen Position des Teils 210 relativ zum Loch 220 dar. Um die richtige Ausrichtung des Teils 210 mit dem Loch 220 zu finden, kann es erforderlich sein, dass der Roboter eine Lochsuche durchführt, bei der der Greifer 202 das Teil 210 nach einem ZickzackMuster 240 in einer zur Achse des Teils 210 senkrechten Ebene vor und zurück bewegt.
-
3 ist eine Darstellung von Teilen, die mit Roboterunterstützung zusammengebaut werden, wobei die Teile eine Ausrichtung in einer Weise erfordern, die bedingt, dass der Roboter eine Taktsuche durchführt, um eine passende Drehorientierung um die Einführachse zu finden. Ein Greifer 302 greift ein erstes Teil 310, das mit einem zweiten Teil 320 zusammengepasst werden muss. In diesem Fall sind das erste und das zweite Teil 310/320 Zahnräder mit Zähnen, die genau ausgerichtet sein müssen. Um die richtige Ausrichtung des Teils 310 zum Teil 320 zu finden, kann es erforderlich sein, dass der Roboter eine Taktsuche durchführt, bei der der Greifer 302 die Drehposition des Teils 310 um seine Drehachse fein justiert, während er versucht, das Teil 310 in Position und Eingriff mit dem Teil 320 abzusenken.
-
Obwohl die oben beschriebenen Lochsuch- und Taktsuchfähigkeiten bei Robotersystemen vorhanden sind, können sie ineffizient sein, und sie sind oft unwirksam, wenn die Teilemontage etwas Komplexeres als eine einfache Lochausrichtung oder Drehausrichtung einbegreift.
-
Um Montageaufgaben robust gegenüber diesen unvermeidlichen Positionsunsicherheiten zu machen, wird bei Robotersystemen normalerweise auf Funktionen auf der Basis der Kraftregelung zurückgegriffen, um die richtige Teilepassung zu „ertasten“. Eine herkömmliche Methode zur Einrichtung für robotergestützte Montageaufgaben ist die händische Abstimmung, bei der eine menschliche Arbeitskraft ein reales Robotersystem für die Montageaufgabe programmiert, das Programm ausführt und die Kraftregelparameter nach der Versuch-und-Irrtum-Methode anpasst. Allerdings ist das Abstimmen und Einstellen dieser Kraftregelungsfunktionen mithilfe physischer Tests wegen des händischen Ausprobierens, das durchgeführt werden muss, zeitaufwändig und teuer. Die Parameterabstimmung an realen physischen Testsystemen ist auch gefährlich, da Roboter nicht nachgiebig sind und ein unerwarteter Kontakt zu einer Beschädigung der Roboter oder umliegenden Spannzeuge oder Strukturen führen kann.
-
Es gibt Systeme für die Abstimmung der Kraftregelparameter für die robotergestützte Montage in einer Simulationsumgebung, doch weisen diese existierenden Systeme mehrere Beschränkungen auf. Einige dieser Systeme sind darauf ausgelegt, nur eine bestimmte Art von Montageaufgabe zu simulieren - wie eine der in den 1 bis 3 gezeigten -, und können nicht auf allgemeine Montageaufgaben angewendet werden, da die Techniken vorprogrammierte Bewegungsstrategien beinhalten, die für die jeweilige Art der Montageaufgabe bestimmt sind. Andere existierende Systeme für die Parameterabstimmung in einer Simulationsumgebung erfordern immer noch beträchtliche menschliche Erfahrung und Sachkenntnis, um die Auswahl der in den Simulationen verwendeten Kraftregelparameter zu leiten.
-
Die vorliegende Offenbarung beschreibt ein Verfahren zum autonomen Abstimmen der Kraftregelparameter für eine generische robotergestützte Montage, das die Beschränkungen existierender Techniken überwindet. Bei dem Verfahren wird eine High-Fidelity-Simulation der Kraftregelung mit geschlossenem Regelkreis des Roboters mit Kontaktdynamiken zwischen den Teilen, die zusammengebaut werden, verwendet. Die Montageaufgabe wird segmentiert und parametrisiert, und eine Optimierungsroutine bewertet die Simulationen, um die Parameterwerte zu finden, die bei der Montage am besten abschneiden. Jeder bewertete Parametersatz wird mehrmals mit zufällig variierender Teileposenunsicherheit simuliert, und die Parametersätze, die gegenüber der Posenunsicherheit am robustesten sind, werden am höchsten bewertet. Die Technik wird unten im Einzelnen erörtert.
-
4 ist eine Blockdiagrammdarstellung eines Simulationssystems 400, das gemäß einer Ausführungsform der vorliegenden Offenbarung für die Simulation einer Rückkopplungsregelung eines robotergestützten Montagevorgangs eingerichtet ist, einschließlich der Fähigkeit, die Wirksamkeit gegebener Kraftregelparameter zu bestimmen. Ein Computer 410 ist dazu eingerichtet, ein Simulationssystem 420 auszuführen, das ein Roboterdefinitionsmodell 430 und eine Physik-Engine 440 umfasst. Das Simulationssystem 420 führt eine Simulation der Kraftregelung mit geschlossenem Regelkreis eines Montagevorgangs durch, die Kontaktdynamiken zwischen den Teilen beinhaltet, die bei der Simulation zusammengebaut werden. Der simulierte Montagevorgang verhält sich entsprechend Kraftregelparametern, die als Eingabe in das Roboterdefinitionsmodell 430 festgelegt sind. Die Prüfung der Ergebnisse jeder Simulation (Wurden die Teile vollständig und richtig zusammengebaut?) ermöglicht die Bewertung der Wirksamkeit verschiedener Werte der Kraftregelparameter.
-
Das Roboterdefinitionsmodell 430 umfasst einen Kraftregler 432. Im Gegensatz zu Robotersteuerungen, die für Bewegungssteuerungsanwendungen wie Spritzlackieren, Laserschweißen oder Platzieren von Teilen auf einem Förderband verwendet werden (wo ein Kontakt zwischen dem Werkzeug am Ende des Roboterarms und der Umgebung streng vermieden wird), sorgt der Kraftregler 432 für eine nachgiebige Bewegung des Roboters auf der Grundlage des Widerstands, auf den beim Kontakt mit anderen Objekten getroffen wird. Dies geschieht mithilfe einer Form der Admittanzregelung.
-
Die Impedanzregelung (oder Admittanzregelung) ist ein Konzept der dynamischen Regelung in Bezug auf Kraft und Position. Sie wird oft bei Anwendungen eingesetzt, bei denen ein Manipulator mit einer Umgebung interagiert und die Kraft-Positions-Beziehung von Bedeutung ist. Die mechanische Impedanz ist das Verhältnis von Kraftausgabe zu Bewegungseingabe. Ein virtuelles Masse-Feder-Dämpfer-System wird verwendet, um diese Beziehungen zu definieren. Die Impedanz eines Mechanismus zu regeln, bedeutet, die Kraft des Widerstands gegen externe Bewegungen zu regeln, die durch die Umgebung auferlegt werden. Die mechanische Admittanz ist das Gegenteil der Impedanz - sie definiert die Bewegungen, die aus einer Krafteingabe resultieren. Die Theorie hinter dem Impedanz-/Admittanzregelungsverfahren besteht darin, die Umgebung als Admittanz und den Manipulator als Impedanz zu behandeln.
-
Der Kraftregler 432 funktioniert wie oben beschrieben und empfängt als Eingabe eine Sollkraft (oder „Wunschkraft“) Fd und stellt als Ausgabe eine resultierende Bewegung (Geschwindigkeit) Vd bereit. Die Variablen Fd und Vd sind Vektoren, die alle sechs Freiheitsgrade (drei translatorische und drei rotatorische) im kartesischen Raum umfassen. Der Kraftregler 432 berechnet die resultierende Bewegung Vd unter Verwendung der oben beschriebenen Admittanzregelungsberechnungen auf der Grundlage der Differenz zwischen der Sollkraft Fd und einer Ist-Kontaktkraft F, die auf das Werkstück ausgeübt wird. Die Berechnungen für das Kraft- und Momentengleichgewicht und die Bewegung werden in der Regel bezogen auf den Werkstückschwerpunkt durchgeführt. Die Beziehung zwischen Fd und Vd und die Abstimmung von Fd zum Erreichen einer effizienten Montage werden weiter unten erörtert.
-
Wie vorstehend bereits gesagt, ist die resultierende Bewegung Vd, die vom Kraftregler 432 als Ausgabe bereitgestellt wird, ein kartesischer Geschwindigkeitsvektor, der alle sechs Bewegungsfreiheitsgrade (drei translatorische Geschwindigkeiten und drei rotatorische Geschwindigkeiten) des Schwerpunkts des Teils beinhaltet. Ein Kinematikblock 434 berechnet entsprechende Robotergelenkgeschwindigkeiten V, die benötigt werden, um zu bewirken, dass das Werkzeug am Ende des Roboterarms (Greifer) den Teileschwerpunkt mit der Geschwindigkeit Vd bewegt. Der Kinematikblock 434 führt die Berechnungen der Gelenkgeschwindigkeit auf der Grundlage der bekannten Roboterkinematik mithilfe einer Inverskinematik-Berechnung durch, wie im Stand der Technik bekannt. Zusätzlich zur Umwandlung der Sollgeschwindigkeit Vd im kartesischen Raum in V im Gelenkraum, umfasst der Kinematikblock 434 auch einen Tiefpassfilter, um die Gleichmäßigkeit und Realisierbarkeit der Sollgeschwindigkeit im Gelenkraum sicherzustellen, die als V ausgegeben wird. Ein Integralblock 436 integriert die Gelenkgeschwindigkeit V, um einen Gelenkpositionsvektor P zu erhalten, der eine Roboterpose bei der Simulation definiert, die in einer definierten Greiferbewegung resultiert.
-
Bekannte Eigenschaften und Fähigkeiten einer Robotersteuerung 450 werden verwendet, um den Kraftregler 432, die Inverskinematik-Berechnungen im Block 434 und die Integralrechnung im Block 436 zu simulieren. Bekannte Eigenschaften eines bestimmten Roboters 460 (Kinematik, Motormoment-/Drehzahleigenschaften) werden ebenfalls verwendet, um das Roboterdefinitionsmodell 430 zu erstellen.
-
Die Physik-Engine 440 simuliert die physische Interaktion der Teile, die robotergestützt zusammengebaut werden. Die durch den Gelenkpositionsvektor P definierten Roboterbewegungen werden bei Block 442 bereitgestellt und in einem Kontaktdynamiken-Modell 444 verwendet, um den Kontakt zwischen den Teilen zu simulieren. Drei verschiedene Teilemontagebeispiele werden auf der rechten Seite der 4 gezeigt, die Beispiele von Simulationen veranschaulichen, die durchgeführt wurden und das offenbarte Verfahren für die autonome Parameterabstimmung erfolgreich unter Beweis gestellt haben.
-
In Kasten 470 wird ein komplexes planares Teil 472 robotergestützt in eine passende Öffnung in einem fixierten Teil 474 eingeführt. In Kasten 480 wird ein Teil 482 mit zwei Bolzen robotergestützt in ein passendes fixiertes Teil 484 mit zwei Löchern eingeführt. In Kasten 490 wird ein elektrischer Steckverbinder 492 (z.B. ein Stecker) robotergestützt in einen passenden fixierten elektrischen Steckverbinder 494 (z.B. eine Buchse) eingeführt. Diese Beispiele zeigen Montagevorgänge, die an verschiedenen Arten von Teilen durchgeführt wurden, wobei alle Beispiele empfindlich gegenüber einer translatorischen Positionsausrichtung in beiden lateralen Richtungen sind und die Beispiele unterschiedliche Empfindlichkeiten gegenüber einer Drehposition um eine vertikale Achse (Takt) und einer Neigungsposition der vertikalen Achse aufweisen. Somit wird erwartet, dass jede Art von Montage bei Verwendung unterschiedlicher Kraftregelparameter im Kraftregler 432 optimal abschneidet. Es ist die autonome Abstimmung der Kraftregelparameter, die durch die Techniken der vorliegenden Offenbarung bereitgestellt wird.
-
Für jeden gegebenen Teilemontagevorgang, der simuliert wird, werden dem Kontaktdynamiken-Modell 444 CAD-Modelle der Teile bereitgestellt. Um beispielsweise Simulationen für die im Kasten 480 gezeigten Teile durchzuführen, werden ein CAD-Modell des Teils 482 mit zwei Bolzen und ein CAD-Modell des Teils 484 mit zwei Löchern bereitgestellt. Das Teil 482 mit zwei Bolzen wird in dem Robotergreifer in einer bekannten Pose relativ zum Roboter gegriffen, und das Teil 484 mit zwei Löchern ist im 3D-Simulationsraum fixiert. Im Hinblick auf die exakte Position und Orientierung des fixierten Teils 484 mit zwei Löchern im 3D-Simulationsraum werden Variationen der nominalen Position und Orientierung vorgenommen, um die zuvor erörterten Unsicherheiten in der realen Welt zu simulieren.
-
Das Kontaktdynamiken-Modell 444 in der Physik-Engine 440 simuliert die Bewegung des Teils im Robotergreifer (z.B. des Teils 482) auf der Grundlage der Roboterbewegung von Block 442. Wenn das Teil im Robotergreifer (z.B. das Teil 482) das fixierte Teil (z.B. das Teil 484) im Simulationsraum berührt, werden die resultierenden Kontaktkräfte und -momente vom Kontaktdynamiken-Modell 444 einem Krafterfassungsblock 446 bereitgestellt, wo sie wiederum als Rückkopplungskraft F dem Kraftregler 432 bereitgestellt werden. Die Rückkopplungskraft F ist, wie die Sollkraft Fd, ein 6x1-Vektor, der drei Kräfte und drei Momente umfasst - also alle sechs Koordinatenrichtungen des 3D-Simulationsraums. Wenn die abgestimmten Kraftregelparameter bei einem realen robotergestützten Montagevorgang verwendet werden (siehe 9), werden die Kontaktkräfte und -momente von einem Kraftsensor bereitgestellt, der in den Robotergreifer eingebaut ist.
-
Das Simulationssystem 400 von 4 stellt eine realistische Simulation eines robotischen Systems mit Kraftregler bereit, das einen Montagevorgang mit zwei geometrisch definierten Teilen ausführt. Der Erfolg des simulierten Montagevorgangs hängt von den Kraftregelparametern ab, die als Eingabe in den Kraftregler 432 definiert sind. Das Simulationssystem 400 kann dann bei einer rekursiven Optimierungsberechnung verwendet werden, um die Kraftregelparameter für eine erfolgreiche Montage autonom abzustimmen, einschließlich der zufälligen Änderung der Positionsunsicherheit des fixierten Teils, um die Bedingungen der realen Welt besser zu simulieren.
-
5 ist eine Querschnittsdarstellung eines robotergestützten Montagevorgangs, die die Montageschritte und die Kraftregelparameter zeigt, die im Simulationssystem von 4 gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet werden. Um unter Verwendung numerischer Optimierung das beste Montageprogramm zu suchen, wird das Montageprogramm parametrisiert. Die Parametrisierung kann vom Benutzer in jeder geeigneten Weise gestaltet werden. Eine Möglichkeit zur Durchführung der Parametrisierung besteht darin, das Montageprogramm in mehrere Schritte einer Nachgiebigkeitsregelung aufzuteilen. Bei einem Ausführungsbeispiel werden vier Schritte verwendet. Die Soll- oder Wunschkraft Fd wird dem Kraftregler als Eingabe in Form eines 6x1-Vektors für jeden der Montageschritte bereitgestellt. Für jeden Schritt kann die Robotergreifergeschwindigkeit (in kartesischen Koordinaten) mit Vd, Fd, F, D bestimmt werden, wobei F die oben beschriebene Rückkopplungskontaktkraft (auch ein 6x1-Vektor) ist und D eine Kraftregler-Verstärkungsmatrix ist. D ist eine 6x6-Matrix, und in einer bevorzugten Ausführungsform ist sie eine Diagonalmatrix. Die Geschwindigkeitsberechnung kann in Form einer Matrizenmultiplikation (unter Ausklammerung der Matrizendivision) mit Vd = inv(D) - (Fd - F) ausgedrückt werden.
-
Bei einer bevorzugten Ausführungsform sind die Kraftregler-Verstärkungsmatrix D und die Ausführungszeit T von jedem Schritt als Konstanten festgelegt, und der Sollkraftvektor Fd ist der Parameter, der optimiert wird. Bei anderen Ausführungsformen könnten D und T allerdings Parameter sein, die variabel sind und optimiert werden. Auf der Grundlage des Vektors Fd der Soll- oder Wunschkraft, der dem Kraftregler für jeden Schritt als Eingabe bereitgestellt wird, wird sich der Roboter mit der Geschwindigkeit Vd = inv(D) - (Fd) bewegen, wenn das Teil im Robotergreifer nicht in Kontakt mit der Umgebung kommt; andernfalls wird der Roboter die Kontaktkraft F = Fd beibehalten.
-
In dem Szenario von
5 muss ein Bolzen 510 in eine Öffnung in einem Lochteil 520 eingeführt werden. Das Lochteil 520 ist in seiner Position fixiert, und der Bolzen 510 wird von einem Roboter (nicht dargestellt) gehandhabt. Es sei angenommen, dass es in dem Montageprogramm vier Schritte gibt, wie in der Darstellung von
5 gezeigt. Für jeden Schritt i wird der Sollkraftvektor
als Eingabe bereitgestellt, und dieser Sollkraftvektor
wird für eine Zeitdauer T beibehalten, während der Roboter versucht, den Bolzen 510 in seine montierte Position zu bewegen. Am Ende des Schritts (nach der Zeitdauer T) wird der Sollkraftvektor
für den Schritt i + 1 bereitgestellt, und dies wiederholt sich für alle vier Schritte, wobei jeder Schritt für die Zeitdauer T läuft.
-
Die Anfangswerte, die beim Sollkraftvektor
zu verwenden sind (um die Optimierung zu starten, die dann
für beste Ergebnisse abstimmen wird), können wie folgt gewählt werden. Betrachtet sei der Fall, dass sich der Bolzen 510 nominell direkt über der Öffnung in dem Lochteil 520 befindet, wobei die positive z-Achse des Arbeitsraumkoordinatenrahmens nach oben gerichtet ist. In diesem Fall wird die Weglänge jedes Schritts (stepDist) bestimmt, indem der anfängliche Abstand zwischen Bolzen und Loch durch vier (für vier Schritte) geteilt und ein kleiner Wert (wie etwa 2%) dazu addiert wird. Dann wird der Sollgeschwindigkeitsvektor für jeden Schritt
berechnet als
Das heißt, dass der Sollgeschwindigkeitsvektor vertikal nach unten (in der negativen z-Richtung) gerichtet ist, ohne x-, y- oder rotatorische Komponenten. Die Sollkraft für Schritt i wird dann mit der oben beschriebenen Gleichung als
berechnet.
-
Wie zuvor erörtert, sind
beide 6×1-Vektoren (Kraft und Geschwindigkeit in allen sechs kartesischen Freiheitsgraden). Wenn
für eine Anzahl von Montageschritten N (wie etwa N = 4) bereitgestellt wird, wird der Montagepfad
wobei jeder der Vektoren
wie oben beschrieben berechnet wird. Der Montagepfad θ und die Zeitschrittdauer T sind die Eingaben in den Kraftregler des Roboters.
-
Die vorstehende Erörterung beschreibt, wie der Sollkraftvektor
anfangs für den simulierten Montageprozess von
5 festgelegt wird. Es wird auch eine statistische Verteilung (Varianz) für die Werte des Sollkraftvektors
bestimmt. Die Optimierung wird dann über viele simulierte Montagevorgänge hinweg verwendet, um die Sollkraftvektorparameter abzustimmen, um einen robusten Montageerfolg bei Vorliegen von zufälligen Posenfehlern zu erzielen.
-
6 ist eine Querschnittsdarstellung des robotergestützten Montagevorgangs von
5, wobei der Vorgang gemäß einer Ausführungsform der vorliegenden Offenbarung mehrere Male unter Verwendung eines Teilepositionierungsvariationsbereichs simuliert wird und jede Simulation unter Verwendung einer Verlustfunktion bewertet wird. Bei 610 wird ein Montageprozess wie oben in Bezug auf
5 erörtert festgelegt - umfassend ein fixiertes Teil, ein Teil, das von einem Roboter gegriffen wird und mit dem fixierten Teil zusammengebaut werden soll, und einen Sollkraft-Montagepfad
Dann wird ein Posenfehlerbereich 620 definiert, um Teilepositionierungsvariationen der mit Bezug auf
1 erörterten Arten Rechnung zu tragen. Beispielsweise kann bei einer Anwendung die Teilepositionierungsunsicherheit auf +/-3 mm festgelegt werden, und die Teileorientierungsunsicherheit kann auf +/-2° festgelegt werden. Selbstverständlich können gegebenenfalls höhere oder niedriger Werte verwendet werden.
-
Bei 630 werden mehrere Montagesimulationen durchgeführt, die jeweils denselben Sollkraft-Montagepfad
verwenden, und jede Simulation verwendet andere Posenfehler 620, die aus den Teilepositionierungsunsicherheitsbereichen ausgewählt werden. Die Posenfehler 620 werden auf die Position des fixierten Teils relativ zu seiner Nominalposition im Arbeitsraumkkoordinatenrahmen angewendet. Die Posenfehler 620 können als „Delta“-Werte in allen sechs Freiheitsgraden festgelegt werden, wie {Δx,Δy, Δz, ΔW, ΔP, ΔR}, wobei W, P und R Gieren, Nicken beziehungsweise Rollen sind. In dieser Weise werden mehrere Simulationen durchgeführt. Bei einer Simulation 632 werden der Sollkraftpfad θ und eine aus den Unsicherheitsbereichen ausgewählte Menge von Posenfehlern (wie {Δx = 0.5, Δy = -1.3, Δz = 1.7, ΔW = -0.9, ΔP = 1.9, ΔR = 0.1}) verwendet. Bei einer zweiten Simulation 634 werden derselbe Sollkraftpfad θ und eine andere Menge von aus dem Teilepositionierungsunsicherheitsbereichen ausgewählten zufälligen Posenfehlern (wie {-1.5, -0.6, 1.1, 0.6,1.2, -0.71) verwendet. Bei einer dritten Simulation 636 werden derselbe Sollkraftpfad θ und noch eine andere Menge von zufälligen Posenfehlern verwendet, und so weiter. Die Anzahl der Simulationen, bei denen derselbe Sollkraftpfad und unterschiedliche zufällige Posenfehler verwendet werden, kann so gewählt werden, dass sie sich für die Anwendung eignet. In einem nicht einschränkenden Beispiel liegt die Anzahl der Simulationen bei 630 in einem Bereich von fünf bis zehn. In
6 werden lediglich aus Gründen der Klarheit nur drei Posenfehlersimulationen dargestellt.
-
Jede der Simulationen bei 630 endet mit einem finalen Montageposenfehler nach dem letzten Schritt. Im Falle einer Bolzen-und-Loch-Montage könnte der finale Posenfehler der 3D-Abstand zwischen der unteren Spitze des Bolzens und der Sollposition am Boden des Lochs sein. Es ist wünschenswert, dass dieser Abstand, der finale Posenfehler, minimiert wird. Wenn der Kraftregler den Bolzen erfolgreich in das Loch einführt und den Bolzen absenkt, wird der finale Posenfehler sehr klein sein (wie etwa weniger als ein mm). Wenn es dem Kraftregler jedoch nicht gelingt, den Bolzen in das Loch einzuführen (beispielsweise schiebt er die Spitze des Bolzens seitab des Lochteils), dann wird der finale Posenfehler groß sein (wie etwa 20 mm). Wie bei 640 gezeigt, wird eine Verlustfunktion für den finalen Posenfehler für jede der Simulationen bei 630 berechnet. Der Verlustfunktionswert kann einfach der finale Posenfehler in physikalischen Abstandseinheiten sein, oder er kann beispielsweise auf eine Teilgröße normiert werden. Jedenfalls zeigt ein niedriger Verlustfunktionswert eine erfolgreiche simulierte Montage an.
-
Bei Kasten 650 wird ein durchschnittlicher Verlustfunktionswert für alle Simulationen bei 630 berechnet. Werden beispielsweise fünf Simulationen durchgeführt, bei denen jeweils derselbe Sollkraftpfad θ und verschiedene Werte für den zufälligen Posenfehler verwendet werden, dann wird bei Kasten 650 die durchschnittliche Verlustfunktion für die fünf Simulationen berechnet. Die durchschnittliche Verlustfunktion ist ein Indikator dafür, wie gut die simulierte Montage bei Verwendung des eingegebenen Sollkraftpfads θ (der die parametrisierten Sollkraftwerte beinhaltet) abschneidet. Dieser Verlustfunktionswert wird später in einem Optimierungsprozess verwendet, um die parametrisierten Sollkraftwerte autonom abzustimmen.
-
7 ist eine Querschnittsdarstellung des robotergestützten Montagevorgangs der 5 und 6, wobei gemäß einer Ausführungsform der vorliegenden Offenbarung mehrere Simulationsgruppen die Teilepositionierungsvariation wie in 6 bewerten, wobei jede der Simulationsgruppen oder -reihen andere Werte von Kraftregelparametern aus einer Verteilung verwendet und die Verteilung in einem Optimierungsprozess aktualisiert wird, um optimale Werte der Parameter zu finden. Ein initialer Sollkraftpfad θ wird bei 710 in der oben mit Bezug auf 5 beschriebenen Weise festgelegt. Im Falle von perfekt ausgerichteten Teilen (ohne jeden Posenfehler) würde der Bolzen direkt in das Loch sinken, wie bei 710 gezeigt. Aufgrund von Teilepositionierungsunsicherheiten ist jedoch die perfekte Ausrichtung des von einem Roboter gehandhabten Teils zum fixierten Teil äußerst unwahrscheinlich, und die Kraftregelparameter müssen daher so gewählt werden, dass sie gegenüber Teileposenfehlern robust sind.
-
Eine statistische Verteilung 720 wird für die parametrisierten Werte im Sollkraftpfad θ definiert. In einem Beispiel ist die statistische Verteilung 720 eine Gauß- oder Normalverteilung. Gegebenenfalls können andere Arten von Verteilungen definiert werden. Werte des Sollkraftpfads θ werden zufällig aus der statistischen Verteilung 720 ausgewählt, und für jede Simulationsreihe 730, 732, ... 738 wird ein anderer Sollkraftpfad θ verwendet. Die Anzahl dieser Simulationsreihen kann so gewählt werden, dass sie sich für die Anwendung eignet; in
7 werden nur zur Veranschaulichung fünf gezeigt. Für jede der Simulationsreihen 730-738 werden mehrere Montagesimulationen durchgeführt, wobei bei jeder Simulation andere Posenfehler 610 verwendet werden, die aus den Teilepositionierungsunsicherheitsbereichen ausgewählt werden, wie in Bezug auf
6 beschrieben. Jeder Sollkraftpfad θ besteht aus einem 6×1-Sollkraftvektor
für jeden der Schritte (z.B. vier).
-
Betrachtet sei beispielsweise die Simulationsreihe 730. Bei der Simulationsreihe 730 wird ein Sollkraftpfad θ730, verwendet, der zufällig aus der statistischen Verteilung 720 ausgewählt wird. Die Simulationsreihe 730 umfasst die Simulationen 740, 742 und 744 (und wahrscheinlich mehr, nicht dargestellt). Bei jeder der Simulationen 740, 742 und 744 wird derselbe Sollkraft-Montagepfad θ730 verwendet, und bei jeder Simulation werden andere Posenfehler verwendet, die aus den Teilepositionierungsunsicherheitsbereichen ausgewählt werden. Ein durchschnittlicher Verlustfunktionswert 750 wird für alle Simulationen in der Simulationsreihe 730 berechnet, wie oben in Bezug auf 6 erörtert. Der durchschnittliche Verlustfunktionswert 750 ist ein Indikator dafür, wie gut der Montagevorgang bei Vorliegen einer Teilepositionierungsunsicherheit bei Verwendung des Sollkraftpfads θ730 abschneidet. Jede der anderen Simulationsreihen 732-738 wird in derselben Weise bewertet, wobei jede Simulationsreihe einen durchschnittlichen Verlustfunktionswert erbringt.
-
Die am besten abschneidenden Simulationsreihen (die mit dem niedrigsten Verlustfunktionswert) werden ausgewählt und in einem Optimierungsalgorithmus verwendet, um eine neue statistische Verteilung 760 für den Sollkraftpfad θ zu definieren. In einem nicht einschränkenden Beispiel werden die drei besten Simulationsreihen ausgewählt - dargestellt als die Simulationsreihen 730, 734 und 736 in
7. Die Werte der am besten abschneidenden Sollkraft-Montagepfade (θ
730, θ
734, θ
736) werden verwendet, um die neue statistische Verteilung 760 zu definieren. Wenn die statistische Verteilung 760 ein die Qualität der Montageergebnisse betreffendes Konvergenzkriterium nicht erfüllt, dann wird bei Pfeil 770 die neue statistische Verteilung 760 verwendet, um die statistische Verteilung 720 zu ersetzen, und es werden neue Simulationsreihen festgelegt. Dieser Prozess wird rekursiv fortgesetzt, bis die Konvergenzkriterien bei Pfeil 780 erfüllt werden. Die finalen Mittelwerte
der statistischen Verteilung 760 werden bei 790 ausgegeben, und von diesen Kraftregelparametern θ
final weiß man, dass sie eine robuste robotergestützte Montage der Teile bei Vorliegen einer Teilepositionierungsunsicherheit bieten.
-
8 ist eine Konzeptdarstellung der Parametersuche und Konvergenz in einem zweidimensionalen Raum unter Verwendung numerischer Optimierung, wie im Stand der Technik bekannt. Ein numerischer Optimierungsalgorithmus kann zum automatischen Abstimmen von Parametern verwendet werden, um beste Ergebnisse zu erzielen. Ein Beispiel ist die Evolutionsstrategie zur Adaptation der Kovarianzmatrix (Covariance Matrix Adaptation Evolution Strategy, CMA-ES), für die ein Satz von Parametern aus einer Verteilung (z.B. einer Gauß-Verteilung) stichprobenweise ausgewählt wird und jeder dieser Parameter bewertet wird (unter Verwendung einer Simulation). Die Gauß-Verteilung wird dann in der Art und Weise einer gerichteten Optimierung aktualisiert, um die Wahrscheinlichkeit zu erhöhen, gut abschneidende Parameter auszuwählen.
-
Kasten 810 zeigt einen initialen (erste Generation) Satz einzelner Parameterstichproben aus einer 2D-Verteilung 812, wobei jede Stichprobe durch einen Punkt dargestellt wird. Es versteht sich, dass die in 8 gezeigte gerichtete Optimierungstechnik auf mehrere Dimensionen angewendet werden kann; das Konzept wird aus Gründen der bildlichen Anschaulichkeit mit zwei Dimensionen dargestellt. Jede der Stichproben aus der Verteilung 812 wird in einer Simulation verwendet, die in einer Leistungskennzahl resultiert (wie etwa dem oben beschriebenen Verlustfunktionswert). Die in einer Region 814 enthaltenen Stichproben haben von allen Stichproben in der Verteilung 812 am besten abgeschnitten. Auf dieser Grundlage wird bei Kasten 820 eine zweite Generation von Parameterstichproben mit einer Verteilung 822 generiert. Die Verteilung 822 wird vom CMA-ES-Algorithmus in Richtung der am besten abschneidenden Stichproben erweitert und verlängert. Die Stichproben aus der Verteilung 822 werden in Simulationen verwendet, was in einer Leistungskennzahl für jede resultiert. Die in einer Region 824 enthaltenen Stichproben haben von allen Stichproben in der Verteilung 822 am besten abgeschnitten.
-
Bei Kasten 830 wird eine dritte Generation von Parameterstichproben mit einer Verteilung 832 generiert. Die Verteilung 832 wird neuerlich in Richtung der am besten abschneidenden Stichproben aus der Region 824 erweitert und verlängert. Die Stichproben aus der Verteilung 832 werden in Simulationen verwendet, und es wird festgestellt, dass die Stichproben in einer Region 834 am besten abschneiden. Der gerichtete Optimierungsprozess wird für eine vierte Generation bei Kasten 840 fortgesetzt, wobei eine Verteilung 842 kleiner und im Wesentlichen konzentrisch mit der Verteilung 832 ist, weil die am besten abschneidende Region 834 im Wesentlichen innerhalb der Verteilung 832 zentriert war. Mit anderen Worten hat die Verteilung 842 ungefähr die gleichen Mittelwerte wie die Verteilung 832, aber eine kleinere Standardabweichung. Eine fünfte Generation von Stichproben bei Kasten 850 hat eine Verteilung 852 mit ungefähr dem gleichen Mittelwert und einer noch kleineren Standardabweichung im Vergleich zur vierten Generation. Eine sechste Generation von Stichproben bei Kasten 860 hat eine Verteilung 862 mit ungefähr dem gleichen Mittelwert und einer noch kleineren Standardabweichung im Vergleich zur fünften Generation, und es wird davon ausgegangen, dass die Verteilung 862 die Konvergenzkriterien erfüllt hat.
-
Der in
8 dargestellte gerichtete Optimierungsprozess veranschaulicht deutlich, wie der Optimierungsalgorithmus auf die Simulationen von
7 angewendet wird - Festlegen einer initialen Parameterverteilung (für den Sollpfad θ, der Werte für den Sollkraftvektor
bei jedem Schritt beinhaltet), Durchführen einer Vielzahl von Simulationsreihen, Auswählen der am besten abschneidenden Simulationsreihen, um eine neue Parameterverteilung festzulegen, und Fortsetzen dieses Prozesses, bis die Konvergenzkriterien erfüllt werden. Die Covariance Matrix Adaptation Evolution Strategy (CMA-ES) ist eine bevorzugte Optimierungstechnik und wurde bei der Entwicklung der hier offenbarten Verfahren verwendet. Doch könnten auch andere Optimierungslösungen verwendet werden, einschließlich der Partikelschwarmoptimierung und der Bayes'schen Optimierung.
-
9 ist ein Flussdiagramm 900 eines Verfahrens zum autonomen Abstimmen der Parameter für einen allgemeinen robotergestützten Montagevorgang unter Verwendung numerischer Optimierung in Verbindung mit einer physikalischen Simulation gemäß einer Ausführungsform der vorliegenden Offenbarung. Bei Kasten 910 werden ein Simulationsmodell eines Roboters mit einem Kraftregler und Volumenmodelle von Teilen, die zusammengebaut werden, bereitgestellt. Dieser Schritt wurde bei der Erörterung von
4 im Einzelnen beschrieben. Bei Kasten 920 wird eine statistische Verteilung von Kraftregelparametern bereitgestellt, einschließlich Nennwerten und Standardabweichungen. Dies beinhaltet den 6θ1-Sollkraftvektor
für jeden Schritt in der Montagesimulation - wie zuvor in Bezug auf die
5-7 erörtert. Bei Kasten 930 wird eine erste Vielzahl von Stichproben zufällig aus der Verteilung ausgewählt. Bei einer Ausführungsform liegt die erste Vielzahl in einem Bereich von fünf bis zehn Stichproben.
-
Bei Kasten 940 wird eine Reihe von Simulationen für jede der ausgewählten Stichproben durchgeführt, wobei jede Simulationsreihe eine zweite Vielzahl von Simulationen umfasst. Bei jeder Simulation in einer Simulationsreihe werden dieselbe ausgewählte Stichprobe von Kraftregelparametern und verschiedene zufällig zugewiesene Teileposenfehlerwerte verwendet. Bei einer Ausführungsform liegt die zweite Vielzahl in einem Bereich von fünf bis zehn Simulationen. Somit umfasst eine Simulationsreihe fünf bis zehn Simulationen, wobei bei jeder Simulation dieselbe ausgewählte Stichprobe von Kraftregelparametern verwendet wird und wobei bei jeder Simulation ein unterschiedlicher Teileposenfehler verwendet wird. Bei Kasten 950 wird ein Verlustfunktionswert für jede der Simulationen mitsamt einem durchschnittlichen Verlustfunktionswert für jede Simulationsreihe berechnet. Der Verlustfunktionswert für jede Simulation wird auf der Grundlage eines Abstandsfehlers zwischen einer finalen Teileposition nach der Simulation und einer Soll-Position berechnet.
-
Bei Kasten 960 wird die statistische Verteilung von Kraftregelparametern auf der Grundlage einer Anzahl der Simulationsreihen, die die niedrigsten Werte des durchschnittlichen Verlustfunktionswerts aufweisen, neu festgelegt. Bei einer Ausführungsform werden die drei Simulationsreihen (von den fünf bis zehn Reihen) ausgewählt, die am besten abschneiden, und die Verteilung wird auf der Grundlage der in diesen drei Reihen verwendeten Kraftregelparameter neu festgelegt. Die Neufestlegung der Parameterverteilung wird vom Optimierungsalgorithmus gesteuert. Bei der Entscheidungsraute 970 wird bestimmt, ob ein Konvergenzkriterium erfüllt wurde. Das Konvergenzkriterium könnte auf dem Änderungsbetrag von einer Verteilung zur nächsten basieren, oder das Kriterium könnte auf dem Anteil erfolgreicher Montagesimulationen basieren.
-
Wenn das Konvergenzkriterium bei der Entscheidungsraute 970 nicht erfüllt wird, kehrt der Algorithmus für die gerichtete Optimierung zu Kasten 930 zurück, um zufällig Stichproben aus der neu festgelegten Verteilung auszuwählen, gefolgt von der Durchführung der Simulationsreihen und der erneuten Neufestlegung der Verteilung, bis das Konvergenzkriterium erfüllt wird. Wenn das Konvergenzkriterium erfüllt wird, werden die Mittelwerte einer finalen Verteilung als optimale Werte der Kraftregelparameter verwendet. Die optimalen Werte der Kraftregelparameter werden einer realen Robotersteuerung zur Verwendung bei robotergestützten Montagevorgängen in der realen Welt, die den durchgeführten simulierten Montagen entsprechen, bereitgestellt.
-
10 ist eine Darstellung eines Systems 1000 zum autonomen Abstimmen der Parameter durch das Verfahren von 9, wobei die abgestimmten Parameter von einer Robotersteuerung in einem entsprechenden realen robotergestützten Montagevorgang gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet werden. Ein Computer 1010 hat einen Prozessor und einen Speicher, der mit einem Algorithmus zum Ausführen des Verfahrens für die autonome Parameterabstimmung von 9 eingerichtet ist. Kasten 1020 veranschaulicht, dass der Computer 1010 die Simulation und die Optimierungsberechnungen von 7 durchführt, einschließlich der Simulation einer robotergestützten Montage, die in Bezug auf die 4-6 beschrieben wurde. Dies beinhaltet die Verwendung eines Optimierungssolvers, um Kraftregelparameterwerte zu finden, die bei Vorliegen einer Teilepositionierungsunsicherheit eine optimale Teilemontageleistung bieten.
-
Nachdem die Parameteroptimierungssimulationen konvergiert sind, werden die optimalen Werte der Kraftregelparameter vom Computer 1010 einer Robotersteuerung 1030 bereitgestellt. Die Steuerung 1030 steuert einen Roboter 1040, der die Aufgabe hat, den Montagevorgang auszuführen, der auf dem Computer 1010 simuliert und optimiert wurde. Im gezeigten Beispiel umfasst der Roboter 1040 einen Greifer 1050, der ein Bolzenteil 1060 greift, wobei das Bolzenteil 1060 in ein Lochteil 1070 eingeführt werden soll. Bei einer üblichen Ausführungsform ist der Roboter 1040 ein sechsachsiger Gelenkroboter. Ein Kraft-/Drehmomentsensor 1080 ist zwischen einen äußeren Arm des Roboters 1040 und den Greifer 1050 gekoppelt. Der Kraft-/Drehmomentsensor 1080 stellt der Steuerung 1030 ein Rückkopplungs-Kraft-/Drehmomentsignal bereit, sodass die Kraftregler-Berechnungen wie in Bezug auf 4 erörtert durchgeführt werden können.
-
Der Roboter 1040 arbeitet in einem Arbeitsraum mit einem ortsfesten Koordinatenrahmen. Die Steuerung 1030 kennt die Position und Orientierung des Greifers 1050 und des gegriffenen Teils 1060 jederzeit auf der Grundlage der Roboterkinematik und der Gelenkzustandsdaten. Das Lochteil 1070 wird in einer Halte- oder Spannvorrichtung festgehalten und hat eine Position und Orientierung in dem ortsfesten Koordinatenrahmen, die innerhalb eines bestimmten Genauigkeitsgrads bekannt sind. Wie oben erörtert, ist die Steuerung 1030 nach den Simulationen auf dem Computer 1010 mit Kraftregelparametern konfiguriert, die optimiert sind, um eine robuste Montage der Teile 1060/1070 durch den Roboter 1040 auch bei Vorliegen einer Variation der Pose des eingespannten Teils 1070, einer Variation der Pose des gegriffenen Teils 1060 usw. zu ermöglichen.
-
Die oben beschriebenen Techniken wurden mithilfe von drei Teilemontagesimulationen getestet, wie in 4 dargestellt: Einführen eines komplex geformten planaren Teils, Einführen von zwei Bolzen in zwei Löcher und Einführen eines elektrischen Steckverbinders. In jedem Fall lag die Montageerfolgsquote mit abgestimmten Parametern (unter Verwendung der offenbarten Techniken) über der Erfolgsquote ohne Abstimmung, und in vielen Fällen war die Verbesserung drastisch (> 90% Erfolg mit Parameterabstimmung gegenüber < 20% ohne Abstimmung). Zwei der Teilemontagevorgänge (Einführen von zwei Bolzen in zwei Löcher und Einführen eines elektrischen Steckverbinders) wurden auch unter Verwendung eines realen Roboters und realer Teile getestet, wobei die Robotersteuerungen mit den abgestimmten Kraftregelparametern konfiguriert wurden. Diese Versuche unter realen Bedingungen bestätigten die Fähigkeit der Steuerung und des Roboters, die Teile effizient zusammenzubauen, auch bei Vorliegen einer Teilepositionierungsunsicherheit.
-
Die oben offenbarte Technik für die autonome Parameterabstimmung bietet gegenüber existierenden Verfahren mehrere Vorteile. Im Gegensatz zu Parameteroptimierungstechniken, bei denen reale Experimente herangezogen werden, kann die Simulation auf Computern viel schneller durchgeführt werden.. Ein weiterer Vorteil besteht darin, dass die Simulation für jeden Versuch leicht zurückgesetzt werden kann, während es bei realen Experimenten zeitaufwändig ist, den Roboter und die Steuerung zurückzusetzen, insbesondere wenn der vorherige Versuch fehlschlägt. Lässt man darüber hinaus Roboter wiederholt kontaktreiche Aufgaben ausführen, könnten die Werkstücke beschädigt werden, insbesondere mit Parametern, die nicht gut abgestimmt sind. Außerdem nutzen Werkstücke beim Kontakt leicht ab, wodurch zwischen anfänglichen Versuchen und späteren Versuchen während des Lernens der Parameter Modellunterschiede eingeführt werden könnten. In der simulierten Umgebung hingegen verursachen die Simulationsversuche keinerlei Schäden an Werkstücken oder Robotern. Die Parameterabstimmung mithilfe einer Simulation führt auch nicht zu Sicherheitsproblemen für menschliche Arbeitskräfte.
-
Zudem arbeiten die offenbarten Techniken autonom und benötigen nur ein Modell des Reglers und des Roboters sowie Volumenmodelle der Teile, die zusammengebaut werden. Es bedarf keiner fachkundigen Person, um die Simulationen dabei „anzuleiten“, die richtige Lösung zu finden. Vielmehr findet die Kombination aus Simulation und Optimierung, wobei die Teilepositionierungsunsicherheit in die Auswahl der Kraftregelparameter eingeschlossen ist, auf der Grundlage der tatsächlichen Teilemontagekontaktdynamiken automatisch optimale Werte der Parameter. Beispielsweise konvergiert die Montage des Teils mit zwei Bolzen eigenständig zu translatorischen und rotatorischen Verstärkungen des Kraftreglers, die sich stark von denen unterscheiden, die für den Montagevorgang für den elektrischen Steckverbinder ausgewählt werden.
-
Es wird darauf hingewiesen, dass für bestimmte Teilemontageanwendungen mehr oder andere Parameter bewertet und optimiert werden können. Die oben erörterten Parameter - die sich alle auf die beim Montageprozess verwendeten eingegebenen Sollkraftwerte beziehen - stellen lediglich eine bevorzugte Ausführungsform dar. Die gleiche Art von Optimierungsroutine könnte mit demselben physikalischen Simulationsmodell verwendet werden, um Werte anderer Parameter wie Steifigkeits- und Dämpfungswerte, die in Kontaktdynamiken verwendet werden, oder anderer Parameter, die im Nachgiebigkeitsregler verwendet werden, zu optimieren.
-
In der gesamten vorstehenden Erörterung werden verschiedene Computer und Steuerungen beschrieben und vorausgesetzt. Es versteht sich, dass die Softwareanwendungen und -module dieser Computer und Steuerungen auf einer oder mehreren Rechenvorrichtungen ausgeführt werden, die einen Prozessor und ein Speichermodul haben. Dies schließt insbesondere einen Prozessor in der Robotersteuerung 1030, die den Roboter 1040 steuert, der die robotergestützte Montageaufgabe ausführt, wie in 10 gezeigt, sowie den Computer 410 (4) und den Computer 1010 (10) mit einem oder mehr Prozessoren ein, die dazu eingerichtet sind, das oben erörterte Verfahren für die autonome Parameterabstimmung für robotergestützte Montagevorgänge unter Verwendung numerischer Optimierung in Verbindung mit physikalischer Simulation auszuführen.
-
Die vorstehende Erörterung offenbart und beschreibt nur beispielhafte Ausführungsformen der vorliegenden Offenbarung. Ein Fachmann kann aus dieser Erörterung und den beigefügten Zeichnungen und Patentansprüchen unschwer erkennen, dass vielfältige Änderungen, Modifikationen und Abwandlungen daran vorgenommen werden können, ohne vom Geist und Umfang der Offenbarung, wie sie durch die nachstehenden Patentansprüchen definiert wird, abzuweichen.