-
Die vorliegende Erfindung betrifft eine maschinelle Lernvorrichtung, eine Robotersteuervorrichtung und ein Robotervisionssystem, das die maschinelle Lernvorrichtung verwendet, und ein maschinelles Lernverfahren.
-
Um bei Robotersystemen Roboter in eine vorbestimmte Betätigung zu versetzen, ist ein Verfahren bekannt, das als visuelle Rückmeldung bezeichnet wird und ein Bild verwendet, das durch eine Kamera aufgenommen wird, die in einem Roboter bereitgestellt wird (beispielsweise in den Dokumenten
JP 2003 - 211 381 A ,
JP H09 - 076 185 A ,
JP 2010 - 188 432 A und
JP 2003 - 305 676 A ). Mit der Verwendung der visuellen Rückmeldung können die Robotersysteme unter Verwendung einer Korrekturbetätigung schneller eingerichtet werden.
-
-
Obwohl eine kurze Einrichtungszeit erreicht wird, weisen die Robotersysteme jedoch gewisse Probleme auf. Ein erstes Problem besteht darin, dass beispielsweise eine Zielmarke oder ein Merkmalspunkt im Voraus an einem Zielwerkstück vorbereitet werden muss. Ein zweites Problem besteht darin, dass ein Detektionsalgorithmus benötigt wird, um die Zielmarke oder den Merkmalspunkt in einem aufgenommenen Bild zu detektieren. Ein drittes Problem besteht darin, dass unbedingt Einrichtungsfachwissen notwendig ist, um vorbereitete Zielmarke oder den Merkmalspunkt konstant zu detektieren. Angesichts dieser Tatsachen können Bediener, welche die visuelle Rückmeldung verwenden, immer noch stark belastet sein.
-
Es besteht daher die Aufgabe, eine verbesserte maschinelle Lernvorrichtung, ein verbessertes Robotervisionssystem und ein verbessertes maschinelles Lernverfahren bereitzustellen, welche die vorangehend beschriebenen Nachteile zumindest teilweise überwinden.
-
Diese Aufgabe wird durch die Erfindung gelöst, welche durch die unabhängigen Patentansprüche definiert ist. Vorteilhafte Ausgestaltungen werden durch die abhängigen Patentansprüche definiert.
-
Ein Robotersystem, das eine herkömmliche visuelle Rückmeldung verwendet, erfordert, dass eine Zielmarke oder ein Merkmalspunkt an einem Zielwerkstück im Voraus vorbereitet wird, und weist daher das Problem auf, dass ein Bediener stark belastet wird.
-
Eine maschinelle Lernvorrichtung gemäß einer Ausführungsform der vorliegenden Offenbarung umfasst eine Zustandsbeobachtungseinheit, um als Zustandsvariablen ein Bild eines Werkstücks, das durch einen Sichtsensor in einer beliebigen Position aufgenommen wird, und einen Bewegungsbetrag eines Armendabschnitts eines Roboters gegenüber der beliebigen Position zu beobachten, wobei der Bewegungsbetrag berechnet wird, um das Bild einem Zielbild näherzubringen; eine Einheit zum Abrufen von Bestimmungsdaten, um das Zielbild als Bestimmungsdaten abzurufen; und eine Lerneinheit, um den Bewegungsbetrag des Armendabschnitts zu lernen, um den Armendabschnitt oder das Werkstück von der beliebigen Position in eine Zielposition zu bewegen, gemäß einem Trainingsdatensatz, der aus einer Kombination der Zustandsvariablen und der Bestimmungsdaten besteht. Die Zielposition ist eine Position, in welcher der Sichtsensor und das Werkstück eine vorbestimmte relative Positionsbeziehung aufweisen. Das Zielbild ist ein Bild des Werkstücks, das durch den Sichtsensor aufgenommen wird, wenn der Armendabschnitt oder das Werkstück in der Zielposition angeordnet ist.
-
Weiter umfasst die maschinelle Lernvorrichtung eine Entscheidungsbestimmungseinheit, um einen Betätigungsbefehl für den Roboter basierend auf dem Ergebnis, dass die Lerneinheit das Lernen gemäß dem Trainingsdatensatz ausgeführt hat, zu bestimmen, wobei die Entscheidungsbestimmungseinheit dazu eingerichtet ist, eine Berechnung zu wiederholen, bis der Bewegungsbetrag gleich oder kleiner als ein vorbestimmter Schwellenwert ist, nachdem der Armendabschnitt um den Bewegungsbetrag, der von der maschinellen Lernvorrichtung ausgegeben wird, bewegt wurde.
-
Ein maschinelles Lernverfahren gemäß einer Ausführungsform der vorliegenden Offenbarung umfasst die Schritte des Speicherns als Zielposition einer Position, in der ein Sichtsensor und ein Werkstück eine vorbestimmte relative Positionsbeziehung aufweisen; des Speicherns als Zielbild eines Bildes des Werkstücks, das durch einen Sichtsensor aufgenommen wird, wenn ein Armendabschnitt eines Roboters oder das Werkstück in der Zielposition angeordnet ist; des Beobachtens als Zustandsvariablen eines Bildes des Werkstücks, das in einer beliebigen Position aufgenommen wird, und eines Bewegungsbetrags des Armendabschnitts gegenüber der beliebigen Position, wobei der Bewegungsbetrag berechnet wird, um das Bild dem Zielbild näherzubringen; des Abrufens des Zielbilds als Bestimmungsdaten aus dem Zielbildspeicher, der das Zielbild speichert; und des Lernens des Bewegungsbetrags, um den Armendabschnitt oder das Werkstück von der beliebigen Position in die Zielposition zu bewegen, gemäß einem Trainingsdatensatz, der aus einer Kombination der Zustandsvariablen und der Bestimmungsdaten besteht.
-
Weiter umfasst das Lernverfahren den Schritt des Bestimmens eines Betätigungsbefehls für den Roboter basierend auf dem Ergebnis des Lernens gemäß dem Trainingsdatensatz, wobei eine Berechnung wiederholt wird, bis der Bewegungsbetrag gleich oder kleiner als ein vorbestimmter Schwellenwert ist, nachdem der Armendabschnitt um den Bewegungsbetrag bewegt wurde.
-
Zum besseren Verständnis der Erfindung dienen die 1 bis 8. Es zeigen:
- 1 ein Strukturdiagramm eines Robotervisionssystems, das eine maschinelle Lernvorrichtung umfasst;
- 2 ein Blockdiagramm des Robotervisionssystems, das die maschinelle Lernvorrichtung umfasst;
- 3 ein ausführliches Blockdiagramm des Robotervisionssystems, das die maschinelle Lernvorrichtung umfasst;
- 4 ein Blockdiagramm der maschinellen Lernvorrichtung;
- 5 ein Ablaufschema, das einen Arbeitsablauf eines maschinellen Lernverfahrens erklärt;
- 6 ein schematisches Diagramm eines Neuronenmodells;
- 7 ein schematisches Diagramm eines Modells eines neuronalen Netzwerks auf drei Ebenen; und
- 8 ein Ablaufschema, das einen Betätigungsarbeitsablauf erklärt, nachdem das Lernen durch das maschinelle Lernverfahren erfolgt ist.
-
Eine maschinelle Lernvorrichtung, eine Robotersteuervorrichtung und ein Robotervisionssystem, das die maschinelle Lernvorrichtung verwendet, und ein maschinelles Lernverfahren werden nachstehend mit Bezug auf die Zeichnungen beschrieben. Es wird ein Robotervisionssystem beschrieben, das eine maschinelle Lernvorrichtung umfasst. 1 ist ein Strukturdiagramm eines Robotervisionssystems 1000, das eine maschinelle Lernvorrichtung umfasst, und 2 ist ein Blockdiagramm des Robotervisionssystems 1000. Das Robotervisionssystem 1000 umfasst eine Robotersteuervorrichtung 20, einen Roboter 10, der an einem Werkstück 13 (Zielobjekt) eine Betätigung unter Verwendung eines Werkzeugs, das an einem Armendabschnitt 11 angebracht ist, ausführt, und einen Sichtsensor 12, der das Werkstück 13 bildlich erfasst.
-
Der Roboter 10 ist beispielsweise ein sechsachsiger Knickarmroboter, der eine vorbestimmte Betätigung an dem Werkstück 13 ausführt, das auf einem Maschinentisch 40 angeordnet ist. Falls beispielsweise eine Greifbetätigung an dem Werkstück 13 ausgeführt wird, wird eine Hand an dem Armendabschnitt 11 angebracht. Ohne Einschränkung auf dieses Beispiel kann jedoch ein Werkzeug für eine andere Betätigung, wie etwa Schweißen oder Polieren, an dem Armendabschnitt 11 angebracht werden. Der Armendabschnitt 11 kann nicht nur in einer waagerechten Richtung, sondern auch in einer senkrechten Richtung betätigt werden, und kann auch um eine Achse herum gedreht werden, die sich in der senkrechten Richtung erstreckt. Die derartige Bewegung des Armendabschnitts 11 kann ein Bild des Sichtsensors 12 anpassen, der an dem Armendabschnitt 11 bereitgestellt wird.
-
Wie in 1 gezeigt, wird der Sichtsensor 12 an dem Armendabschnitt 11 des Roboters 10 bereitgestellt. Alternativ kann der Sichtsensor 12 außerhalb des Roboters 10 feststehend bereitgestellt werden. In beiden Fällen nimmt der Sichtsensor 12 ein Bild des Werkstücks 13 auf, um den Armendabschnitt 11 derart zu bewegen, dass der Armendabschnitt 11 und das Werkstück 13 eine angestrebte relative Positionsbeziehung aufweisen. Der Sichtsensor 12 kann eine zweidimensionale Kamera oder ein dreidimensionaler Sensor (beispielsweise ein Entfernungssensor) sein. Ein Sichtsensor 12 wird in 1 beispielhaft bereitgestellt, es kann jedoch stattdessen eine Mehrzahl von Sichtsensoren bereitgestellt werden. Beispielsweise kann der Sichtsensor eine Stereokamera sein, die unter Verwendung von zwei zweidimensionalen Kameras eine Korrektur vornimmt.
-
Selbst wenn der Sichtsensor 12 an der Außenseite des Roboters 10 befestigt ist, kann der Armendabschnitt 11 um die Achse herum gedreht werden, die sich in der senkrechten Richtung erstreckt. Ein Bild des Werkstücks 13, das durch den Sichtsensor 12 aufgenommen wird, kann dadurch angepasst werden.
-
Der Sichtsensor 12 nimmt ein Bild des Werkstücks 13 auf, das auf dem Maschinentisch 40 angeordnet ist. Das aufgenommene Bild wird an einer Anzeigeeinheit 500 angezeigt. Beispielsweise wird, wenn der Sichtsensor 12 das Werkstück 13 bildlich erfasst, ein Werkstückbild 513 an der Anzeigeeinheit 500 angezeigt.
-
Die „Referenzposition“ ist eine Werkstückposition, die als Bezugspunkt beim Ausführen der vorbestimmten Betätigung an dem Werkstück 13 verwendet wird. Beispielsweise kann der Mittelpunkt einer Ebene auf dem Maschinentisch 40 als Referenzposition eingestellt werden.
-
Die „Zielposition“ ist die Position des Armendabschnitts 11 des Roboters 10, wenn der Armendabschnitt 11 und das Werkstück 13 eine vorbestimmte relative Positionsbeziehung aufweisen. Wenn beispielsweise die Greifbetätigung an dem Werkstück 13 unter Verwendung der Hand als Armendabschnitt 11 ausgeführt wird, kann eine Position, in welcher der Armendabschnitt 11 das Werkstück 13 zuverlässig ergreifen kann, als Zielposition eingestellt werden.
-
3 ist ein ausführliches Blockdiagramm des Robotervisionssystems, das die maschinelle Lernvorrichtung umfasst. Das Robotervisionssystem 1000 umfasst den Roboter 10, die Hand, d.h. den Armendabschnitt 11, den Sichtsensor 12 und die Robotersteuervorrichtung 20. Die Robotersteuervorrichtung 20 umfasst den Zielbildspeicher 22, einen Roboter-Controller 23 und eine maschinelle Lernvorrichtung 100. Die Robotersteuervorrichtung 20 kann ferner einen Zielpositionsspeicher 21 und einen Bewegungsbetragsrechner 5 umfassen.
-
Der Zielpositionsspeicher 21 speichert die zuvor beschriebene Zielposition. Der Zielbildspeicher 22 speichert ein Zielbild. Das „Zielbild“ ist ein Bild des Werkstücks 13, das durch den Sichtsensor 12 aufgenommen wird, wenn der Armendabschnitt 11 in der Zielposition angeordnet ist. Als Zielpositionsspeicher 21 und Zielbildspeicher 22 kann eine Speichervorrichtung, wie etwa ein RAM, verwendet werden.
-
Der Bewegungsbetragsrechner 5 berechnet einen Bewegungsbetrag des Armendabschnitts 11, um ein Bild des Werkstücks 13, das durch den Sichtsensor 12 aufgenommen wird, dem Zielbild näherzubringen. Der Bewegungsbetragsrechner 5 wird durch Software oder Firmware in einem Computer (CPU: Zentraleinheit) ausgebildet.
-
Der Roboter-Controller 23 steuert den Roboter 10 gemäß einem bestimmten Betätigungsbefehl. Als ein Beispiel des Betätigungsbefehls gibt es einen Drehmomentbefehl, um zu bewirken, dass der Roboter 10 eine vorbestimmte Betätigung ausführt, usw. Der Roboter-Controller 23 wird durch Software oder Firmware in dem Computer ausgebildet.
-
Als Nächstes wird die maschinelle Lernvorrichtung beschrieben. 4 ist ein Blockdiagramm der maschinellen Lernvorrichtung. Die maschinelle Lernvorrichtung 100 umfasst eine Zustandsbeobachtungseinheit 1, eine Einheit zum Abrufen von Bestimmungsdaten 2 und eine Lerneinheit 3. Die maschinelle Lernvorrichtung 100 wird durch Software unter Verwendung eines Computers ausgebildet, der die Robotersteuervorrichtung 20 bildet.
-
Die Zustandsbeobachtungseinheit 1 beobachtet als Zustandsvariablen ein Bild des Werkstücks 13, das durch den Sichtsensor 12 in einer beliebigen Position aufgenommen wird, und einen Bewegungsbetrag des Armendabschnitts 11 gegenüber der beliebigen Position, der berechnet wird, um das Bild dem Zielbild näherzubringen.
-
Die Einheit zum Abrufen von Bestimmungsdaten 2 ruft als Bestimmungsdaten das Zielbild aus dem Zielbildspeicher 22 ab.
-
Die Lerneinheit 3 lernt den Bewegungsbetrag, um den Armendabschnitt 11 von der beliebigen Position in die Zielposition zu bewegen, gemäß einem Trainingsdatensatz, der aus einer Kombination der Zustandsvariablen und der Bestimmungsdaten besteht. Wenn der Sichtsensor 12 an der Außenseite des Roboters 10 befestigt ist, wird ein Bewegungsbetrag des Armendabschnitts 11 erlernt, um das Werkstück 13 in eine Position (Zielposition) zu bewegen, in welcher der Sichtsensor 12 und das abgebildete Werkstück 13 eine angestrebte relative Positionsbeziehung aufweisen.
-
Bei dem Beispiel aus 2 wird der Bewegungsbetrag gemäß Trainingsdatensätzen berechnet, die von einem Roboter 10 erzielt werden, doch ist die vorliegende Erfindung nicht auf dieses Beispiel eingeschränkt. Bei der maschinellen Lernvorrichtung 100 kann die Lerneinheit 3 konfiguriert werden, um den Bewegungsbetrag gemäß Trainingsdatensätzen zu lernen, die von einer Mehrzahl von Robotern erzielt werden.
-
Wie in 2 gezeigt, umfasst die Lerneinheit 3 bevorzugt eine Belohnungsberechnungseinheit 31, die basierend auf der Position des Armendabschnitts 11 des Roboters nach einer Bewegung und auf der Zielposition eine Belohnung berechnet, und eine Funktionsaktualisierungseinheit 32, die eine Funktion aktualisiert, um einen Bewegungsbetrag des Armendabschnitts 11 aus vorliegenden Zustandsvariablen basierend auf Belohnungen vorherzusagen. Die Funktionsaktualisierungseinheit 32 führt bevorzugt ein Verstärkungslernen unter Verwendung eines so genannten Q-Lernens aus. Alternativ kann ein betreutes Lernen, das noch beschrieben wird, unter Verwendung als Etiketten von Datensätzen eines Bildes des Werkstücks 13, das durch den Sichtsensor 12, der in einer vorbestimmten Position angeordnet ist, aufgenommen wird, und eines Bewegungsbetrags des Armendabschnitts 11 von der vorbestimmten Position in die Zielposition ausgeführt werden. Beim betreuten Lernen wird, nachdem das Zielbild und die Zielposition in der Referenzposition gespeichert wurden, der Armendabschnitt 11 in eine geeignete Position bewegt, und es werden sein Bewegungsbetrag und ein Bild in seiner Position erzielt. Das Vorbereiten einer Mehrzahl der Sätze ermöglicht das Lernen der Beziehung zwischen der Variation der Bilder und des Bewegungsbetrags, und ermöglicht dadurch das automatische Erzielen einer großen Anzahl von Lerndatensätzen.
-
Der Armendabschnitt 11 kann derart bewegt werden, dass ein Bild des Werkstücks 13, das durch den Sichtsensor 12 aufgenommen wird, dem Zielbild nähergebracht wird. Je näher die Position des Roboters 10 nach der Bewegung, desto höher kann die bereitgestellte Belohnung sein.
-
Die Lerneinheit 3 aktualisiert bevorzugt eine Aktionswerttabelle, die dem Bewegungsbetrag des Armendabschnitts 11 entspricht, basierend auf den Zustandsvariablen und der Belohnung. Die Lerneinheit 3 berechnet bevorzugt die Zustandsvariablen, die durch die Zustandsbeobachtungseinheit 1 in einer Struktur aus mehreren Ebenen beobachtet wird, und aktualisiert die Aktionswerttabelle, um den Wert einer Aktion in Echtzeit zu bestimmen. Als ein Verfahren zum Berechnen der Zustandsvariablen in der Struktur aus mehreren Ebenen kann beispielsweise ein neuronales Netzwerk aus mehreren Ebenen verwendet werden, wie in 7 gezeigt.
-
Die Lerneinheit 3 kann basierend auf Zustandsvariablen und auf einer Belohnung eines anderen Roboters, der mit dem Roboter identisch ist, eine Wertfunktion aktualisieren, die einem Bewegungsbetrag eines Armendabschnitts des anderen Roboters entspricht. Bei dem Beispiel aus 2 wird eine eigene Wertfunktion unter Verwendung der Wertfunktion aktualisiert, die durch die Lerneinheit der maschinellen Lernvorrichtung selber aktualisiert wurde, doch ist die Aktualisierung nicht darauf eingeschränkt. Mit anderen Worten kann die eigene Wertfunktion unter Verwendung einer Wertfunktion aktualisiert werden, die durch eine Lerneinheit einer anderen maschinellen Lernvorrichtung als der eigenen maschinellen Lernvorrichtung aktualisiert wurde. Beispielsweise kann eine Datenaustauscheinheit zum Austauschen von Daten zwischen einer Mehrzahl von Robotersteuervorrichtungen ferner bereitgestellt werden, und der Lerninhalt durch eine maschinelle Lernvorrichtung einer anderen Robotersteuervorrichtung kann beim Lernen der eigenen maschinellen Lernvorrichtung verwendet werden.
-
Die Lerneinheit 3 kann konfiguriert sein, um den Bewegungsbetrag des Armendabschnitts 11 des Roboters 10 gemäß einem zusätzlichen Trainingsdatensatz, der aus einer Kombination von vorliegenden Zustandsvariablen und Bestimmungsdaten besteht, erneut zu lernen und zu aktualisieren.
-
Die maschinelle Lernvorrichtung 100 umfasst ferner bevorzugt eine Entscheidungsbestimmungseinheit 4, die einen Betätigungsbefehl für den Roboter 10 basierend auf dem Ergebnis bestimmt, dass die Lerneinheit 3 das Lernen gemäß dem Trainingsdatensatz ausgeführt hat. Die Entscheidungsbestimmungseinheit 4 berechnet einen Bewegungsbetrag (Aktionsdaten) des Armendabschnitts 11 des Roboters 10, um ein Bild des Werkstücks 13, das durch den Sichtsensor 12 aufgenommen wird, dem Zielbild näherzubringen, unter Verwendung des Bildes des Werkstücks 13, das in einer Position nach der Bewegung des Armendabschnitts 11 abgebildet wird, als Zustandsvariable und unter Verwendung des Zielbilds als Bestimmungsdaten. Beispielsweise berechnet die Entscheidungsbestimmungseinheit 4 einen Bewegungsbetrag des Armendabschnitts 11, um ein Bild des Werkstücks 13, das durch den Sichtsensor 12 aufgenommen wird, der an dem Armendabschnitt 11 des Roboters 10 bereitgestellt wird, der in einer beliebigen Position angeordnet ist, dem Zielbild näherzubringen.
-
Als Nächstes wird ein maschinelles Lernverfahren mit Bezug auf ein in 5 gezeigtes Ablaufschema beschrieben. Zunächst speichert der Zielpositionsspeicher 21 in Schritt S101 als Zielposition die Position des Armendabschnitts 11 des Roboters 10, wenn der Sichtsensor 12 und das Werkstück 13, die in eine Referenzposition versetzt wurden, eine vorbestimmte relative Positionsbeziehung aufweisen.
-
Als Nächstes speichert der Zielbildspeicher 22 in Schritt S102 als Zielbild ein Bild des Werkstücks 13, das in die Referenzposition versetzt wurde, das durch den Sichtsensor 12 aufgenommen wird, der in dem Armendabschnitt 11 bereitgestellt wird, der in der Zielposition angeordnet ist.
-
Als Nächstes misst die Zustandsbeobachtungseinheit 1 in Schritt S103 als Zustandsvariablen ein Bild des Werkstücks 13, das durch den Sichtsensor 12, der in einer beliebigen Position angeordnet ist, aufgenommen wird, und einen Bewegungsbetrag des Armendabschnitts 11 gegenüber der beliebigen Position, der berechnet wird, um das Bild dem Zielbild näherzubringen.
-
Als Nächstes wird in Schritt S104 das Zielbild aus dem Zielbildspeicher 22, der das Zielbild speichert, als Bestimmungsdaten erzielt.
-
Als Nächstes wird in Schritt S105 der Bewegungsbetrag, um den Armendabschnitt 11 von der beliebigen Position in die Zielposition zu bewegen, gemäß einem Trainingsdatensatz, der aus einer Kombination der Zustandsvariablen und der Bestimmungsdaten besteht, erlernt.
-
Als Nächstes wird in Schritt S106 bestimmt, ob die Differenz zwischen der Position des Armendabschnitts 11 nach der Bewegung und der Zielposition gleich oder kleiner als ein erster Schwellenwert ist oder nicht. Wenn die Differenz zwischen der Position des Armendabschnitts 11 nach der Bewegung und der Zielposition gleich oder kleiner als der erste Schwellenwert ist, wird bestimmt, dass die Positionsbeziehung zwischen dem Sichtsensor 12 und dem Werkstück 13 die gleiche wie die Positionsbeziehung zum Zeitpunkt der Aufnahme des Zielbilds ist, und dadurch ist das Lernen beendet. Der erste Schwellenwert wird bevorzugt innerhalb eines Bereichs eingestellt, in dem der Roboter 10 eine vorbestimmte Betätigung an dem Werkstück 13 unter Verwendung eines Werkzeugs ausführen kann, das an dem Armendabschnitt 11 angebracht ist.
-
Wenn andererseits die Differenz den ersten Schwellenwert überschreitet, kehrt der Prozess zu Schritt S103 zurück, ein Bewegungsbetrag des Armendabschnitts wird wiederholt berechnet, bis die Differenz zwischen der Position des Armendabschnitts 11 nach der Bewegung und der Zielposition gleich oder kleiner als der erste Schwellenwert ist. Wie zuvor beschrieben, nachdem der Armendabschnitt 11 um den Bewegungsbetrag bewegt wurde, der von der maschinellen Lernvorrichtung 100 ausgegeben wird, wiederholt die Entscheidungsbestimmungseinheit 4 ihre Betätigung, bis die Differenz zwischen der Position des Armendabschnitts 11 nach der Bewegung und der Zielposition gleich oder kleiner als ein vorbestimmter Schwellenwert (erster Schwellenwert) ist. Nach der Bewegung um die Bewegungsbeträge, die durch das Lernen der maschinellen Lernvorrichtung 100 erzielt werden, führt der Roboter 10 eine vorbestimmte Betätigung in dieser Position als Ausgangspunkt aus.
-
Das Beispiel des Bewegens des Armendabschnitts 11 wurde zuvor beschrieben, doch kann das Lernen ebenso erfolgen, wenn der Sichtsensor 12 außerhalb des Roboters 100 bereitgestellt wird. Wenn der Sichtsensor 12 außerhalb des Roboters 10 bereitgestellt wird, werden ein Bild, das die relative Positionsbeziehung zwischen dem Sichtsensor 12 und dem Werkstück 13 abbildet und vor der Bewegung des Armendabschnitts 11 aufgenommen wurde, und ein Bewegungsbetrag als Zustandsvariablen eingestellt, und der Bewegungsbetrag kann erlernt werden, indem ein Bild, das eine angestrebte relative Positionsbeziehung zwischen dem Sichtsensor 12 und dem Werkstück 13 darstellt, als Bestimmungsdaten (Zielbild) eingestellt wird.
-
Das Ablaufschema aus 5 beschreibt ein Beispiel, bei dem die Größenbeziehung zwischen der Differenz zwischen der Position des Armendabschnitts 11 nach der Bewegung und der Zielposition und dem ersten Schwellenwert jedes Mal bestimmt wird, wenn sich der Armendabschnitt 11 bewegt, doch ist die vorliegende Erfindung nicht auf dieses Beispiel eingeschränkt. Mit anderen Worten kann, um die zum Lernen benötigte Zeit zu reduzieren, die Anzahl von Vergleichen zwischen der Differenz zwischen der Position des Armendabschnitts 11 nach der Bewegung und der Zielposition und dem ersten Schwellenwert eingeschränkt werden. Als ein Verfahren zum Einschränken der Anzahl kann beispielsweise die Anzahl von Vergleichen im Voraus bestimmt werden. Alternativ kann die Differenz zwischen der Position des Armendabschnitts 11, nachdem er mit einer vorbestimmten Häufigkeit bewegt wurde, und der Zielposition nur einmal mit dem Schwellenwert verglichen werden. Alternativ kann die Differenz zwischen der Position des Armendabschnitts 11 nach der Bewegung und der Zielposition als Reaktion auf einen Benutzerbefehl mit dem Schwellenwert verglichen werden.
-
Die in 2 gezeigte maschinelle Lernvorrichtung 100 wird ausführlich beschrieben. Die maschinelle Lernvorrichtung 100 weist die Funktion des Erlernens von Wissen sowie die Funktionen des Entnehmens von nützlichen Regeln, Wissensdarstellungen, Kriterien usw. aus einer Datengruppe, die in die Vorrichtung eingegeben wird, durch Analyse und des Ausgebens von Bestimmungsergebnissen auf. Dafür gibt es diverse Verfahren, die grob in „betreutes Lernen“, „unbetreutes Lernen“ und „Verstärkungslernen“ unterteilt werden. Wenn diese Verfahren ausgebildet werden, wird des Weiteren ein so genanntes „tiefgehendes Lernverfahren“ zum Lernen des Entnehmens der Merkmale selber verwendet.
-
Beim „betreuten Lernen“ wird eine große Menge von Datenpaaren aus einer Eingabe und einem Ergebnis (Etikett) einer Lernvorrichtung (maschinellen Lernvorrichtung) bereitgestellt. Die maschinelle Lernvorrichtung kann Merkmale aus dem Datensatz erlernen und erzielt heuristisch ein Modell, um ein Ergebnis aus einer Eingabe, d.h. die Beziehung dazwischen, vorherzusagen. Bei diesem Beispielkann das betreute Lernen bei der Berechnung eines Bewegungsbetrags, um den Armendabschnitt 11 von einer beliebigen Position in eine Zielposition zu bewegen, basierend auf einem Messergebnis der Zustandsbeobachtungseinheit 1, wozu ein Bewegungsbetrag des Armendabschnitts 11 des Roboters 10, ein Bild des Werkstücks 13 usw. gehören, und auf einer Belohnung der Belohnungsberechnungseinheit 31 verwendet werden. Das obige Lernen kann unter Verwendung eines Algorithmus, wie etwa eines neuronalen Netzwerks, das noch beschrieben wird, ausgebildet werden.
-
Beim „unbetreuten Lernen“ wird nur eine große Menge von Eingangsdaten für eine Lernvorrichtung (maschinelle Lernvorrichtung) bereitgestellt. Die maschinelle Lernvorrichtung erlernt die Verteilung der Eingangsdaten und wendet Komprimierung, Klassifizierung, Ausrichtung usw. auf die Eingangsdaten an, ohne entsprechende Ausgangsdaten als Betreuer bereitzustellen. Die Merkmale des Datensatzes können basierend auf ihrer Ähnlichkeit zusammengefasst werden. Mit der Verwendung dieses Ergebnisses wird ein gewisses Kriterium bereitgestellt, und eine Ausgabe wird zugeteilt, um das Kriterium zu optimieren, wodurch eine Vorhersage der Ausgabe ermöglicht wird. Es gibt auch ein Verfahren, das als „halbbetreutes Lernen“ bezeichnet wird, als dazwischenliegende Problemstellung zwischen dem „betreuten Lernen“ und dem „unbetreuten Lernen“. Bei dem „halbbetreuten Lernen“ umfasst ein Teil der Daten Paare aus einer Eingabe und einer Ausgabe, während der andere nur Eingaben umfasst.
-
Beim Verstärkungslernen ist die Problemstellung wie folgt.
- - Die maschinelle Lernvorrichtung 100 beobachtet den Zustand einer Umgebung 200 und bestimmt eine Aktion.
- - Die Umgebung 200 ändert sich gemäß einer gewissen Regel, und zudem ändert manchmal eine Aktion des Roboters selber die Umgebung.
- - Ein Belohnungssignal kehrt jedes Mal zurück, wenn eine Aktion ausgeführt wird.
- - Ziel ist es, eine gesamte (Ermäßigungs-) Belohnung in der Zukunft zu maximieren.
- - Das Lernen beginnt in einem Zustand, in dem ein Ergebnis, das durch eine Aktion erbracht wird, gar nicht oder nur unzureichend bekannt ist. Die Robotersteuervorrichtung 20 kann das Ergebnis erst als Daten erzielen, nachdem der Armendabschnitt 11 des Roboters 10 oder das Werkstück 13 tatsächlich betätigt wurde. Mit anderen Worten ist es notwendig, durch Ausprobieren nach einer optimalen Aktion zu suchen.
- - Das Lernen kann an einem guten Ausgangspunkt beginnen, indem ein Vorlernen (unter Verwendung eines Verfahrens des zuvor beschriebenen betreuten Lernens oder des umgekehrten Verstärkungslernens verwendet wird) erfolgt, um in einem Anfangszustand die Aktion einer Person nachzuahmen.
-
Das „Verstärkungslernen“ ist ein Verfahren zum Lernen einer optimalen Aktion basierend auf der Interaktion einer Aktion mit einer Umgebung durch das Lernen der Aktion, sowie auf einer Bestimmung und Klassifizierung, mit anderen Worten ein Lernverfahren, um eine Gesamtbelohnung zu maximieren, die in der Zukunft zu erzielen ist. Bei dem vorliegenden Beispiel bedeutet dies, dass eine Aktion, die eine Wirkung auf die Zukunft hat, erzielt werden kann. Die folgende Beschreibung nimmt das Q-Lernen zum Beispiel, doch ist die vorliegende Erfindung nicht darauf eingeschränkt.
-
Das Q-Lernen ist ein Verfahren zum Lernen eines Wertes Q(s, a) zum Auswählen einer Aktion „a“ in einem gewissen Umgebungszustand „s“. Mit anderen Worten wird in einem gewissen Zustand „s“, eine Aktion „a“, die den höchsten Wert Q(s, a) aufweist, als eine optimale Aktion ausgewählt. Bezüglich einer Kombination eines Zustands „s“ und einer Aktion „a“ ist jedoch ein richtiger Wert Q(s, a) am Anfang gar nicht bekannt. Somit wählt ein Agent (Aktionssubjekt) diverse Aktionen „a“ in einem gewissen Zustand „s“ und erhält eine Belohnung für jede Aktion „a“. Daher lernt es der Agent, eine bessere Aktion, d.h. einen richtigen Wert Q(s, a), auszuwählen.
-
Als Ergebnis der Aktionen ist es erwünscht, eine Gesamtbelohnung, die in der Zukunft zu erzielen ist, zu maximieren. Daher besteht das Ziel darin, schließlich Q(s, a) = E[Σγ
tr
t] (einen erwarteten Ermäßigungswert der Belohnungen, γ: Ermäßigungsrate) zu erzielen (ein erwarteter Wert wird übernommen, wenn sich ein Zustand gemäß optimalen Aktionen ändert. Da die optimalen Aktionen nicht bekannt waren, müssen die optimalen Aktionen natürlich beim Lernen ausfindig gemacht werden.) Beispielsweise wird eine Aktualisierungsgleichung für einen Wert Q(s, a) wie folgt dargestellt:
wobei st einen Umgebungszustand zu einem Zeitpunkt t darstellt, und at eine Aktion zu dem Zeitpunkt t darstellt. Durch das Ausführen der Aktion at ändert sich der Zustand auf s
t+i. „r
t+1“ stellt eine Belohnung dar, die durch die Zustandsänderung bereitgestellt wird. Ein Term mit „max“ stellt das Produkt aus einem Wert Q, wenn eine Aktion „a“, die den höchsten Wert Q aufweist, der zu diesem Zeitpunkt bekannt war, in dem Zustand s
t+1 ausgewählt wird, und γ dar. „γ“ ist ein Parameter 0 < γ ≤ 1, der als Ermäßigungsfaktor bezeichnet wird. „α“ ist eine Lernrate in dem Bereich von 0 < α ≤ 1.
-
Diese Gleichung gibt ein Verfahren zum Aktualisieren eines Wertes Q(st, at) einer Aktion at in einem Zustand st basierend auf einer Belohnung rt+1 an, die als Ergebnis der Aktion at zurückgekommen ist. Diese Gleichung gibt an, dass wenn ein Wert Q(st+1, max at+1) einer optimalen Aktion „max a“ in dem nächsten Zustand, der von einer Belohnung rt+1 abgeleitet wird, plus einer Aktion „a“ höher als der Wert Q(st, at) der Aktion at in dem Zustand st ist, Q(st, at) erhöht wird. Wenn nicht, wird Q(st, at) verringert. Mit anderen Worten wird der Wert einer Aktion in einem gewissen Zustand einem optimalen Aktionswert in dem nächsten Zustand genähert, der von einer Belohnung abgeleitet wird, die sofort als Ergebnis der Aktion und der Aktion selber zurückkehrt.
-
Es gibt zwei Verfahren zum Darstellen der Werte Q(s, a) in einem Computer, nämlich ein Verfahren, bei dem die Werte Q aller Zustands-Aktions-Paare (s, a) in einer Tabelle (Aktionswerttabelle) festgehalten werden, und ein Verfahren, bei dem eine Funktion zum Nähern der Werte Q(s, a) vorbereitet wird. Bei dem letztgenannten Verfahren kann die zuvor beschriebene Aktualisierungsgleichung durch Anpassen eines Parameters für eine Näherungsfunktion unter Verwendung eines stochastischen konjugierten Gradientenverfahrens usw. ausgebildet sein. Als Näherungsfunktion kann ein neuronales Netzwerk verwendet werden, wie es noch beschrieben wird.
-
Als Näherungsalgorithmus für eine Wertfunktion beim betreuten Lernen, dem unbetreuten Lernen und dem Verstärkungslernen kann ein neuronales Netzwerk verwendet werden. Das neuronale Netzwerk besteht beispielsweise aus einer arithmetischen Einheit, einem Speicher usw., die ein Neuronenmodell nachahmen, wie in 6 gezeigt.
-
Wie in
6 gezeigt, erzeugt ein Neuron eine Ausgabe y als Reaktion auf eine Mehrzahl von Eingaben x (beispielsweise die Eingaben x
1 bis x
3). Auf jede der Eingaben x
1 bis x
3 wird eine Gewichtung w (w
1 bis w
3) angewendet, die der Eingabe x entspricht. Somit erzeugt das Neuron die Ausgabe y, die durch die folgende Gleichung dargestellt wird. Es sei zu beachten, dass die Eingabe x, die Ausgabe y und die Gewichtung w allesamt Vektoren sind.
wobei θ eine systematische Abweichung und f
k eine Aktivierungsfunktion ist.
-
Als Nächstes wird ein neuronales Netzwerk, das Gewichtungen von drei Ebenen aufweist und aus einer Kombination der zuvor beschriebenen Neuronen besteht, mit Bezug auf 7 beschrieben. 7 ist ein schematisches Diagramm eines neuronalen Netzwerks, das Gewichtungen der drei Ebenen D1 bis D3 aufweist.
-
Wie in 7 gezeigt, wird eine Mehrzahl von Eingaben x (beispielsweise die Eingaben x1 bis x3) von der linken Seite des neuronalen Netzwerks aus eingegeben, und ein Ergebnis y (beispielsweise die Ergebnisse y1 bis y3) wird auf der rechten Seite desselben ausgegeben.
-
Genauer gesagt werden die Eingaben x1 bis x3 in jedes der drei Neuronen N11 bis N13 eingegeben, während sie entsprechend gewichtet werden. Die Gewichtungen, die auf die Eingaben angewendet werden, werden insgesamt durch W1 angegeben.
-
Die Neuronen N11 bis N13 geben jeweils die Vektoren Z11 bis Z13 aus. Die Vektoren Z11 bis Z13 werden insgesamt durch einen Merkmalsvektor Z1 angegeben, der als ein Vektor angesehen wird, der Merkmalsbeträge aus den Eingangsvektoren entnimmt. Der Merkmalsvektor Z1 ist ein Merkmalsvektor zwischen der Gewichtung W1 und einer Gewichtung W2.
-
Die Vektoren Z11 bis Z13 werden in jedes von zwei Neuronen N21 und N22 eingegeben, wobei sie entsprechend gewichtet werden. Die Gewichtungen, die auf die Merkmalsvektoren angewendet werden, werden insgesamt durch W2 angegeben.
-
Die Neuronen N21 und N22 geben jeweils die Vektoren Z21 und Z22 aus. Die Vektoren Z21 und Z22 werden insgesamt durch einen Merkmalsvektor Z2 angegeben. Der Merkmalsvektor Z2 ist ein Merkmalsvektor zwischen der Gewichtung W2 und einer Gewichtung W3.
-
Die Merkmalsvektoren Z21 und Z22 werden in jedes von drei Neuronen N31 bis N33 eingegeben, wobei sie entsprechend gewichtet werden. Die Gewichtungen, die auf die Merkmalsvektoren angewendet werden, werden insgesamt durch W3 angegeben.
-
Schließlich geben die Neuronen N31 bis N33 jeweils die Ergebnisse y1 bis y3 aus.
-
Das neuronale Netzwerk funktioniert in einem Lernmodus oder einem Wertvorhersagemodus. Im Lernmodus wird die Gewichtung W unter Verwendung eines Lerndatensatzes erlernt. Im Wertvorhersagemodus wird die Aktion des Roboters 10 unter Verwendung des Parameters bestimmt (der Begriff „Vorhersage“ wird aus praktischen Gründen verwendet, es können jedoch diverse Aufgaben erfüllt werden, wozu eine Detektion, Klassifizierung, Inferenz usw. gehören).
-
Im Wertvorhersagemodus können Daten, die durch die tatsächliche Betätigung des Roboters 10 erzielt wurden, sofort erlernt und in der nächsten Aktion wiedergegeben werden (Online-Lernen). Das Lernen kann auch gemeinsam unter Verwendung einer Datengruppe, die im Voraus erhoben wird, erfolgen, und danach kann ein Detektionsmodus unter Verwendung des Parameters ausgeführt werden (Stapellernen). Bei einer dazwischenliegenden Methode kann der Lernmodus jedes Mal ausgeführt werden, wenn sich eine gewisse Datenmenge angesammelt hat.
-
Die Gewichtungen W1 bis W3 können unter Verwendung eines Fehlerrückführungsalgorithmus (Rückführungsalgorithmus) erlernt werden. Die Information über einen Fehler tritt von rechts aus ein und breitet sich nach links aus. Der Fehlerrückführungsalgorithmus ist ein Verfahren, bei dem jede Gewichtung mit Bezug auf jedes Neuron angepasst (erlernt) wird, um die Differenz zwischen einer Ausgabe y als Reaktion auf eine Eingabe x und eine richtige Ausgabe y (Betreuer) zu minimieren.
-
Ein derartiges neuronales Netzwerk kann mehr als drei Ebenen aufweisen (was als tiefgehendes Lernen bezeichnet wird). Eine arithmetische Einheit, die eine Merkmalsentnahme aus Eingaben in Stufen und eine Regression von Ergebnissen ausführt, kann nur aus Betreuerdaten automatisch erfasst werden.
-
Entsprechend umfasst, um das zuvor beschriebene Q-Lernen auszuführen, wie in 2 gezeigt, die maschinelle Lernvorrichtung 100 gemäß des vorliegenden Beispiels die Zustandsbeobachtungseinheit 1, die Lerneinheit 3 und die Entscheidungsbestimmungseinheit 4. Ein maschinelles Lernverfahren, das auf die vorliegende Erfindung angewendet wird, ist jedoch nicht auf das Q-Lernen eingeschränkt. Beispielsweise entspricht für den Fall des Anwendens des betreuten Lernens eine Wertfunktion einem Lernmodell, und eine Belohnung entspricht einem Fehler.
-
Wie in 2 gezeigt, umfasst der Zustand der Robotersteuervorrichtung 20 einen Zustand, der indirekt durch eine Aktion geändert wird, und einen Zustand, der direkt durch eine Aktion geändert wird. Der Zustand, der indirekt durch eine Aktion geändert wird, umfasst einen Bewegungsbetrag des Armendabschnitts 11 des Roboters 10. Der Zustand, der direkt durch eine Aktion geändert wird, umfasst ein Bild des Werkstücks 13 nach der Bewegung des Armendabschnitts 11 des Roboters 10.
-
Die Lerneinheit 3 aktualisiert Aktionswerte, die vorliegenden Zustandsvariablen und Aktionen entsprechen, die der Aktionswerttabelle basierend auf der Aktualisierungsgleichung und den Belohnungen entnommen werden könnten.
-
Die maschinelle Lernvorrichtung 100 kann konfiguriert sein, um an die Robotersteuervorrichtung 20 über ein Netzwerk angeschlossen zu sein, und die Zustandsbeobachtungseinheit 1 kann konfiguriert sein, um einen Bewegungsbetrag, der durch die maschinelle Lernvorrichtung 100 berechnet wird, über das Netzwerk auf die Robotersteuervorrichtung 20 zu übertragen. Die maschinelle Lernvorrichtung 100 ist bevorzugt in einem Cloud-Server installiert.
-
Nachdem das Lernen wie zuvor beschrieben fertiggestellt ist, führt der Roboter 10 tatschlich eine Betätigung an dem Werkstück 13 aus. Beim tatsächlichen Ausführen der Betätigung wird das Werkstück 13 gegenüber der Referenzposition in eine andere Position versetzt. Mit der Verwendung der Lernvorrichtung (Lernsteuervorrichtung), die wie zuvor beschrieben gelernt hat, wird die relative Beziehung zwischen dem Sichtsensor 12 und dem Werkstück 13 die gleiche wie die relative Beziehung zwischen dem Sichtsensor 12 des Armendabschnitts 11 des Roboters 10 in der Zielposition und dem Werkstück 13 in der Referenzposition. Es sei zu beachten, dass ein einmaliges Lernen vielleicht nicht in der Lage ist, genau die gleiche relative Beziehung zu erreichen, doch dass wiederholtes Lernen in der Lage ist, die relative Beziehung näher an diese heran zu bringen. Mit anderen Worten wird der Zielpositionsspeicher 21 zum Speichern der Zielposition bereitgestellt, und während ein Bewegungsbetrag wiederholt berechnet wird, lernt die maschinelle Lernvorrichtung 100 den Bewegungsbetrag, um den Armendabschnitt 11 von einer beliebigen Position in die Zielposition zu bewegen, die in dem Zielpositionsspeicher 21 gespeichert ist.
-
8 ist ein Ablaufschema, das einen Betätigungsarbeitsablauf erklärt, nachdem das Lernen durch das maschinelle Lernverfahren ausgeführt wurde. Zuerst wird in Schritt S201 das Werkstück 13, das in eine beliebige Position versetzt wird, bildlich erfasst.
-
Als Nächstes wird in Schritt S202 ein Bewegungsbetrag des Armendabschnitts 11 gegenüber einer beliebigen Position, um das aufgenommene Bild des Werkstücks 13 einem Zielbild näherzubringen, aus einem Lernmodell berechnet.
-
Als Nächstes wird in Schritt S203 der Armendabschnitt 11 basierend auf dem berechneten Bewegungsbetrag bewegt.
-
Als Nächstes wird in Schritt S204 ein Bewegungsbetrag des Armendabschnitts 11 erneut aus einem Bild des Werkstücks 13 berechnet, das nach oder während der Bewegung aufgenommen wird.
-
Als Nächstes wird in Schritt S205 bestimmt, ob der Bewegungsbetrag gleich oder kleiner als ein zweiter Schwellenwert ist oder nicht. Wenn der Bewegungsbetrag gleich oder kleiner als der zweite Schwellenwert ist, ist die Positionsbeziehung zwischen dem Sichtsensor 12 und dem Werkstück 13 die gleiche wie die, wenn das Zielbild aufgenommen wird. In diesem Fall wird in Schritt S206 eine Betätigung an dem Werkstück 13 ausgeführt. Der zweite Schwellenwert wird bevorzugt innerhalb eines Bereichs eingestellt, in dem der Roboter 10 die vorbestimmte Betätigung an dem Werkstück 13 unter Verwendung eines Werkzeugs, das an dem Armendabschnitt 11 angebracht ist, ausführen kann.
-
Wenn andererseits der Bewegungsbetrag den zweiten Schwellenwert überschreitet, kehrt die Betätigung zu Schritt S202 zurück, ein Bewegungsbetrag des Armendabschnitts 11 wird wiederholt berechnet, bis der Bewegungsbetrag gleich oder kleiner als der zweite Schwellenwert ist. Wie zuvor beschrieben, nachdem der Armendabschnitt 11 um den Bewegungsbetrag bewegt wurde, der von der maschinellen Lernvorrichtung 100 ausgegeben wird, wiederholt die Entscheidungsbestimmungseinheit 4 die Berechnung, bis der Bewegungsbetrag gleich oder kleiner als der vorbestimmte Schwellenwert (zweite Schwellenwert) ist.
-
Der zweite Schwellenwert, der beim Ausführen der Betätigung verwendet wird, ist bevorzugt gleich dem ersten Schwellenwert, der beim Lernen verwendet wird, oder der erste Schwellenwert ist bevorzugt kleiner als der zweite Schwellenwert. Durch das Einstellen des ersten Schwellenwertes auf weniger als den zweiten Schwellenwert kann die vorbestimmte Betätigung basierend auf einem richtigen Bewegungsbetrag, der durch das Lernen berechnet wird, ausgeführt werden.
-
In der obigen Beschreibung werden der Schritt des Lernens und der Schritt des Ausführens einer Betätigung getrennt ausgeführt, doch ist die vorliegende Erfindung nicht auf dieses Beispiel eingeschränkt. Beispielsweise können der Schritt des Lernens und der Schritt des Ausführens einer Betätigung gleichzeitig erfolgen. Das gleichzeitige Ausführen des Schritts des Lernens und des Schritts des Ausführens einer Betätigung ermöglicht es, die Zeit zu reduzieren, die für den Schritt des Lernens benötigt wird, und die Lerngenauigkeit weiter zu verbessern.
-
Wie zuvor beschrieben, ermöglicht es das Robotervisionssystem dem Roboter, sich in eine Zielposition zu begeben, indem nur ein Zielbild eingestellt wird, ohne ein Modell (ein Modellmuster zum Detektieren eines Objekts aus einem Bild, d.h. eine Vorlage durch Vorlagenabgleich), ein Einlernen, einen Detektionsalgorithmus oder spezielle Fachkenntnisse zu benötigen.
-
Die maschinelle Lernvorrichtung und das maschinelle Lernverfahren beseitigen die Notwendigkeit der Vorbereitung einer Zielmarke oder eines Merkmalspunkts im Voraus, bevor eine vorbestimmte Betätigung an einem Werkstück unter Verwendung eines Roboters ausgeführt wird, wobei ein Bild des Werkstücks verwendet wird, so dass sich die Arbeitslast für den Bediener reduziert.