-
ALLGEMEINER STAND DER TECHNIK
-
1. Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft eine Robotersteuerung mit einer Funktion, die ein Lernen vereinfacht, und ein Robotersteuerverfahren.
-
2. Beschreibung des Standes der Technik
-
In einem Roboter, der durch ein Bedienprogramm gesteuert wird, wird ein Motor gemäß Befehlswerten gesteuert, die in dem Bedienprogramm enthalten sind, und der Roboter wird bewegt, um einer Befehlstrajektorie nachzugehen, die mit dem Bedienprogramm gelehrt wird. Es gibt derzeit Fälle, in denen ein Motor den Befehlswerten aufgrund von Rückschlag, Reibung usw. in jedem Gelenk des Roboters nicht nachgehen kann, und die tatsächliche Position des Roboters (die tatsächliche Trajektorie) enthält einen Fehler in Bezug auf die befohlene Trajektorie.
-
Techniken sind bekannt, die ein Lernen durchführen, wobei eine Abweichung zwischen der befohlenen Trajektorie und der tatsächlichen Trajektorie erkannt wird und die Befehlswerte iterativ justiert werden, um einen derartigen Fehler zu eliminieren. Die
JP 2015-221 491 A beispielsweise offenbart ein Robotersteuerverfahren, umfassend: einen Schritt des Erzeugens einer ersten Trajektorie, die eine tatsächliche Position eines Werkzeugmittelpunkts darstellt, durch Starten eines Benutzerprogramms, um einen Roboter entlang einem ersten kontinuierlichen programmierten Weg zu bewegen; einen Schritt des Berechnens einer Wegabweichung zwischen dem ersten kontinuierlichen programmierten Weg und der ersten Trajektorie; einen Schritt des Erzeugens eines korrigierten Benutzerprogramms durch Justieren des Benutzerprogramms um einen berechneten Betrag, der gleich der Wegabweichung ist; einen Schritt des Speicherns der ersten Trajektorie, die die tatsächliche Position des Werkzeugmittelpunkts darstellt, in einer Speichervorrichtung; einen Schritt des Erzeugens einer zweiten Trajektorie, die eine tatsächliche Position des Werkzeugmittelpunkts darstellt, durch Starten des korrigierten Benutzerprogramms, um den Roboter entlang einem zweiten kontinuierlichen programmierten Weg zu bewegen; und einen Schritt des Anzeigens der ersten Trajektorie und der zweiten Trajektorie.
-
Die
JP 2015-168 053 A offenbart eine Robotersteuerung, die einen Roboter steuert, der in einer vorherbestimmten Arbeitsregion bedient wird, während er seine eigene Position und Ausrichtung korrigiert, wobei die Robotersteuerung umfasst: eine Speichereinheit, die ein Referenzbedienmuster des Roboters speichert; eine Eingabeeinheit, die mindestens eine Arbeitsstartregion, an der die Bedienung des Roboters auf der Basis des Referenzbedienmusters gestartet wird, und eine Arbeitsendregion, an der die Bedienung des Roboters auf der Basis des Referenzbedienmusters endet, spezifiziert; eine automatische Erzeugungseinheit, die automatisch eine Vielzahl von Bedienmustern für den Roboter auf der Basis von Aufteilungsregionen, die durch Aufteilen der Arbeitsregion, die von der Eingabeeinheit spezifiziert wurde, erhalten werden, mit einer vorherbestimmten Auflösung und des Referenzbedienmusters, das in der Speichereinheit gespeichert ist, erzeugt; und eine Lernsteuereinheit, die für jedes der Bedienmuster, die von der automatischen Erzeugungseinheit automatisch erzeugt wurden, eine Bedienungsbeschleunigungsrate zum Ändern einer Geschwindigkeit oder einer Beschleunigung und Beschleunigen der Bedienung des Roboters lernt.
-
Des Weiteren offenbart die
JP 2003-044 102 A ein Lernsteuerverfahren für ein Lernsteuersystem. Das System umfasst einen Speicher, der Daten speichert, die zur Lernsteuerung erforderlich sind, ein Mittel zum Aufteilen des Speichers in mehrere Regionen und Verwenden des Speichers, ein Mittel zum Austauschen von Daten in einer Region, die durch ein Bedienprogramm spezifiziert wird, und eine Steuereinheit. In dem System iteriert die Steuereinheit Versuche, so dass die Ausgabe eines Steuerungsziels einem Zielbefehl folgt. In dem Verfahren wird bestimmt, ob ein Befehl an die Steuereinheit eingegeben wurde oder nicht, und ein Zeitpunkt, zu dem ein Ergebnis der Bestimmung mit einem Lernstartbefehl, der von dem Lernsteuersystem empfangen wurde, übereinstimmt, wird als ein Lernstartpunkt genommen.
-
Normalerweise werden Lernergebnisse auf die Gesamtheit einer Trajektorie angewendet. Selbst wenn ein Teil der Trajektorie nach dem Lernen nicht eine Trajektorie ist, die von einem Bediener gewünscht wird, ist es somit schwierig, ein Lernen durchzuführen, um nur diesen Teil der Trajektorie zu korrigieren. Obwohl es Techniken zum automatischen Wechseln zwischen Segmenten, bei denen ein Lernen durchgeführt wird, und Segmenten, bei denen kein Lernen durchgeführt wird, können Algorithmen und Rechenverarbeitung usw. für derartige Techniken kompliziert sein.
-
Die Druckschrift
US 2015 / 0 127 150 A1 offenbart eine Robotersteuerung, die dazu konfiguriert ist, Bedienungen eines Roboters gemäß Befehlswerten eines Programms zu steuern, wobei die Steuerung einen Lernabschnitt, der dazu konfiguriert ist, ein Lernen eines Erkennens einer Abweichung zwischen einer befohlenen Trajektorie, die eine Position des Roboters darstellt, die gemäß den Befehlswerten erzeugt wurde, und einer Bedientrajektorie, die eine tatsächliche Position darstellt, zu der der Roboter sich bewegt hat, durchzuführen und ein korrigiertes Programm durch Justieren der befohlenen Trajektorie zu erzeugen; einen Umlernabschnitt, der dazu konfiguriert ist, ein Umlernen durchzuführen; und einen Speicherabschnitt umfasst.
-
-
KURZDARSTELLUNG DER ERFINDUNG
-
Gemäß der Offenbarung ist eine Robotersteuerung gemäß dem unabhängigen Vorrichtungsanspruch bereitgestellt. Entwicklungen sind in den abhängigen Ansprüchen dargestellt.
-
Gemäß der Offenbarung ist ein Robotersteuerverfahren gemäß den unabhängigen Verfahrensanspruch bereitgestellt.
-
Figurenliste
-
Die Gegenstände, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden Beschreibung der Ausführungsformen in Verbindung mit den begleitenden Zeichnungen offensichtlicher werden, in denen:
- 1 ein Diagramm ist, das ein Beispiel einer Lernsteuerung darstellt, die von einer Robotersteuerung gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführt wird;
- 2 ein Funktionsblockdiagramm ist, das die Robotersteuerung von 1 umfasst; und
- 3 ein Ablaufdiagramm ist, das ein Beispiel einer Verarbeitung darstellt, die von der Robotersteuerung von 1 durchgeführt wird.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 ist ein Diagramm, das eine Robotersteuerung 10 gemäß einer Ausführungsform der vorliegenden Erfindung, einen Roboter (mechanische Einheit) 12, der von der Robotersteuerung 10 gesteuert wird, und ein Programmierhandgerät 16, das verwendet wird, wenn ein Bediener 14 den Roboter 12 programmiert oder bedient, darstellt. 1 stellt außerdem ein Beispiel einer Lernsteuerung dar, die von der Robotersteuerung 10 durchgeführt wird. In der vorliegenden Ausführungsform ist der Roboter 12 dazu konfiguriert, einen Laserstrahl auszustrahlen, während er sich entlang einem Kreisbogen- oder kreisförmigen Weg bewegt, und ein kreisförmiges Loch in ein zu verarbeitendes Werkstück zu schneiden. Die Robotersteuerung 10 weist außerdem eine Lernfunktion zum Erkennen einer Abweichung in einer Bedientrajektorie 20 (die durchgezogene Linie) des Roboters 12 in Bezug auf eine befohlene Trajektorie (Kreisbogen) 18, die von der Strichlinie angezeigt wird, und Justieren der befohlenen Trajektorie auf der Basis der erkannten Abweichung auf.
-
2 ist ein Funktionsblockdiagramm, das die Robotersteuerung 10, den Roboter 12 und das Programmierhandgerät 16 umfasst. Die Robotersteuerung 10 ist beispielsweise eine programmierbare Steuerung und ist dazu konfiguriert, die Bedienung des Roboters 12 gemäß Befehlswerten, die in einem Programm enthalten sind, zu steuern. Die Robotersteuerung umfasst: eine Speichervorrichtung (Speicherabschnitt) 22, wie einen Speicher; eine Verarbeitungseinheit 24, wie einen Prozessor oder einen CPU, mit Funktionen, die die Bedienungssteuerung und/oder Lernsteuerung für den Roboter 12 (die einem Lernabschnitt und/oder einem Umlernabschnitt, die später beschrieben werden, entsprechen) betreffen; ein Schnittstellenmodul 28 zum Kommunizieren mit einem Netzwerk 26, wie einem Intranet oder dem Internet; und ein Datenumwandlungsmodul 30, das dazu konfiguriert ist, eine Datenumwandlung zwischen dem Schnittstellenmodul 28 und der Speichervorrichtung 22 durchzuführen. Die Speichervorrichtung 22 kann außerdem verschiedene Typen von Variablen, ein Programm für das Programmierhandgerät (TP-Programm), ein Programm, das Befehlswerte zum Steuern der Bedienung des Roboters enthält, Einstellungen, die das Robotersystem von 1 betreffen (Systemeinstellungen), und eine Historie von Fehlern (ein Fehlerprotokoll) usw. speichern.
-
Der Roboter 12 ist beispielsweise ein Knickarmroboter mit einer Vielzahl von Achsen. Der Roboter 12 weist einen Sensor 32 zum Messen/Erhalten einer Bedientrajektorie (z. B. eines Werkzeugmittelpunkts) des Roboters 12 auf, wenn der oben beschriebene Kreisbogenarbeitsvorgang durchgeführt wird, und der Sensor weist beispielsweise einen Impulscodierer oder Codierer auf, der an jeder Achse des Roboters 12 vorgesehen ist.
-
Das Programmierhandgerät 16 ist beispielsweise eine tragbare Bedientafel, die von dem Bediener 14 getragen und bedient werden kann, wie in 1 dargestellt, und mit der Robotersteuerung 10 mit einem Kabel oder drahtlos verbunden ist. Das Programmierhandgerät 16 weist eine Bedientafel (Anzeige) 34, wie ein Berührungsfeld, auf, die ein Bediener dazu verwenden kann, während des Betrachtens zu programmieren, eine Lernstelle anzuweisen, wie später beschrieben werden wird.
-
Ein entfernter Computer 36, wie ein Personal-Computer, kann mit dem Netzwerk 26 verbunden sein. Der entfernte Computer 36 weist eine Benutzeroberfläche 38, wie eine Tastatur, durch die ein Bediener Arbeitsvorgänge, wie Eingaben, vornehmen kann, und ein Kommunikationsmodul 40 zur Datenkommunikation oder zum Datenaustausch mit dem Netzwerk 26 auf.
-
Als Nächstes wird die Lernfunktion der Robotersteuerung 10 unter Bezugnahme auf das Ablaufdiagramm in 3 beschrieben. Zunächst wird ein Lernen für einen Kreisbogenarbeitsvorgang, der von dem Roboter 12 durchgeführt wird, wie in 1 dargestellt, durchgeführt (Schritt S1). Um spezifischer zu sein, eine Abweichung zwischen einer befohlenen Trajektorie, die eine Position des Roboters 12 darstellt, die gemäß Befehlswerten in einem Programm erzeugt wurde, und einer Bedientrajektorie, die eine tatsächliche Position darstellt, zu der der Roboter 12 sich bewegt hat, wird erkannt. Das Programm wird dann durch Justieren der befohlenen Trajektorie korrigiert. Verschiedene Typen von maschinellem Lernen, wie überwachtes Lernen, unüberwachtes Lernen, halbüberwachtes Lernen, Verstärkungslernen, Weitergabe oder Multitask-Lernen, können als ein spezifisches Beispiel eines Lernsteuerverfahrens zum Lernen der befohlenen Trajektorie (Justieren der Bedientrajektorie) verwendet werden und der Bediener kann bezeichnen, welches Lernverfahren verwendet werden soll. Die Bedientafel 34 des Programmierhandgeräts 16, die Benutzerschnittstelle 38 des entfernten Computers oder ein Eingabeabschnitt 42 der Robotersteuerung 10 usw. kann als ein Beispiel eines Bezeichnungsabschnitts verwendet werden, durch den der Bediener die Bezeichnung vornimmt, ein anderes Mittel kann jedoch stattdessen verwendet werden.
-
Beim Durchführen des Lernens werden gelehrte Positionsdaten korrigiert und die Abweichung in der Bedientrajektorie in Bezug auf die befohlene Trajektorie wird durch eine Bedienungssteuerung auf der Basis der korrigierten Positionsdaten (Programm) korrigiert (Schritt S2). Als Nächstes wird in Schritt S3 die Bedientrajektorie, die auf der Basis des korrigierten Programms korrigiert wurde, in der Bedientafel 34 usw., vorzugsweise zusammen mit der befohlenen Trajektorie angezeigt, wie in 1 dargestellt.
-
Der Bediener bestimmt auf der Basis des angezeigten Lernergebnisses, ob die Bedientrajektorie (tatsächliche Trajektorie) eine gewünschte Form ist oder nicht (Schritt S4). Wenn die Bedientrajektorie die gewünschte Form ist oder von einer idealen Form leicht abweicht, jedoch noch immer akzeptabel ist, übernimmt der Bediener das aktuelle Lernergebnis (wählt dieses aus) durch Bedienen des Programmierhandgeräts 16. Als Reaktion darauf speichert die Robotersteuerung 10 das übernommene Lernergebnis (das korrigierte Programm) als Lerndaten in der Speichervorrichtung 22 usw. (Schritt S5). Man beachte, dass in Schritt S4 automatisch berechnet und ausgegeben (angezeigt) werden kann, ob der Fehler zwischen der Bedientrajektorie und der befohlenen Trajektorie innerhalb eines vorherbestimmten Sollwerts liegt.
-
Andererseits, wie in 1 dargestellt, wenn die Bedientrajektorie 20 sich von der Trajektorie unterscheidet, die von dem Bediener beabsichtigt wird, wie ein Fall, in dem die Bedientrajektorie 20 einen Teil mit einem hohen Fehlerausmaß oder einen Teil, der von der befohlenen Trajektorie 18 stark abweicht, enthält, bezeichnet der Bediener, dass ein Teil der Bedientrajektorie umgelernt werden soll (Schritt S6). In dem Beispiel von 1 weicht die Bedientrajektorie 20 von einem perfekten Kreis (die befohlene Trajektorie) in einem rechten oberen Teil des Kreisbogens stark ab, von den anderen Teilen kann jedoch bestimmt werden, dass sie keine Probleme aufweisen. Dementsprechend nimmt der Bediener einen Berührungsarbeitsvorgang usw. an einem Bedienbildschirm der Bedientafel 34 usw. vor, um zu bezeichnen/einzugeben, dass eine Region 44 als eine Stelle umgelernt werden soll, die den rechten oberen Teil umgibt. Ein anderes geeignetes Mittel, wie die Benutzeroberfläche 38 des entfernten Computers oder der Eingabeabschnitt 42 der Robotersteuerung 10, kann als der Bedienbildschirm anstelle der Bedientafel 34 des Programmierhandgeräts 16 verwendet werden. Die Bedientafel 34 des Programmierhandgeräts 16 ist jedoch für den Gebrauch am Standort am besten geeignet.
-
Sobald die umzulernende Region 44 bezeichnet wurde, führt die Robotersteuerung 10 ein Umlernen nur für die Trajektorie durch, die innerhalb der bezeichneten Region 44 enthalten ist (eine Umlernstelle) (Schritt S7). Die Verarbeitung von Schritt S2 usw. wird dann iteriert. Dies ermöglicht, ein Lernen nur an zu lernenden Teilen durchzuführen, anstelle ein Lernen an der gesamten Trajektorie durchzuführen, und somit kann eine ideale Trajektorie, die von dem Bediener gewünscht wird, innerhalb eines kurzen Zeitraums gelernt werden. Obwohl in der vorliegenden Ausführungsform ein Kreisbogen als ein Beispiel der befohlenen Trajektorie beschrieben wird, ist es offensichtlich, dass die vorliegende Ausführungsform auf ähnliche Weise in einem Fall angewendet werden kann, in dem die befohlene Trajektorie eine andere Form aufweist.
-
Wenn ein Lernen an der gesamten Bedientrajektorie durchgeführt wird, um die Genauigkeit der Bedientrajektorie eines Roboters zu verbessern, kann es schwierig sein, eine ideale Trajektorie zu erhalten, da die gesamte Trajektorie, nicht ein Teil davon geändert werden kann. In dem Fall, in dem ein Versuch unternommen wird, nur einen Teil der Bedientrajektorie automatisch zu lernen, ist es erforderlich, Bedingungen und/oder Algorithmen zum Identifizieren dieses Teils zu konstruieren, und die Verarbeitung nimmt somit Zeit in Anspruch. Dementsprechend bezeichnet der Bediener in der vorliegenden Ausführungsform die zu korrigierende Stelle und an dieser Stelle wird ein partielles Lernen durchgeführt. Dies ermöglicht, ein Lernen durchzuführen, das insgesamt effizient ist. Anders ausgedrückt, selbst nachdem ein Lernen durchgeführt wurde, kann ein Trajektorie-Ideal für den Bediener durch Bezeichnen einer Stelle, die weiter umgelernt werden soll, und Speisen dieser Stelle zurück in den Roboter, um ein Umlernen durchzuführen, erzielt werden. Des Weiteren kann der Bediener beurteilen, ob jedes Lernergebnis akzeptabel ist oder nicht (OK oder NG), und akkumulierte/statistische Ergebnisse der Beurteilung durch den Bediener können zurück in den Roboter gespeist werden.
-
Darüber hinaus kann der Bediener durch Anzeigen der Trajektorie, nachdem das Lernen durchgeführt wurde, in dem Bedienbildschirm, wie der Bedientafel des Programmierhandgeräts usw., und Ermöglichen, die Stelle der umzulernenden Trajektorie anhand dieses Bedienbildschirms zu bezeichnen oder einzugeben, die Bedienungen optisch und einfach durchführen.
-
Gemäß Gesichtspunkten der vorliegenden Offenbarung kann die Zeit einer Lernjustierungsaufgabe verkürzt werden und die Aufgabe kann vereinfacht werden.