-
Gebiet
-
Die vorliegende Erfindung bezieht sich auf eine Robotersteuerungsvorrichtung und ein Robotersteuerungsverfahren zum Ansteuern mehrerer Roboter, während die Roboter miteinander synchronisiert werden.
-
Hintergrund
-
Zum Zweck, eine effektive Produktion unter Nutzung eines Roboters durchzuführen, wurden mehrere Industrieroboter in einem Produktionssystem installiert, um gleichzeitig mehrere Arten von Arbeit durchzuführen. Insbesondere besteht bei einer kooperativen Arbeit zum Greifen, Halten und Montieren desselben Werkstücks unter mehreren Robotern, die gleichzeitig mehrere Arten von Arbeit durchführen, ein Problem einer übermäßigen, an das Werkstück und die Roboter während der Arbeit angelegten Belastung. Die übermäßige Belastung wird durch Verschiebungen der momentanen Greifpositionen der Roboter verursacht. Speziell tritt die übermäßige Belastung nach einem Positionsfehler ausgehend von einer idealen Greifposition auf, bei der keine Belastung anliegt. Der Positionsfehler, der die Belastung verursacht, umfasst einen statischen Positionsfehler aufgrund eines Installationspositionsfehlers und eines Kalibrierungsfehlers der Roboter, und einen dynamischen Positionsfehler, der durch eine Ansprechverzögerung der Roboter verursacht ist. Wenn eine auf das Werkstück und die Roboter wirkende Kraft, die durch ein Positionshaltungsverhältnis zwischen Greifpositionen der jeweiligen mehreren Roboter verursacht wird, eine Toleranz überschreitet, ist es möglich, einen von der Norm abweichenden Zustand beispielsweise dadurch zu erfassen, dass auf einen Stromwert eines Motors geachtet wird und die Roboter durch die Detektion der Abnormalität sicher angehalten werden. Zum Zweck, einen gegenseitigen Positionsfehler unter Robotern im Betrieb zu reduzieren, wurde eine große Anzahl von Technologien zum Verbessern der Synchronisationsgenauigkeit von grundlegenden zyklischen Signalen für jeden Betriebsablauf von Betriebsabläufen vorgeschlagen.
-
Andererseits wurde eine Technologie entwickelt, um Positionshaltungen durch Kraftsteuerung zu korrigieren, wenn eine Verschiebung eines Positionshaltungsverhältnisses zwischen Greifpositionen (Fingerpositionen) von Fingern (Endeffektoren) mehrerer Roboter auftritt. Gemäß dieser Technologie werden die Greifpositionen entsprechend der Kräfte korrigiert, die in den Fingern erzeugt werden, und die Finger werden so gesteuert, dass sie sich zu Positionen bewegen, wo an die Finger angelegte Kräfte in einen Bereich zulässiger Kräfte passen. Eine solche Korrekturtechnologie für Positionshaltungen kann grob in ein Master-Slave-System und ein Impedanzsteuerungssystem unterteilt werden. Bei dem Master-Slave-System handelt es sich um ein System, in dem ein bestimmter Roboter als ein Master-Roboter eingesetzt wird und die anderen Roboter als Slave-Roboter eingesetzt werden, und der Master-Roboter eine Positionssteuerung für eine ideale Bahn durchführt und die Slave-Roboter, dem Masterroboter folgend, entsprechend einer Kraftsteuerung arbeiten. Als Master-Slave-System ist auch ein Synchronsteuerungssystem genanntes System bekannt, das keine Kraftsteuerung als Konfiguration umfasst. Dieses System wird in einem industriellen Gebrauch als eine kostengünstige Konfiguration verwendet, die keinen Kraftsensor umfasst. Ein Positionsverhältnis zwischen dem Hauptroboter und den Slave-Robotern wird vorab definiert, und Positionsbefehlswerte für die Slaves werden ausgehend vom Positionsverhältnis so definiert, dass sie einem Befehlswert des Masters entsprechen (siehe beispielsweise Patentschrift 1). Bei dem Impedanzsteuerungssystem handelt es sich um ein System, um Bahnen der Roboter ausgehend von einer gewünschten Bahn eines Handhabungszielgegenstands rückläufig zu berechnen und, wenn die Bahn als Befehlswert angesetzt ist, die Finger zu Positionen zu steuern, an denen den an die Finger angelegten Kräften ein geeigneter Impedanzkennwert gegeben ist, um gewünschte Bewegungen an die jeweiligen Roboter anzulegen (siehe beispielsweise Patentschrift 2).
-
Anführungsliste
-
Patentliteratur
-
- Patentschrift 1: Japanische Patentanmeldung mit der Offenlegungsnummer H7-20915
- Patentschrift 2: Japanische Patentanmeldung mit der Offenlegungsnummer H7-256580
- Patentschrift 3: Japanische Patentanmeldung mit der Offenlegungsnummer 2001-216012
- Patentschrift 4: Japanische Patentanmeldung mit der Offenlegungsnummer 2011-104740
-
Nichtpatentliteratur
-
- Nichtpatentschrift 1: Suguru Arimoto „Dynamics and Control of Robots” Asakura Publishing Co., Ltd. 1990
-
Zusammenfassung
-
Technisches Problem
-
Jedoch besteht nach den Technologien der Patentschriften 1 und 2 insofern ein Problem, dass, was einen Positionsfehler (einen Absolutpositionsfehler) einer tatsächlichen Bahn betrifft, der während des Betriebs der Roboter auftritt, eine Bahngenerierung für eine kooperativen Betrieb nicht unter Berücksichtigung von Positionshaltungen der Roboter und einer Schwankung bei jeder Betriebsgeschwindigkeit erfolgt. Folglich tritt beispielsweise, wenn eine Arbeit, die durch kooperative Steuerung durchgeführt wird, kompliziert ausfällt, eine Schwankung in einem statischen Fingerpositionsfehler in den Positionshaltungen unter den Robotern auf. Deshalb gibt es einen Fall, bei dem in Abhängigkeit von einer Haltungsveränderung der Finger plötzlich eine Kraft erzeugt wird. Im Ergebnis ist es, wenn eine Grenze bei einer für einen Arbeitsgegenstand und eine Hand zulässigen Kraft besteht, schwierig, einen Hochgeschwindigkeitsarbeitsablauf in Kooperation zu bewerkstelligen.
-
Die vorliegende Erfindung wurde angesichts des Vorstehenden entwickelt, und eine Aufgabe der vorliegenden Erfindung besteht darin, eine Robotersteuerung und ein Robotersteuerungsverfahren zu erhalten, die bzw. das eine an ein ergriffenes Werkstück angelegte Belastung in jeder Position auf tatsächlichen Bahnen mehrerer Roboter in einem kooperativen Arbeitsablauf (Synchronansteuerung) weitestgehend reduzieren kann.
-
Problemlösung
-
Um die vorstehend erwähnten Probleme zu lösen, ist eine Robotersteuerungsvorrichtung, die einen ersten Roboter und einen sich vom ersten Roboter unterscheidenden, zweiten Roboter nach einem Aspekt der vorliegenden Erfindung synchron ansteuert, so aufgebaut, dass sie umfasst: eine Positionsverhältnismatrixgenerierungseinheit, die auf Grundlage von N ersten Befehlswerten zum Anlernen pro einem Roboter, bei denen es sich um positionskorrigierte Befehlswerte zum Positionieren des ersten Roboters und des zweiten Roboters auf Bahnen des ersten Roboters und des zweiten Roboters während der Synchronansteuerung handelt, was die jeweiligen N ersten Befehlswerte zum Anlernen betrifft, Positionsverhältnismatrizes generiert, um ein Positionsverhältnis während der Synchronansteuerung zwischen einem ersten Befehlswert zum Anlernen bezüglich eines ersten Roboters, und einem ersten Befehlswert zum Anlernen bezüglich eines zweiten Roboters zu definieren; eine Erstbefehlswertausgabeeinheit, die einen ersten Befehlswert zum Ansteuern in jedem von M (M > N) Betriebszeiträumen ausgibt, bei dem es sich um einen Befehlswert zum Definieren der Bahn des ersten Roboters handelt; eine Positionsverhältnismatrixinterpolationseinheit, die die N Positionsverhältnismatrizes interpoliert und eine Positionsverhältnismatrix bei jedem ersten Befehlswert zum Ansteuern generiert; und eine Zweitbefehlswertgenerierungseinheit, die bewirkt, dass die Positionsverhältnismatrizes, die den M ersten Befehlswerten zum Ansteuern nach der Interpolation entsprechen, auf die jeweiligen M ersten Befehlswerte zum Ansteuern wirken, und M zweite Befehlswerte zum Ansteuern generiert, bei denen es sich um Befehlswerte zum Definieren der Bahn des zweiten Roboters handelt, wobei die Robotersteuerungsvorrichtung den ersten Roboter auf Grundlage der ersten Befehlswerte zum Ansteuern ansteuert und den zweiten Roboter auf Grundlage der zweiten Befehlswerte zum Ansteuern ansteuert.
-
Vorteilhafte Wirkungen der Erfindung
-
Gemäß der vorliegenden Erfindung ist es, was die Befehlswertgenerierung in jedem von Betriebszeiträumen für den zweiten Roboter betrifft, möglich, eine Transformationsmatrix approximativ zu berechnen und einen Befehlswert für den zweiten Roboter unter Berücksichtigung eines Fehlers, ohne eine komplizierte Berechnung zur Identifizierung von Bewegungseigenschaften der Roboter erforderlich zu machen, und unter Berücksichtigung geometrischer Fehler der Roboter, zu generieren. Deshalb wird es ermöglicht, eine Belastung, die an ein ergriffenes Werkstück angelegt wird, an jeder Position auf tatsächlichen Bahnen von Robotern bei Synchronansteuerung weitestgehend zu reduzieren.
-
Kurze Beschreibung der Zeichnungen
-
1 ist ein Schema zur Erläuterung eines Produktionssystems, das ein Robotersteuerungssystem in einer ersten Ausführungsform der vorliegenden Erfindung enthält.
-
2 ist ein Schema zur Erläuterung der Konfiguration eines Robotersteuerungssystems nach einem Vergleichsbeispiel.
-
3 ist ein Schema zur Erläuterung eines idealen Positionsverhältnisses zwischen Endeffektoren.
-
4 ist ein Schema zur Erläuterung der Konfiguration des Robotersteuerungssystems in der ersten Ausführungsform.
-
5 ist ein Ablaufschema zur Erläuterung einer Vorbereitungsverarbeitung in der ersten Ausführungsform.
-
6 ist ein Ablaufschema zur Erläuterung eines Funktionsablaufs während eines Automatikbetriebs einer Master-Steuerungsvorrichtung in der ersten Ausführungsform.
-
7 ist ein Ablaufschema zur Erläuterung eines Funktionsablaufs während eines Automatikbetriebs einer Slave-Steuerungsvorrichtung in der ersten Ausführungsform.
-
8 ist ein Schema zur Erläuterung der Konfiguration eines Robotersteuerungssystems in einer zweiten Ausführungsform.
-
9 ist ein Schema zur Erläuterung einer Speicherkonfiguration einer Transformationsmatrixfunktionsspeichereinheit in der zweiten Ausführungsform.
-
10 ist ein Ablaufschema zur Erläuterung eines Funktionsablaufs, bei dem eine Positionsverhältnisberechnungseinheit in der zweiten Ausführungsform eine zweite Transformationsmatrixfunktion generiert.
-
11 ist ein Ablaufschema zur Erläuterung eines Funktionsablaufs während eines Automatikbetriebs einer Slave-Steuerungsvorrichtung in der zweiten Ausführungsform.
-
12 ist ein Schema zur Erläuterung der Konfiguration eines Robotersteuerungssystems in einer dritten Ausführungsform.
-
13 ist ein Schema zur Erläuterung einer Speicherkonfiguration einer Transformationsmatrixfunktionsspeichereinheit in der dritten Ausführungsform.
-
14 ist ein Schema zur Erläuterung der Konfiguration eines Robotersteuerungssystems in einer siebten Ausführungsform.
-
15 ist ein Schema zur Erläuterung einer anderen Konfiguration des Robotersteuerungssystems in der siebten Ausführungsform.
-
16 ist ein Schema zur Erläuterung der Konfiguration eines Robotersteuerungssystems in einer achten Ausführungsform.
-
17 ist ein Schema eines Verhältnisses zwischen einer Wirkkraft, die an einen Endeffektor angelegt wird, und der Position des Endeffektors im Robotersteuerungssystem nach dem Vergleichsbeispiel.
-
18 ist ein Schema eines Verhältnisses zwischen einer Wirkkraft, die an den Endeffektor angelegt wird, und der Position des Endeffektors bei einer Impedanzsteuerung, die auf das Robotersteuerungssystem nach dem Vergleichsbeispiel angewendet wird.
-
19 ist ein Schema eines Verhältnisses zwischen einer Wirkkraft, die an einen Endeffektor angelegt wird, und der Position des Endeffektors im Robotersteuerungssystem in der achten Ausführungsform.
-
Beschreibung der Ausführungsformen
-
Ausführungsformen einer Robotersteuerungsvorrichtung und eines Robotersteuerungsverfahrens nach der vorliegenden Erfindung werden nachstehend im Detail mit Bezug auf die Zeichnungen beschrieben. Anzumerken ist, dass die vorliegende Erfindung durch die Ausführungsformen nicht eingeschränkt wird.
-
Erste Ausführungsform
-
1 ist ein Schema zur Erläuterung eines Produktionssystems, das ein Robotersteuerungssystem (eine Robotersteuerungsvorrichtung) in einer ersten Ausführungsform der vorliegenden Erfindung enthält. Wie in der Figur gezeigt ist, umfasst das Robotersteuerungssystem einen Master-Roboter (einen ersten Roboter) 10a, einen Slave-Roboter (einen zweiten Roboter) 10b, eine Master-Steuerungsvorrichtung 20a, die den Master-Roboter 10a steuert, eine Slave-Steuerungsvorrichtung 20b, die den Slave-Roboter 10b steuert, und eine Positionsverhältnisberechnungsvorrichtung 30. Der Master-Roboter 10a ist so aufgebaut, dass ein Arm, der einen Endeffektor 11a an einem distalen Ende aufweist, an einem Installationsgestell 12a angebracht ist. Ähnlich ist der Slave-Roboter 10b so aufgebaut, dass ein Arm, der einen Endeffektor 11b an einem distalen Ende aufweist, an einem Installationsgestell 12b angebracht ist. Anzumerken ist, dass in der folgenden Erklärung als Beispiel davon ausgegangen wird, dass es sich bei den Robotern 10a und 10b um vertikale Mehrgelenkroboter mit sechs Freiheitsgraden handelt.
-
Die Master-Steuerungsvorrichtung 20a, die Slave-Steuerungsvorrichtung 20b und die Positionsverhältnisberechnungsvorrichtung 30 sind durch eine Kommunikationsleitung miteinander verbunden und bilden das Robotersteuerungssystem (die Robotersteuerungsvorrichtung), das den Master-Roboter 10a und den Slave-Roboter 10b ansteuert, während die Roboter miteinander synchronisiert werden. Die Master-Steuerungsvorrichtung 20a generiert Positionsbefehlswerte zum Positionieren des Endeffektors 11a und steuert den Endeffektor 11a auf Grundlage der generierten Positionsbefehlswerte an. Die Master-Steuerungsvorrichtung 20a überträgt die sich auf den Endeffektor 11a beziehenden Positionsbefehlswerte an die Slave-Steuerungsvorrichtung 20b. Die Positionsverhältnisberechnungsvorrichtung 30 berechnet Positionsverhältnisinformation, um ein Positionsverhältnis zwischen den Endeffektoren 11a und 11b während eines kooperativen Betriebs so festzulegen, dass der Endeffektor 11a und der Endeffektor 11b in Kooperation dasselbe Werkstück halten und das Werkstück (das ergriffene Werkstück) transportieren können. Die Positionsverhältnisberechnungsvorrichtung 30 überträgt die gewonnene Positionsverhältnisinformation an die Slave-Steuerungsvorrichtung 20b. Die Slave-Steuerungsvorrichtung 20b veranlasst, dass die Positionsverhältnisinformation zwischen den Endeffektoren 11a und 11b auf die Positionsbefehlswerte zum Positionieren des Endeffektors 11a wirkt, um Positionsbefehlswerte zum Positionieren des Endeffektors 11b zu berechnen. Die Slave-Steuerungsvorrichtung 20b steuert den Endeffektor 11b auf Grundlage der berechneten Positionsbefehlswerte an.
-
Es wird eine Technologie im Vergleich zur ersten Ausführungsform der vorliegenden Erfindung (im Folgenden als Vergleichsbeispiel bezeichnet) erklärt. 2 ist ein Schema zur Erläuterung der Konfiguration eines Robotersteuerungssystems nach dem Vergleichsbeispiel. Anzumerken ist, dass, um das Vergleichsbeispiel von der ersten Ausführungsform zu unterscheiden, eine Positionsverhältnisberechnungsvorrichtung, auf die das Vergleichsbeispiel angewendet wird, mit dem Bezugszeichen 50 bezeichnet ist, eine Master-Steuerungsvorrichtung, auf die das Vergleichsbeispiel angewendet wird, mit dem Bezugszeichen 40a bezeichnet ist, und eine Slave-Steuerungsvorrichtung, auf die das Vergleichsbeispiel angewendet wird, mit dem Bezugszeichen 40b bezeichnet ist. Was die Komponenten betrifft, die in der Master-Steuerungsvorrichtung 40a und der Slave-Steuerungsvorrichtung 40b enthalten sind und dieselben Funktionen mit dem einzigen Unterschied dahingehend haben, ob es sich bei einem agierenden Ziel um ein Master-System (den Master-Roboter 10a und die Master-Steuerungsvorrichtung 40a) oder ein Slave-System (einen Slave-Roboter 10b und die Slave-Steuerungsvorrichtung 40b) handelt, werden die Komponenten voneinander unterschieden, indem ein Buchstabe „a” zu den Bezugszahlen hinzugefügt wird, wenn die Komponenten im Master-System enthalten sind, und ein Buchstabe „b” den Bezugszahlen hinzugefügt wird, wenn die Komponenten im Slave-System enthalten sind. Was zwei Komponenten betrifft, die dieselbe Funktion haben, sich aber nur in den Systemen unterscheiden, in denen sie enthalten sind, wird in manchem Fall nur eine der Komponenten erklärt und die Erklärung der anderen weggelassen.
-
Die Master-Steuerungsvorrichtung 40a umfasst eine Befehlswertspeichereinheit 100, die vorab M Positionsbefehlswerte speichert, um eine Befehlsbahn des Endeffektors 11a in jedem der Betriebszeiträume zu definieren, eine Korrekturbetraggenerierungseinheit 102a, die einen Korrekturbetrag (einen Tm-ten Korrekturbetrag) für einen Tm-ten (Tm ist eine ganze Zahl, die 1 ≤ Tm ≤ M erfüllt) Befehlswert (einen Tm-ten Befehlswert) unter den M Positionsbefehlswerten (im Folgenden einfach als Befehlswerte bezeichnet) berechnet, eine Generierungseinheit 101a für korrigierte Befehlswerte, die auf Grundlage des Tm-ten Befehlswerts und des Tm-ten Korrekturbetrags einen Tm-ten korrigierten Befehlswert generiert, der durch Korrigieren des Tm-ten Befehlswerts erhalten wird, eine Antriebssteuerungseinheit 103a, die einen Servoverstärker und einen Servomotor umfasst, der den Master-Roboter 10a so antreibt, dass der Endeffektor 11a den Tm-ten korrigierten Befehlswert annimmt, und eine Momentanpositionserfassungseinheit 104a, die einen Messgeber umfasst, der eine Erfassung der momentanen Position (einer Tm-ten Momentanposition) des Endeffektors 11a im Betrieb auf Grundlage des Tm-ten korrigierten Befehlswerts durchführt und die Tm-te Momentanposition an die Antriebssteuerungseinheit 103a zurückleitet.
-
Die Korrekturbetraggenerierungseinheit 102a umfasst eine Wirkkraftberechnungseinheit 105a, eine Korrekturbetragberechnungseinheit 106a und eine Korrekturbetragspeichereinheit 107a. Die Wirkkraftberechnungseinheit 105a berechnet eine Wirkkraft, die im Endeffektor 11a erzeugt wird. Die Korrekturbetragspeichereinheit 107a akkumuliert und speichert berechnete Korrekturbeträge (d. h. den T1-ten Korrekturbetrag bis Tm-1-ten Korrekturbetrag). Die Korrekturbetragberechnungseinheit 106a berechnet den Tm-ten Korrekturbetrag unter Verwendung des T1-ten bis Tm-1-ten Korrekturbetrags, um die im Endeffektor 11a erzeugte Kraft zu reduzieren. Der berechnete Tm-te Korrekturbetrag wird an die Generierungseinheit 101a für korrigierte Befehlswerte übertragen und in der Korrekturbetragspeichereinheit 107a gespeichert.
-
Die Positionsverhältnisberechnungsvorrichtung 50 berechnet eine Matrix (eine Transformationsmatrix), um ein Positionsverhältnis zwischen einem Befehlswert zum Positionieren des Endeffektors 11a und einem Befehlswert zum Positionieren des Endeffektors 11b zu definieren. Die Positionsverhältnisberechnungsvorrichtung 50 kann den Befehlswert zum Positionieren des Endeffektors 11b erhalten, indem sie bewirkt, dass die Transformationsmatrix auf den Befehlswert zum Positionieren des Endeffektors 11a wirkt.
-
Die Slave-Steuerungsvorrichtung 40b umfasst eine Transformationsmatrixspeichereinheit 109, die eine durch die Positionsverhältnisberechnungsvorrichtung 50 berechnete Transformationsmatrix speichert, eine Befehlswertgenerierungseinheit 108, die bewirkt, dass die durch die Transformationsmatrixspeichereinheit 109 gespeicherte Transformationsmatrix auf den Tm-ten Befehlswert zum Positionieren des Endeffektors 11a wirkt, um einen Tm-ten Befehlswert zum Positionieren des Endeffektors 11b zu generieren, eine Korrekturbetraggenerierungseinheit 102b, die einen Tm-ten Korrekturbetrag zum Korrigieren des Tm-ten Befehlswerts berechnet, der sich auf den Endeffektor 11b bezieht, eine Generierungseinheit 101b für korrigierte Befehlswerte, die einen Tm-ten korrigierten Befehlswert auf Grundlage des Tm-ten Befehlswerts und des Tm-ten Korrekturbetrags generiert, die sich auf den Endeffektor 11b beziehen, eine Antriebssteuerungsvorrichtung 103b, die einen Servoverstärker und einen Servomotor umfasst, der den Slave-Roboter 10b auf Grundlage des Tm-ten korrigierten Befehlswerts antreibt, der sich auf den Endeffektor 11b bezieht, und eine Momentanpositionserfassungseinheit 104b, die einen Messgeber umfasst, der eine Erfassung einer Tm-ten Momentanposition des Endeffektors 11b durchführt und die erfasste Tm-te Momentanposition an die Antriebssteuerungseinheit 103b zurückgibt. Die Korrekturbetraggenerierungseinheit 102b umfasst eine Konfiguration, bei der es sich um dieselbe wie die der Korrekturbetraggenerierungseinheit 102a handelt. Deshalb wird die Erklärung der Korrekturbetraggenerierungseinheit 102b weggelassen.
-
Nun wird die Transformationsmatrix erklärt, die durch die Positionsverhältnisberechnungsvorrichtung 50 berechnet wird. Die Transformationsmatrix wird allgemein homogene Transformationsmatrix genannt, die einen Rotationsbetrag und eine Position darstellt. Wenn ein orthogonales Koordinatensystem als Σi und eine Transformationsmatrix zwischen zwei orthogonalen Koordinatensystemen Σ1 und Σ2 als 1T2 dargestellt wird, wird, wenn eine Rotationsmatrix als 1R2 (eine quadratische Matrix aus 3 × 3 Elementen) dargestellt wird, die Position des orthogonalen Koordinatensystems Σ2 vom orthogonalen Koordinatensystem Σ1 aus gesehen, als 1P2 (ein Vektor aus 3 × 1 Elementen) dargestellt und ein Nullvektor von 1 × 3 als Null(1, 3) dargestellt, wobei die homogene Transformationsmatrix wie durch die folgende Formel (1) angegeben dargestellt wird: 1T2 = [1R2, 1P2; Null(1, 3), 1] (1)
-
Anzumerken ist, dass, wenn eine Positionshaltung eines Punkts „a” als iTa im Hinblick auf ein Koordinatensystem Σi dargestellt wird, eine Positionshaltung i+1Ta des Punkts „a” im Hinblick auf ein anderes Koordinatensystem Σi + 1 wie durch die folgende Formel (2) angegeben unter Verwendung einer Transformationsmatrix i+1Ti aus Σi bis Σi + 1 dargestellt ist. i+1Ta = i+1Ti·iTa (2)
-
3 ist ein Schema zur Erläuterung eines idealen Positionsverhältnisses zwischen den Endeffektoren 11a und 11b. Σrob1 ist ein Koordinatensystem (ein Master-Roboterkoordinatensystem) mit Bezug auf das Installationsgestell 12a, Σrob2 ist ein Koordinatensystem (ein Slave-Roboterkoordinatensystem) mit Bezug auf das Installationsgestell 12b, Σwld ist ein absolutes Koordinatensystem (ein Weltkoordinatensystem), ΣE1 ist ein Koordinatensystem mit Bezug auf den Endeffektor 11a, und ΣE2 ist ein Koordinatensystem mit Bezug auf den Endeffektor 11b. Eine ideale Umgebung ist eine Umgebung, in der ein Befehlswinkel und eine Befehlsposition miteinander übereinstimmen, mit anderen Worten, eine Umgebung ohne absoluten Positionsfehler. In einer solchen Umgebung kann die folgende Formel (3) als Transformationsmatrix zwischen dem Master und dem Slave verwendet werden. Anzumerken ist, dass „A–1” eine Umkehrmatrix bezüglich einer Matrix A darstellt. E1TE2 = (wldTrob1 rob1TE1)–1wldTrob2 rob2TE2 (3)
-
Jedoch tritt in einer realen Umgebung ein absoluter Positionsfehler in Fingerpositionen der Endeffektoren 11a und 11b wegen eines Installationsfehlers, eines mechanischen Spiels, einer Biegung eines Arms, eines Fehlers der Endeffektoren 11a und 11b, dem Einfluss der Starrheit eines Verzögerungsglieds und dergleichen auf. Deshalb ist im Allgemeinen ein Positionsverhältnis zwischen den Fingerpositionen und einem Werkstück kein gewünschtes Positionsverhältnis. Beim Starten des Produktionssystems betätigt beispielsweise ein Benutzer eine nicht gezeigte Bedienkonsole zum Anlernen, um dadurch die realen Roboter 10a und 10b zu bewegen, während er ein Positionsverhältnis zwischen den Robotern 10a und 10b und dem Werkstück beispielsweise visuell prüft, um die Fehler so auf die Befehlswerte einzustellen, dass ein gewünschter Betrieb ausgeführt wird, während ein gewünschtes relatives Positionsverhältnis zwischen den Endeffektoren 11a und 11b eingehalten wird. Befehlswerte robiT'Ei (i = 1 und 2) in den Steuerungsvorrichtungen 20a und 20b zu den Zeitpunkten, zu denen der Benutzer die Endeffektoren 11a und 11b zu Stellen bewegt, an denen die Fehler reduziert sind, werden als Befehlswerte zum Positionieren der Endeffektoren 11a und 11b an den Anlernpunkten gesetzt. Anzumerken ist, dass „'” einer Transformationsmatrix dort hinzugefügt wird, wo eine Positionsanpassung durch das Anlernen berücksichtigt wird.
-
Die Befehlswerte robiT'Ei (i = 1 und 2), auf die die Fehler eingestellt werden, werden in die Positionsverhältnisberechnungsvorrichtung 50 eingegeben. Die Positionsverhältnisberechnungsvorrichtung 50 setzt Befehlswerte rob1T'E1 und rob2T'E2 nach der Einstellung in rob1TE1 bzw. rob2TE2 von Formel (3) ein und setzt das somit erhaltene E1TE2 gleich E1T'E2.
-
Auf diese Weise wird E1T'E2 berechnet, bevor ein Normalbetrieb (synchrone Ansteuerung der Roboter 10a und 10b; im Folgenden auch als „Automatikbetrieb” bezeichnet) anläuft. Das berechnete E1T'E2 wird als Transformationsmatrix zur Positionstransformation während des Automatikbetriebs verwendet. Das heißt, während des Automatikbetriebs wird in der Slave-Steuerungsvorrichtung 40b zum Zweck, einen Arbeitsvorgang zum Annehehmen eines korrigierten Befehlswerts der Master-Steuerungsvorrichtung 40a auszuführen, ein Befehlswert für den Endeffektor 11b in der Befehlswertgenerierungsvorrichtung 108 unter Verwendung eines Befehlswerts seitens der Master-Steuerungsvorrichtung 40a und der Transformationsmatrix generiert. In diesem Fall berechnet die Befehlswertgenerierungsvorrichtung 108 den Befehlswert rob2TE2 der Slave-Steuerungsvorrichtung 40b auf Grundlage der folgenden Formel (4), unter Verwendung einer Transformationsmatrix wldTrob1 in einem Master-Roboterkoordinatensystem in Bezug auf ein Weltkoordinatensystem, einer Transformationsmatrix wldTrob2 in einem Slave-Roboterkoordinatensystem in Bezug auf das Weltkoordinatensystem, und der Transformationsmatrix E1T'E2. rob2TE2 = (wldTrob2)–1·rob1TE1·E1T'E2 (4)
-
Im Vergleichsbeispiel wird jedoch die Transformationsmatrix, die zur Transformation des Befehlswerts zwischen dem Master und dem Slave verwendet wird, auf E1T'E2 festgesetzt, die am Anlernpunkt bei einer spezifischen Roboterhaltung berechnet wurde. Deshalb ist es, selbst wenn der Befehlswert auf Grundlage einer Wirkkraft korrigiert wird, schwierig, ein Positionsverhältnis zwischen den Robotern oder zwischen den Robotern und dem Werkstück an allen Positionen auf Bahnen im kooperativen Betrieb in einem festgelegten Zustand zu halten. Deshalb wird in der ersten Ausführungsform die Transformationsmatrix E1T'E2 für die jeweiligen M Befehlswerte so berechnet, dass das Positionsverhältnis zwischen den Robotern oder zwischen den Robotern und dem Werkstück an allen Positionen auf den Bahnen im kooperativen Betrieb beibehalten werden kann.
-
4 ist ein Schema zur Erläuterung eines Robotersteuerungssystems in der ersten Ausführungsform der vorliegenden Erfindung, das eine Positionsverhältnisberechnungsvorrichtung umfasst. Komponenten, die dieselben Funktionen wie im Vergleichsbeispiel haben, sind mit denselben Bezugszahlen und Bezugszeichen bezeichnet und eine redundante Erklärung der Komponenten wird weggelassen.
-
Wie in der Figur gezeigt ist, umfasst die Master-Steuerungsvorrichtung 20a die Befehlswertspeichereinheit 100, die Korrekturbetraggenerierungseinheit 102a, die Generierungseinheit 101a für korrigierte Befehlswerte, die Antriebssteuerungseinheit 103a und die Momentanpositionserfassungseinheit 104a. Die Korrekturbetraggenerierungseinheit 102a umfasst die Wirkkraftberechnungseinheit 105a, die Korrekturbetragberechnungseinheit 106a und die Korrekturbetragspeichereinheit 107a.
-
Die Positionsverhältnisberechnungseinheit 30 umfasst eine Transformationsmatrixgenerierungseinheit 200, die auf Grundlage von Befehlswerten zum Positionieren an N (N ist eine natürliche Zahl kleiner als M und gleich oder kleiner als 2) Anlernpunkten, die eine Betriebsstartposition beinhalten, Transformationsmatrizes (Transformationsmatrizes zum Anlernen) berechnet, die die jeweiligen Anlernpunkte betreffen, eine Transformationsmatrixspeichereinheit 201, die N Transformationsmatrizes zum Anlernen speichert, und eine Transformationsmatrixfunktionsgenerierungseinheit 202, die eine Transformationsmatrixfunktion auf Grundlage der N Transformationsmatrizes zum Anlernen berechnet. Details der Transformationsmatrixfunktion werden nachstehend erklärt. Die berechnete Transformationsmatrixfunktion wird in der ersten Ausführungsform als Positionsverhältnisinformation an die Slave-Steuerungsvorrichtung 20b übertragen.
-
Die Slave-Steuerungsvorrichtung 20b umfasst eine Transformationsmatrixfunktionsspeichereinheit 210, die die Transformationsmatrixfunktion speichert, die durch die Positionsverhältnisberechnungsvorrichtung 30 berechnet wird, eine Befehlswertgenerierungseinheit 211, die auf Grundlage des Tm-ten Befehlswerts (eines ersten Befehlswerts zum Ansteuern) für den Endeffektor 11a und der Transformationsmatrixfunktion einen Tm-ten Befehlswert (einen zweiten Befehlswert zum Ansteuern) zum Positionieren des Endeffektors 11b generiert, die Korrekturbetraggenerierungseinheit 102b, die Generierungseinheit 101b für korrigierte Befehlswerte, die Antriebssteuerungseinheit 103b und die Momentanpositionserfassungseinheit 104b. Die Korrekturbetraggenerierungseinheit 102b umfasst eine der Konfiguration der Korrekturbetraggenerierungseinheit 102a entsprechende Auslegung.
-
Gemäß der ersten Ausführungsform kooperieren die Generierungseinheiten 101a und 101b für korrigierte Befehlswerte und die Korrekturbetraggenerierungseinheiten 102a und 102b miteinander, um als eine Generierungseinheit für positionskorrigierte Befehlswerte zu fungieren, die einen positionskorrigierten Befehlswert (einen Befehlswert zum Anlernen oder einen nachstehend erklärten ersten Befehlswert zum Anlernen) für jeden von auf Bahnen positionierten Robotern bei den jeweiligen N Befehlswerten während der gleichzeitigen Ansteuerung generiert. Die Befehlswertspeichereinheit 100 fungiert als Erstbefehlswertausgabeeinheit, die einen Befehlswert (einen ersten Befehlswert zum Ansteuern) in jedem von M (M > N) Betriebszeiträumen ausgibt, um eine Bahn des Endeffektors 11a zu definieren. Anzumerken ist, dass in der folgenden Erklärung davon ausgegangen wird, dass die Befehlswertspeichereinheit 100 einen Befehlswert vorab speichert und den gespeicherten Befehlswert ausgibt. Jedoch kann auch eine Funktionseinheit, die einen Befehlswert sequentiell auf Grundlage einer vorbestimmten Berechnung generiert, als die Ausgabeeinheit für den ersten Befehlswert übernommen werden. Die Transformationsmatrixfunktionsgenerierungseinheit 202 und die Befehlswertgenerierungseinheit 211 kooperieren miteinander, um als eine Positionsverhältnismatrixinterpolationseinheit zu fungieren, die die N Transformationsmatrizes interpoliert und eine Transformationsmatrix für jeden der Befehlswerte für den Endeffektor 11a generiert. Die Befehlswertgenerierungseinheit 211 fungiert als eine Generierungseinheit für zweite Befehlswerte, die bewirkt, dass die Transformationsmatrix nach der Interpolation in jedem der Betriebszeiträume auf die jeweiligen Befehlswerte wirkt, um M Befehlswerte (zweite Befehlswerte zum Ansteuern) zum Definieren einer Bahn des Endeffektors 11b zu generieren.
-
Ein Robotersteuerungsverfahren in der ersten Ausführungsform der vorliegenden Erfindung, das unter Verwendung des in 4 gezeigten Robotersteuerungssystems durchgeführt wird, wird nun erklärt. 5 ist ein Ablaufschema zur Erläuterung einer Vorbereitungsverarbeitung, die in dem Robotersteuerungsverfahren in der ersten Ausführungsform offline erfolgt.
-
Zuerst bewegt der Benutzer die Endeffektoren 11a und 11b unter Verwendung der Bedienkonsole zu den Anlernpunkten auf Bahnen während eines kooperativen Betriebs zum Anlernen oder dergleichen (Schritt S1). In diesem Fall kann der Benutzer beispielsweise bewirken, dass die Endeffektoren 11a und 11b tatsächlich ein Werkstück ergreifen, um Fingerpositionen der Endeffektoren 11a und 11b einzustellen, und dass die Steuervorrichtungen 20a und 20b Positionen an diesem Punkt erfassen. Anzumerken ist, dass die Positionsanpassung an jeweiligen N Anlernpunkten durchgeführt wird.
-
Die Generierungseinheit 101a für korrigierte Befehlswerte speichert eine Position des Endeffektors 11a, die an einem Tk-ten (Tk ist eine ganze Zahl, die 1 ≤ Tk ≤ N erfüllt) Anlernpunkt eingenommen wird, in der Befehlswertspeichereinheit 100 als einen Tk-ten Befehlswert (Befehlswert zum Anlernen), der sich auf den Master-Roboter 10a bezieht, und gibt den Befehlswert zum Anlernen an die Positionsverhältnisberechnungsvorrichtung 30 aus (Schritt S2). Die Generierungseinheit 101b für korrigierte Befehlswerte gibt die Position des Endeffektors 11b, der dem Schritt S2 unterzogen wird, an die Positionsverhältnisberechnungsvorrichtung 30 als einen auf den Slave-Roboter 10b bezogenen Tk-ten Befehlswert zum Anlernen aus (Schritt S3).
-
Anzumerken ist, dass, wenn bewirkt wird, dass die Endeffektoren 11a und 11b das Werkstück tatsächlich ergreifen, um die Positionsanpassung durchzuführen, die Korrekturbetragsgenerierungseinheit 102a die Berechnung eines Korrekturbetrags fortsetzt, bis die durch die Wirkkraftberechnungseinheit 105a berechnete Wirkkraft so korrigiert ist, dass sie gleich einem oder kleiner als ein vorbestimmter Wert ist. Die Generierungseinheit 101a für korrigierte Befehlswerte kann mit einem sequentiell berechneten Korrekturbetrag einen Korrekturbetrag aktualisieren, der zu dem aus der Befehlswertspeichereinheit 100 gelieferten vorbestimmten Befehlswert hinzuaddiert wird, und kann, wenn ein korrigierter Befehlswert, mit dem die Wirkkraft gleich dem oder kleiner als der vorbestimmte Wert wird, erreicht wird, den korrigierten Befehlswert als einen Befehlswert zum Anlernen setzen. Anzumerken ist, dass die Messung einer Wirkkraft, die Berechnung eines Korrekturbetrags auf Grundlage der gemessenen Wirkkraft und die Korrektur eines Befehlswerts mit dem berechneten Korrekturbetrag auf dieselbe Weise auch in der Slave-Steuerungsvorrichtung 20b durchgeführt werden. Ein erhaltener korrigierter Befehlswert wird als Befehlswert zum Anlernen durch die Verarbeitung im Schritt S3 ausgegeben. Anzumerken ist, dass es sich bei einem Korrekturwert, der den Generierungseinheiten 101a und 101b für korrigierte Befehlswerte während der Anpassung der Position provisorisch bereitgestellt wird, um einen vorbestimmten, feststehenden Wert handeln kann.
-
Ein Messverfahren für eine Wirkkraft durch die Wirkkraftberechnungseinheit 105a kann ein beliebiges Verfahren sein. Beispielsweise ist es möglich, ein Verfahren zu übernehmen, bei dem ein Kraftsensor an einem Handgelenkabschnitt eines Roboters befestigt und ein Erfassungswert durch den Kraftsensor als Messwert einer Wirkkraft gesetzt wird, oder es kann ein Verfahren übernommen werden, bei dem eine Fingerwirkkraft f (3 Achsenkräfte + 3 Momente) mit Statik aus einem Drehmoment τ unter Verwendung einer Jacobimatrix J (ein Freiheitsgrad des Roboters) geschätzt wird (τ = Jτ·f, worin Jτ eine transponierte Matrix einer Matrix J ist). Ferner ist es möglich, ein Verfahren zu übernehmen, bei dem Drehmomente von Wellen von Robotern 10a und 10b aus Motorströmen der Wellen berechnet werden und eine Fingerwirkkraft aus Ausgaben der berechneten Drehmomente geschätzt wird, oder ein Verfahren, bei dem Drehmomentsensoren an den Wellen angebracht werden und eine Wirkkraft aus ausgegebenen Drehmomenten geschätzt wird, die aus den Drehmomentsensoren anstelle der Motorströme erhalten werden.
-
Anzumerken ist, dass in der folgenden Erklärung davon ausgegangen wird, dass die Endeffektoren 11a und 11b dazu veranlasst werden, das Werkstück tatsächlich zu ergreifen, um eine Positionsanpassung durchzuführen, und ein korrigierter Befehlswert als ein Befehlswert zum Anlernen aufgezeichnet wird. Allerdings kann, wenn die Positionsanpassung durchgeführt wird, ohne zu bewirken, dass die Endeffektoren 11a und 11b das Werkstück ergreifen, die Generierungseinheit 101a für korrigierte Befehlswerte als Befehlswert zum Anlernen einen Positionserfassungswert ansetzen, der durch die Momentanpositionserfassungseinheit 104a erfasst und als Rückkopplungssignal verwendet wird. Selbiges trifft auf die Slave-Steuerungsvorrichtung 20b zu. Selbst wenn bewirkt wird, dass die Endeffektoren 11a und 11b das Werkstück tatsächlich ergreifen, um die Positionsanpassung durchzuführen, kann ein durch die Momentanpositionserfassungseinheiten 104a und 104b erfasster Positionserfassungswert als der Befehlswert zum Anlernen angesetzt werden.
-
Wenn die Steuerungsvorrichtungen 20a und 20b keine Einrichtungen zum Messen einer Wirkkraft umfassen, kann ein Benutzer die Position des Endeffektors 11b jedes Mal dann manuell fein einstellen, wenn sich eine Arbeitsfläche oder eine Haltung verändert. In diesem Fall kann die Slave-Steuerungsvorrichtung 20b den Endeffektor 11b ansteuern, indem sie bewirkt, dass eine festgelegte Transformationsmatrix 1ET'E2, die vorab provisorisch angesetzt wird, auf einen Anlernpunkt für den Master-Roboter 10a wirkt. Der Benutzer kann jedes Mal, wenn sich eine Haltung oder eine Position verändert, einen Zustand des Werkstücks visuell oder indem ein Sensor, der eine Kraft oder Verformung erfassen kann, zum Werkstück hinzugefügt wird, beobachten, und kann eine Feineinstellung unter Verwendung der Bedienkonsole auf Grundlage des Ergebnisses der Beobachtung durchführen. Anzumerken ist, dass ein Zustand, in dem eine Wirkkraft nicht gemessen werden kann, entweder dann vorliegt, wenn schlichtweg kein Sensor zum Messen der Wirkkraft in den Endeffektoren 11a und 11b und keine Funktion zum Durchführen einer Fingerwirkkraftberechnung aus einem Motorausgang vorhanden ist oder wenn während des kooperativen Betriebs der master-seitige Roboter mit dem Werkstück in Kontakt ist aber der slave-seitige Roboter nicht mit dem Werkstück in Kontakt ist.
-
Der Benutzer bestimmt, ob die Positionsanpassung für alle (N) Anlernpunkte durchgeführt wird (Schritt S4). Wenn die alle Anlernpunkte betreffende Positionsanpassung nicht durchgeführt wird (NEIN im Schritt S4), führt der Benutzer im Schritt S1 eine Positionsanpassung für den nächsten Anlernpunkt durch.
-
Aus diese Weise wird der Endeffektor 11a zum Anlernpunkt bewegt, und der Endeffektor 11b wird zu einer Position bewegt, die dem Endeffektor 11a am Anlernpunkt entspricht. Folglich ist es möglich, Befehlswerte zu erhalten, an die der absolute Positionsfehler (positionskorrigierte Befehlswerte) in den jeweiligen N Befehlswerten auf den Bahnen der Endeffektoren 11a und 11b angepasst wird.
-
Wenn die Positionsanpassung für alle Anlernpunkte abgeschlossen ist (JA im Schritt S4), empfängt in der Positionsverhältnisberechnungsvorrichtung 30 die Transformationsmatrixgenerierungseinheit 200 als Eingaben den Tk-ten Befehlswert zum Anlernen und den korrigierten Befehlswert, der durch die Generierungseinheit 101b für korrigierte Befehlswerte an dem Punkt generiert wird, an dem der Tk-te Befehlswert zum Anlernen bestimmt wird, und generiert eine Tk-te Transformationsmatrix (Transformationsmatrix zum Anlernen) (Schritt S5). Anzumerken ist, dass die Transformationsmatrixgenerierungseinheit 200 die generierte Transformationsmatrix zum Anlernen in der Transformationsmatrixspeichereinheit 201 speichert. Die Generierung der Transformationsmatrix zum Anlernen erfolgt die jeweiligen N Anlernpunkte betreffend.
-
Anschließend generiert die Transformationsmatrixfunktionsgenerierungseinheit 202 eine Transformationsmatrixfunktion auf Grundlage der N Transformationsmatrizes zum Anlernen, die in der Transformationsmatrixspeichereinheit 201 gespeichert sind (Schritt S6).
-
Bei der Transformationsmatrixfunktion handelt es sich um eine Funktion, um eine Transformationsmatrixgruppe zum Interpolieren von N Transformationsmatrizes E1T'E2(k), k = 1, 2, ..., N zu spezifizieren. Eine gesamte Bahn wird auf Grundlage der N Befehlswerte zum Anlernen in N – 1 Abschnitte unterteilt. Die Funktion besitzt Bewegungsraten „Rate” in den jeweiligen Abschnitten als Variablen. Ein Berechnungsverfahren für eine Transformationsmatrixfunktion durch die Transformationsmatrixfunktionsgenerierungseinheit 202 wird nachstehend erklärt.
-
Wenn ein Abstand zwischen einem k-ten Befehlswert zum Anlernen von Pk und einem k + 1-ten Befehlswert zum Anlernen von Pk + 1 als La11(k, k + 1) und eine Restbewegungsstrecke zur momentanen Zeit Tnow als Lr(k, k + 1, Tnow) dargestellt wird, wird eine Bewegungsrate Rate(k, k + 1, Tnow) gemäß folgender Formel (5) definiert: Rate(k, k + 1, Tnow) = (La11(k, k + 1) – Lr(k, k + 1, Tnow))/(La11(k, k + 1)) (5)
-
Eine Transformationsmatrix an einer momentanen Position, die durch Rate(k, k + 1, Tnow) dargestellt wird, kann durch eine Transformationsmatrixfunktion E1T'E2(Rate(k, k + 1, Tnow)) berechnet werden. Ein Verfahren zum Berechnen einer Rotationskomponente und einer Translationskomponente der Transformationsmatrixfunktion E1TE2(Rate(k, k + 1, Tnow)) wird nun erklärt.
-
Zuerst wird eine Translationsposition E1P'E2(Rate(k, k + 1, Tnow)) wie nachstehend erklärt berechnet. Wenn eine Schwankung in einer relativen Translation von Fingerpositionen der Endeffektoren 11a und 11b an Pk und Pk + 1 als Rotationsmatrix ΔPk dargestellt wird, wird ΔPk durch die folgende Formel (6) dargestellt: ΔPk = E1P'E2(Pk + 1) – E1p'E2(Pk) (6)
-
Deshalb wird, wenn die momentane Position des Endeffektors 11a in Rate(k, k + 1, Tnow) vorkommt, eine Translationsposition E1p'E2(Rate(k, k + 1, Tnow)) wie durch die folgende Formel (7) angegeben unter Verwendung von Δk dargestellt: E1p'E2(Rat(k, k + 1, Tnow)) = E1p'E2(Pk) + ΔPk·Rate(k, k + 1, Tnow) (7)
-
Ein Verfahren zum Berechnen einer Rotationsmatrix E1R'E2(Rate(k, k + 1, Tnow)), bei der es sich um eine Rotationskomponente der Transformationsmatrixfunktion E1T'E2(rate(k, k + 1, Tnow)) handelt, wird nun erklärt. Wenn eine Schwankung in einer relativen Rotationsmatrix von Fingerpositionen der Endeffektoren 11a und 11b an Pk und Pk + 1 als Rotationsmatrix ΔRk dargestellt wird, wird ΔRk durch die folgende Formel (8) dargestellt: ΔRk = (E1R'E2(Pk))(E1R'E2(Pk + 1))–1 (8)
-
Als ein Verfahren, die Bewegungsrate Rate(k, k + 1, Tnow) zwischen Pk und Pk + 1 darzustellen, ist beispielsweise ein Verfahren bekannt, eine Rotationsmatrix unter Verwendung eines Rotationsachsenvektors k und eines Rotationsbetrags α darzustellen, die anhand eines Einachsen-Rotationsverfahrens erhalten werden. In diesem Fall wird ein Verfahren übernommen, α entsprechend Rate(k, k + 1, Tnow) zu verändern. Wenn das Einachsen-Rotationsverfahren übernommen wird, wird speziell ΔRk anhand des Rotationsachsenvektors k und des Rotationsbetrags α äquivalent dargestellt. Es gibt die folgende Beziehung zwischen einer Rotationsmatrix und [k, α]: ΔRk = [kx2·Vα + Cα, kx·ky·Vα + Cα, kx·kz·Vα + Ca; ky·kx·Vα + Ca, kx2·Vα + Ca, ky·kz·Vα + Cα; kz·kx·Vα + Cα, kz·ky·Vα + Cα, kx2·Vα + Cα] (9) k = [kx, ky, kz] (10) Vα = 1 – Cα (11) Cα = cosα (12)
-
In diesem Fall wird α wie nachstehend beschrieben als αnow definiert, das sich entsprechend der Bewegungsrate Rate verändert: αnow = α*Rate(k, k + 1, Tnow) (13)
-
Indem der vorliegende Rotationsbetrag αnow verwendet wird, wird die momentane Schwankung ΔR(Rate(k, k + 1, Tnow) wie folgt definiert: ΔR(Rate(k, k + 1, Tnow)) = [kx2·Vαnow + Cαnow, kx·ky·Vαnow + Cαnow, kx·kz·Vαnow + Cαnow; ky·kx·Vαnow + Cαnow, kx2·Vαnow + Cαnow, ky·kz·Vαnow + Cαnow; kz·kx·Vαnow + Cαnow, kz·ky·Vαnow + Cαnow, kx2·Vαnow + Cαnow] (14) E1R'E2(Rate(k, k + 1, Tnow)) = (E1R'E2(Pk))·ΔR(Rate(k, k + 1, Tnow)) (15)
-
Wenn ΔR(Rate_k, k + 1) entsprechend einer Bewegungsposition verändert wird, ist es nebenbei möglich, ein Verfahren zum Berechnen einer Rotationsmatrix unter Verwendung einer Quaternionendarstellung zu übernehmen und das durch Quaternionen berechnete Ergebnis in eine Rotationsmatrix zu transformieren.
-
Eine Transformationsmatrix E1T'E2(Rate(k, k + 1, Tnow)) wird wie folgt anhand der Translationsposition E1p'E2(Rate(k, k + 1, Tnow)) und der Rotationsmatrix E1R'E2(Rate(k, k + 1, Tnow)) dargestellt, die durch die vorstehend erklärte Berechnung erhalten werden: E1T'E2(Rate(k, k + 1, Tnow)) = [E1R'E2(Rate(k, k + 1, Tnow)), E1P'E2(Rate(k, k + 1, Tnow)); null(1, 3), 1] (16)
-
Die Transformationsmatrixfunktion, die durch die Transformationsmatrixfunktionsgenerierungseinheit 202 auf Grundlage des Berechnungsverfahrens berechnet wird, wird an die Slave-Steuerungsvorrichtung 20b übertragen und in der Transformationsmatrixfunktionsspeichereinheit 210 gespeichert.
-
Die Vorbereitungsverarbeitung für den kooperativen Betrieb wird durch die Verarbeitung in den Schritten S1 bis S6 abgeschlossen. Danach kann der Benutzer veranlassen, dass das Robotersteuerungssystem den Automatikbetrieb startet.
-
6 ist ein Ablaufschema zur Erläuterung eines Funktionsablaufs während des Automatikbetriebs der Master-Steuerungsvorrichtung 20a im Robotersteuerungsverfahren in der ersten Ausführungsform. 7 ist ein Ablaufschema zur Erläuterung eines Funktionsablaufs während des Automatikbetriebs der Slave-Steuerungsvorrichtung 20b im Robotersteuerungsverfahren in der ersten Ausführungsform.
-
In der Master-Steuerungsvorrichtung 20a initialisiert, wie in 6 gezeigt ist, die Generierungseinheit 101a für korrigierte Befehlswerte zuerst Tm mit 1 (Schritt S11) und extrahiert den Tm-ten Befehlswert, der in der Befehlswertspeichereinheit 100 gespeichert ist (Schritt S12). Andererseits berechnet die Korrekturbetraggenerierungseinheit 102a einen Tm-ten Korrekturbetrag auf Grundlage der Korrekturbeträge, die sich auf Befehlswerte bis zum Tm-i-ten Befehlswert, die in der Korrekturbetragspeichereinheit 107a akkumuliert sind, und eine durch die Wirkkraftberechnungseinheit 105a gemessene Wirkkraft (Schritt S13) beziehen. Die Generierungseinheit 101a für korrigierte Befehlswerte addiert den extrahierten Tm-ten Befehlswert und den Tm-ten Korrekturbetrag auf und generiert einen Tm-ten korrigierten Befehlswert (Schritt S14). Anzumerken ist, dass die Antriebssteuerungseinheit 103a eine Positionierung des Endeffektors 11a auf Grundlage des so generierten Tm-ten korrigierten Befehlswerts durchführen kann. Nach dem Schritt S14 erhöht die Generierungseinheit 101a für korrigierte Befehlswerte Tm um 1 (Schritt S15) und führt die Verarbeitung im Schritt S11 aus. Anzumerken ist, dass im Schritt S15, wenn der Wert von Tm vor der Erhöhung gleich M, der Gesamtsumme von Befehlswerten, ist, Tm = 1 gesetzt werden kann.
-
In der Slave-Steuerungsvorrichtung 20b initialisiert, wie in 7 gezeigt ist, die Befehlswertgenerierungseinheit 211 zuerst Tm mit 1 (Schritt S21) und extrahiert den Tm-ten Befehlswert, der in der Befehlswertspeichereinheit 100 gespeichert ist (Schritt S22). Die Befehlswertgenerierungseinheit 211 berechnet einen Abschnitt (einen durch Pk, Pk + 1 dargestellten Abschnitt), der den extrahierten Tm-ten Befehlswert und rate(k, k + 1, Tnow) enthält (Schritt S23). Die Befehlswertgenerierungseinheit 211 berechnet eine Transformationsmatrix E1T'E2(Rate(k, k + 1, Tnow)) nach den Formeln 13 bis 16 (Schritt S24). Die Befehlswertgenerierungseinheit 211 veranlasst, dass die berechnete Transformationsmatrix E1T'E2(Rate(k, k + 1, Tnow) auf den erfassten Tm-ten Befehlswert wirkt und generiert den Tm-ten Befehlswert für den Endeffektor 11b (Schritt S25). Andererseits berechnet die Korrekturbetraggenerierungseinheit 102b den Tm-ten Korrekturbetrag auf Grundlage der Korrekturbeträge, die sich auf Befehlswerte bis zum Tm-1-ten Befehlswert, die in der Korrekturbetragspeichereinheit 107b akkumuliert sind, und eine durch eine Wirkkraftberechnungseinheit 105b gemessene Wirkkraft (Schritt S26) beziehen. Die Generierungseinheit 101b für korrigierte Befehlswerte addiert den generierten Tm-ten Befehlswert und den Tm-ten Korrekturbetrag auf und generiert einen Tm-ten korrigierten Befehlswert (Schritt S27). Anzumerken ist, dass die Antriebssteuerungseinheit 103b eine Positionierung des Endeffektors 11b auf Grundlage des generierten Tm-ten korrigierten Befehlswerts durchführen kann. Nach dem Schritt S27 erhöht die Befehlswertgenerierungseinheit 211 Tm um 1 (Schritt S28) und führt die Verarbeitung im Schritt S22 aus. Anzumerken ist, dass im Schritt S27, wenn der Wert von Tm vor der Erhöhung gleich M, der Gesamtsumme von Befehlswerten, ist, Tm = 1 gesetzt werden kann.
-
Anzumerken ist, dass davon ausgegangen wird, dass der Wert von Tm in der Master-Steuerungsvorrichtung 20a und der Wert von Tm in der Slave-Steuerungsvorrichtung 20b miteinander synchronisieren.
-
Anzumerken ist, dass die Befehlswertspeichereinheit 100, die Generierungseinheit 101a für korrigierte Befehlswerte, die Wirkkraftberechnungseinheit 105a, die Korrekturbetragberechnungseinheit 106a und die Korrekturbetragberechnungseinheit 107a allesamt oder ein Teil von ihnen als eine Hardware oder Software oder eine Kombination aus der Hard- und Software ausgeführt sein kann. Als Software auszuführen bedeutet, dass in einem Computer, der eine Recheneinheit und eine Speichervorrichtung umfasst, Programmbausteine, die den Komponenten entsprechen, in der Speichervorrichtung gespeichert sind und die Recheneinheit die in der Speichervorrichtung gespeicherten Programmbausteine ausführt, um dadurch Funktionen der Komponenten den Programmbausteinen entsprechend auszuführen. Anzumerken ist, dass die Funktionen der Befehlswertspeichereinheit 100 und der Korrekturbetragspeichereinheit 107a ausgeführt werden, wenn Speicherplätze, die diesen jeweils entsprechen, in der Speichervorrichtung gesichert sind.
-
Ähnlich können ein Teil oder alle Komponenten der Positionsverhältnisberechnungsvorrichtung 30 als Hardware oder Software oder eine Kombination aus Hard- und Software ausgeführt sein. Die Befehlswertgenerierungseinheit 211, die Transformationsmatrixfunktionsspeichereinheit 210, die Generierungseinheit 101b für korrigierte Befehlswerte, die Wirkkraftberechnungseinheit 105b, eine Korrekturbetragberechnungseinheit 106b und die Korrekturbetragspeichereinheit 107b können allesamt oder teilweise als eine Hardware oder Software oder eine Kombination aus Hard- und Software ausgeführt sein.
-
Die Master-Steuerungsvorrichtung 20a, die Slave-Steuerungsvorrichtung 20b und die Positionsverhältnisberechnungsvorrichtung 30 sind als voneinander unterschiedliche Vorrichtungen beschrieben. Jedoch können beliebige zwei oder alle der Vorrichtungen als eine Vorrichtung ausgeführt sein. Jede der Vorrichtungen kann so ausgeführt sein, dass sie in mehrere Vorrichtungen unterteilt ist.
-
In der vorstehenden Erklärung sind sowohl die Master-Steuerungsvorrichtung 20a als auch die Slave-Steuerungsvorrichtung 20b so dargestellt, dass sie die Korrektur auf Grundlage der Wirkkraft durchführen. Jedoch kann auch nur eine der Steuerungsvorrichtungen die Korrektur auf Grundlage der Wirkkraft durchführen.
-
In der vorstehenden Erklärung ist das Beispiel erläutert, in dem die erste Ausführungsform der vorliegenden Erfindung auf das Produktionssystem angewendet wird, das die zwei Roboter (den Master-Roboter 10a und den Slave-Roboter 10b) umfasst. Jedoch kann die erste Ausführungsform der vorliegenden Erfindung auch auf ein Produktionssystem angewendet werden, in dem drei oder mehr Roboter in Kooperation miteinander arbeiten. In diesem Fall kann die erste Ausführungsform angewendet werden, indem einer der kooperativ arbeitenden Roboter als ein Master-Roboter und alle anderen Roboter als Slave-Roboter eingesetzt werden.
-
Wie vorstehend erklärt, ist nach der ersten Ausführungsform der vorliegenden Erfindung die Robotersteuerungsvorrichtung so ausgelegt, dass sie die Transformationsmatrixgenerierungseinheit 200 umfasst, die als Positionsverhältnismatrixgenerierungseinheit fungiert, die auf Grundlage des positionskorrigierten Befehlswerts bei den jeweiligen N Befehlswerten während der Synchronansteuerung für jeden der zu positionierenden Roboter, was die jeweiligen N Befehlswerte betrifft, die Transformationsmatrix zum Anlernen generiert, die als Positionsverhältnismatrix zum Definieren des Positionsverhältnisses unter den positionskorrigierten Befehlswerten der Roboter fungiert, die Befehlswertspeichereinheit 100, die als die Erstbefehlswertausgabeeinheit fungiert, die den Befehlswert für den Master-Roboter 10a in jedem der M (M > N) Betriebszeiträume zum Definieren der Bahn des Master-Roboters 10a ausgibt, die Transformationsmatrixfunktionsgenerierungseinheit 202 und die Befehlswertgenerierungseinheit 211, die als die Positionsverhältnismatrixinterpolationseinheit fungiert, die die N Transformationsmatrizes zum Anlernen interpoliert und die Transformationsmatrix für jeden der Befehlswerte in jedem der Betriebszeiträume generiert, und die Befehlswertgenerierungseinheit 211, die die Funktion als die Zweitbefehlswertgenerierungseinheit umfasst, die bewirkt, dass die Transformationsmatrix zum Anlernen nach der Interpolation auf die jeweiligen Befehlswerte in jedem der Betriebszeiträume für den Master-Roboter 10a wirkt und den Befehlswert in jedem der Betriebszeiträume für den Slave-Roboter 10b generiert. Deshalb ist es möglich, eine Transformationsmatrix in jedem der Betriebszeiträume approximativ zu berechnen und einen Befehlswert für den Slave-Roboter 10b zu generieren. Deshalb ist es möglich, eine an ein ergriffenes Werkstück angelegte Belastung an jeder Position auf tatsächlichen Bahnen mehrerer Roboter in einem kooperativen Betrieb so weit wie möglich zu reduzieren und einen hochschnellen, kooperativen Betrieb der Roboter zu realisieren.
-
Der Robotersteuerungsvorrichtung in der ersten Ausführungsform werden Anlernpunkte durch den Benutzer vorgegeben. Durch den Benutzer werden der Master-Roboter 10a und der Slave-Roboter 10b dazu veranlasst, sich zu den jeweiligen N Anlernpunkten zu begeben und dort anzuhalten. Der Master-Roboter 10a und der Slave-Roboter 10b sind so ausgelegt, dass sie die Generierungseinheiten 101a und 101b für korrigierte Befehlswerte und die Korrekturbetraggenerierungseinheiten 102a und 102b umfassen, die als Generierungseinheit für positionskorrigierte Befehlswerte arbeiten, die einen Befehlswert für jeden der Roboter generiert und den Befehlswert als einen Befehlswert zum Anlernen jedes Mal dann ansetzt, wenn der Master-Roboter 10a und der Slave-Roboter 10b an den jeweiligen N Anlernpunkten zum Stillstehen veranlasst sind. Deshalb ist es unnötig, eine Einstellung eines Kraftsteuerungssystems anzupassen, um es dem Benutzer zu ermöglichen, einen einem absoluten Positionsfehler in allen Abschnitten entsprechenden Betrag zu korrigieren, und dementsprechend wird es ermöglicht, eine Hochfahrzeit zu verkürzen.
-
Zweite Ausführungsform
-
Nach der zweiten Ausführungsform ist es möglich, auch dynamisch verursachte Fehler wie etwa eine Verschiebung einer Fingerposition aufgrund einer Schwankung der Temperatur eines Roboterhauptkörpers oder einer Umgebungstemperatur und einer Verschiebung einer Fingerposition aufgrund einer Synchronisationszeitvorgabeverschiebung während des Betriebs von zwei oder mehr Robotern anzulernen und eine Transformationsmatrix zu aktualisieren. 8 ist ein Schema zur Erläuterung eines Robotersteuerungssystems in der zweiten Ausführungsform der vorliegenden Erfindung, das eine Positionsverhältnisberechnungsvorrichtung umfasst. Anzumerken ist, dass Komponenten, bei denen es sich um dieselben wie die Komponenten in der ersten Ausführungsform handelt, durch dieselben Bezugszahlen und -zeichen bezeichnet sind wie in der ersten Ausführungsform und eine redundante Erklärung der Komponenten weggelassen wird.
-
Wie in 8 gezeigt ist, umfasst eine Master-Steuerungsvorrichtung 21a die Befehlswertspeichereinheit 100, die Korrekturbetraggenerierungseinheit 102a, die Generierungseinheit 101a für korrigierte Befehlswerte, die Antriebssteuerungseinheit 103a und die Momentanpositionserfassungseinheit 104a. Die Korrekturbetraggenerierungseinheit 102a umfasst die Wirkkraftberechnungseinheit 105a, die Korrekturbetragberechnungseinheit 106a und die Korrekturbetragspeichereinheit 107a. Im Normalbetrieb gibt die Master-Steuerungsvorrichtung 21a die durch die Momentanpositionserfassungseinheit 104a erfasste mome vntane Position an eine Positionsverhältnisberechnungsvorrichtung 31 aus.
-
Die Positionsverhältnisberechnungsvorrichtung 31 umfasst eine Transformationsmatrixgenerierungseinheit 300, eine Transformationsmatrixspeichereinheit 301, die N Transformationsmatrizes zum Anlernen speichert, und eine Transformationsmatrixfunktionsgenerierungseinheit 302. Die Transformationsmatrixgenerierungseinheit 300, die Transformationsmatrixspeichereinheit 301 und die Transformationsmatrixfunktionsgenerierungseinheit 302 führen dieselbe Verarbeitung durch wie die Verarbeitung durch die entsprechenden Komponenten in der ersten Ausführungsform bei der Vorbereitungsverarbeitung und generieren eine Transformationsmatrixfunktion (eine erste Transformationsmatrixfunktion) in der ersten Ausführungsform. Während des normalen Betriebs generieren die Transformationsmatrixgenerierungseinheit 300, die Transformationsmatrixspeichereinheit 301 und die Transformationsmatrixfunktionsgenerierungseinheit 302 dynamisch eine Transformationsmatrixfunktion (eine zweite Transformationsmatrixfunktion) auf Grundlage der jeweiligen durch die Momentanpositionserfassungseinheiten 104a und 104b erfassten momentanen Positionen.
-
Eine Slave-Steuerungsvorrichtung 21b umfasst eine Transformationsmatrixfunktionsspeichereinheit 310, eine Befehlswertgenerierungseinheit 311, die Korrekturbetraggenerierungseinheit 102b, die Generierungseinheit 101b für korrigierte Befehlswerte, die Antriebssteuerungseinheit 103b und die Momentanpositionserfassungseinheit 104b.
-
Die Korrekturbetraggenerierungseinheit 102b hat eine Konfiguration entsprechend der der Korrekturbetragsgenerierungseinheit 102a.
-
9 ist ein Schema zur Erläuterung einer Speicherkonfiguration der Transformationsmatrixfunktionsspeichereinheit 310. Wie in der Figur gezeigt ist, speichert die Transformationsmatrixfunktionsspeichereinheit 310 eine erste Transformationsmatrixfunktion 303 und eine zweite Transformationsmatrixfunktion 304, die durch die Positionsverhältnisberechnungsvorrichtung 31 berechnet werden. Anzumerken ist, dass die zweite Transformationsmatrixfunktion 304, die durch die Transformationsmatrixfunktionsspeichereinheit 310 gespeichert wird, von der Positionsverhältnisberechnungsvorrichtung 31 dynamisch aktualisiert wird.
-
Die Befehlswertgenerierungseinheit 311 kann einen Tm-ten Befehlswert unter Verwendung der ersten Transformationsmatrixfunktion 303 und der zweiten Transformationsmatrixfunktion 304 generieren.
-
Ein Robotersteuerungsverfahren in der zweiten Ausführungsform der vorliegenden Erfindung, das unter Verwendung des in 8 gezeigten Robotersteuerungssystems ausgeführt wird, wird nun erklärt. Anzumerken ist, dass es sich bei der offline erfolgenden Vorbereitungsverarbeitung um dieselbe wie in der ersten Ausführungsform handelt. Deshalb wird eine Erklärung der Vorbereitungsverarbeitung weggelassen. Die durch die Vorbereitungsverarbeitung generierte Transformationsmatrixfunktion wird in der Transformationsmatrixfunktionsspeichereinheit 310 als die erste Transformationsmatrixfunktion 303 gespeichert.
-
Bei einem normalen Betrieb der Master-Steuerungsvorrichtung 21a handelt es sich um denselben wie in der ersten Ausführungsform, mit der Ausnahme, dass die Master-Steuerungsvorrichtung 21a die durch die Momentanpositionserfassungseinheit 104a erfasste momentane Position an die Positionsverhältnisberechnungsvorrichtung 31 ausgibt. Deshalb wird die Erklärung des normalen Betriebs weggelassen. Anzumerken ist, dass die Slave-Steuerungsvorrichtung 21b wie die Master-Steuerungsvorrichtung 21a die durch die Momentanpositionserfassungseinheit 104b erfasste momentane Position an die Positionsverhältnisberechnungsvorrichtung 31 ausgibt. Der Einfachheit halber wird davon ausgegangen, dass jedes Mal, wenn die jeweiligen N Befehlswerte, die einem Befehlswert zum Anlernen unter den M Befehlswerten am nächsten kommen, durch die Generierungseinheit 101a für korrigierte Befehlswerte und die Befehlswertgenerierungseinheit 311 aus der Befehlswertspeichereinheit 100 erfasst werden, die Master-Steuerungsvorrichtung 21 und die Slave-Steuerungsvorrichtung 21b die momentane Position an die Positionsverhältnisberechnungsvorrichtung 31 ausgeben. Das heißt, die Momentanpositionserfassungseinheiten 104a und 104b geben jedes Mal dann jeweils Positionserfassungswerte als neuen Befehlswert zum Anlernen aus, wenn der Master-Roboter 10a einen Anlernpunkt oder einen dem Anlernpunkt am nächsten liegenden Punkt erreicht.
-
10 ist ein Schema zur Erläuterung eines Funktionsablaufs, bei dem die Positionsverhältnisberechnungseinheit 31 die zweite Transformationsmatrixfunktion 304 generiert. Zuerst generiert die Transformationsmatrixgenerierungseinheit 300 N Transformationsmatrizes zum Anlernen unter Verwendung von N Paaren momentaner Positionen, die von der Master-Steuerungsvorrichtung 21a und der Slave-Steuerungsvorrichtung 21b an jedem Betriebsabschlusspunkt eines Zyklus eingegeben werden als den Befehlswerten zum Anlernen in der ersten Ausführungsform (Schritt S31). Anzumerken ist, dass die Transformationsmatrixgenerierungseinheit 300 die generierten Transformationsmatrizes zum Anlernen in der Transformationsmatrixspeichereinheit 301 speichert. Danach generiert die Transformationsmatrixfunktionsgenerierungseinheit 302 die zweite Transformationsmatrixfunktion 304 auf Grundlage der N Transformationsmatrizes zum Anlernen, die durch die Verarbeitung im Schritt S31 in der Transformationsmatrixspeichereinheit 301 gespeichert wurden (Schritt S32). Die generierte zweite Transformationsmatrixfunktion 304 wird an die Slave-Steuerungsvorrichtung 21b übertragen. Die durch die Transformationsmatrixfunktionsspeichereinheit 310 gespeicherte zweite Transformationsmatrixfunktion 304 wird mit der übertragenen zweiten Transformationsmatrixfunktion 304 überschrieben. Danach wird die Verarbeitung im Schritt S31 ausgeführt.
-
11 ist ein Ablaufschema zur Erläuterung eines normalen Betriebs der Slave-Steuerungsvorrichtung 21b. In der Slave-Steuerungsvorrichtung 21b initialisiert die Befehlswertgenerierungseinheit 311 zuerst Tm mit 1 (Schritt S41) und extrahiert den in der Befehlswertspeichereinheit 100 gespeicherten Tm-ten Befehlswert (Schritt S42).
-
Anschließend wählt die Befehlswertgenerierungseinheit 311 eine Transformationsmatrixfunktion aus, die verwendet werden soll (Schritt S43). Die Befehlswertgenerierungseinheit 311 kann die Auswahlverarbeitung im Schritt S43 auf Grundlage jedes Standards durchführen. Die zweite Transformationsmatrixfunktion 304 neigt zum Konvergieren, wenn eine im normalen Betrieb verstrichene Zeit zunimmt. Allerdings kann die Befehlswertgenerierungseinheit 311, wenn die Konvergenz unzureichend ist, die erste Transformationsmatrixfunktion 303 auswählen. Die zweite Transformationsmatrixfunktion 304 wird nicht unmittelbar nach Anlauf des normalen Betriebs generiert. Deshalb kann die Befehlswertgenerierungseinheit 311 in diesem Fall die erste Transformationsmatrixfunktion 303 auswählen.
-
Anschließend berechnet die Befehlswertgenerierungseinheit 311 einen Abschnitt (einen durch Pk, Pk + 1 dargestellten Abschnitt), der den extrahierten Tm-ten Befehlswert und Rate(k, k + 1, Tnow) enthält (Schritt S44). Die Befehlswertgenerierungseinheit 311 berechnet eine Transformationsmatrix E1T'E2(Rate(k, k + 1, Tnow)) auf Grundlage der ausgewählten Transformationsmatrixfunktion und der Formeln 13 bis 16 (Schritt S45). Die Befehlswertgenerierungseinheit 311 veranlasst, dass die berechnete Transformationsmatrix E1P'E2(Rate(k, k + 1, Tnow)) auf den erfassten Tm-ten Befehlswert wirkt, und generiert einen Tm-ten Befehlswert für den Endeffektor 11b (Schritt S46). Andererseits berechnet die Korrekturbetraggenerierungseinheit 102b einen Tm-ten Korrekturbetrag auf Grundlage der Korrekturbeträge, die sich auf in der Korrekturbetragspeichereinheit 107b akkumulierte Befehlswerte bis zum Tm-1-ten Befehlswert beziehen, und einer durch die Wirkkraftberechnungseinheit 105b gemessenen Wirkkraft (Schritt S47). Die Generierungseinheit 101b für korrigierte Befehlswerte addiert den generierten Tm-ten Befehlswert und den Tm-ten Korrekturbetrag auf und generiert einen Tm-ten korrigierten Befehlswert (Schritt S48). Nach dem Schritt S48 erhöht die Befehlswertgenerierungseinheit 311 Tm um 1 (Schritt S49) und führt die Verarbeitung im Schritt S42 aus.
-
Auf diese Weise umfassen nach der zweiten Ausführungsform der vorliegenden Erfindung die Master-Steuerungsvorrichtung 21a und die Slave-Steuerungsvorrichtung 21b Befehlskorrektureinheiten (die Korrekturbetraggenerierungseinheiten 102a und 102b und die Generierungseinheiten 101a und 101b für korrigierte Befehlswerte), die eine Korrektur zum Reduzieren einer Wirkkraft an Fingern auf einen Befehlswert in jedem der Betriebszeiträume des Master-Roboters 10a und/oder Slave-Roboters 10b anwenden, und die Momentanpositionserfassungseinheiten 104a und 104b, die eine Funktion einer Positionserfassungseinheit beinhalten, die eine Positionserfassung für die Roboter 10a und 10b durchführt, und eine Funktion einer Generierungseinheit für positionskorrigierte Befehlswerte haben, die als Befehlswerte zum Anlernen die Position des ersten Roboters und die Position des zweiten Roboters ausgibt, die bei den jeweiligen N Befehlswerten erfasst wurden. Deshalb berechnen die Master-Steuerungsvorrichtung 21a und die Slave-Steuerungsvorrichtung 21b eine Transformationsmatrix zum Anlernen, während gleichzeitig als ein Befehlswert zum Anlernen eine dynamisch korrigierte Position zum Reduzieren einer an die Finger angelegten Wirkkraft verwendet wird, und aktualisieren sequentiell die zweite Transformationsmatrixfunktion unter Verwendung der berechneten Transformationsmatrix zum Anlernen. Deshalb ist es möglich, wenn die Roboter 10a und 10b den kooperativen Betrieb durchführen, jeweilige Fingerpositionen zu korrigieren, bis die Wirkkraft in einer abnehmenden Richtung konvergiert, und es wird auch ermöglicht, die Roboter 10a und 10b dazu zu veranlassen, den kooperativen Betrieb auf Bahnen auszuführen, auf denen die Wirkkraft schließlich am kleinsten wird.
-
Wenn beispielsweise ein Modus zum Fortsetzen der Aktualisierung der zweiten Transformationsmatrixfunktion und ein Modus zum Stoppen der Aktualisierung vorgesehen werden, ist es möglich, vom Anlernen einen Versuch auszuschließen, der unnötige Störungen umfasst (z. B. eine Zunahme einer auf die Roboter wirkenden Belastung aufgrund eines Kabelgewirrs im System), und kein Anlernen während der eigentlichen Produktion durchzuführen. Indem diese Auslegung vorgesehen wird, ist es möglich, eine Slave-Bahn unter Berücksichtigung eines Synchronisationsfehlers anzulernen, der durch einen Unterschied beim Ansprechen eines Motors bei jeder Haltung beim Veranlassen der Roboter, zu arbeiten, einer Kommunikationsverzögerung und dergleichen verursacht wird. Deshalb ist es möglich, eine genauere Bahn des Slave-Roboters anzulernen.
-
Anzumerken ist, dass als ein Robotersteuerungsverfahren ein Interpolationsverfahren allgemein bekannt ist, um, wenn drei oder mehr Befehlswerte durch einen Benutzer erteilt werden, eine Bahn approximativ so zu bestimmen, dass eine Bahn zwischen einer Betriebsstartposition und einer Betriebsendposition unter Befehlswerten nahe einem Befehlswert verläuft, der sich in der Mitte der Positionen befindet (siehe z. B. Patentschrift 3). Nach dieser Technologie verläuft eine Bahn, die durch eine Robotersteuerungsvorrichtung auf Grundlage eines durch einen Benutzer erteilten Befehlswerts berechnet ist, nicht immer auf dem Befehlswert. Nach der zweiten Ausführungsform kann eine Transformationsmatrix dynamisch generiert werden. Deshalb ist es, auch wenn eine derartige Technologie angewendet wird, möglich, die Roboter 10a und 10b dazu zu veranlassen, den kooperativen Betrieb auf Bahnen durchzuführen, auf denen die an die Finger angelegte Wirkkraft abnimmt. In diesem Fall wird jedoch, was einen aus der Befehlswertspeichereinheit des Master-Roboters ausgegebenen Befehlswert betrifft, ein Befehlswert nach der Interpolationsverarbeitung im Falle, dass das Interpolationsverfahren angewendet wird, als Befehlswert in die Befehlswertgenerierungseinheit 211 eingegeben. In diesem Fall gibt in der Transformationsmatrixgenerierungseinheit 300, wie in der ersten Ausführungsform erklärt, auch der Slave-Roboter einen Befehlswert nach der Interpolationsverarbeitung an die Generierungseinheit 101b für korrigierte Befehlswerte unter Verwendung des durch die Befehlswertgenerierungseinheit 211 erfassten Befehlswerts des Slave-Roboters aus, der anhand der während der Anlernarbeit erfassten Daten berechnet wurde. Im Ergebnis unterscheidet sich, wenn das Interpolationsverfahren ausgeführt wird, eine Transformationsmatrix, die vor einem Betrieb erhalten wurde, von einer Transformationsmatrix, die erhalten wird, wenn das Interpolationsverfahren nicht ausgeführt wird.
-
Wenn der Befehlswert in jedem der Betriebszeiträume an die Antriebssteuerungseinheit 103a ausgegeben wird, kann die Master-Steuerungsvorrichtung 21a eine Filterverarbeitung auf den Befehlswert anwenden. Wenn die Filterverarbeitung auf den Befehlswert in jedem der Betriebszeiträume angewendet wird, tritt eine Verschiebung zwischen einer Position auf einer Bahn, auf der der Roboter tatsächlich verläuft, und einem interpolierten Befehlswert auf. In diesem Fall setzt die Master-Steuerungsvorrichtung 21a die momentane Position als einen Befehlswert zum Anlernen. Jedoch gibt die Slave-Steuerungsvorrichtung 21b einen Befehlswert nach einer Korrektur an die Antriebssteuerungsvorrichtung 103b aus, ohne die Filterverarbeitung auf den Befehlswert anzuwenden. Alternativ kann die Slave-Steuerungsvorrichtung 21b approximativ einen Befehlswert so berechnen, dass der Befehlswert nach der Filterverarbeitung die momentane Position ist.
-
Dritte Ausführungsform
-
Nach einer dritten Ausführungsform werden ein Geschwindigkeitseinstellwert während einer Synchronansteuerung (der sich auf einen Override bezieht, aber ein Geschwindigkeitsbefehlswert an einer repräsentativen Position sein kann) und eine zweite Transformationsmatrixfunktion in Verbindung miteinander aufgezeichnet. Wenn ein Geschwindigkeitsbefehlswert ausgehend von einem aufgezeichneten Befehlswert verändert wird, wird eine zweite Transformationsmatrixfunktion, die dem Geschwindigkeitsbefehlswert nach der Veränderung entspricht, auf Grundlage der vorab aufgezeichneten zweiten Transformationsmatrixfunktion berechnet. Die berechnete neue zweite Transformationsmatrixfunktion dient einer Synchronansteuerung, die unter Verwendung eines Geschwindigkeitsbefehlswerts nach einer Aktualisierung durchgeführt wird. Indem ein Automatikbetrieb mehrmals experimentell durchgeführt wird, während der Geschwindigkeitseinstellwert vorab verändert und bewirkt wird, dass die Robotersteuerungsvorrichtung die zweite Transformationsmatrixfunktion bei jedem Geschwindigkeitseinstellwertaufzeichnet, kann der Benutzer im folgenden Automatikbetrieb folglich die Robotersteuerungsvorrichtung dazu veranlassen, auf Grundlage der aufgezeichneten zweiten Transformationsmatrixfunktion die zur Synchronansteuerung verwendete zweite Transformationsmatrixfunktion zu berechnen. Deshalb ist es möglich, die Steuerung in einer kürzeren Zeit zu stabilisieren, als die benötigte Zeit, bis das Positionsverhältnis zwischen den Robotern wie in der zweiten Ausführungsform konvergiert.
-
Die zweite Transformationsmatrixfunktion zum Zeitpunkt, zu dem der Geschwindigkeitseinstellwert ein Nullwert ist, wird als E1T'E2((k, k + 1)ovrd = 0) dargestellt, die Transformationsmatrix zum Zeitpunkt, zu dem der Geschwindigkeitseinstellwert „a” ist, wird als E1T'E2((k, k + 1)ovrd = a) dargestellt, und die zweite Transformationsmatrixfunktion zum Zeitpunkt, zu dem der Geschwindigkeitseinstellwert „b” (b > a) ist, wird als E1T'E2((k, k + 1)ovrd = b) dargestellt. Ein Verfahren zum Berechnen der zweiten Transformationsmatrixfunktion aus den drei zweiten Transformationsmatrixfunktionen, die während des Normalbetriebs in der Slave-Steuerungsvorrichtung angewendet wird, wird nun erklärt. Anzumerken ist, dass die erste Transformationsmatrixfunktion zu dem Zeitpunkt gleich der zweiten Transformationsmatrixfunktion E1T'E2((k, k + 1)ovrd = 0) ist, zu dem der Geschwindigkeitseinstellwert der Nullwert ist.
-
Ein Fehler zwischen Transformationsmatrizes beim Übergang von einer Transformationsmatrix mit Pk zu einer Transformationsmatrix mit Pk + 1 wird mit Bezug auf die Formeln 7 und 14 untersucht. Ein Fehler ΔT(k, k + 1, ovrd = a) einer Transformation zu dem Zeitpunkt, zu dem der Geschwindigkeitseinstellwert „a” ist, kann wie durch die folgende Formel angegeben beschrieben werden: ΔT(k, k + 1, ovrd = a) = [ΔR(1)_a, ΔPk_a; null(1, 3), 1] (17)
-
Ein Fehler ΔT(k, k + 1, ovrd = a) einer Transformation zu dem Zeitpunkt, zu dem der Geschwindigkeitseinstellwert „b” ist, kann wie durch die folgende Formel angegeben beschrieben werden: ΔT(k, k + 1, ovrd = a) = [ΔR(1)_b, ΔPk_b; null(1, 3), 1] (18)
-
Wenn eine Transformationsmatrix zum Anlernen durch die Geschwindigkeitsveränderung nicht verändert wird, tritt genauso ein Fehler auf, auch wenn der Geschwindigkeitseinstellwert verändert wird. Deshalb kann eine mit einem beliebigen Geschwindigkeitseinstellwert angelernte Transformationsmatrixfunktion so wie sie ist in der Slave-Steuerungsvorrichtung verwendet werden. Jedoch tritt, wenn sich eine Fingerposition entsprechend einer Geschwindigkeitsveränderung verändert, beispielsweise, wenn ein Einfluss von Ansprechverhalten von Achsen, der Einfluss eines Filters oder dergleichen besteht, eine Differenz zwischen den Ergebnissen von Formel 17 und Formel 18 auf. Diese Differenz wird untersucht.
-
Zuerst wird, was eine Differenz zwischen Rotationsbeträgen betrifft, wenn eine Rotationsachse und ein Rotationsbetrag des Formel 17 entsprechenden Einachsen-Rotationsverfahrens als k_a und α_a dargestellt werden, und eine Rotationsachse und ein Rotationsbetrag des Formel 18 entsprechenden Einachsen-Rotationsverfahrens als k_b und α_b dargestellt werden, eine Veränderungsrate Δα der Rotationsbeträge wie nachstehend beschrieben dargestellt. Anzumerken ist, dass unter der Annahme, dass sich eine Achsenrichtung nicht stark verändert, ungefähr die Rotationsachse mit k_a angenommen wird. Δα(x) = (αb – αa)/(b – a)·(x – a) (19) ΔP((k, k + 1), x) = (ΔPk_b – ΔPk_a)/(b – a)·(x – a) (20)
-
Wenn angenommen wird, dass ein Fehler mit einer festen Rate größer wird, wenn die Geschwindigkeit zunimmt, kann die Slave-Steuerungsvorrichtung, indem die zweite Transformationsmatrixfunktion zu dem Zeitpunkt, zu dem der Geschwindigkeitseinstellwert „a” ist, als Referenz unter Verwendung von aus den Formeln 19 und 20 erhaltenen Werten angesetzt wird, die zweite Transformationsmatrixfunktion berechnen, um einen Fehler, der entsprechend einer Geschwindigkeit auftritt, zu eliminieren, ungeachtet dessen, mit welchem Geschwindigkeitseinstellwert (Override) der Normalbetrieb durchgeführt wird.
-
12 ist ein Schema zur Erläuterung der Auslegung eines Robotersteuerungssystems in einer dritten Ausführungsform der vorliegenden Erfindung. Anzumerken ist, dass Komponenten, bei denen es sich um dieselben wie die Komponenten in der ersten Ausführungsform handelt, durch dieselben Bezugszahlen und -zeichen bezeichnet sind wie die Bezugszahlen und -zeichen in der ersten Ausführungsform und eine redundante Erklärung der Komponenten weggelassen wird.
-
Wie in 12 gezeigt ist, umfasst eine Master-Steuerungsvorrichtung 22a die Befehlswertspeichereinheit 100, die Korrekturbetraggenerierungseinheit 102a, die Generierungseinheit 101a für korrigierte Befehlswerte, die Antriebssteuerungseinheit 103a und die Momentanpositionserfassungseinheit 104a. Die Korrekturbetraggenerierungseinheit 102a umfasst die Wirkkraftberechnungseinheit 105a, die Korrekturbetragberechnungseinheit 106a und die Korrekturbetragspeichereinheit 107a. Wenn ein Testbetrieb durchgeführt wird, gibt die Master-Steuerungsvorrichtung 22a die durch die Momentanpositionserfassungseinheit 104a erfasste momentane Position an eine Positionsverhältnisberechnungsvorrichtung 32 aus.
-
Die Positionsverhältnisberechnungsvorrichtung 32 umfasst eine Transformationsmatrixgenerierungseinheit 400, eine Transformationsmatrixspeichereinheit 401, die N Transformationsmatrizes zum Anlernen speichert, und eine Transformationsmatrixfunktionsgenerierungseinheit 402 und eine Testbetriebsgeschwindigkeitseinstelleinheit 403, Die Transformationsmatrixgenerierungseinheit 400, die Transformationsmatrixspeichereinheit 401 und die Transformationsmatrixfunktionsgenerierungseinheit 402 führen dieselbe Verarbeitung durch wie die Verarbeitung durch die entsprechenden Komponenten in der ersten Ausführungsform bei der Vorbereitungsverarbeitung und generieren eine Transformationsmatrixfunktion (die erste Transformationsmatrixfunktion 303) in der ersten Ausführungsform.
-
Während des Testbetriebs empfängt eine Testbetriebsgeschwindigkeitseinstelleinheit 403 einen Eingang eines Geschwindigkeitseinstellwerts. Die Transformationsmatrixgenerierungseinheit 400, die Transformationsmatrixspeichereinheit 401 und die Transformationsmatrixfunktionsgenerierungseinheit 402 generieren dynamisch eine Transformationsmatrixfunktion (eine zweite Transformationsmatrixfunktion) auf Grundlage der jeweiligen durch die Momentanpositionserfassungseinheiten 104a und 104b erfassten momentanen Positionen und geben die generierte zweite Transformationsmatrixfunktion in Verbindung mit dem in die Testbetriebsgeschwindigkeitseinstelleinheit 403 eingegebenen Geschwindigkeitseinstellwert an die Slave-Steuerungsvorrichtung 22b aus. Anzumerken ist, dass die zweite Transformationsmatrixfunktion mit jedem der Geschwindigkeitseinstellwerte durch die Bezugszahl 404 bezeichnet wird, damit sie sich von der zweiten Transformationsmatrixfunktion 304 in der zweiten Ausführungsform unterscheiden lässt.
-
Die Slave-Steuerungsvorrichtung 22b umfasst eine Transformationsmatrixfunktionsspeichereinheit 410, eine Befehlswertgenerierungseinheit 411, eine Normalbetriebsgeschwindigkeitseinstelleinheit 412, die Korrekturbetraggenerierungseinheit 102b, die Generierungseinheit 101b für korrigierte Befehlswerte, die Antriebssteuerungseinheit 103b und die Momentanpositionserfassungseinheit 104b. Die Korrekturbetraggenerierungseinheit 102b hat eine der Auslegung der Korrekturbetraggenerierungseinheit 102a entsprechende Auslegung.
-
13 ist ein Schema zur Erläuterung einer Speicherauslegung der Transformationsmatrixfunktionsspeichereinheit 410. Wie in der Figur gezeigt ist, speichert die Transformationsmatrixfunktionsspeichereinheit 410 die erste Transformationsmatrixfunktion 303 und die zweite Transformationsmatrixfunktion 404 für jeden von durch die Positionsverhältnisberechnungsvorrichtung 32 berechneten Geschwindigkeitseinstellwerten.
-
Die Normalbetriebsgeschwindigkeitseinstelleinheit 412 empfängt einen Eingang eines Geschwindigkeitseinstellwerts während des normalen Betriebs. Der Geschwindigkeitseinstellwert, der während des normalen Betriebs eingegeben wird, kann sich von dem Geschwindigkeitseinstellwert unterscheiden, der während des Testbetriebs eingegeben wird. Die Befehlswertgenerierungseinheit 411 berechnet eine Transformationsmatrix auf Grundlage des durch die Normalbetriebsgeschwindigkeitseinstelleinheit 412 erfassten Geschwindigkeitseinstellwerts und der zweiten Transformationsmatrixfunktion 404 (und der ersten Transformationsmatrixfunktion 303) bei jedem der in der Transformationsmatrixfunktionsspeichereinheit 410 gespeicherten Geschwindigkeitseinstellwerte, während ein einer Geschwindigkeit entsprechender Fehler unter Verwendung der Formeln 19 und 20 positionskorrigiert wird. Die Befehlswertgenerierungseinheit 411 bewirkt, dass die berechnete Transformationsmatrix auf den aus der Befehlswertspeichereinheit 100 erfassten Tm-ten Befehlswert für den Endeffektor 11a wirkt und berechnet einen Tm-ten Befehlswert für den Endeffektor 11b.
-
Auf diese Weise umfasst nach der dritten Ausführungsform der vorliegenden Erfindung die Robotersteuerungsvorrichtung die Normalbetriebsgeschwindigkeitseinstelleinheit 412, die als eine Geschwindigkeitseinstellwerteingangseinheit fungiert, die einen Eingang eines Geschwindigkeitseinstellwerts während der Synchronansteuerung empfängt, und die Transformationsmatrixfunktionsspeichereinheit 410, die als eine Positionsverhältnismatrixfunktionsspeichereinheit fungiert, die die zweite Transformationsmatrixfunktion 404 bei jedem der Geschwindigkeitseinstellwerte vorab speichert. Die Befehlswertgenerierungseinheit 411 ist dazu ausgelegt, die in der Transformationsmatrixfunktionsspeichereinheit 410 gespeicherte zweite Transformationsmatrixfunktion auszulesen, korrigiert die zweite Transformationsmatrixfunktion auf Grundlage des eingegebenen Geschwindigkeitseinstellwerts, und berechnet einen Befehlswert in jedem von Betriebszeiträumen, der sich auf den Slave-Roboter 10b bezieht, unter Verwendung der zweiten Transformationsmatrixfunktion nach der Korrektur. Beim Hochfahren des Produktionssystems ist es, wenn ein Geschwindigkeitseinstellwert des gesamten Produktionssystems schrittweise erhöht wird, möglich, ein optimales Positionsverhältnis zwischen den Robotern 10a und 10b anhand von vorab aufgezeichneter Information zu schätzen. Deshalb ist es möglich, eine Hochfahrzeit der zweiten Ausführungsform gegenüber weiter zu verkürzen.
-
Vierte Ausführungsform
-
Nach einer vierten Ausführungsform führen die Korrekturbetragberechnungseinheiten 102a und 102b eine Impedanzsteuerung unter Berücksichtigung von Impedanzkennwerten durch. Die Impedanzsteuerung ist ein Verfahren, das ein Modell einführt, bei dem eine Hand und deren Umfeld mit einem Federdämpfungsglied verbunden werden, eine gewünschte Impedanz definiert wird, und eine Fingerposition gesteuert wird. Nach der vierten Ausführungsform ist das Generierungsverfahren für einen Korrekturbetrag durch die in der ersten Ausführungsform beschriebenen Korrekturbetraggenerierungseinheiten 102a und 102b verändert. Jedoch werden dieselben wie durch die erste Ausführungsform erzielten Wirkungen erzielt.
-
Ferner kann nach der vierten Ausführungsform ein dynamisches Verhältnis mit einem Arbeitsziel unter Verwendung der Impedanzsteuerung festgelegt werden. Deshalb ist es möglich, ein Anlernen einer Bahn in einem Zustand durchzuführen, in dem ein Überlastungszustand an den Robotern 10a und 10b oder einem Werkstück als nicht so leicht auftretbar eingestellt wird.
-
Fünfte Ausführungsform
-
In der in der ersten bis dritten Ausführungsform beschriebenen Robotersteuerungsvorrichtung können die Korrekturbetraggenerierungseinheiten 102a und 102b einen Korrekturbetrag anhand von durch Distanzsensoren gemessenen Distanzen anstelle der an die Finger angelegten Wirkkraft berechnen. Speziell werden Distanzsensoren an den Robotern 10a und 10b oder an Einspannwerkzeugen des Produktionssystems angebracht, um Distanzen zwischen den Robotern und dem Werkstück zu messen und eine relative Distanz zwischen Fingerpositionen der Roboter 10a und 10b zu berechnen. Wenn die relative Distanz von einer gewünschten Distanz abweicht, wird ein Korrekturbetrag generiert, um die relative Distanz und die gewünschte Distanz in Übereinstimmung zu bringen. Anzumerken ist, dass es sich bei einem Verfahren zum Berechnen der relativen Distanz zwischen den Robotern 10a und 10b um ein beliebiges Verfahren handeln kann. Beispielsweise kann eine relative Distanz zwischen dem Roboter 10a und dem Werkstück und eine relative Distanz zwischen dem Roboter 10b und dem Werkstück durch die Distanzsensoren gemessen werden, um eine Distanz zwischen dem Roboter 10a und dem Roboter 10b zu berechnen. Die Distanz zwischen dem Roboter 10a und dem Roboter 10b kann durch die Distanzsensoren direkt gemessen werden.
-
Wenn die Roboter oder periphere Ansteuerungsvorrichtungen einen kooperativen Betrieb durchführen, der es erforderlich macht, dass Arbeit kontaktlos zu erfolgen hat, während eine feststehende Distanz beibehalten wird, ist es durch Anwenden dieser Konfiguration möglich, eine Bahn des Slave-Roboters 10b anzulernen, die ein ideales Positionsverhältnis bezüglich eines Arbeitstargets einhält.
-
Sechste Ausführungsform
-
Mit den in der zweiten, dritten und fünften Ausführungsform beschriebenen Robotersteuerungsvorrichtungen nutzen die Korrekturbetraggenerierungseinheiten 102a und 102b bein Anlernen den Korrekturbetrag, der in jedem Versuch sogar am selben Anlernpunkt schwankt. Deshalb ist eine Konvergenzeigenschaft manchmal nicht gewährleistet. Andererseits ist eine Robotersteuerungsvorrichtung dazu ausgelegt, unter Berücksichtigung einer durch die Transformationsmatrixgenerierungseinheit 200 generierten Transformationsmatrix eine zum k + 1-ten Zeitpunkt erfasste Transformationsmatrix uk + 1, eine zum k-ten Zeitpunkt erfasste Transformationsmatrix u, einen Veränderungsbetrag g der zum k-ten Zeitpunkt und zum k + 1-ten Zeitpunkt erfassten Transformationsmatrizes, und eine Veränderungsrate q(*) zu berechnen, die erhalten wird, indem der Veränderungsbetrag der zum k-ten Zeitpunkt und zum k + 1-ten Zeitpunkt erfassten Transformationsmatrizes durch den Steuerungszyklus dividiert wird, und zu bewirken, dass diese Transformationsmatrizes uk + 1 und u, der Veränderungsbetrag q und die Veränderungsrate q(*) unter Verwendung eines Anlernsteuerungsverfahrens mit einem Vergessensfaktor (siehe Nichtpatentschrift 1) stabil konvergieren, auch wenn eine Schwankung in einem berechneten Korrekturbetrag besteht.
-
Siebte Ausführungsform
-
In einer siebten Ausführungsform wird ein Befehlswert zum Anlernen generiert, indem ein Mittelwert von Korrekturbeträgen für mehrere Zyklen zu jeweiligen N Befehlswerten vor einer Positionskorrektur hinzuaddiert wird. Hier wird der Befehlswert zum Anlernen als erster Befehlswert zum Anlernen bezeichnet. Der Befehlswert vor der Positionskorrektur, zu dem der Mittelwert der Korrekturbeträge für die Zyklen hinzuaddiert wird, um den ersten Befehlswert zum Anlernen zu generieren, wird als zweiter Befehlswert zum Anlernen bezeichnet. Anzumerken ist, dass in der zweiten Ausführungsform als Beispiel ein Anlernpunkt oder ein Befehlswert nahe dem Anlernpunkt unter M Positionsbefehlswerten zum Definieren einer Befehlsbahn des Endeffektors 11a in jedem Betriebszeitraum als der zweite Befehlswert zum Anlernen verwendet wird.
-
14 ist ein Schema zur Erläuterung eines Robotersteuerungssystems, das eine Positionsverhältnisberechnungsvorrichtung umfasst, in der siebten Ausführungsform der vorliegenden Erfindung. Komponenten, bei denen es sich um dieselben wie die Komponenten in der ersten bis dritten Ausführungsform handelt, sind durch dieselben Bezugszahlen und -zeichen bezeichnet wie in der ersten bis dritten Ausführungsform und eine redundante Erklärung der Komponenten wird weggelassen.
-
Wie in 14 gezeigt ist, umfasst eine Master-Steuerungsvorrichtung 23a die Befehlswertspeichereinheit 100, eine Korrekturbetraggenerierungseinheit 110a, die Generierungseinheit 101a für korrigierte Befehlswerte, die Antriebssteuerungseinheit 103a und die Momentanpositionserfassungseinheit 104a. Die Korrekturbetraggenerierungseinheit 110a umfasst die Wirkkraftberechnungseinheit 105a, die Korrekturbetragberechnungseinheit 106a und eine Korrekturbetragspeichereinheit 111a. Während des Automatikbetriebs akkumuliert und speichert die Korrekturbetragspeichereinheit 111a zuletzt berechnete R Korrekturbeträge, die jeweilige N Befehlswerte betreffen. Die Korrekturbetragspeichereinheit 111a speichert auch zuletzt berechnete R Korrekturbeträge, die jeweilige M zweite Befehlswerte zum Anlernen betreffen. Anzumerken ist, dass R beispielsweise eine vorab angesetzte ganze Zahl gleich oder größer als 2 ist. Die R Korrekturbeträge, die sich auf die jeweiligen M zweiten Befehlswerte zum Anlernen beziehen, werden durch eine Positionsverhältnisberechnungsvorrichtung 33 ausgelesen. Ein zweiter Befehlswert zum Anlernen, der in der Befehlswertspeichereinheit 100 gespeichert ist, wird durch die Positionsverhältnisberechnungsvorrichtung 33 ausgelesen. Ein durch die Generierungseinheit 101a für korrigierte Befehlswerte generierter korrigierter Befehlswert in jedem von Betriebszeiträumen wird an eine Slave-Steuerungsvorrichtung 23b übertragen. Der zweite Befehlswert zum Anlernen wird an die Slave-Steuerungsvorrichtung 23b übertragen, nachdem er durch die Generierungseinheit 101a für korrigierte Befehlswerte korrigiert wurde.
-
Anzumerken ist, dass der zweite Befehlswert zum Anlernen, der in der Befehlswertspeichereinheit 100 gespeichert ist, als zweiter Befehlswert zum Anlernen für den Endeffektor 11a bezeichnet wird, der von einem nachstehend erklärten zweiten Befehlswert zum Anlernen für den Endeffektor 11b unterschieden werden soll.
-
Die Positionsverhältnisberechnungsvorrichtung 33 umfasst eine Transformationsmatrixgenerierungseinheit 500, die Transformationsmatrixspeichereinheit 301 und die Transformationsmatrixfunktionsgenerierungseinheit 302. Die Transformationsmatrixgenerierungseinheit 500 generiert N Transformationsmatrizes auf Grundlage von N zweiten Befehlswerten zum Anlernen für den Endeffektor 11a, N zweiten Befehlswerten zum Anlernen für den Endeffektor 11b, einen Mittelwert von aktuellsten R Sätzen von Korrekturbeträgen, die in Bezug auf die N zweiten Befehlswerte zum Anlernen für den Endeffektor 11a berechnet wurden, und einen Mittelwert von aktuellsten R Sätzen von Korrekturbeträgen, die in Bezug auf die N zweiten Befehlswerte zum Anlernen für den Endeffektor 11b berechnet wurden. Die Transformationsmatrixspeichereinheit 301 speichert die durch die Transformationsmatrixgenerierungseinheit 500 generierten N Transformationsmatrizes zum Anlernen. Im Automatikbetrieb generiert die Transformationsmatrixfunktionsgenerierungseinheit 302 dynamisch eine Transformationsmatrixfunktion (eine zweite Transformationsmatrixfunktion) auf Grundlage der jeweiligen durch die Momentanpositionserfassungseinheiten 104a und 104b erfassten momentanen Positionen.
-
Anzumerken ist, dass in der Vorbereitungsverarbeitung die Transformationsmatrixfunktionsgenerierungseinheit 302 eine Verarbeitung durchführt, bei der es sich um dieselbe wie die Verarbeitung durch die entsprechende Komponente in der ersten Ausführungsform handelt, und die Transformationsmatrixfunktion (die erste Transformationsmatrixfunktion) in der ersten Ausführungsform generiert. Um die Erklärung zu vereinfachen, werden die Erklärung einer Konfiguration zum Generieren von N Transformationsmatrizes in der Vorbereitungsverarbeitung und die Darstellung eines Eingangs- und Ausgabeverhältnisses von Daten weggelassen.
-
Die Slave-Steuerungsvorrichtung 23b umfasst die Transformationsmatrixfunktionsspeichereinheit 310, eine Befehlswertgenerierungseinheit 511, eine Korrekturbetraggenerierungseinheit 110b, die Generierungseinheit 101b für korrigierte Befehlswerte, die Antriebssteuerungseinheit 103b und die Momentanpositionserfassungseinheit 104b.
-
Die Befehlswertgenerierungseinheit 511 generiert M Befehlswerte zum Definieren einer Bahn des Endeffektors 11b auf Grundlage des von der Generierungseinheit 101a für korrigierte Befehlswerte übertragenen korrigierten Befehlswerts in jedem Betriebszeitraum und der durch die Transformationsmatrixfunktionsspeichereinheit 310 gespeicherten zweiten Transformationsmatrixfunktion 304. Speziell generiert die Befehlswertgenerierungseinheit 511 eine Transformationsmatrix an jedem der korrigierten Befehlswerte für den Endeffektor 11a auf Grundlage der zweiten Transformationsmatrixfunktion 304. Die Befehlswertgenerierungseinheit 511 bewirkt, dass die generierte Transformationsmatrix auf den von der Generierungseinheit 101a für korrigierte Befehlswerte übertragenen korrigierten Befehlswert in jedem der Betriebszeiträume wirkt und generiert einen Befehlswert für den Endeffektor 11b in jedem der Betriebszeiträume. Die Befehlswertgenerierungseinheit 511 generiert einen zweiten Befehlswert zum Anlernen für den Endeffektor 11b auf Grundlage des durch die Generierungseinheit 101a für korrigierte Befehlswerte korrigierten zweiten Befehlswerts zum Anlernen und der zweiten Transformationsmatrixfunktion 304. Die Befehlswertgenerierungseinheit 511 überträgt den generierten zweiten Befehlswert zum Anlernen für den Endeffektor 11b an die Positionsverhältnisberechnungsvorrichtung 33.
-
Die Korrekturbetraggenerierungseinheit 110b umfasst die Wirkkraftberechnungseinheit 105b, die Korrekturbetragberechnungseinheit 106b und eine Korrekturbetragspeichereinheit 111b. Die Korrekturbetragspeichereinheit 111b akkumuliert und speichert, was die jeweiligen durch die Befehlswertgenerierungseinheit 511 generierten M Befehlswerte betrifft, eine vorbestimmte Anzahl an (R) Korrekturbeträgen, die zuletzt berechnet wurden. Von den M Befehlswerten, die durch die Befehlswertgenerierungseinheit 511 generiert werden, wird ein Befehlswert für den Endeffektor 11b, der dem zweiten Befehlswert zum Anlernen für den Endeffektor 11a entspricht, an die Positionsverhältnisberechnungseinheit 33 übertragen. Anzumerken ist, dass der Befehlswert für den Endeffektor 11b, der dem zweiten Befehlswert zum Anlernen für den Endeffektor 11a entspricht, als zweiter Befehlswert zum Anlernen für den Endeffektor 11b bezeichnet wird.
-
Ein Verfahren, mit dem die Transformationsmatrixgenerierungseinheit 500 eine Transformationsmatrix zum Anlernen generiert, wird nun erklärt. Eine Komponente eines Korrekturbetrags in rob1T'E1 wird als ΔTk1 definiert, und eine Komponente eines Korrekturbetrags in rob2T'E2 wird als ΔTk2 definiert. Das heißt, ΔTk1 ist eine Differenz zwischen rob1T'E1 und rob1TE1, und ΔTk2 ist eine Differenz zwischen rob2T'E2 und rob2TE2. Deshalb können ΔTk1 und ΔTk2 jeweils wie folgt dargestellt werden: ΔTk1 = [rob1R'E1(rob1RE1)–1, rob1P'E1 – rob1PE1; null(1, 3), 1] (21) ΔTk2 = [rob2R'E1(rob2RE2)–1, rob2P'E2 – rob2PE2, null(1, 3), 1] (22)
-
Wie in Formel (1) werden rob1TE1, rob2TE2, rob1T'E1 und rob2T'E2 wie folgt dargestellt: robiT'Ei(i = 1, 2) = [rob1R'Ei, rob1P'Ei, null(1, 3), 1] (23) robiTEi(i = 1, 2) = [rob1REi, rob1PEi; null(1, 3), 1] (24)
-
Die Transformationsmatrixgenerierungseinheit 500 berechnet einen Mittelwert der R Korrekturbeträge, die die jeweiligen zweiten Befehlswerte zum Anlernen für den Endeffektor 11a betreffen, um dadurch einen Mittelwert ΔTk1_m von Korrekturbeträgen für die jeweiligen zweiten Befehlswerte zum Anlernen für den Endeffektor 11a zu berechnen. Die Transformationsmatrixgenerierungseinheit 500 berechnet einen Mittelwert der R Korrekturbeträge, die die jeweiligen zweiten Befehlswerte zum Anlernen für den Endeffektor 11b betreffen, um dadurch einen Mittelwert ΔTk2_m von Korrekturbeträgen für die jeweiligen zweiten Befehlswerte zum Anlernen für den Endeffektor 11b zu berechnen. Die Transformationsmatrixgenerierungseinheit 500 addiert den berechneten Mittelwert ΔTk2_i (i = 1 und 2) zu dem entsprechenden zweiten Befehlswert zum Anlernen, um dadurch einen ersten Befehlswert zum Anlernen zu berechnen.
-
Speziell berechnet die Transformationsmatrixgenerierungseinheit 500 eine Rotationskomponente ΔRki_m und eine Translationskomponente ΔPki_m unter Verwendung von ΔTki_m (i = 1 und 2) und der folgenden Formel (25): ΔTki_m = [ΔRki_m, ΔPki_m; null(1, 3), 1] (25)
-
Die Transformationsmatrixgenerierungseinheit 500 setzt die Rotationskomponente ΔRki_m und die Translationskomponente ΔPki_m in Formel (26) ein, um dadurch einen ersten Befehlswert zum Anlernen von robiT''Ei,i=1,2 zu berechnen: robiT''Ei,i=1,2 = [robiREi,i=1,2ΔRki_m, robiPEi,i=1,2 + ΔPki_m, null(1, 3), 1] (26)
-
Die Transformationsmatrixgenerierungseinheit 500 berechnet eine Transformationsmatrix zum Anlernen E1T''E2(k), k = 1, 2, ..., N in der siebten Ausführungsform unter Verwendung des ersten Befehlswerts zum Anlernen robiT''Ei,i=1,2 und der folgenden Formel (27): E1T''E2 = (wldTrob1 rob1T''E1)–1 wldTrob2 rob2T''E2 (27)
-
Anzumerken ist, dass in der vorstehenden Erklärung der erste Befehlswert zum Anlernen dadurch berechnet wird, dass der Mittelwert des aktuellsten R Korrekturbetrags zum zweiten Befehlswert zum Anlernen hinzuaddiert wird. Jedoch braucht ein Korrekturbetrag, der zum zweiten Befehlswert zum Anlernen hinzuaddiert wird, nur ein Wert zu sein, der die R Korrekturbeträge darstellt, und ist nicht auf den Mittelwert beschränkt. Beispielsweise kann ein Medianwert, ein Modalwert oder ein gewichteter Mittelwert der R Korrekturbeträge als Korrekturbetrag übernommen werden, der zum zweiten Befehlswert zum Anlernen hinzuaddiert wird.
-
Die Korrekturbetragberechnungseinheiten 106a und 106b umfassen beispielsweise ein Steuerungssystem aus einem Impedanzsteuerungssystem oder einem Kraftsteuerungssystem. Das Impedanzsteuerungssystem oder ein Kraftsteuerungssystem umfasst einen Integrator, wie durch Patentschrift 4 angegeben ist. Deshalb berechnet das Impedanzsteuerungssystem oder das Kraftsteuerungssystem einen Tm-ten Korrekturbetrag unter Verwendung eines T1-ten bis Tm-1-ten Korrekturbetrags. Nach der siebten Ausführungsform wird eine Anpassung eines Fehlers anhand R Tm-ter Korrekturbeträge durchgeführt. Deshalb ist eine Genauigkeit der Anpassung des Fehlers verbessert. Im Ergebnis ist es möglich, eine an ein ergriffenes Werkstück angelegte Belastung an jeder Position auf tatsächlichen Bahnen mehrerer Roboter bei der Synchronansteuerung noch weiter zu reduzieren.
-
Eine Wirkkraft während des Automatikbetriebs ändert sich aufgrund von Bedingungen wie etwa Geschwindigkeit und Temperatur. Nach der siebten Ausführungsform wird der erste Befehlswert zum Anlernen unter Verwendung des Korrekturbetrags generiert, der erhalten wird, indem die R Korrekturbeträge gemittelt werden, die zuletzt berechnet wurden. Deshalb ist es möglich, die Wirkkraft, die sich wegen der Bedingungen ändert, asymptotisch zu reduzieren.
-
Wie vorstehend beschrieben, kooperieren nach der siebten Ausführungsform der vorliegenden Erfindung die Generierungseinheiten 101a und 101b für korrigierte Befehlswerte, die Korrekturbetraggenerierungseinheiten 110a und 11b und die Transformationsmatrixgenerierungseinheit 500 miteinander und berechnen, was jeweilige in Befehlswerten in jedem von Betriebszeiträumen enthaltene zweite Befehlswerte zum Anlernen betrifft, erste Befehlswerte zum Anlernen auf Grundlage der zweiten Befehlswerte zum Anlernen und einen repräsentativen Wert aktuellster Korrekturbeträge für einen vorbestimmten Zyklus für die zweiten Befehlswerte zum Anlernen. Die Transformationsmatrixgenerierungseinheit 500 generiert eine Transformationsmatrix zum Anlernen für die jeweiligen ersten Befehlswerte zum Anlernen. Folglich werden die ersten Befehlswerte zum Anlernen mit einem Fehler generiert, der durch ein Verfahren angepasst wird, das im Vergleich zu einem System zum Berechnen eines Tm-ten Korrekturbetrags unter Verwendung eines T1-ten Korrekturbetrags bis tm-1-ten Korrekturbetrags über eine höhere Genauigkeit verfügt. Die ersten Befehlswerte zum Anlernen werden unter Berücksichtigung einer Schwankung eines Fehlers auf Grundlage einer Schwankung bei den Bedingungen während des Automatikbetriebs generiert. Deshalb ist es möglich, eine in den Endeffektoren 11a und 11b erzeugte Wirkkraft so weit wie möglich zu reduzieren.
-
Anzumerken ist, dass in der vorstehenden Erklärung die zweite Transformationsmatrixfunktion 304 unter Verwendung der aktuellsten Korrekturwerte für die R Zyklen generiert werden, die während des Automatikbetriebs berechnet wurden. Wenn die Vorbereitungsverarbeitung für die R Zyklen ausgeführt wird, kann die erste Transformationsmatrixfunktion 303 durch eine Prozedur generiert werden, bei der es sich um dieselbe wie die Prozedur für die zweite Transformationsmatrixfunktion 304 handelt, die sich eines Korrekturwerts bedient, der durch die Vorbereitungsverarbeitung für die R Zyklen erhalten wird.
-
Wie in 15 gezeigt ist, kann die Befehlswertgenerierungseinheit 511 einen Befehlswert in jedem der Betriebszeiträume für den Endeffektor 11a aus der Befehlswertspeichereinheit 100 auslesen, R Sätze von Korrekturbeträgen für den Befehlswert in jedem der Betriebszeiträume aus der Korrekturbetragspeichereinheit 111a auslesen, und den ausgelesenen Befehlswert und einen Mittelwert der ausgelesenen R Sätze von Korrekturbeträgen aufaddieren, um dadurch einen Befehlswert in jedem der Betriebszeiträume für den Endeffektor 11b zu generieren. Folglich ist es, selbst wenn ein korrigierter Befehlswert des Endeffektors 11a stark schwankt, möglich, den Einfluss der Schwankung im korrigierten Befehlswert des Endeffektors 11a auf den Befehlswert in jedem der Betriebszeiträume des Endeffektors 11b zu reduzieren.
-
Achte Ausführungsform
-
In einer achten Ausführungsform wird ein Befehlswert, der bezüglich einer Wirkkraft eine vorbestimmte Bedingung erfüllt, unter Befehlswerten in jedem Betriebszeitraum als ein zweiter Befehlswert zum Anlernen ausgewählt.
-
16 ist ein Schema zur Erklärung eines Robotersteuerungssystems, das eine Positionsverhältnisberechnungsvorrichtung in der achten Ausführungsform der vorliegenden Erfindung umfasst. Komponenten, bei denen es sich um dieselben wie in der siebten Ausführungsform handelt, sind durch dieselben Bezugszahlen und -zeichen bezeichnet wie in der siebten Ausführungsform und eine redundante Erklärung der Komponenten wird weggelassen.
-
Wie in der Figur gezeigt ist, umfasst eine Master-Steuerungsvorrichtung 24a in der achten Ausführungsform eine Konfiguration, in der eine Befehlswert-zum-Anlernen-Auswahleinheit 600 zu der mit Bezug auf 14 erklärten Master-Steuerungsvorrichtung 23a in der siebten Ausführungsform hinzugekommen ist. Die Positionsverhältnisberechnungsvorrichtung 33 bzw. die Slave-Steuerungsvorrichtung 23b in der achten Ausführungsform haben dieselben Konfigurationen wie die mit Bezug auf 14 erklärten Auslegungen der entsprechenden Vorrichtungen.
-
Die Befehlswert-zum-Anlernen-Auswahleinheit 600 wählt N zweite Befehlswerte zum Anlernen, die eine vorbestimmte Bedingung für eine Wirkkraft erfüllen, aus M Befehlswerten in jedem der Betriebszeiträume aus, die durch die Befehlswertspeichereinheit 100 gespeichert wurden. Ein Korrekturbetrag nimmt entsprechend einer Zunahme und einer Abnahme der Wirkkraft zu und ab. Die Befehlswert-zum-Anlernen-Auswahleinheit 600 wählt die N Befehlswerte zum Anlernen aus, unter Verwendungeines durch die Korrekturbetragsberechnungseinheit 106a berechneten Korrekturbetrags als Merkmalswert.
-
Anzumerken ist, dass die Befehlswert-zum-Anlernen-Auswahleinheit 600 einen zweiten Befehlswert zum Anlernen unter Verwendung des Korrekturbetrags auf jede Weise auswählen kann. Beispielsweise kann die Befehlswert-zum-Anlernen-Auswahleinheit 600 einen Befehlswert, einen Korrekturbetrag oder eine Veränderungsrate des Korrekturbetrags oder beide, die vorbestimmte Schwellenwerte übersteigen, als den zweiten Befehlswert zum Anlernen auswählen. Folglich wird ein Befehlswert, mit dem eine Wirkkraft oder eine Veränderungsrate der Wirkkraft besonders groß ist, als der zweite Befehlswert zum Anlernen gesetzt.
-
Die Befehlswert-zum-Anlernen-Auswahleinheit 600 kann den zweiten Befehlswert zum Anlernen unter Verwendung eines anderen Betrags als des Korrekturbetrags als Merkmalswert auswählen. Ein Verfahren zum Auswählen des zweiten Befehlswerts zum Anlernen unter Verwendung eines anderen Betrags als des Korrekturbetrags als Merkmalswert wird nachstehend beschrieben.
-
Beispielsweise kann die Befehlswert-zum-Anlernen-Auswahleinheit 600 als den Merkmalswert eine Wirkkraft auswählen, die durch die Wirkkraftberechnungseinheit 105a berechnet wird. Die Befehlswert-zum-Anlernen-Auswahleinheit 600 wählt einen Befehlswert, mit dem eine Wirkkraft oder eine Veränderungsrate der Wirkkraft oder beide vorbestimmte Schwellenwerte übersteigen, als den zweiten Befehlswert zum Anlernen aus.
-
Die Befehlswert-zum-Anlernen-Auswahleinheit 600 kann einen Befehlswert in jedem der Betriebszeiträume als den Merkmalswert auswählen. Beispielsweise wählt die Befehlswert-zum-Anlernen-Auswahleinheit 600 einen Befehlswert, der eine vorbestimmte Positionsbedingung erfüllt, als den zweiten Befehlswert zum Anlernen aus. In manchem Fall wird eine Position, an der eine Wirkkraft oder eine Veränderungsrate der Wirkkraft auf einer Bahn zunimmt, auf Grundlage eines Mechanismus des Roboters vorab gefunden. In diesem Fall wird die Position, an der eine Wirkkraft oder eine Veränderungsrate der Wirkkraft auf der Bahn zunimmt, in der Befehlswert-zum-Anlernen-Auswahleinheit 600 als eine Positionsbedingung vorab angesetzt. Die Befehlswert-zum-Anlernen-Auswahleinheit 600 wählt als den zweiten Befehlswert zum Anlernen einen Befehlswert zum Positionieren an der als Positionsbedingung gesetzten Position aus. Anzumerken ist, dass ein Bereich auf der Bahn als die Positionsbedingung angesetzt werden kann.
-
Die Befehlswert-zum-Anlernen-Auswahleinheit 600 kann eine Motordrehzahl aus einem Befehlswert in jedem der Betriebszeiträume oder einer momentanen Position in jedem der Betriebszeiträume berechnen und die Motordrehzahl als den Merkmalswert verwenden. Die Befehlswert-zum-Anlernen-Auswahleinheit 600 erfasst eine Position, an der die Motordrehzahl oder eine Veränderungsrate der Motordrehzahl groß ist und wählt als den zweiten Befehlswert zum Anlernen einen Befehlswert zum Positionieren des Roboters an der erfassten Position aus. Folglich wird ein Befehlswert, der einer Position entspricht, an der eine Wirkkraft durch eine Zentrifugalkraft oder eine Coriolis-Kraft auf der Bahn erhöht wird, als der zweite Befehlswert zum Anlernen ausgewählt.
-
Die Befehlswert-zum-Anlernen-Auswahleinheit 600 kann als den Merkmalswert einen Veränderungsbetrag pro Zeiteinheit eines Befehlswerts oder einer Haltungsposition verwenden.
-
Die Befehlswert-zum-Anlernen-Auswahleinheit 600 kann als den Merkmalswert eine Zeit verwenden, in der der Befehlswert verwendet wird. Ein Befehlswert in jedem der Betriebszeiträume wird sequentiell aus der Befehlswertspeichereinheit 100 ausgelesen. Ein korrigierter Befehlswert, der auf dem ausgelesenen Befehlswert beruht, wird sequentiell an die Antriebssteuerungseinheit 103a übergeben. Wenn eine Wirkkraft auf Grundlage einer zeitlichen Bedingung schwankt, kann die Befehlswert-zum-Anlernen-Auswahleinheit 600 den zweiten Befehlswert zum Anlernen auf Grundlage der Zeit auswählen, in der die Wirkkraft oder eine Schwankung der Wirkkraft zunimmt. Wenn beispielsweise die Zeit, zu der der Befehlswert in jedem der Betriebszeiträume aus der Befehlswertspeichereinheit 100 ausgelesen wird, eine vorab angesetzte Zeitbedingung erfüllt, wählt die Befehlswert-zum-Anlernen-Auswahleinheit 600 den Befehlswert als den zweiten Befehlswert zum Anlernen aus.
-
Anzumerken ist, dass, wenn ein Korrekturbetrag auf Grundlage einer Distanz wie in der fünften Ausführungsform erklärt berechnet wird, die Befehlswert-zum-Anlernen-Auswahleinheit 600 den zweiten Befehlswert zum Anlernen auf Grundlage eines Vergleichs der Größe des Korrekturbetrags, einer Veränderungsrate des Korrekturbetrags oder einer Differenz zwischen Distanzen vor und nach einer Korrektur, und einem vorbestimmten Schwellenwert auswählen kann.
-
Die Befehlswert-zum-Anlernen-Auswahleinheit 600 kann die vorstehend erklärten Auswahlverfahren kombinieren und den zweiten Befehlswert zum Anlernen auswählen.
-
17 ist ein Schema einer Beziehung zwischen einer an einen Endeffektor angelegten Wirkkraft und der Position des Endeffektors bei einer kooperativen Arbeit, die durch das Robotersteuerungssystem nach dem Vergleichsbeispiel durchgeführt wird. In der Figur gibt t[s] eine Zeit, x[mm] die Position des Endeffektors, Fx[N] die an den Endeffektor angelegte Wirkkraft und Fxlim[N] einen zulässigen Wert der Wirkkraft an. Wie in der Figur gezeigt ist, verändert sich gemäß dem Vergleichsbeispiel ein Fehler entsprechend einer Veränderung in der Position des Endeffektors. Die Wirkkraft Fx nimmt dem Fehler entsprechend zu. Wenn sich ein Fehlerbetrag wegen eines dynamischen Einflusses, beispielsweise einer Geschwindigkeitszunahme, verändert, nimmt die Wirkkraft Fx weiter zu.
-
18 ist ein Schema einer Beziehung zwischen einer an den Endeffektor angelegten Wirkkraft und der Position des Endeffektors bei einer Impedanzsteuerung, die auf das Robotersteuerungssystem nach dem Vergleichsbeispiel angewendet wird. Gemäß der Anwendung der Impedanzsteuerung ist die Wirkkraft Fx an jeweiligen Positionen im Vergleich zu der in 17 gezeigten Wirkkraft Fx reduziert. Weil es jedoch schwierig ist, einen Steuerparameter für jeden von Teilen auf einer Bahn einzustellen, beispielsweise, wenn sich eine Haltung verändert oder wenn eine Geschwindigkeit schwankt, ist es schwierig, die Wirkkraft Fx so weit zu reduzieren, dass sie an allen Positionen auf der Bahn kleiner als Fxlim ist.
-
19 ist ein Schema einer Beziehung zwischen einer an den Endeffektor angelegten Wirkkraft und der Position des Endeffektors bei einer kooperativen Arbeit, die durch das Robotersteuerungssystem in der achten Ausführungsform durchgeführt wird. Nach der achten Ausführungsform wird ein Befehlswert zum Positionieren an einer Position, an der eine Wirkkraft oder eine Veränderungsrate der Wirkkraft groß ist, als ein zweiter Befehlswert zum Anlernen ausgewählt. Ein Mittelwert aus R Korrekturwerten wird zu jeweiligen zweiten Befehlswerten zum Anlernen hinzuaddiert, um einen ersten Befehlswert zum Anlernen zu generieren. Folglich ist es möglich, die Wirkkraft Fx über die gesamte Fläche auf der Bahn zu reduzieren. Im Ergebnis ist es möglich, die Wirkkraft Fx so zu reduzieren, dass sie an jeder Position auf der Bahn kleiner als Fxlim ist.
-
Wie vorstehend erklärt wählt nach der achten Ausführungsform der vorliegenden Erfindung die Befehlswert-zum-Anlernen-Auswahleinheit 600 die N zweiten Befehlswerte zum Anlernen, die die vorbestimmte Bedingungbezüglich einer Wirkkraft erfüllen, aus den durch die Befehlswertspeichereinheit 100 gespeicherten M Befehlswerten in jedem der Betriebszeiträume für den Endeffektor 11a aus. Die Befehlswertgenerierungseinheit 511 generiert einen zweiten Befehlswert zum Anlernen für den Endeffektor 11b auf Grundlage des ausgewählten zweiten Befehlswerts zum Anlernen für den Endeffektor 11a. Folglich wird eine Transformationsmatrix zum Anlernen so generiert, dass die Wirkkraft an Positionen abnimmt, an denen eine in den Endeffektoren 11a und 11b erzeugte Wirkkraft oder eine Veränderungsrate der Wirkkraft besonders groß ist. Deshalb ist es möglich, die in den Endeffektoren 11a und 11b erzeugte Wirkkraft weiter zu reduzieren.
-
Anzumerken ist, dass es sich in der Erklärung in der ersten bis siebten Ausführungsform bei der Art der Roboter 10a und 10b um den vertikalen Mehrgelenkroboter mit sechs Freiheitsgraden handelt. Jedoch ist die Art der Roboter 10a und 10b nicht auf diesen beschränkt. Bei der Art der Roboter 10a und 10b kann es sich beispielsweise um einen horizontalen Mehrgelenkroboter oder einen Linearbewegungsroboter handeln.
-
Industrielle Anwendbarkeit
-
Wie vorstehend erklärt, werden die Robotersteuerungsvorrichtung und das Robotersteuerungsverfahren gemäß der vorliegenden Erfindung geeigneter Weise auf eine Robotersteuerungsvorrichtung und ein Robotersteuerungsverfahren zum Ansteuern mehrerer Roboter angewendet, während die Roboter gleichzeitig miteinander synchronisiert werden.
-
Bezugszeichenliste
-
- 10a
- Master-Roboter
- 10b
- Slave-Roboter
- 11a, 11b
- Endeffektoren
- 12a, 12b
- Installationsgestelle
- 20a, 21a, 22a, 23a, 24a, 40a
- Master-Steuerungsvorrichtungen
- 20b, 21b, 22b, 23b, 40b
- Slave-Steuerungsvorrichtungen
- 30, 31, 32, 33, 50
- Positionsverhältnisberechnungsvorrichtungen
- 100
- Befehlswertspeichereinheit
- 101a, 101b
- Generierungseinheiten für korrigierte Befehlswerte
- 102a, 102b
- Korrekturbetraggenerierungseinheiten
- 103, 103b
- Antriebssteuerungseinheiten
- 104a, 104b
- Momentanpositionserfassungseinheiten
- 105a, 105b
- Wirkkraftberechnungseinheiten
- 106a, 106b
- Korrekturbetragberechnungseinheiten
- 107a, 107b
- Korrekturbetragspeichereinheiten
- 108, 311, 511
- Befehlswertgenerierungseinheiten
- 109
- Transformationsmatrixspeichereinheit
- 110a, 110b
- Korrekturbetraggenerierungseinheiten
- 111a, 111b
- Korrekturbetragspeichereinheiten
- 200, 300, 400, 500
- Transformationsmatrixgenerierungseinheiten
- 201, 301, 401
- Transformationsmatrixspeichereinheiten
- 202, 302, 402
- Transformationsmatrixfunktionsgenerierungseinheiten
- 210, 310
- Transformationsmatrixfunktionsspeichereinheiten
- 211
- Befehlswertgenerierungseinheit
- 303
- erste Transformationsmatrixfunktion
- 304, 404
- zweite Transformationsmatrixfunktionen
- 403
- Testbetriebsgeschwindigkeitseinstelleinheit
- 410
- Transformationsmatrixfunktionsspeichereinheit
- 411
- Befehlswertgenerierungseinheit
- 412
- Normalbetriebsgeschwindigkeitseinstelleinheit
- 600
- Befehlswert-zum-Anlernen-Auswahleinheit