-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Diese Erfindung betrifft ein Robotersystem, das eine lernende Steuerungsfunktion und ein lernendes Steuerungsverfahren aufweist.
-
Beschreibung des Standes der Technik
-
An einem Produktionsstandort, an dem ein Roboter verwendet wird, gibt es Fälle, in denen zur Verbesserung der Produktionseffizienz gefordert wird, dass ein Betrieb des Roboters beschleunigt wird, um eine Taktzeit zu verkürzen. Wenn der Betrieb des Roboters jedoch auf ein bestimmtes Maß oder mehr beschleunigt wird, können Schwingungen an einem Handspitzenabschnitt an einem Spitzenende des Roboters während eines Betriebs aufgrund einer Belastung eines Reduziergetriebes, eines Steifigkeitsmangels an einem Armabschnitt des Roboters oder dergleichen generiert werden.
-
Als Verfahren zum Lösen eines solchen Problems wurde bisher ausgeführt, dass ein Beschleunigungssensor an dem Handspitzenabschnitt des Roboters angebracht wird, und eine lernende Steuerung wiederholt ausgeführt wird, während der Beschleunigungssensor Schwingungen des Roboters während eines Betriebs misst, wodurch solche Schwingungen reduziert werden (siehe z. B. ungeprüfte Japanische Patentveröffentlichung Nr. 2011-167817). In der oben beschriebenen lernenden Steuerung wird bei einem Betrieb des Roboters basierend auf einem vorgegebenen Betriebsprogramm ein Schwingungskorrekturbetrag zum Korrigieren der Schwingungen basierend auf Daten von Schwingungen berechnet, die von dem Beschleunigungssensor erfasst werden. Der berechnete Schwingungskorrekturbetrag wird in einer Servosteuerung durch das gleiche Betriebsprogramm bei einem nächsten Mal verwendet.
-
In dem Roboter ändert sich die Ausrichtung des Roboters in Abhängigkeit von dem Verwendungsbereich des Roboters, d. h. dem Bewegungsbereich eines an dem Handspitzenabschnitt angebrachten Endeffektors. Eigenschaften von Schwingungen, die an dem Roboter generiert werden, unterscheiden sich stark zwischen den Verwendungsbereichen, in denen die Ausrichtungen des Roboters sehr unterschiedlich sind.
-
Wenn die lernende Steuerung auf den Roboter angewendet wird, ist daher eine Fähigkeit, Schwingungen durch die lernende Steuerung zu dem Zeitpunkt zu reduzieren, an dem der Verwendungsbereich des Roboters geändert wird, d. h. die Robustheit, wichtig.
-
In Bezug darauf wurde vorgeschlagen, dass ein Frequenzgang in Bezug auf jede der verschiedenen Ausrichtungen des Roboters gemessen wird, und ein lernendes Steuerungsteil konstruiert wird, das die Robustheit in Bezug auf alle Ausrichtungen sicherstellt (siehe z. B. ungeprüfte
Japanische Patentveröffentlichung Nr. 2011-167817 ).
-
Weiterhin kann sich der Verwendungsbereich des Roboters je nach Art des Endeffektors, wie z. B. einer Haltehand oder einer Schweißpistole, ändern. In Bezug darauf wurde ein Verfahren vorgeschlagen, bei dem in der lernenden Steuerung Parameter eines neuronalen Netzes gemäß einer auf den Roboter aufgebrachten Last geändert werden, um die Schwingungen genau abzuschätzen und die Robustheit im Verhältnis zu einer Änderung der Last basierend auf den Schwingungen sicherzustellen (z. B. ungeprüfte
Japanische Patentveröffentlichung Nr. H10-111701 ).
-
Kurzdarstellung der Erfindung
-
Der Roboter, der ein Ziel der lernenden Steuerung ist, kann keinen eigentlichen Betrieb starten, wenn die lernende Steuerung nicht beendet wird. Daher ist nicht nur die oben beschriebene Robustheit, sondern auch das Erfassen eines optimalen Schwingungskorrekturbetrags mit der geringsten Anzahl von Malen der lernenden Steuerung wichtig. Wenn jedoch das einzelne lernende Steuerungsteil, das die oben beschriebene Robustheit sicherstellt, in Bezug auf einen weiten Verwendungsbereich des Roboters ausgelegt werden soll, in dem sich die Ausrichtung des Roboters oder des Endeffektors in großem Umfang ändern kann, gab es dahingehend ein Problem, dass sich eine erforderliche Anzahl von Malen der lernenden Steuerung erhöht, um einen optimalen Schwingungsbetrag zu erhalten.
-
Dementsprechend wurde gewünscht, dass eine Erhöhung einer Anzahl von Malen der lernenden Steuerung unterdrückt werden kann, während ein schwingungsreduzierender Effekt durch die lernende Steuerung in einem angenommenen Verwendungsbereich des Roboters aufrechterhalten wird.
-
Gemäß einem Aspekt der vorliegenden Offenbarung ist ein Robotersystem mit einem Roboter, einer Robotersteuerung, die eine Betriebssteuerungseinheit zum Steuern eines Betriebs des Roboters umfasst, und einem Sensor, der eine an einem Steuerungszielabschnitt des Roboters generierte Schwingung erkennt, vorgesehen. Die Robotersteuerung umfasst eine lernende Steuerungseinheit, die eine lernende Steuerung ausführt, wobei ein Schwingungskorrekturbetrag zum Korrigieren der Schwingung berechnet wird, die generiert wird, wenn die Betriebssteuerungseinheit den Roboter durch einen Betriebsbefehl zum Betrieb veranlasst, und der Schwingungskorrekturbetrag ein nächstes Mal in dem Betriebsbefehl verwendet wird.
-
Weiterhin kann die lernende Steuerungseinheit gemäß dem Aspekt der vorliegenden Offenbarung eine Vielzahl von lernenden Steuerungsteilen zum Berechnen des Schwingungskorrekturbetrags umfassen, wobei die Vielzahl von lernenden Steuerungsteilen jeweils einer Vielzahl von Verwendungsbereichen zugeordnet wird, die in dem Roboter angenommen werden, und eine Auswahleinheit umfassen, die eines aus der Vielzahl von lernenden Steuerungsteilen basierend auf Betriebsinformation des Roboters auswählt, wenn der Roboter von einem Betriebsprogramm betrieben werden soll, das ein Ziel der lernenden Steuerung ist.
-
Die Betriebsinformation kann Information über eine Position, zu der ein Spitzenendabschnitt des Roboters bewegt wird, und Information über eine Last, die von einem Endeffektor auf den Spitzenendabschnitt aufgebracht wird, umfassen, wobei jeder der Verwendungsbereiche ein Bereich sein kann, der sowohl durch den Bereich der Position, in die der Spitzenendabschnitt des Roboters bewegt wird, als auch durch den Bereich der Last gemäß dem Endeffektor definiert wird.
-
Gemäß einem weiteren Aspekt der vorliegenden Offenbarung ist ein lernendes Steuerungsverfahren eines Roboters zum Ausführen einer lernenden Steuerung vorgesehen, in welcher ein Schwingungskorrekturbetrag zum Korrigieren einer Schwingung berechnet wird, die an einem Steuerungszielabschnitt eines Roboters generiert wird, wenn der Roboter basierend auf einem Betriebsbefehl zum Betrieb veranlasst wird, und der Schwingungskorrekturbetrag ein nächstes Mal in dem Betriebsbefehl verwendet wird.
-
Weiterhin kann das lernende Steuerungsverfahren einen Schritt des Erfassens von Betriebsinformation des Roboters aus einem Betriebsprogramm, das ein Ziel der lernenden Steuerung ist, durch einen Computer mit einer Vielzahl von lernenden Steuerungsteilen zum Berechnen des Schwingungskorrekturbetrags, wobei die Vielzahl von lernenden Steuerungsteilen jeweils einer Vielzahl von Verwendungsbereichen zugeordnet wird, die in dem Roboter angenommen werden, einen Schritt des Auswählens eines Steuerungsteils aus der Vielzahl von lernenden Steuerungsteilen durch den Computer basierend auf der Betriebsinformation, und einen Schritt des Ausführens der lernenden Steuerung durch ein ausgewähltes lernendes Steuerungsteil des Computers umfassen.
-
Bei dem lernenden Steuerungsverfahren gemäß einem weiteren, ebenfalls oben beschriebenen Aspekt kann die Betriebsinformation Information über eine Position, zu der ein Spitzenendabschnitt des Roboters bewegt wird, und Information über eine Last umfassen, die von einem Endeffektor auf den Spitzenendabschnitt aufgebracht wird, wobei jeder der Anwendungsbereiche ein Bereich sein kann, der sowohl durch den Bereich der Position, in die der Spitzenendabschnitt des Roboters bewegt wird, als auch durch den Bereich der Last gemäß dem Endeffektor definiert wird.
-
Solche Aufgaben, Merkmale und Vorteile gemäß einem Aspekt der vorliegenden Offenbarung und andere Aufgaben, Merkmale und Vorteile werden durch die ausführliche Beschreibung von typischen Ausführungsformen der vorliegenden Offenbarung, die in den beigefügten Zeichnungen veranschaulicht sind, noch deutlicher.
-
Figurenliste
-
- 1 ist ein Blockdiagramm zum Veranschaulichen eines Robotersystems gemäß einer Ausführungsform.
- 2 ist ein Diagramm, das schematisch ein Konfigurationsbeispiel einer lernenden Steuerungseinheit veranschaulicht.
- 3 ist ein Diagramm, das ein Beispiel für einen angenommenen Verwendungsbereich eines Roboters veranschaulicht.
- 4 ist ein Diagramm, das ein weiteres Beispiel in Bezug auf den angenommenen Verwendungsbereich veranschaulicht, wie in 3 veranschaulicht.
- 5 ist ein Diagramm, das schematisch ein weiteres Konfigurationsbeispiel der lernenden Steuerungseinheit veranschaulicht.
- 6 ist ein Ablaufdiagramm, das ein Beispiel für einen Prozessablauf veranschaulicht, der von der lernenden Steuerungseinheit ausgeführt wird.
- 7 ist ein Diagramm, das ein Beispiel eines Roboters veranschaulicht, der gemäß einer Ausführungsform in dem Robotersystem eingesetzt werden kann.
- 8 ist ein Diagramm zum Veranschaulichen von bestandteilbildenden Elementen und Koordinatensystemen des Roboters, wie in 7 veranschaulicht.
-
Ausführliche Beschreibung
-
Ausführungsformen der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben. In den Zeichnungen sind ähnliche bestandteilbildende Teile oder Funktionsteile zwecks Bezugnahme mit den gleichen Bezugszeichen versehen. Diese Figuren sind zum besseren Verständnis im Maßstab passend verändert. Weiterhin sind die in den Zeichnungen veranschaulichten Ausführungsformen Beispiele zum Ausführen dieser Erfindung, und diese Erfindung ist nicht auf die in den Zeichnungen veranschaulichten Ausführungsformen zu beschränken.
-
1 ist ein Blockdiagramm zum Veranschaulichen eines Robotersystems 1 gemäß einer Ausführungsform. 2 ist ein Diagramm, das schematisch ein Konfigurationsbeispiel einer lernenden Steuerungseinheit 14 veranschaulicht, wie in 1 veranschaulicht.
-
Wie in 1 veranschaulicht, umfasst das Robotersystem 1 einen Roboter 11 und eine Robotersteuerungsvorrichtung 10, die eine Betriebssteuerungseinheit 13 zum Steuern eines Betriebs des Roboters 11 umfasst. Das Robotersystem 1 umfasst einen Sensor 12, der an einem Steuerungszielabschnitt des Roboters 11 generierte Schwingungen erkennt.
-
Der Roboter 11 kann ein Vertikal-Knickarmroboter, ein Horizontal-Knickarmroboter, ein Parallelgelenkroboter oder dergleichen sein. Weiterhin kann der oben beschriebene Steuerungszielabschnitt des Roboters 11 ein Handspitzenabschnitt an einem Spitzenende eines Roboterarmabschnitts (nachfolgend gelegentlich als Spitzenendabschnitt bezeichnet) sein, an dem ein Endeffektor angebracht werden kann. Der Endeffektor ist eine Haltehand, ein Bearbeitungswerkzeug, eine Schweißpistole, ein Laserbestrahlungsgerät oder dergleichen.
-
Die Robotersteuerungsvorrichtung 10 umfasst weiterhin die lernende Steuerungseinheit 14, die eine lernende Steuerung ausführt, wobei ein Schwingungskorrekturbetrag zum Korrigieren der Schwingung berechnet wird, die an dem Steuerungszielabschnitt des Roboters 11 generiert wird, wenn die Betriebssteuerungseinheit 13 den Roboter 11 durch einen Betriebsbefehl zum Betrieb veranlasst, und der Schwingungskorrekturbetrag ein nächstes Mal in dem gleichen Betriebsbefehl verwendet wird.
-
Weiterhin umfasst die Robotersteuerungsvorrichtung 10 eine Betriebsbefehlseinheit 15, die den Betriebsbefehl wie oben beschrieben basierend auf einem Betriebsprogramm generiert, das ein Ziel der lernenden Steuerung ist, und diesen an die Betriebssteuerungseinheit 13 ausgibt, und Betriebsinformation des Roboters 11, die vorab in dem Betriebsprogramm beschrieben wird, an die lernende Steuerungseinheit 14 ausgibt.
-
Die Robotersteuerungsvorrichtung 10 ist ein Computersystem. Das oben beschriebene Betriebsprogramm wird in einem Speicher (nicht veranschaulicht) von einem Roboter gespeichert, wobei vorab in der Robotersteuerungsvorrichtung 10 Anlernen erfolgt.
-
In der Betriebsbefehlseinheit 15 kann ein Zentralprozessor (CPU) eines Computers, der so konfiguriert ist, dass er das in dem Speicher gespeicherte Betriebsprogramm liest und einen Betriebsbefehlswert generiert, eingesetzt werden. Eine solche Betriebsbefehlseinheit 15 kann auch nicht in der Robotersteuerungsvorrichtung 10, sondern in einem mit der Robotersteuerungsvorrichtung 10 verbundenen Hostcomputer (nicht veranschaulicht) vorgesehen sein. Weiterhin kann in jeder von der Betriebssteuerungseinheit 13 und der lernenden Steuerungseinheit 14 jeweils ein Computer eingesetzt werden.
-
Wie in 2 veranschaulicht, umfasst die lernende Steuerungseinheit 14 eine Auswahleinheit 17, die eines aus einer Vielzahl von lernenden Steuerungsteilen 16a bis 16d zum Berechnen des Schwingungskorrekturbetrags wie oben beschrieben auswählt.
-
Die Vielzahl von lernenden Steuerungsteilen 16a bis 16d wird jeweils einer Vielzahl von Verwendungsbereichen zugeordnet, in die ein angenommener Verwendungsbereich UR des Roboters 11 unterteilt ist.
-
Die Auswahleinheit 17 ist so konfiguriert, dass sie einen aus der Vielzahl der oben beschriebenen Verwendungsbereiche basierend auf der Betriebsinformation des Roboters 11 bestimmt, wenn der Roboter durch das oben beschriebene Betriebsbefehlsprogramm, das ein Ziel der lernenden Steuerung ist, zum Betrieb veranlasst wird. Die Auswahleinheit 17 ist so konfiguriert, dass sie das lernende Steuerungsteil aus der Vielzahl von lernenden Steuerungsteilen 16a bis 16d auswählt, das dem spezifizierten Verwendungsbereich entspricht.
-
Die Betriebsinformation des Roboters 11, wie oben beschrieben, umfasst Information über eine Position, in die sich der Spitzenendabschnitt des Roboters 11 bewegen soll, und Information über eine Last, die der Endeffektor auf den Spitzenendabschnitt aufbringt. Diese Information kann basierend auf dem oben beschriebenen Betriebsprogramm erfasst werden. Da sich eine Ausrichtung des Roboters 11 in Abhängigkeit von der Position des Spitzenendabschnitts (Handspitzenabschnitt) des Roboters 11 ändert, kann die Information über die Position, in die der Spitzenendabschnitt des Roboters 11 wie oben beschrieben bewegt wird, auch als Information über eine Ausrichtung angesehen werden, die der Roboter 11 während des Betriebs vornehmen kann.
-
Jeder aus der Vielzahl von oben beschriebenen Verwendungsbereichen kann ein Bereich sein, der sowohl durch einen Bereich der Position, in die der Spitzenendabschnitt des Roboters 11 bewegt wird, als auch durch einen Bereich der Last gemäß dem oben beschriebenen Endeffektor definiert wird.
-
3 ist ein Diagramm, das ein Beispiel für den angenommenen Verwendungsbereich UR des oben beschriebenen Roboters 11 veranschaulicht.
-
Beispielsweise, wie in einer in 3 veranschaulichten Grafik veranschaulicht, wird der angenommene Verwendungsbereich UR des Roboters 11 sowohl durch einen angenommenen Bereich einer Ausrichtung, die der Roboter 11 ausführen kann, als auch durch einen angenommenen Bereich einer Last definiert, die gemäß dem Endeffektor auf den Handspitzenabschnitt des Roboters 11 aufgebracht wird. In der Grafik ist vorgesehen, dass die horizontale Achse den angenommenen Bereich der Roboterausrichtung, und die vertikale Achse den angenommenen Bereich der Last gemäß dem Endeffektor angibt.
-
Der angenommene Verwendungsbereich UR ist in vier kleine Bereiche R1 bis R4 unterteilt. Die oben beschriebenen lernenden Steuerungsteile 16a bis 16d sind jeweils den vier kleinen Bereichen R1 bis R4 zugeordnet. In einem solchen Fall ist die lernende Steuereinheit 14 so konfiguriert, dass sie sowohl Information über eine Ausrichtung, die der Roboter 11 vornehmen kann, als auch Information über eine Last, die der Endeffektor auf den Spitzenendabschnitt des Roboters 11 aufbringt, als Betriebsinformation des Roboters 11 erfasst, wie oben beschrieben.
-
Die Auswahleinheit 17 der lernenden Steuerungseinheit 14 spezifiziert einen der vier kleinen Bereiche R1 bis R4 basierend auf sowohl Information einer Roboterausrichtung als auch Information der Last durch den Endeffektor, die erfasst wurden. Die Auswahleinheit 17 ist so konfiguriert, dass sie das lernende Steuerungsteil auswählt, das dem spezifizierten kleinen Bereich entspricht.
-
Genauer ausgedrückt wird in dem Betriebsprogramm des Roboters 11 eine Zielposition beschrieben, in die der Handspitzenabschnitt des Roboters 11 aus einer Startposition bewegt wird. Beispielsweise gibt es einen Fall, in dem der Armabschnitt des Roboters 11 in Drehung versetzt wird und der Handspitzenabschnitt des Roboters 11 veranlasst wird, sich nur in einem Bereich zu bewegen, der von einem Roboterfußabschnitt entfernt ist. Weiterhin gibt es einen Fall, in dem der Armabschnitt des Roboters 11 in Drehung versetzt wird und der Handspitzenabschnitt des Roboters 11 veranlasst wird, sich nur in einem Bereich zu bewegen, der nahe bei dem Roboterfußabschnitt liegt. Die Ausrichtung des Roboters 11, wenn der Handspitzenabschnitt nur in einem von dem Roboterfußabschnitt entfernten Bereich bewegt wird, unterscheidet sich von einer Ausrichtung des Roboters 11, wenn der Handspitzenabschnitt veranlasst wird, sich nur in einem Bereich nahe dem Roboterfußabschnitt zu bewegen. Dementsprechend extrahiert die Betriebseinheit 15 einen Minimalwert und einen Maximalwert der Zielposition des Handspitzenabschnitts des Roboters 11 aus dem Betriebsprogramm, und kann basierend auf den Werten einen Bewegungsbereich des Handspitzenabschnitts des Roboters 11 abschätzen. In der Grafik von 3 ist ein solcher Bewegungsbereich des Handspitzenabschnitts des Roboters 11 als der Bereich einer Ausrichtung definiert, die der Roboter 11 ausführen kann.
-
Weiterhin wird ein Typ des zu verwendenden Endeffektors und der Befehl, wie der Roboter 11 zu betreiben ist, in dem Betriebsprogramm des Roboters 11 programmiert. Beispielsweise wird das Betriebsprogramm, in dem der Roboter 11 den Vorgang zum Aufnehmen und Ablegen eines Werkstücks mit einer Haltehand als Endeffektor durchführt, erstellt. Alternativ wird das Betriebsprogramm erstellt, in dem der Roboter 11 Punktschweißen mit einer Punktschweißpistole als Endeffektor ausführt. Die Robotersteuerungsvorrichtung 10 speichert vorab die Daten einer Lastmasse jeder Art (z. B. einer Haltehand, einer Punktschweißpistole oder dergleichen) des Endeffektors, die an dem Spitzenendabschnitt des Roboters 11 befestigt werden kann. Die Betriebsbefehlseinheit 15 spezifiziert den Typ des Endeffektors aus dem Betriebsprogramm, wie oben beschrieben. Die Betriebsbefehlseinheit 15 kann Daten einer Lastmasse auslesen, die dem Endeffektor entspricht, wie von dem Speicher als Betriebsinformation des Roboters 11 definiert, und an die lernende Steuerungseinheit 14 ausgeben.
-
So kann die lernende Steuerungseinheit 14, wie oben beschrieben, sowohl Information über die Ausrichtung des Roboters 11 als auch über die Belastung durch den Endeffektor von der Betriebsbefehlseinheit 15 erfassen.
-
Es wird angemerkt, dass die Ausführungsform, wie oben beschrieben, lediglich ein Beispiel ist. Der angenommene Verwendungsbereich UR des Roboters 11 ist in die vier kleinen Bereiche R1 bis R4 unterteilt, wobei eine Anzahl von Malen von Unterteilungen nicht auf diese Ausführungsform beschränkt ist. In Bezug auf die Grafik von 3 kann der Bereich der Roboterausrichtung, der durch die horizontale Achse angegeben wird, in drei oder mehr Bereiche unterteilt werden. Alternativ kann der Bereich der Last, der durch die vertikale Achse angegeben wird, in drei oder mehr Bereiche unterteilt werden.
-
Weiterhin ist 4 ein Diagramm, das ein weiteres Beispiel in Bezug auf den angenommenen Verwendungsbereich UR veranschaulicht, wie in 3 veranschaulicht. Je nach Betriebsprogramm kann es sein, dass ein Bereich der Ausrichtung, die der Roboter 11 vornehmen kann, d. h. der Bewegungsbereich des Spitzenendabschnitts des Roboters 11, nicht in jeden der kleinen Bereiche R1 bis R4 fällt. Dann kann auch, wie in 4 veranschaulicht, ein mittlerer Bereich R5, der sich sowohl über den kleinen Bereich R1 als auch über den kleinen Bereich R2 erstreckt, und ein mittlerer Bereich R6, der sich sowohl über den kleinen Bereich R3 als auch über den kleinen Bereich R4 erstreckt, angenommen werden. Dann können dem mittleren Bereich R5 und dem mittleren Bereich R6 jeweils zwei weitere lernende Steuerungsteile zum Berechnen des Schwingungskorrekturbetrags, wie oben beschrieben, zugeordnet werden. Durch Übernahme dieser Konfiguration kann die Robotersteuerungsvorrichtung 10 die effektive lernende Steuerung auch dann ausführen, wenn die Roboterausrichtung (d.h. eine Position des Handspitzenabschnitts), die jeden der kleinen Bereiche R1 bis R4 überschreitet, aus dem Betriebsprogramm, das das Ziel der lernenden Steuerung ist, erhalten wird.
-
5 ist ein Diagramm, das schematisch ein weiteres Konfigurationsbeispiel der lernenden Steuerungseinheit 14 veranschaulicht. Die oben beschriebene lernende Steuerungseinheit 14 kann auch, wie in 5 veranschaulicht, eine Bestimmungseinheit 18 umfassen, die so konfiguriert ist, dass sie während des Ausführens der lernenden Steuerung basierend auf einem Erkennungswert des Sensors 12, d. h. Information über die an dem Steuerungszielabschnitt des Roboters 11 generierte Schwingung, bestimmt, ob das von der Auswahleinheit 17 ausgewählte lernende Steuerungsteil optimal ist oder nicht.
-
Der Begriff „das lernende Steuerungsteil ist optimal“ bedeutet, dass die oben beschriebene Schwingung an dem Steuerungszielabschnitt durch die ausgewählte lernende Steuerungseinheit reduziert wird.
-
Weiterhin führt die Auswahleinheit 17 bei einem weiteren Konfigurationsbeispiel, wie in 5 veranschaulicht, wenn das von der Auswahleinheit 17 ausgewählte lernende Steuerungsteil durch die Bestimmungseinheit 18 als nicht optimal bestimmt wird, ein Umschalten auf ein anderes lernendes Steuerungsteil aus der Vielzahl von lernenden Steuerungsteilen 16a bis 16d aus. Die Auswahleinheit 17 kann ein Umschalten der lernenden Steuerungsteile ausführen, bis die Bestimmungseinheit 18 bestimmt, dass das ausgewählte lernende Steuerungsteil optimal ist.
-
6 ist ein Ablaufdiagramm, das ein Beispiel für lernendes Steuerungsverfahren veranschaulicht, das durch die Robotersteuerungsvorrichtung 10 ausgeführt wird, wie oben beschrieben. Ein Prozessablauf, wie in 6 veranschaulicht, ist ein Beispiel für ein Robotersteuerungsverfahren der vorliegenden Offenbarung. Die Robotersteuerungsvorrichtung 10, die den Prozessablauf, wie in 6 veranschaulicht, ausführt, kann durch einen Digitalcomputer konfiguriert werden.
-
In Schritt S11 von 6 erfasst die Robotersteuerungsvorrichtung 10 zunächst die Betriebsinformation des Roboters 11 aus dem Betriebsprogramm, das ein Ziel der lernenden Steuerung ist.
-
In dem nachfolgenden Schritt S12 spezifiziert die Robotersteuerungsvorrichtung 10 einen aus der Vielzahl der kleinen Bereiche R1 bis R4, in die der angenommene Verwendungsbereich UR des Roboters 11 basierend auf der erhaltenen Betriebsinformation unterteilt wird, und wählt aus der Vielzahl von lernenden Steuerungsteilen 16a bis 16d das dem spezifizierten kleinen Bereich entsprechende lernende Steuerungsteil aus.
-
Im nächsten Schritt S13 führt die Robotersteuerungsvorrichtung 10 die lernende Steuerung durch das ausgewählte lernende Steuerungsteil aus.
-
Im nachfolgenden Schritt S14 bestimmt die Robotersteuerungsvorrichtung 10 basierend auf einem Erkennungswert des Sensors 12, d. h. einer Information über die an dem Roboter 11 generierte Schwingung, ob das ausgewählte lernende Steuerungsteil optimal ist oder nicht.
-
Wenn in einem Bestimmungsergebnis bei Schritt S14 das ausgewählte lernende Steuerungsteil nicht optimal ist, führt die Robotersteuerungsvorrichtung 10 ein Umschalten auf ein anderes lernendes Steuerungsteil aus der Vielzahl von lernenden Steuerungsteilen 16a bis 16d aus (Schritt S15). Weiterhin wiederholt die Robotersteuerungsvorrichtung 10 die Schritte S13 bis S15, wie oben beschrieben, bis das ausgewählte lernende Steuerungsteil als optimal bestimmt wird.
-
Andererseits führt die Robotersteuerungsvorrichtung 10 in dem Bestimmungsergebnis in Schritt S14, wenn das ausgewählte lernende Steuerungsteil optimal ist, die lernende Steuerung durch das ausgewählte lernende Steuerungsteil wiederholt eine vorbestimmte Anzahl von Malen aus (Schritt S16), und die lernende Steuerung wird beendet.
-
Weiterhin wird das Robotersystem 1 gemäß einer Ausführungsform spezifisch beschrieben.
-
7 ist ein Diagramm, das ein Beispiel des Roboters 11 veranschaulicht, der in dem Robotersystem 1 eingesetzt werden kann, wie oben beschrieben. 8 ist ein Diagramm zum Veranschaulichen des Roboters 11, wie in 7 veranschaulicht.
-
Der Roboter 11 ist gemäß der vorliegenden Ausführungsform ein sechsachsiger Vertikal-Knickarmroboter, wie in 7 veranschaulicht. Wie in 8 veranschaulicht, ist der Roboter 11 mit sechs Gelenkachsen IIb1 bis 11b6, einem Armabschnitt IIa, der mit jeder der Gelenkachsen IIb1 bis 11b6 verkoppelt ist, und einem Servomotor (nicht veranschaulicht) versehen, der das bestandteilbildende Element des Roboters 11 um die Gelenkachsen IIb1 bis 11b6 antreibt. Selbstverständlich ist eine Konfiguration des Roboters 11 nicht auf die in 1 veranschaulichte Ausführungsform beschränkt, sondern es kann ein Horizontal-Knickarmroboter, ein Parallelgelenkroboter oder dergleichen eingesetzt werden.
-
Der Sensor 12 ist wie oben beschrieben an einem Endeffektor 20 befestigt, der an dem Spitzenendabschnitt 19 des Roboters 11 vorgesehen ist. Durch Übernahme dieser Konfiguration erkennt der Sensor 12 gemäß der vorliegenden Ausführungsform die an dem Spitzenendabschnitt 19 generierte Schwingung, die als Steuerungszielabschnitt des Roboters 11 dient. Der Sensor 12 ist an dem Roboter 11 anbringbar und davon abnehmbar. Als Endeffektor 20 kann ein Werkzeugabschnitt, ein Handabschnitt, ein Schraubenanzugswerkzeug, eine Schweißpistole oder dgl. verwendet werden.
-
Wie in 8 veranschaulicht, weist der Roboter 11 ein Weltkoordinatensystem 21 auf, das in einem Raum fixiert ist, und ein mechanisches Schnittstellenkoordinatensystem 22, das an einem Flansch an einem Spitzenende eines Handgelenkabschnitts des Roboters 11 eingestellt ist. Das Weltkoordinatensystem 21 und das mechanische Schnittstellenkoordinatensystem 22 sind jeweils ein dreidimensionales orthogonales Koordinatensystem.
-
Es wird angemerkt, dass das Weltkoordinatensystem 21 und das mechanische Schnittstellenkoordinatensystem 22 aus Gründen der Übersichtlichkeit in 8 jeweils durch eine vergrößerte Ansicht dargestellt sind. In dem Weltkoordinatensystem 21 ist die +X-Achse in der rechten Richtung von 8, die +Z-Achse in der oberen Richtung von 8 und die +Y-Achse in der hinteren Richtung der Ebene der Zeichnung von 8 definiert. In dem mechanischen Schnittstellenkoordinatensystem 22 ist die +X-Achse in der rechten Richtung von 8, die +Z-Achse in der unteren Richtung von 8 und die +Y-Achse in der vorderen Richtung der Ebene der Zeichnung von 8 definiert. In der vorliegenden Ausführungsform wird die Korrelation der Positionen zwischen dem Weltkoordinatensystem 21 und dem mechanischen Schnittstellenkoordinatensystem 22 vorab durch Kalibrierung eingestellt. Durch Übernehmen dieser Konfiguration kann die Betriebssteuerungseinheit 13 der Robotersteuerungsvorrichtung 10 die Position des Spitzenendabschnitts 19 des Roboters 11, an dem der Endeffektor 20 befestigt ist, über die durch das Weltkoordinatensystem 21 definierte Position steuern.
-
Wie in 7 veranschaulicht, ist die Robotersteuerungsvorrichtung 10 gemäß der vorliegenden Ausführungsform über ein Kabel 23 gegenseitig mit dem Roboter 11 verbunden. Der Sensor 12 ist über ein Kabel oder drahtlos kommunizierend mit der Robotersteuerungsvorrichtung 10 verbunden.
-
Als der Sensor 12 gemäß der vorliegenden Ausführungsform wird ein Beschleunigungssensor verwendet, wobei der einsetzbare Sensor 12 nicht auf einen Beschleunigungssensor beschränkt ist. Weiterhin ist der Sensor 12 gemäß der vorliegenden Ausführungsform in dem Spitzenendabschnitt 19 des Roboters 11 vorgesehen, wobei jedoch ein Ort, an dem der Sensor 12 vorgesehen ist, nicht darauf beschränkt ist. Mit anderen Worten ausgedrückt, solange die an dem Steuerungszielabschnitt des Roboters 11 generierte Schwingung erkannt werden kann, kann jeder Typ des Sensors 12 und jeder Ort, an dem der Sensor 12 vorgesehen ist, eingesetzt werden. Der Sensor 12 kann auch an einer von dem Roboter 11 entfernten Stelle vorgesehen sein. Dementsprechend kann als der Sensor 12 beispielsweise ein Kreiselsensor, ein Trägheitssensor, ein Kraftsensor, ein Lasertracker, eine Kamera, ein Bewegungserfassungsgerät oder dergleichen verwendet werden. Diese Geräte können eine chronologische Veränderung bei einer vorgegebenen Position messen und können folglich einen Schwingungsbetrag an einer gemessenen Position erkennen.
-
Beispielsweise kann im Falle des Beschleunigungssensors, da die Position durch zweimaliges Integrieren der Beschleunigung an dem Steuerzielabschnitt des Roboters 11 berechnet werden kann, der Schwingungsbetrag aus der berechneten Positionsänderung erkannt werden. In einem Fall des Kraftsensors wird aus dem Drehmoment oder dem Moment, das an dem Steuerzielabschnitt generiert wird, ein Drehwinkel von einer Ausgangsposition des Zielabschnitts bestimmt, und der Änderungsbetrag des Zielabschnitts, d. h. der Schwingungsbetrag, kann basierend auf dem Drehwinkel berechnet werden.
-
Unter erneuter Bezugnahme auf 1 wird der Roboter 11 von dem Servomotor 24 angetrieben. Der Servomotor 24 umfasst einen Impulscodierer (nicht veranschaulicht), der einen Positionsrückmeldungswert (nachfolgend als Positions-FB bezeichnet) und einen Drehzahlrückmeldungswert (nachfolgend als Drehzahl-FB bezeichnet) erkennt.
-
Die in 1 veranschaulichte Betriebsbefehlseinheit 15 generiert den Betriebsbefehl, der den Roboter basierend auf dem vorab erstellten Betriebsprogramm zum Betrieb veranlasst, und gibt diesen an die Betriebssteuerungseinheit 13 aus. Das Betriebsprogramm wird in einem Speicher wie z. B. einem ROM in der Robotersteuerungsvorrichtung 10 gespeichert. Zusätzlich gibt die Betriebsbefehlseinheit 15 die in dem Betriebsprogramm vorab beschriebene Betriebsinformation des Roboters 11 an die lernende Steuerungseinheit 14 aus.
-
Weiterhin umfasst die Betriebssteuerungseinheit 13 der Robotersteuerungsvorrichtung 10 eine Positionssteuerungseinheit 31, eine Drehzahlsteuerungseinheit 32, eine Stromsteuerungseinheit 33 und einen Verstärker 34.
-
Die Positionssteuerungseinheit 31 verarbeitet zuerst einen Positionsabweichungsbetrag, der eine Differenz zwischen einem als Betriebsbefehl von der Betriebsbefehlseinheit 15 bereitgestellten Positionsbefehlswert und der von dem Servomotor 24 ausgegebenen Positions-FB ist, und gibt einen Drehzahlbefehlswert an die Drehzahlsteuerungseinheit 32 aus.
-
Die Drehzahlsteuerungseinheit 32 verarbeitet einen Drehzahlabweichungsbetrag, der eine Differenz zwischen dem von der Positionssteuerungseinheit 31 bereitgestellten Drehzahlbefehlswert und der von dem Servomotor 24 ausgegebenen Drehzahl-FB ist, und gibt einen Strombefehlswert an die Stromsteuerungseinheit 33 aus.
-
Die Stromsteuerungseinheit 33 verarbeitet einen Stromabweichungsbetrag, der eine Differenz zwischen dem von der Drehzahlsteuerungseinheit 32 bereitgestellten Strombefehlswert und dem Strom-FB (d. h. Stromrückmeldungswert) von dem Verstärker 34 ist, und gibt einen Strombefehlswert (Drehmomentbefehlswert) an den Verstärker 34 aus.
-
Der Verstärker 34 empfängt jeden Strombefehlswert von der Stromsteuerungseinheit 33. Der Verstärker 34 generiert einen Antriebsstrom zum Antreiben des Servomotors 24 basierend auf dem empfangenen Strombefehlswert, und treibt den Servomotor 24 an.
-
Wird der mit jeder der Gelenkachsen 11b1 bis 11b6 des Roboters 11 gekoppelte Servomotor 24 entsprechend dem Betriebsbefehl der Betriebsbefehlseinheit 15 angetrieben, fährt der Spitzenendabschnitt 19 des Roboters 11, an dem der Endeffektor 20 befestigt ist, in die befohlene Position.
-
Der Sensor 12 erkennt die Schwingung, die an dem Spitzenendabschnitt des Roboters 11 generiert wird, während die Betriebssteuerungseinheit 13 basierend auf dem Betriebsbefehl die Betriebssteuerung des Roboters 11 ausführt. Ein Erkennungswert des Sensors 12 ist so konfiguriert, dass er in die lernende Steuerungseinheit 14 eingegeben wird (siehe 2).
-
Die lernende Steuerungseinheit 14 ist ein Funktionsteil zum Ausführen der sogenannten lernenden Steuerung. Insbesondere gibt die Betriebsbefehlseinheit 15 in einem vorgegebenen Steuerzyklus wiederholt einen Betriebsbefehlswert an die Betriebssteuerungseinheit 13 aus. Die Betriebssteuerungseinheit 13 steuert einen Betrieb des Roboters 11 über den Betriebsbefehlswert und gibt in jedem Steuerzyklus den gleichen Betriebssteuerungswert an die lernende Steuerungseinheit 14 aus. Die lernende Steuerungseinheit 14 führt eine lernende Steuerung aus, die den Schwingungskorrekturbetrag zum Korrigieren der an dem Spitzenendabschnitt 19 generierten Schwingung zu jedem Zeitpunkt einer Eingabe des Betriebsbefehlswertes berechnet und wendet den Schwingungskorrekturbetrag des Roboters 11 durch denselben Betriebsbefehl ein nächstes Mal an. Die lernende Steuerungseinheit 14 wiederholt die lernende Steuerung derart, dass dadurch die an dem Spitzenendabschnitt 19 des Roboters 11 generierte Schwingung reduziert wird.
-
Beispielsweise veranlasst der Roboterbediener an einen Produktionsstandort die Robotersteuerungsvorrichtung 10, die sich wiederholende lernende Steuerung mit dem gleichen Betriebsprogramm auszuführen, wie bei einem tatsächlichen Betrieb, bevor der Roboter 11 tatsächlich von dem Betriebsprogramm betrieben wird. Wenn die Schwingung an dem Spitzenendabschnitt des Roboters 11 durch die sich wiederholende lernende Steuerung ausreichend reduziert werden kann, wird der zuletzt berechnete Schwingungskorrekturbetrag in dem Speicher der Robotersteuerungsvorrichtung 10 gespeichert. Der gespeicherte Schwingungskorrekturbetrag kann verwendet werden, wenn der Roboter 11 durch das Betriebsprogramm an einem Produktionsstandort tatsächlich betrieben werden soll.
-
Obwohl der Sensor 12 zum Berechnen des Schwingungskorrekturbetrags verwendet wird, wird der Sensor 12 nach Beendigung der lernenden Steuerung von dem Endeffektor 20 an dem Spitzenendabschnitt 19 des Roboters 11 entfernt.
-
Zusätzlich werden die für das Berechnen des Schwingungskorrekturbetrags erforderlichen Schwingungsbetragsdaten erfasst, indem bei jedem vorgeschriebenen Steuerzyklus ein zweiter Positionsabweichungsbetrag verarbeitet wird, der eine Differenz zwischen dem von der Betriebsbefehlseinheit 15 an die lernende Steuerungseinheit 14 eingegebenen Betriebsbefehlswert und dem Erkennungswert des Sensors 12, der in die lernende Steuereinheit 14 eingegeben wird, ist . Weiterhin kann der Schwingungskorrekturbetrag berechnet werden, indem eine Näherungsformel der erfassten Schwingungsdaten geschätzt und die geschätzte Näherungsformel umgekehrt transformiert wird. Mit anderen Worten ausgedrückt ist der Schwingungskorrekturbetrag eine Funktion zum Korrigieren der Schwingungsbetragsdaten in einer Zeitreihe in die Nähe von Null.
-
Wie bereits beschrieben, werden der lernenden Steuerungseinheit 14 die mehreren lernenden Steuerungsteile 16a bis 16d zum Bestimmen des Schwingungskorrekturbetrags zur Verfügung (siehe 2 und 5) gestellt. Die lernende Steuerungseinheit 14 gemäß der vorliegenden Ausführungsform umfasst die Auswahleinheit 17, die aus der Vielzahl von lernenden Steuerungsteilen 16a bis 16d ein Steuerungsteil basierend auf der Betriebsinformation des Roboters 11 auswählt, wenn die lernende Steuerung wie oben beschrieben ausgeführt wird. Die Vielzahl von lernenden Steuerungsteilen 16a bis 16d wird jeweils der Vielzahl von kleinen Verwendungsbereichen R1 bis R4 zugeordnet, in die der angenommene Verwendungsbereich UR des Roboters 11 unterteilt wird.
-
Wenn der Roboter 11 ein sechsachsiger Vertikal-Knickarmroboter ist (siehe 7 und 8), umfasst die Betriebsinformation des Roboters 11 sowohl Information über eine Ausrichtung des Roboters 11, die aus einer durch das Weltkoordinatensystem 21 definierten Zielposition des Spitzenendabschnitts 19 des Roboters erhalten wird, als auch Information über eine Last, die der Endeffektor 20 auf den Spitzenendabschnitt 19 des Roboters 11 aufbringt. Die Information der Roboterausrichtung entspricht der Information eines Bewegungsbereichs des Spitzenendabschnitts 19, und die Position des Spitzenendabschnitts 19 kann als eine Position des Ursprungs des mechanischen Schnittstellenkoordinatensystems 22 basierend auf dem Ursprung des Weltkoordinatensystems 21 eingestellt werden. Die Auswahleinheit 17 ist so konfiguriert, dass sie einen aus der Vielzahl der kleinen Bereiche R1 bis R4 spezifiziert, und das lernende Steuerungsteil auswählt, das dem kleinen Bereich entspricht, wie er basierend auf sowohl der Information über die Ausrichtung des Roboters 11 als auch der Last spezifiziert wird.
-
Gemäß dem Robotersystem 1 und dem oben beschriebenen lernenden Steuerungsverfahren ist konfiguriert, dass das lernende Steuerungsteil, das mit einem der mehreren kleinen Bereiche R1 bis R4 übereinstimmt, in die der vermeintliche Verwendungsbereich UR des Roboters 11 unterteilt ist, basierend auf der Betriebsinformation des Roboters 11 ausgewählt wird, wenn der Roboter 11 von dem Programm, das ein Ziel der lernenden Steuerung ist, betrieben werden soll. Eine solche Steuerung kann eine Erhöhung der Anzahl von Malen der lernenden Steuerung unterdrücken, während ein Schwingungsreduktionseffekt durch die lernende Steuerung in Bezug auf den angenommenen Verwendungsbereich UR des Roboters 11 aufrechterhalten wird.
-
Außerdem ist in einem Fall der vorliegenden Ausführungsform die erforderliche Robustheit für jedes lernende Steuerungsteil gering im Vergleich zu einem Fall, in dem ein einzelnes lernendes Steuerungsteil in Bezug auf einen weiten Verwendungsbereich des Roboters 11 ausgelegt ist, in dem sich die Ausrichtung des Roboters 11 und des Endeffektors 20 stark verändern kann. Wenn die lernenden Steuerungsteile jeweils den mehreren kleinen Bereichen zugeordnet werden, in die der große Verwendungsbereich des Roboters 11, wie in der vorliegenden Ausführungsform beschrieben, unterteilt ist, kann somit der optimale Schwingungskorrekturbetrag mit einer relativ geringen Anzahl von Malen der lernenden Steuerung erhalten werden.
-
Gemäß einem Aspekt der vorliegenden Offenbarung kann eine Erhöhung einer Anzahl von Malen einer lernenden Steuerung unterdrückt werden, während der Schwingungsreduktionseffekt durch die lernende Steuerung in Bezug auf einen angenommenen Verwendungsbereich eines Roboters 11 aufrechterhalten wird.
-
Diese Erfindung wurde oben unter Verwendung typischer Ausführungsformen beschrieben, aber es versteht sich, dass Fachleute Änderungen an jedem bestandteilbildenden Element, jeder Funktion und dergleichen des Robotersystems und der Robotersteuerung gemäß den oben beschriebenen Ausführungsformen und verschiedene andere Änderungen, Löschungen und Ergänzungen vornehmen kann, ohne von dem Schutzumfang dieser Erfindung abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2011167817 [0006]
- JP H10111701 [0007]