-
Fachgebiet der Erfindung
-
Diese Erfindung bezieht sich auf einen Roboter mit einer Lernsteuerfunktion, insbesondere auf einen Roboter, dessen Betriebsgeschwindigkeit unter Verwendung eines an einem Arm des Roboters angebrachten Sensors vergrößert ist.
-
Hintergrund der Erfindung
-
In einem Roboter werden die Position und die Geschwindigkeit eines von einem Servomotor angetriebenen Elements normalerweise durch eine Positionsregelung, eine Geschwindigkeitsregelung und eine Stromregelung derart gesteuert, dass die Position und die Geschwindigkeit des angetriebenen Elements mit der Sollposition und der Sollgeschwindigkeit jeweils übereinstimmen.
-
Selbst bei einer derartigen Regelung der Position, der Geschwindigkeit und des Stroms treten eine Bahnfehler- und eine Positionsvibrationskomponente bei einem Hochgeschwindigkeitsbetrieb des Roboters auf. Ferner macht es der Unterschied in den dynamischen Eigenschaften zwischen dem Motor und dem Arm unmöglich, die Bahnfehler- und die Positionsvibrationskomponente des Arms direkt von einem Motorkodierer zu erfassen. Deshalb ist es zum Messen der Bahnfehler- und der Positionsvibrationskomponente erforderlich, einen Sensor direkt am Arm anzubringen. Als ein Beispiel der Lernsteuerung mit einem angebrachten Sensor wurde eine Lernsteuerung unter Verwendung eines Beschleunigungssensors offenbart (Patentdokument 1).
-
1 ist ein schematisches Diagramm, das einen Roboter mit der herkömmlichen Lernsteuereinheit zum Ausführen der Lernsteuerung zeigt. Der Roboter 100 ist konfiguriert aus einer Robotermechanismuseinheit 1 und einer Steuereinheit 2 zum Steuern der Robotermechanismuseinheit 1. Die Steuereinheit 2 umfasst eine Lernsteuereinheit 3 zum Ausführen der Lernsteuerung des Roboters und eine Normalsteuereinheit 4 zum direkten Antreiben der Robotermechanismuseinheit 1.
-
Die Robotermechanismuseinheit 1 umfasst einen Beschleunigungssensor 10, einen Arm 11 und einen Abschnitt 12 am vorderen Armende, sowie einen Motor (nicht gezeigt). Der Motor der Robotermechanismuseinheit wird mit einem Signal von der Normalsteuereinheit 4 der Steuereinheit 2 versorgt und treibt den Arm 11 an. Ferner dreht der Robotermechanismuseinheit den vorderen Armendabschnitt 12 in die Sollposition und führt einen Arbeitsschritt aus, wie beispielsweise einen Schweißschritt. Am vorderen Endabschnitt 12 des Arms ist ein Beschleunigungssensor 10 angebracht, der die Raumpositionsdaten (yj(k)) des vorderen Endabschnitts 12 des Arms ermitteln kann. Die Positionsdaten (yj(k)) vom Beschleunigungssensor 12 werden an die Lernsteuereinheit 3 abgegeben und zur Lernsteuerung verwendet. In der vorangehenden Beschreibung bezeichnet der Bezugsbuchstabe j die Anzahl der durchgeführten Versuche, k die Zeit und Ns die Anzahl der Abtastvorgänge bei jedem Versuch. Der Buchstabe yd(k) bezeichnet einen Positionsbefehl, (yj(k)) bezeichnet den in dem vorangehenden Steuerzyklus gesteuerten Wert und ej(k) bezeichnet den Zielkorrekturbetrag, der aus yd(k) und (yj(k)) über einen Filter berechnet wurde. Auch uj(k) bezeichnet den Lernkorrekturwert des vorangehenden Steuerzyklus.
-
Die normale Steuerung 4 umfasst eine Positionssteuereinheit 41, eine Geschwindigkeitssteuereinheit 42, eine Stromsteuereinheit 43, einen Verstärker 44 und ein Differenzierungsmittel 45. Die Positionssteuereinheit 41 empfängt die Positionsbefehlsdaten yd(k), die von der Steuereinheit 2 eingegeben werden und die Positionsinformation beispielsweise des Motors des Robotermechanismus, während sie gleichzeitig die Sollpositionsinformation des vorderen Endabschnitts 12 des Arms der Robotermechanismuseinheit 1 an die Geschwindigkeitssteuereinheit 42 ausgibt. Das Differenzationsmittel 45 empfängt die Motorpositionsinformation, die von dem Robotermechanismus 1 rückgekoppelt wurde und gibt durch Berechnen der Motorgeschwindigkeit die Motorgeschwindigkeit an die Geschwindigkeitssteuereinheit 42 aus.
-
Die Geschwindigkeitssteuereinheit 42 berechnet die Sollmotorgeschwindigkeit unter Verwendung der Positionsinformation von der Positionssteuereinheit 41 und der Motorgeschwindigkeitsinformation von dem Differenziationsmittel 54 und gibt die Sollmotorgeschwindigkeit an die Stromsteuereinheit 43 aus. Die Stromsteuereinheit 43 empfängt den rückgekoppelten Stromwert vom Verstärker 44 und gibt den resultierenden Strom an den Verstärker 44 aus, in dem der in den Motor fließende Strom derart berechnet wird, dass die von der Geschwindigkeitssteuereinheit 42 eingegebene Sollmotorgeschwindigkeit erreicht wird. Der Verstärker 44 berechnet die Sollleistung aufgrund des Stromwerts von der Stromsteuereinheit 43 und führt die Sollleistung dem Motor (nicht gezeigt) der Robotermechanismuseinheit 1 zu.
-
Die Lernsteuereinheit 3 umfasst eine Einmalversuchsverzögerungseinheit W–1 300, einen ersten Speicher 31, eine Lernsteuereinheit L(q) 32, einen Tiefpassfilter Q(q) 33, einen zweiten Speicher 34 und einen dritten Speicher 35. Der erste Speicher 31 erhält einen Sollkorrekturbetrag ej(k) über einen Filter auf Grundlage der Positionssolldaten (yd(k)) für den vorderen Armendabschnitt 12 und die Positionsdaten (yj(k)), die von dem Beschleunigungssensor 10 gemessen wurden und speichert diese, während er gleichzeitig den Sollkorrekturwert ej(k) an die Lernsteuereinheit L(q) 32 ausgibt. Der Sollkorrekturwert ej(k) entspricht den Bahn- und Vibrationsfehlern bezüglich der Sollposition des vorderen Endabschnitts 12 des Arms.
-
Die Lernsteuereinheit L(q) 32 gibt durch Ausführen des darin gespeicherten Arbeitsschrittprogramms den Lernkorrekturwert uj+1(k) aus dem Sollkorrekturwert ej(k) und den vorangegangenen Lernkorrekturwert uj(k) und gibt den Lernkorrekturwert uj+1(k) an den Tiefpassfilter Q(q) 33 ab. Der Lernkorrekturwert uj+1(k), der an den Tiefpassfilter Q(q) 33 eingegeben wird, wird an den zweiten Speicher 34 ausgegeben und in diesem gespeichert, während er gleichzeitig zu den Positionsfehlerdaten hinzuaddiert wird, die von der Positionssteuereinheit 41 der normalen Steuereinheit 4 berechnet werden.
-
Auf Grundlage der so korrigierten Positionsfehlerdaten wird die Robotermechanismuseinheit
1 gesteuert und die Lernsteuerung wird wiederholt. In der Lernsteuerung wird diese Reihe von Vorgängen wiederholt ausgeführt, um den Positionsfehler gegen „0” konvergieren zu lassen. Nach Beendigung der Lernsteuerung wird die Schleife zum Aktualisieren des Lernkorrekturwerts, die in
1 durch die unterbrochene Linie wiedergegeben ist, nicht ausgeführt und der Lernkorrekturwert u
j+1(k) wird von dem zweiten Speicher
34 zu der Positionssteuereinheit
41 ausgegeben. Tatsächlich definiert in
1 die durchgezogene Linie den Abschnitt, der von der normalen Steuereinheit
4 ausgeführt wird, um die Robotermechanismuseinheit
1 nach Beendigung der Lernsteuerung in dem Lernbetrieb zu betreiben, der durch die punktierte Linie angezeigt ist.
Patentdokument 1:
JP 2006-172149 A
-
In der herkömmlichen Lernsteuerung wird die Verbesserung hinsichtlich der Bahn- und Vibrationsfehler unter einer bestimmten Bedingung berücksichtigt. Allerdings besteht das Problem darin, dass der Anwendungsbereich relativ eng ist, und dass die Betriebszweckmäßigkeit nicht berücksichtigt wird. Die vorstehend beschriebene herkömmliche Technik, die als ein Beispiel einer Lernsteuerung unter Verwendung eines Sensors beschrieben wurde, das den Anwendungsfall bei einer Werkzeugmaschine darstellt, geht von der Verwendung eines Beschleunigungssensors aus. In dem Fall, in dem der Beschleunigungssensor am Roboter angebracht wird, wird andererseits das Problem hervorgerufen, dass der Bahnfehler und der Positionsfehler nicht an jeder Achse direkt aus den Sensordaten berechnet werden können, obwohl sie aus orthogonalen Koordinaten extrahiert werden können.
-
Ferner wird bei der herkömmlichen vorstehend beschriebenen Technik der normale Hochpassfilter verwendet, um die Bahn- und Vibrationsfehler über den Steuerungssensor zu erhalten. Bei einer Werkzeugmaschine ist das Frequenzband für die Regelung im Bereich von einigen 10 Hz bis einigen 100 Hz oder, in anderen Worten, die Regelung besitzt eine sehr hohe Performanz in diesem Frequenzband und deshalb besteht kein ernsthaftes Problem, selbst in dem Fall, in dem die Daten von mehr als 10 Hz nicht erlernt werden können, um die Versatzdaten zu entfernen. Somit ist der Versatz kein großes Problem. Bei einem industriellen Roboter beträgt das Frequenzband für die Regelung normalerweise einige Hz. Die Regelung wird in einem höheren Frequenzband durchgeführt und die Performanz neigt dazu, von einem Zwischenmodellfehler abhängig zu sein. Deshalb wird der betroffene Teil durch die Lernsteuerung korrigiert. In dem Fall, in dem ein Hochpassfilter von 1 Hz verwendet wird, um den Versatz der Daten von dem Beschleunigungssensor zu entfernen, rotiert die Phase des Bahnfehlers und des Vibrationsfehlers beispielsweise um bis zu 10 Hz und deshalb werden die Bahn- und Vibrationsfehlerdaten in dem zu entfernenden Frequenzband ebenfalls in ungeeigneter Weise verarbeitet, wodurch das Problem hervorgerufen wird, dass die Performanz der Lernsteuerung gestört wird.
-
Ein weiteres Problem liegt in der Schwierigkeit der Einstellung der Lernsteuereinheit. Obwohl verschiedene Einstellverfahren vorgeschlagen wurden, bleiben die Probleme hinsichtlich der Tatsache, dass die Anzahl der Steuereinheiten groß ist, die Stabilität reduziert ist und eine große Menge an Matrixberechnungen erforderlich ist, ungelöst. Unter diesen Umständen wird die Einstellung in den meisten Arbeitsgebieten durch Ausprobieren (Versuchs- und Irrtums-Methode) vorgenommen. Auch die Tatsache, dass sich das Robotersystem nach Maßgabe der Aufstellung des Roboters verändert, vergrößert die Schwierigkeit der Einstellung durch Ausprobieren. Derzeit ist ein Roboter, der eine Lernfunktion zur Vergrößerung der Geschwindigkeit durch automatisches Einstellen der Parameter aufweist, schlicht nicht verfügbar.
-
So zeigt das Dokument
US 2009/0222109 A1 einen iterativen Lernsteuerkreis zur Positionskontrolle eines Robotermechanismus, mit dem eine Abweichung von einer ermittelten Sollposition erfasst wird und mittels dem sich der zu steuernde Roboter seiner Sollposition annähert.
-
Ebenso wird im Dokument
US 2004/0150363 A1 ein Steuermechanismus offenbart, bei dem Positionsabweichungen eines Servomotors mittels gespeicherter Korrekturdaten ausgeglichen werden und das Resultat dieses Ausgleichs in einem Lernspeicher als Korrekturdatensatz gespeichert wird.
-
Aus dem Dokument
US 2006/0082340 A1 ist ein Roboter mit einer Lernsteuereinheit bekannt, die den Lernvorgang wiederholt, um einen neuen Lernkorrekturwert für die Geschwindigkeit unter Verwendung des bisherigen Lernkorrekturwerts zu berechnen, und den neuen Lernkorrekturwert speichert.
-
Ebenso ist aus dem Dokument
JP 2001-022423 A ein Roboter mit einer Lernsteuerbzw. Optimierungsroutine bekannt, bei der die Positionsabweichung optimiert wird, während die Geschwindigkeitsübersteuerung mehrere Male vergrößert wird.
-
Das Dokument
US 2006/0132078 A1 beschreibt eine Steuerung zur Steuerung einer Position eines angetriebenen Elements zwecks Sollwerteinhaltung, bei der eine Abweichung zur Sollposition mittels einer Lernsteuerung behoben werden kann.
-
Weiterhin zeigt das Dokument
JP 06-289918 A ein Lernsteuerverfahren zur Erhöhung der Wiederholungsgenauigkeit eines Roboters bei wiederholter Ausführung eines Arbeitsschrittes unter Berücksichtigung einer auf einen Sollwert bezogenen Geschwindigkeitsabweichung.
-
Abriss der Erfindung
-
Gemäß einem Aspekt der Erfindung ist ein Roboter vorgesehen, umfassend eine Robotermechanismuseinheit mit einem Sensor an einem Teil, dessen Position zu steuern ist und einer Steuereinheit zum Steuern des Betriebs der Robotermechanismuseinheit, wobei die Steuereinheit eine Normalsteuereinheit zum Steuern des Betriebs der Robotermechanismuseinheit und eine Lernsteuereinheit zum Bewirken, dass die Robotermechanismuseinheit nach Maßgabe eines Betriebsschrittprogramms arbeitet und zum Durchführen des Lernbetriebs umfasst, um den Lernkorrekturwert zu berechnen und um zu erreichen, dass die Position des Teils der Robotermechanismuseinheit, der zu steuern und durch den Sensor zu erfassen ist, sich einer Sollbahn oder einer Sollposition nähert, die der Normalsteuereinheit zugeordnet ist, und wobei die Lernsteuereinheit den Lernbetrieb derart ausführt, dass durch Berechnen der maximalen Geschwindigkeitsübersteuerung (englisch: speed override), die in dem Lernbetrieb festgelegt werden kann, und durch Vergrößern der Geschwindigkeitsübersteuerung (speed override) mehrmals bis zum Erreichen der maximalen Geschwindigkeitsübersteuerung der Lernkorrekturwert berechnet wird.
-
Gemäß einem weiteren Aspekt der Erfindung kann die Lernsteuereinheit die maximale Geschwindigkeitsübersteuerung auf Grundlage der maximalen Geschwindigkeit und der maximalen Beschleunigung berechnen, die für die Robotermechanismuseinheit zulässig ist.
-
Gemäß einem weiteren Aspekt der Erfindung kann die Lernsteuereinheit einen Hochpassfilter zum Berechnen der Bahnkurven- und Vibrationsfehler der Robotermechanismuseinheit auf Grundlage der von dem Sensor erfassten Daten umfassen.
-
Gemäß einem weiteren Aspekt der Erfindung berechnet die Lernsteuereinheit bei Bedarf die Position auf jeder Achse, die die Bahnpositions- und Vibrationsfehler enthalten durch eine inverse Kinematik (Bewegungsbeschreibung) der von dem Sensor erfassten Daten zu denjenigen auf den drei Basisachsen.
-
Gemäß einem weiteren Aspekt der Erfindung kann die Lernsteuereinheit die Position und die Neigung des Sensors berechnen, indem veranlasst wird, dass die Robotermechanismuseinheit eine vorbestimmte Operation ausführt.
-
Gemäß einem weiteren Aspekt der Erfindung umfasst die Lernsteuereinheit bedarfsweise ferner einen Speicher zum Behalten des Lernkorrekturwerts.
-
Gemäß einem weiteren Aspekt der Erfindung kann der Sensor ein visueller Sensor, ein Beschleunigungssensor, ein Gyrosensor, ein Inertialsensor und ein Verzerrungs- oder Verformungsanzeiger sein.
-
Gemäß einem weiteren Aspekt der Erfindung kann der Sensor bedarfsweise ferner ein Befestigungsmittel oder vorzugsweise einen Magneten aufweisen, der entfernbar an der Robotermechanismuseinheit als Befestigungsmittel angebracht ist.
-
Gemäß dieser Erfindung führt die Lernsteuereinheit den Lernbetrieb durch, indem sie die maximale Geschwindigkeitsübersteuerung (speed override) berechnet, die in dem Lernbetrieb festgelegt werden kann und während die Geschwindigkeitsübersteuerung mehrere Male erhöht wird bevor die maximale Geschwindigkeitsübersteuerung erreicht wird, den Lernkorrekturwert berechnet, wodurch es möglich wird, die Geschwindigkeit automatisch in dem Lernbetrieb zu steigern.
-
Kurze Beschreibung der Zeichnungen
-
Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden besser verständlich, wenn man die folgende detaillierte Beschreibung in Zusammenhang mit den beigefügten Zeichnungen liest, in welchen:
-
1 ein Diagramm ist, das die Konfiguration des herkömmlichen Roboters zeigt;
-
2 ein Diagramm ist, das die Konfiguration der Robotermechanismuseinheit und des Sensors des Roboters gemäß einem ersten Ausführungsbeispiel der Erfindung zeigt;
-
3 ein schematisches Diagramm ist, das die Konfiguration der Robotermechanismuseinheit des Roboters gemäß dem ersten Ausführungsbeispiel der Erfindung zeigt;
-
4 ein Diagramm ist, das die Position des Sensors in dem globalen Koordinatensystem zeigt;
-
5 ein Diagramm ist, das die Konfiguration des Roboters gemäß dem ersten Ausführungsbeispiel der Erfindung zeigt;
-
6 ein Flussdiagramm ist zu Erklärung der Schritte des Vergrößerns der Geschwindigkeit des Betriebs der Robotermechanismuseinheit, welches den Roboter gemäß der vorliegenden Erfindung bildet; und
-
7 ein Diagramm ist, das ein Beispiel des visuellen Sensors zeigt.
-
Detaillierte Beschreibung der bevorzugten Ausführungsbeispiele
-
Der Roboter gemäß der Erfindung wird nachfolgend mit Bezug auf die Zeichnungen beschrieben. Allerdings ist festzuhalten, dass der technische Rahmen dieser Erfindung nicht auf die nachfolgend beschriebenen Ausführungsbeispiele beschränkt ist und die Erfindung umfasst, die in den beigefügten Ansprüchen und Äquivalenten davon enthalten ist.
-
Gemäß dieser Erfindung wird die Geschwindigkeit eines Arbeitsschritts an einem Bearbeitungspunkt vergrößert. Zunächst ist die Konfiguration der Robotermechanismuseinheit des Roboters gemäß der Erfindung in 2 gezeigt. 2A zeigt eine generelle Konfiguration der Robotermechanismuseinheit und 2B zeigt eine vergrößerte Ansicht einer Pistole mit einem daran angebrachten Sensor. Die Robotermechanismuseinheit ist ein wohlbekannter Robotermanipulator (nachfolgend einfach bezeichnet als „die Robotermechanismuseinheit”), und kann jede beliebige Konfiguration haben, solange diese die Position und Stellung einnehmen kann, in der die Pistole 20 den Arbeitsschritt ausführen kann. Als ein Sensor zum Erfassen der Position der Robotermechanismuseinheit 1 und des Bahn- und/oder Vibrationsfehlers, der zum Zeitpunkt einer Verzögerung der Robotermechanismuseinheit 1 auftreten kann, um dessen Betrieb zu stoppen, ist ein Beschleunigungssensor 10 am vorderen Endabschnitt der Pistole 20 angebracht, der ein Teil bildet, an dem die Position der Robotermechanismuseinheit gesteuert wird. Ein Drei-Achs-Geschwindigkeitssensor kann als Beschleunigungssensor 10 verwendet werden. Der Beschleunigungssensor 10 weist einen Magneten auf und ist austauschbar. Das Gehäuse des Beschleunigungssensors 10 kann als Magnet ausgebildet werden. Obwohl der Beschleunigungssensor 10 in dem Ausführungsbeispiel gemäß der vorstehend beschriebenen Erfindung eingesetzt wird, kann ein visueller Sensor anstelle des Beschleunigungssensors gleichsam verwendet werden. Ein Beispiel, in dem der visuelle Sensor verwendet wird, ist in 7 gezeigt. Der visuelle Sensor 70 weist zwei Kameras auf, d. h. eine erste Kamera 72 und eine zweite Kamera 73 und ist an einer Roboterhand 71 angebracht. Der visuelle Sensor misst die Position eines virtuellen TCP 76 (tool center point, Werkzeugmittelpunkt) auf einer Solllinie 74 unter Verwendung der Kameras 72, 73 und berechnet die Bahn- und die Vibrationsfehler Δx, Δy, Δz entlang jeder der X-, Y-, Z-Achsen, wobei die Vorwärtsrichtung 75 die positive Richtung entlang der X-Achse ist.
-
Nach Anbringen des Beschleunigungssensors 10 wird die Robotermechanismuseinheit betrieben, wie zur Kalibrierung vorgeschrieben, um die Position und die Neigung des Sensors 10 zu berechnen. Die Kalibrierung wird gemäß den nachfolgend beschriebenen Schritten durchgeführt.
-
Zunächst wird die Neigung des Beschleunigungssensors spezifiziert. Wie in
3 gezeigt wird der Betrieb entlang der X-Achse von einem gegebenen Punkt P
0 in dem globalen Koordinatensystem durchgeführt und dadurch, dass durch einen gegebenen Punkt P
1 hindurchgefahren wird, wobei die entsprechenden Beschleunigungsdaten erfasst werden. Die Beschleunigungsdaten im stationären Zustand am Punkt P
0 werden als a
0 bezeichnet und die Beschleunigungsdaten im Betrieb am Punkt P
1 als a
1. Dann kann die Beschleunigung a
xy, die die Gravitationsbeschleunigung (stationäre Beschleunigung) übersteigt, ausgedrückt werden als a
xγ = a
1 – a
0. Die Standardisierung wird wie folgt definiert:
-
Auf ähnliche Weise wird der Betrieb entlang der Y-Achse von einem Linienpunkt P
0 und durch Verlagern durch einen gegebenen Punkt P
2 durchgeführt, wobei die entsprechenden Beschleunigungsdaten a
2 erfasst werden. In dem Prozess kann die Beschleunigung a
yγ, die die Gravitationsbeschleunigung übersteigt (stationäre Beschleunigung) ausgedrückt werden als a
yγ = a
2 – a
0. Die Standardisierung ist wie folgt definiert:
-
Der orthogonale Vektor zu diesen beiden Datensätzen ist gegeben als azγ = ax·ay und kann wie folgt ausgedrückt werden.
-
-
Als ein Ergebnis wird die Matrix Rt zum Transformieren der Stellung in das globale Koordinatensystem aus dem Werkzeugkoordinatensystem wie folgt ausgedrückt. Rt = ⌊axayaz⌋
-
Dann werden die Teile J5 und J6 betrieben, um die Position des Beschleunigungssensors zu spezifizieren. Zunächst, wie in
3 gezeigt, wird das Teil J5 um Δθ
1 gedreht. Die in dem Beschleunigungssensorkoordinatensystem gemessenen entsprechenden Beschleunigungsdaten werden mit der Matrix R
t multipliziert. Nimmt man an, dass die Beschleunigungsdaten, die in das globale Koordinatensystem transformiert wurden, gegeben sind als
(ϕ ..1x, ϕ ..1y, ϕ ..1z) dann ist die Sensorverlagerung Δϕ
1 ausgedrückt als
-
In diesem Fall ist die Versatzgröße Δx in X-Richtung des globalen Koordinatensystems ausgedrückt als Δx = Δϕ1/Δθ1.
-
Wie in 4 gezeigt wird das Teil J6 gedreht um Δθ2. Dann werden die entsprechenden Beschleunigungsdaten, die in den Beschleunigungssensorkoordinatensystem gemessen werden, mit der Matrix Rt multipliziert und die Beschleunigungsdaten, die in das globale Koordinatensystem transformiert wurden, sind gegeben als (ϕ ..2x, ϕ ..2y, ϕ ..2z)
-
Dann wird die Sensorverlagerung Δϕ
2 ausgedrückt wie folgt:
-
Die Beziehung zeigt, dass γ = Δϕ2/θ2 und die Versatzgröße Δy in Y-Richtung des globalen Koordinatensystems wird berechnet als Δy = γcosθ2 und die Versatzgröße Δz in Z-Richtung des globalen Koordinatensystems als Δz = γsinθ2.
-
Als nächstes wird die Lernsteuereinheit gestaltet. Zu Beginn wird die Frequenzantwort auf das Eingangssignal des Lernkorrekturwerts für jede Achse hinsichtlich der geschätzten Position auf Grundlage des Beschleunigungssensors gemessen. Auch wird der Block der Lernsteuerung wie in 5 gezeigt vorgesehen.
-
Ein schematisches Diagramm des Roboters gemäß einem Ausführungsbeispiel der Erfindung ist in 5 gezeigt. Der Roboter 100 ist aus einer Robotermechanismuseinheit 1 und einer Steuereinheit 2 zum Steuern der Robotermechanismuseinheit 1 aufgebaut. Die Steuereinheit 2 umfasst eine Lernsteuereinheit 3 zum Ausführen der Lernsteuerung des Roboters und eine normale Steuereinheit 4 zum direkten Antreiben der Robotermechanismuseinheit 1.
-
Die Lernsteuereinheit 3 betreibt die Robotermechanismuseinheit 1 gemäß einem Arbeitsschrittprogramm und führt den Lernprozess durch, um den Lernkorrekturwert zu berechnen, so dass die Positionen des Teils der Robotermechanismuseinheit 1, der zu steuern und von dem Beschleunigungssensor 10 zu erfassen ist, erhalten werden, um die der normalen Steuereinheit 4 zugeordneten Sollposition Yd(k) annährend zu erreichen. Die Konfiguration bei anderen Teilen als die Robotersteuereinheit 3 ist ähnlich zu dem des herkömmlichen Roboters, wie in 1 gezeigt, und wird daher nicht näher beschrieben werden. Die Lernsteuereinheit 3 umfasst einen ersten Speicher 31, einen Positionstransformator 35, einen Hochpassfilter 36, einen Inverstransformator IK 37, einen Vorwärtstransformator FK 38, eine Lernsteuereinheit L(q) 32, einen Tiefpassfilter Q(q) 33, einen zweiten Speicher 34, einen dritten Speicher 35 und einen vierten Speicher 39. Die Lernsteuereinheit wird gestaltet, indem eine lineare Matrixungleichung aus dem Ergebnis der Frequenzantwort gelöst wird.
-
Die lineare Matrixungleichung stellt das Problem der Berechnung des Wertes x dar, der unter der folgenden Einschränkung c
Tx(c ∈ R
m) minimiert.
wobei F
i eine positive semidefinierte Matrix ist.
-
Nimmt man nun an, dass die Lernsteuereinheit ausgedrückt wird als
wobei N
0 ∈ Z ist und dass die Beziehung vorgibt, dass
-
Dann ist die Bedingung zum Garantieren der Stabilität und einer monotonen Abnahme der Lernsteuereinheit ausgedrückt, wie nachfolgend am Frequenzbereich gezeigt. ||Q(z)(I – L(z)P(z))||∞ = γ < 1
-
In dieser Gleichung bezeichnet Q(z) einen Tiefpassfilter mit dem Lernband an der Grenzfrequenz, L(z) den Lernsteuerungsfilter und P(z) die Transferfunktion aus dem Eingang des Lernkorrekturwerts zu dem zu steuernden Objekt. Je kleiner der Wert γ ist, desto größer ist die Performanz der Lernsteuereinheit. Das Optimierungsprogramm der Lernsteuereinheit besteht darin, wie die Berechnung des Lernfilters L(z), dem der Minimalwert γ in einem gegebenen Lernsteuerungsfrequenzband zugeordnet ist, ausgeführt wird. Diese Gleichung kann umgeformt werden wie folgt:
wobei angenommen wird, dass die Beziehung
vorgibt, dass die Gleichung ausgedrückt als
erhalten wird.
-
In dieser Gleichung kann K
k ausgedrückt werden durch die Linearität von α
k,j und V
j, wobei V
j in derselben Dimension vorliegt wie L
k und für andere Werte als das Element (j, i) immer null ist. Beispielsweise gilt N
y = 2, N
u = 2.
Ferner
wobei
-
-
Als ein Ergebnis wird diese Gleichung umgeformt als
-
-
Berücksichtigt man die ersten und zweiten Terme dieser Gleichung als
und ist der dritte Term F
0, und ist die Gleichung definiert als
-
Dann wird die Gleichung ausgedrückt als
-
Dies ist äquivalent zu der Beschränkung der linearen Matrixungleichung (1) und das Minimierungsproblem führt zu dem Problem, wie C
Tx zu minimieren ist, d. h. γ
2. Dies kann auch als Optimierungsproblem der Lernsteuereinheit interpretiert werden. Somit ist die hinreichende Bedingung für die Stabilität und die monotone Verringerung gegeben als
-
Durch experimentelles Messen von P(ejΩi) und Bestimmen des Lernbandfilters Q(z) kann der Lernfilter L(z) automatisch bestimmt werden.
-
Berücksichtigt man ferner die Robustheit der Lernsteuereinheit, so besteht das Merkmal des Roboters darin, dass dessen System sich mit der Position stark verändert.
-
Nimmt man an in dem Fall, in dem eine gegebene Position bestimmt wird als Referenzposition, dann ist P
n(z) das Lernsystem für die Referenzposition. Dann wird eine willkürliche Position P
m(z) ausgedrückt als P
m(z) = P
n(z) + ΔP
m(z), wobei P
m(z) ein Änderungswert des Lernsystems für die Referenzposition ist. In diesem Fall wird die Beschränkung hinsichtlich des Lernbandfilters Q(z) verfügbar, ausgedrückt als
-
Berücksichtigt man, dass die Beziehung
gilt, dann ist die hinreichende Bedingung für die Stabilität und monotone Abnahme dann erfüllt, wenn die folgende Bedingung für einen beliebigen Integerwert m erfüllt ist.
CTxm ≤ 1
-
Durch experimentelles Messen von P(ejΩi) für eine Anzahl m von Positionen, kann die Lernsteuereinheit automatisch im vorangehenden Fall bestimmt werden.
-
Als nächstes werden die Datenverarbeitungsschritte für die Lernsteuereinheit erklärt. Wie in 5 gezeigt, wird die Rückkopplung von den drei Schleifen der Positionssteuerung, der Geschwindigkeitssteuerung und der Stromsteuerung aufgestellt und die Lernsteuerung wird als Schleife außerhalb der Positionssteuerschleife des Rückkopplungsbetriebs ausgebildet. Der Teil, der durch die durchgezogene Linie gezeigt ist, bildet eine wirksame Schleife während des Lernbetriebs und nach Beendigung wird die Schleife, die mit unterbrochener Linie gezeigt ist, wirksam. Buchstabe aj bezeichnet die Daten, die vom Beschleunigungssensor erhalten wurden und der Positionstransformator 35 transformiert die Beschleunigungsdaten aj in Positionsdaten. Während des Lernprozesses werden die Daten hinsichtlich der Vibration, die während eines stationären Betriebs des Roboters auftreten, welcher von dem Beschleunigungssensor 10 erfasst wurde, im ersten Speicher 31 behalten. Der Lernkorrekturwert uj+1(k) wird von dem zweiten Speicher 34 ausgegeben.
-
Nach Beendigung des Betriebs schätzt der Positionstransformator 35 den Bahn-/Vibrationsfehler der orthogonalen Koordinate und unter Verwendung des Hochpassfilters 36, der einen Null-Phasenhochpassfilter darstellt, wird der Bahn-/Vibrationsfehler Δr für eine Abweichung von dem Versatz erhalten. Dieser Bahn-/Vibrationsfehler wird den Positionsdaten r des Sensors zugeführt, die unter Verwendung von FK von Daten hinsichtlich der Motorpositionsrückkopplung (FB) geschätzt wurden, um die Sensorposition in dem orthogonalen Koordinatensystem des Beschleunigungssensors 10 zu schätzen, umfassend die Dynamik des Arms.
-
Durch inverse Transformation der Sensorposition, die vom Sensor hinsichtlich der drei Basisachsen geschätzt wurde, wird die Position an jeder Achse samt der Armdynamik berechnet. Aus dieser Position auf jeder Achse umfassend die Armdynamik wird die Position auf jeder Achse, die nicht die Armdynamik umfasst, d. h. die Motorposition dadurch subtrahiert, um den Sollkorrekturwert auf jeder Achse zu berechnen. In der nachfolgend gezeigten Gleichung bezeichnet Ψj den Sollkorrekturwert auf jeder Achse für den j-ten Versuch, IK die inverse Transformation und θmj die Motorposition auf jeder Achse für den j-ten Versuch. ψj = IK–1(r + Δr) – θmj
-
Durch Eingeben dieses Sollkorrekturwerts für jede Achse an die Lernsteuereinheit wird der Korrekturwert uj+1(k) für den nächsten Versuch berechnet. Vermittels der Lernsteuereinheit L(q) 32, wird der Lernkorrekturwert uj für den vorangehenden Versuch aus dem dritten Speicher 35 hinzuaddiert und der Korrekturwert uj+1 für den nächsten Versuch wird durch den Tiefpassfilter Q(q) 33 berechnet.
-
Als nächstes werden die Schritte der Vergrößerung der Betriebsgeschwindigkeit der Robotermechanismuseinheit in den Lernsteuerungsbetrieb gemäß der Erfindung hinsichtlich 6 erklärt. 6 ist ein Flussdiagramm, das die Schritte der Vergrößerung der Betriebsgeschwindigkeit der Robotermechanismuseinheit zeigt. Um die Betriebsgeschwindigkeit der Robotermechanismuseinheit zu steigern, berechnet die Lernsteuereinheit die maximale Geschwindigkeitsübersteuerung (speed override), die während des Lernvorgangs festgelegt werden kann. Während des Lernbetriebs und während die Geschwindigkeitsübersteuerung mehrere Male vergrößert wird, bevor die maximale Geschwindigkeitsübersteuerung erreicht wird, wird veranlasst, dass der Lernbetrieb den Lernkorrekturwert berechnet. „Lernbetrieb” bedeutet, dass die Robotermechanismuseinheit gemäß einem Arbeitsschrittprogramm betrieben wird und einen Lernvorgang ausführt, um den Lernkorrekturwert zu berechnen, so dass die Position eines Teils der Robotermechanismuseinheit, der zu steuern ist, die von dem Sensor erfasst wird, eine Sollbahn und eine Sollposition näherungsweise annimmt, die der Normalsteuereinheit zugeordnet sind bzw. von dieser vorgegeben werden.
-
Zunächst wird im Schritt S101 die Maximalgeschwindigkeitsübersteuerung, die während des Lernvorgangs festgelegt werden kann, durch die Lernsteuereinheit berechnet. Die Maximalgeschwindigkeitsübersteuerung wird auf Grundlage der Maximalgeschwindigkeit und der Maximalbeschleunigung berechnet, die für die Robotermechanismuseinheit zulässig ist. Zunächst wird die Robotermechanismuseinheit einmal betrieben und die Maximalgeschwindigkeitsübersteuerung, die für jeden Axialmotor hinsichtlich der Maximalbeschleunigung und der Maximalgeschwindigkeit erreicht werden kann, wird aus den Daten bezüglich des ersten Versuchs berechnet.
-
Wie im ersten Schritt wird die Maximalgeschwindigkeitsübersteuerung, die für jeden Axialmotor erlernt werden kann, aus der Perspektive der maximalen Beschleunigung berechnet. Die Gleichung der Bewegung des Roboters wird wie folgt definiert: τ = M(Θ)Θ .. + V(Θ, Θ .) + G(Θ) wobei Θ die Position und Geschwindigkeit des Arms ist.
-
In dieser Gleichung ist M(Θ) die Matrix des Trägheitsausdrucks, V(Θ, Θ .) der Vektor des Geschwindigkeitsausdrucks und G(Θ) der Vektor des Gravitationsausdrucks.
-
Ein großer Drehmomentbetrag wird üblicherweise zur Beschleunigung oder Verzögerung verwendet. Nimmt man an, dass der Drehmomentzuwachs aufgrund der Vergrößerung der Geschwindigkeitsübersteuerung im Wesentlichen resultiert aus M(Θ)Θ .., so ist der Näherungswert der maximalen Geschwindigkeitsübersteuerung ovr_max1,i berechnet aus dem Blickpunkt der Beschleunigung und Verzögerung.
-
Nimmt man an, dass das maximale Drehmoment für den ersten Versuch τmax,i ist, so ist die maximale Drehmomenttoleranz des Motors τp,i und das Drehmoment M(Θ)Θ .. das für die Beschleunigung und Verzögerung verwendet wird, ist τa,i. Dann wird die nachfolgende Gleichung erhalten τa,i = τmax,i – (V(Θ, Θ .) + G(Θ))i.
-
In dem Vorgang wird unter Berücksichtigung, dass over_max
1,i, proportional zum Quadrat von τ
a,1 ist, gilt die Gleichung
wobei der Index i die i-te Achse angibt.
-
In der vorstehend beschriebenen Weise wird die maximale Übersteuerung ovr_max1,i erhalten hinsichtlich der maximalen Beschleunigung.
-
Auf ähnliche Weise wird die maximale Geschwindigkeitsübersteuerung ovr_max2,i hinsichtlich der maximalen Geschwindigkeit berechnet. Nimmt man an, dass die maximale Geschwindigkeit für den ersten Versuch ωv,i ist und die maximale Geschwindigkeitstoleranz des Motors ωp,i, ist, so wird die nachfolgend gezeigte Gleichung erhalten.
-
-
Wie vorstehend beschrieben wird die maximale Geschwindigkeitsübersteuerung ovr_max
2,i hinsichtlich der maximalen Geschwindigkeit erhalten. Zusätzlich zu den vorstehend beschriebenen beiden Bedingungen bildet die maximale Geschwindigkeitsübersteuerung unter den Achsen die maximale Geschwindigkeitsübersteuerung, die für die Lernsteuerung nutzbar ist. Somit werden diese Bedingungen gemeinsam ausgedrückt als ovr_max. Dann wird die folgende Formel erhalten:
-
Nimmt man an, dass der Betrag der Geschwindigkeitsübersteuerung, der in einem Schritt angehoben wird, Δ beträgt, so ist die Anzahl n der Schritte unter Verwendung von Δ wie folgt berechnet: n = ceiling( ovr_max – ovr_cur / Δ)
-
Der Lernbetrieb wird ausgeführt durch Vergrößern der Geschwindigkeitsübersteuerung (speed override) auf die maximale Geschwindigkeitsübersteuerung beispielsweise in n Schritten und der Lernkorrekturwert wird somit berechnet. Insbesondere im Schritt S102 wiederholt die Lernsteuereinheit den Lernvorgang einige Male durch Vergrößern der Geschwindigkeitsübersteuerung um einen vorbestimmten Wert und dann, wenn die Vibration konvergiert hat, berechnet sie den Lernkorrekturwert in Schritt S103.
-
Als nächstes bestimmt in Schritt S104 die Lernsteuereinheit, ob die Geschwindigkeitsübersteuerung über die maximale Geschwindigkeitsübersteuerung hinaus vergrößert wurde oder nicht. In dem Fall, in dem die Geschwindigkeitsübersteuerung nicht größer als die maximale Geschwindigkeitsübersteuerung ist, führt die Lernsteuereinheit den Lernbetrieb durch Vergrößern der Geschwindigkeitsübersteuerung um eine vorbestimmten Betrag in Schritt S102 aus. In dem Fall, in dem die Geschwindigkeitsübersteuerung die maximale Geschwindigkeitsübersteuerung überschritten hat, behält andererseits die Lernsteuereinheit den Lernkorrekturwert in einem F-ROM oder in einer Speicherkarte (MC) in Schritt S105.
-
Auf diese Weise werden der Vorgang zum Vergrößern der Geschwindigkeitsübersteuerung und der Vorgang zum Ausführen des Lernprozesses wechselweise wiederholt, bis die Geschwindigkeitsübersteuerung die maximale Geschwindigkeitsübersteuerung erreicht, wodurch die Betriebsgeschwindigkeit auf einem hohen Niveau vergrößert wird. Während des aktuellen Betriebs wird der Lernkorrekturwert durch zugreifen auf den F-ROM oder die Speicherkarte (MC) reproduziert, je nach Fall.
-
In den Ausführungsbeispielen dieser Erfindung, wie vorstehend beschrieben, wird der Beschleunigungssensor als Sensor verwendet, der an der Robotermechanismuseinheit angebracht ist. Nichtsdestotrotz kann auch ein visueller Sensor, ein Gyrosensor, eine Inertialsensor (Drehkreissensor) oder eine Verzerrungsanzeige alternativ verwendet werden.