-
Die vorliegende Erfindung betrifft eine maschinelle Lernvorrichtung, einen Roboter-Controller, ein Robotersystem und ein maschinelles Lernverfahren zum Lernen des Handlungsmusters einer Person.
-
Um bei herkömmlichen Techniken die menschliche Sicherheit zu gewährleisten, werden Sicherheitsmaßnahmen getroffen, um zu untersagen, dass Personen in den Arbeitsbereich eines Roboters eintreten, wenn ein Roboter angetrieben wird. Beispielsweise ist ein Roboter von einem Sicherheitszaun umgeben, um es Personen zu untersagen, während des Zeitraums, in dem der Roboter angetrieben wird, über den Sicherheitszaun zu klettern. In letzter Zeit ist ein Robotersystem bekannt, das es einer Person ermöglicht, mit einem Roboter zusammen zu arbeiten. Das Robotersystem ermöglicht es dem Roboter und der Person, gleichzeitig einen Arbeitsschritt auszuführen, ohne den Roboter mit einem Sicherheitszaun zu umgeben.
-
Die japanische Offenlegungsschrift
JP 2015 - 123 505 A offenbart einen Industrieroboter, der in Zusammenarbeit mit einer Person funktioniert. Der Roboter umfasst eine bewegbare Einheit, ein Schutzelement und einen Detektor. Die bewegbare Einheit wird von dem Sockelabschnitt getragen. Das Schutzelement besteht aus einem Material, das eine Steifigkeit aufweist, die geringer als die der bewegbaren Einheit ist und die Peripherie der bewegbaren Einheit abdeckt. Der Detektor befindet sich in der bewegbaren Einheit und detektiert eine externe Krafteingabe über das Schutzelement.
-
Ein allgemeiner Industrieroboter wird gemäß einem Betriebsprogramm angetrieben, das im Voraus erstellt wird. Alternativ wird der Roboter angetrieben, um durch einen Einlernpunkt zu gehen, der beispielsweise über ein Handbediengerät im Voraus eingelernt wird. Mit anderen Worten wird der Roboter auf einer vorbestimmten Bahn angetrieben.
-
Selbst bei einem Robotersystem, das es einer Person ermöglicht, mit einem Roboter zusammen zu arbeiten, kann die Bahn des Roboters im Voraus eingestellt werden, um den Roboter auf der generierten Bahn fahren zu lassen. Wenn jedoch eine Person mit dem Roboter zusammen arbeitet, kann mehr als ein Arbeitsverfahren auswählbar sein. Beispielsweise können in Fabriken zur Herstellung von Produkten Werkstücke von Start- zu Zielpositionen transportiert werden. Um Werkstücke zu transportieren, können die Werkstücke durch Zusammenarbeit zwischen der Person und dem Roboter angehoben werden und zu den Zielpositionen transportiert werden. Der Roboter kann zu transportierende Objekte anheben und transportieren. In diesem Fall sind zahlreiche Optionen verfügbar, z.B. für die Ausrichtung und Geschwindigkeit, mit denen die Werkstücke angehoben werden.
-
Die Belastungshöhe für eine Person variiert für jedes Verfahren zum Steuern eines Roboters, um ein Werkstück zu handhaben. Selbst wenn beispielsweise der gleiche Arbeitsschritt ausgeführt wird, variiert das Ausmaß der Ermüdung einer Person, und die Belastungshöhe variiert auch in Abhängigkeit von der Geschwindigkeit oder der Entfernung zu der Person. Es wird daher bevorzugt, ein geeignetes Verfahren zum Steuern eines Roboters einzustellen. Es gibt jedoch zahlreiche Verfahren, um einen Roboter zu steuern. Zudem kann eine Person je nach der ausgeführten Arbeit verschiedene Handlungsmuster aufweisen. Dadurch wird es schwierig, ein optimales Verfahren zum Steuern eines Roboters gemäß den Arbeitseinzelheiten einzustellen.
-
-
Es ist Aufgabe der vorliegenden Erfindung, eine maschinelle Lernvorrichtung, Robotersysteme und ein maschinelles Lernverfahren bereitzustellen, durch welche die oben genannten Probleme vermieden werden.
-
Diese Aufgabe wird erfindungsgemäß durch eine maschinelle Lernvorrichtung, Robotersysteme und ein maschinelles Lernverfahren gemäß den unabhängigen Ansprüchen gelöst. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen genannt.
-
Gemäß einem ersten Aspekt wird eine maschinelle Lernvorrichtung für einen Roboter bereitgestellt, die es einer Person und dem Roboter ermöglicht, zusammen zu arbeiten, wobei die maschinelle Lernvorrichtung Folgendes umfasst: eine Zustandsbeobachtungseinheit, die eine Zustandsvariable beobachtet, die einen Zustand des Roboters während eines Zeitraums, in dem die Person und der Roboter zusammen arbeiten, darstellt; eine Einheit zum Erzielen von Bestimmungsdaten, die Bestimmungsdaten für mindestens eine von einer Belastungshöhe für die Person und einer Arbeitseffizienz erzielt; und eine Lerneinheit, die einen Trainingsdatensatz zum Einstellen einer Handlung des Roboters basierend auf der Zustandsvariablen und den Bestimmungsdaten lernt.
-
Die Zustandsvariable umfasst mindestens eines von einer Position, einer Ausrichtung, einer Geschwindigkeit und einer Beschleunigung des Roboters. Die Bestimmungsdaten umfassen bevorzugt mindestens eine von einer Größenordnung und einer Richtung einer Last, die von dem Roboter erfasst werden, einer Größenordnung und einer Richtung einer Last, die von einer Umgebung um den Roboter herum erfasst werden, einer Belastungshöhe für die Umgebung um den Roboter herum, und einer Zeit, die benötigt wird, um den Roboter zu bewegen.
-
Der Trainingsdatensatz kann Folgendes umfassen: eine Handlungswertvariable, die einen Wert einer Handlung des Roboters darstellt, der für jeden Zustand des Roboters und jede Handlung des Roboters eingestellt wird, und die Lerneinheit kann eine Belohnungsberechnungseinheit umfassen, die basierend auf den Bestimmungsdaten und der Zustandsvariablen eine Belohnung einstellt; und eine Funktionsaktualisierungseinheit, welche die Handlungswertvariable basierend auf der Belohnung und der Zustandsvariablen aktualisiert. Die Belohnungsberechnungseinheit kann eine größere Belohnung für einen kleineren absoluten Wert einer Beschleunigung des Roboters und ein größere Belohnung für eine kürzere Zeit, die benötigt wird, um den Roboter zu bewegen, einstellen.
-
Der Trainingsdatensatz kann Folgendes umfassen: ein Lernmodell für den Roboter, das für jeden Zustand des Roboters und jede Handlung des Roboters eingestellt ist, und die Lerneinheit kann eine Fehlerberechnungseinheit umfassen, die einen Fehler des Lernmodells basierend auf den Bestimmungsdaten, der Zustandsvariablen und eingegebenen Lehrerdaten berechnet; und eine Lernmodell-Aktualisierungseinheit, die das Lernmodell basierend auf dem Fehler und der Zustandsvariablen aktualisiert. Die maschinelle Lernvorrichtung kann ferner eine Personenidentifizierungseinheit umfassen, die eine Person identifiziert, die mit dem Roboter zusammen arbeitet, wobei der Trainingsdatensatz für jede Person erstellt werden kann, und die Lerneinheit den Trainingsdatensatz für die identifizierte Person lernen kann. Die maschinelle Lernvorrichtung kann ein neuronales Netz umfassen. Der Roboter kann einen von einem Industrieroboter, einem Feldroboter und einem Serviceroboter umfassen.
-
Gemäß einem zweiten Aspekt wird ein Robotersystem bereitgestellt, das Folgendes umfasst: die maschinelle Lernvorrichtung wie zuvor beschrieben; und eine Handlungssteuereinheit, die eine Handlung des Roboters steuert. Die maschinelle Lernvorrichtung kann eine Entscheidungseinheit umfassen, die eine Handlung des Roboters basierend auf dem Trainingsdatensatz einstellt, wobei die Handlungssteuereinheit die Handlung des Roboters basierend auf einem Befehl von der Entscheidungseinheit steuert.
-
Gemäß einem dritten Aspekt wird ein Robotersystem bereitgestellt, das Folgendes umfasst: den Roboter-Controller wie zuvor beschrieben; einen Roboter, der einer Person bei der Arbeit hilft; und einen Endeffektor, der an dem Roboter angebracht ist. Der Roboter kann Folgendes umfassen: einen Kraftdetektor, der ein Signal ausgibt, das einer Kraft von der Person entspricht; und einen Zustandsdetektor, der eine Position und eine Ausrichtung des Roboters detektiert, wobei die Einheit zum Erzielen von Bestimmungsdaten die Bestimmungsdaten basierend auf der Ausgabe des Kraftdetektors und die Zustandsbeobachtungseinheit die Zustandsvariable basierend auf der Ausgabe des Zustandsdetektors erzielen kann. Der Zustandsdetektor kann mindestens einen von einem Bewegungssensor, einem Drucksensor, einem Drehmomentsensor für einen Motor und einen Kontaktsensor umfassen. Das Robotersystem kann ferner eine Vielzahl von Robotern umfassen; eine Vielzahl von Roboter-Controllern; und eine Kommunikationsleitung, welche die Vielzahl von Roboter-Controllern miteinander verbindet, wobei jeder der Vielzahl von Robotern den Trainingsdatensatz für einen Roboter, der von dem Roboter-Controller gesteuert wird, unabhängig lernen kann und gelernte Informationen über die Kommunikationsleitung senden und teilen kann.
-
Gemäß einem vierten Aspekt wird ein maschinelles Lernverfahren für einen Roboter bereitgestellt, das es einer Person und dem Roboter ermöglicht, zusammen zu arbeiten, wobei das maschinelle Lernverfahren folgende Schritte umfasst: Beobachten einer Zustandsvariablen, die einen Zustand des Roboters während eines Zeitraums, in dem die Person und der Roboter zusammen arbeiten, darstellt; Erzielen von Bestimmungsdaten für mindestens eine von einer Belastungshöhe für die Person und einer Arbeitseffizienz; und Lernen eines Trainingsdatensatzes zum Einstellen einer Handlung des Roboters basierend auf der Zustandsvariablen und den Bestimmungsdaten.
-
Die vorliegende Erfindung wird mit Bezug auf die beiliegenden Zeichnungen besser verständlich werden. Es zeigen:
- 1 eine Ansicht, die schematisch abbildet, wie ein Roboter und eine Person bei einer Ausführungsform zusammen arbeiten;
- 2 ein Blockdiagramm, das ein beispielhaftes Robotersystem bei der Ausführungsform abbildet;
- 3 ein Diagramm, das schematisch ein Modell für ein Neuron darstellt;
- 4 ein Diagramm, das schematisch ein dreischichtiges neuronales Netz darstellt, das durch das Kombinieren von Neuronen gebildet wird, wie in 3 abgebildet;
- 5 eine schematische Ansicht zum Erklären eines Wegs zum Transportieren eines Werkstücks;
- 6 eine Ansicht zum Erklären der Bewegungspunkte für den Roboterspitzenpunkt;
- 7 eine vergrößerte Ansicht zum Erklären der Bewegungspunkte für den Roboterspitzenpunkt;
- 8 ein Blockdiagramm, das ein anderes beispielhaftes Robotersystem bei der Ausführungsform darstellt; und
- 9 ein Blockdiagramm, das eine Änderung des in 2 abgebildeten Robotersystems abbildet.
-
Eine maschinelle Lernvorrichtung, ein Roboter-Controller, ein Robotersystem und ein maschinelles Lernverfahren gemäß einer Ausführungsform werden nachstehend mit Bezug auf die beiliegenden Zeichnungen beschrieben. Es versteht sich jedoch, dass die vorliegende Erfindung weder auf die Zeichnungen noch auf die nachstehende Ausführungsform einzuschränken ist.
-
Das Robotersystem ermöglicht es einer Person und einem Roboter, zusammen zu arbeiten, um einen vorbestimmten Arbeitsschritt auszuführen. Diese Ausführungsform erläutert, wie eine Person und ein Roboter zusammen arbeiten, um ein Werkstück zu transportieren.
-
1 ist eine schematische Ansicht, die das Robotersystem bei dieser Ausführungsform abbildet. 2 ist ein Blockdiagramm, das ein beispielhaftes Robotersystem bei dieser Ausführungsform abbildet. Mit Bezug auf 1 und 2 umfasst ein Robotersystem 3 einen Roboter 1, der beim Transportieren eines Werkstücks W behilflich ist, und einen Roboter-Controller 2, der den Roboter 1 steuert. Der Roboter 1 gemäß dieser Ausführungsform ist als Knickarmroboter umgesetzt, der einen Arm 12 und eine Vielzahl von Gelenkabschnitten 13 umfasst. Das Robotersystem 3 umfasst eine Hand 6, die als Endeffektor dient, der an dem Roboter 1 angebracht ist. Die Hand 6 erfüllt die Funktion des Ergreifens und Loslassens des Werkstücks W. Der Endeffektor ist nicht auf eine Hand eingeschränkt, und es kann ein Endeffektor, der für Feinarbeit geeignet ist, verwendet werden.
-
Der Roboter 1 umfasst eine Armantriebsvorrichtung 44, welche die Gelenkabschnitte 13 antreibt. Die Armantriebsvorrichtung 44 umfasst Armantriebsmotoren 14, die in den Gelenkabschnitten 13 eingebaut sind. Die Armantriebsmotoren 14 können den Arm in gewünschten Winkeln in den Gelenkabschnitten 13 antreiben und beugen. Der Roboter 1 bei dieser Ausführungsform wird derart zusammengebaut, dass sich der ganze Arm 12 um eine Achse drehen kann, die sich senkrecht erstreckt. Die Armantriebsmotoren 14 umfassen Motoren, die den Arm 12 drehen.
-
Der Roboter 1 umfasst eine Handantriebsvorrichtung 45, welche die Hand 6 öffnet und schließt. Die Handantriebsvorrichtung 45 bei dieser Ausführungsform umfasst einen Handantriebszylinder 18, der die Hand 6 antreibt, und eine Luftpumpe und ein Magnetventil, um den Handantriebszylinder 18 mit Druckluft zu versorgen.
-
Der Roboter 1 umfasst einen Basisabschnitt 11, der den Arm 12 trägt. Der Roboter 1 bei dieser Ausführungsform umfasst einen Kraftdetektor 19, der eine Kraft detektiert, die auf den Basisabschnitt 11 einwirkt. Die Kraft, die auf den Basisabschnitt 11 einwirkt, entspricht der Kraft, die auf den Roboter 1 einwirkt. Der Kraftdetektor 19 gibt ein Signal aus, das einer Kraft entspricht, die von einer Person ausgeübt wird. Der Kraftdetektor 19 bei dieser Ausführungsform ist an einer Bodenfläche 20 befestigt.
-
Der Kraftdetektor 19 kann ein beliebiger Detektor sein, der in der Lage ist, die Größenordnung und Richtung der Kraft, die auf den Roboter 1 einwirkt, zu detektieren. Der Kraftdetektor 19 bei dieser Ausführungsform umfasst ein Metallsubstrat, das mit dem Basisabschnitt 11 verbunden ist, und einen Dehnungssensor, der an der Substratoberfläche angebracht ist. Der Kraftdetektor 19 kann eine Kraft, die auf den Roboter 1 einwirkt, basierend auf dem Ausmaß der Verformung, das von dem Dehnungssensor detektiert wird, berechnen.
-
Der Roboter 1 bei dieser Ausführungsform umfasst einen Zustandsdetektor, der die Position und Ausrichtung des Roboters detektiert. Der Zustandsdetektor detektiert die Position des Roboterspitzenpunktes und die Ausrichtung des Roboters 1. Der Zustandsdetektor bei dieser Ausführungsform umfasst einen Drehwinkeldetektor 15, der an jedem Armantriebsmotor 14 angebracht ist. Der Drehwinkeldetektor 15 detektiert den Winkel der Drehung, mit der jeder Armantriebsmotor 14 angetrieben wird. Position, Ausrichtung, Geschwindigkeit und Beschleunigung des Roboters 1 können basierend auf den Drehwinkeln der Armantriebsmotoren 14 detektiert werden.
-
Der Zustandsdetektor kann nicht nur der Drehwinkeldetektor 15 sein, sondern beispielsweise auch eine Kamera, ein Bewegungssensor, ein Drucksensor, ein Drehmomentsensor für einen Motor und ein Kontaktsensor. Mit anderen Worten kann die Zustandsvariable, die von der Zustandsbeobachtungseinheit 51 beobachtet wird, nicht nur die Ausgabe des Drehwinkeldetektors 15 sein, sondern auch Daten (Zustandsgröße), die beispielsweise von einer Kamera, einem Bewegungssensor, einem Drucksensor, einem Drehmomentsensor für einen Motor und einem Kontaktsensor erzielt werden. Diese Detektoren, wie etwa eine Kamera, ein Bewegungssensor, ein Drucksensor, ein Drehmomentsensor für einen Motor und ein Kontaktsensor, können natürlich beispielsweise direkt in vorbestimmten Abschnitten des Roboters 1 (Hand 6) angeordnet oder in geeigneten Abschnitten um den Roboter 1 herum eingebaut sein.
-
Der Roboter 1 wird basierend auf einem Betriebsbefehl für den Roboter-Controller 2 angetrieben. Der Roboter-Controller 2 umfasst einen arithmetischen Prozessor, der z.B. eine CPU (Zentraleinheit), einen RAM (Arbeitsspeicher) und einen ROM (Festspeicher), die über Busse miteinander verbunden sind, umfasst. Der Roboter-Controller 2 umfasst eine Speichereinheit 59, die diverse Informationsarten speichert. Der Roboter-Controller 2 umfasst eine Handlungssteuereinheit 43, welche die Armantriebsvorrichtung 44 und die Handantriebsvorrichtung 45 steuert. Die Armantriebsvorrichtung 44 und die Handantriebsvorrichtung 45 werden gemäß einem Betriebsbefehl von der Handlungssteuereinheit 43 angetrieben.
-
Der Roboter-Controller 2 bei dieser Ausführungsform umfasst eine externe Kraftberechnungseinheit 46, die eine externe Kraft schätzt, die von außerhalb des Roboters 1 auf den Roboter 1 ausgeübt wird. Die Kraft, die von dem Kraftdetektor 19 detektiert wird, umfasst eine interne Kraft, die durch die Masse des Roboters 1 und die Betätigung des Roboters 1 generiert wird, und ein externe Kraft, die von außerhalb des Roboters 1 auf den Roboter 1 ausgeübt wird.
-
Die externe Kraftberechnungseinheit 46 berechnet eine interne Kraft, die auf den Roboter 1 einwirkt, durch das Eigengewicht des Roboters 1, wenn der Roboter 1 funktioniert, während keine Kraft von außerhalb des Roboters 1 ausgeübt wird. Eine interne Kraft kann basierend auf der Position und Ausrichtung des Roboters 1 berechnet werden, die basierend auf der Ausgabe des Drehwinkeldetektors 15 kombiniert mit der Masse des Roboters 1 und anderen Faktoren detektiert werden. Die Masse des Roboters 1 und andere Faktoren können im Voraus in der Speichereinheit 59 gespeichert werden. Die externe Kraftberechnungseinheit 46 subtrahiert die interne Kraft von der Kraft, die durch den Kraftdetektor 19 detektiert wird, um eine externe Kraft zu berechnen. Die externe Kraft entspricht der Kraft, die von einer Person 85 auf ein Werkstück ausgeübt wird.
-
Der Roboter-Controller 2 umfasst eine Eingabeeinheit 41 und eine Anzeigeeinheit 42. Die Anzeigeeinheit 42 kann Informationen über die Betätigung des Roboters 1 anzeigen. Beispiele der Anzeigeeinheit 42 können eine Flüssigkristallanzeige umfassen. Die Eingabeeinheit 41 ermöglicht es einer Person, einen gewünschten Befehl in den Roboter-Controller 2 einzugeben. Beispiele der Eingabeeinheit 41 können eine Tastatur umfassen.
-
5 ist eine schematische Ansicht, um einen Weg zum Transportieren eines Werkstücks in dem Robotersystem gemäß der vorliegenden Ausführungsform zu erklären. Mit Bezug auf 1 und 5 wird bei dieser Ausführungsform das Werkstück W, das auf die Bodenfläche 20 gelegt wird, auf die obere Oberfläche eines Arbeitstischs 81 transportiert. Das Werkstück W ist beispielsweise ein schweres Werkstück. Es kann für die Person 55 sehr anstrengend oder schwierig sein, ein derartiges Werkstück zu transportieren. Das Werkstück W bei dieser Ausführungsform dient als Kraftfahrzeugreifen.
-
Beim Transportieren des Werkstücks W gibt es mehrere Wege zum Transportieren des Werkstücks W, wie durch die Pfeile 91 bis 93 angegeben. Die Person 85 erfährt ein Intervall, in dem die Person vielleicht bevorzugt eine große Kraft ausübt, oder ein Intervall, in dem die Person vielleicht nur eine geringe Kraft ausübt. Selbst wenn das Werkstück W an die gleiche Position gesetzt wird, kann der Roboter 1 diverse Ausrichtungen aufweisen.
-
Mit Bezug auf 2 umfasst der Roboter-Controller 2 bei dieser Ausführungsform eine maschinelle Lernvorrichtung 5, die das Handlungsmuster einer Person lernt und wiederum ein Verfahren zum Steuern eines Roboters lernt, um die Person entsprechend zu unterstützen. Die maschinelle Lernvorrichtung 5 bei dieser Ausführungsform wählt eine Handlung des Roboters 1 aus, die an einem vorbestimmten Bewegungspunkt während des Zeitraums, in dem der Roboter 1 angetrieben wird, als optimal bestimmt wird. Mit anderen Worten sendet die maschinelle Lernvorrichtung 5 einen Befehl, um den Roboter 1 in einem Antriebsmuster anzutreiben, das als optimal bestimmt wird.
-
Die maschinelle Lernvorrichtung 5 umfasst eine Zustandsbeobachtungseinheit 51, die eine Zustandsvariable erzielt, die den Zustand des Roboters 1 während des Zeitraums, in dem die Person 85 und der Roboter 1 zusammen arbeiten, darstellt. Die Zustandsvariable umfasst bei dieser Ausführungsform Position, Ausrichtung, Geschwindigkeit und Beschleunigung des Roboters 1. Beispielsweise kann man die Position, die Geschwindigkeit und die Beschleunigung an dem Roboterspitzenpunkt als Zustandsvariablen verwenden. Position, Ausrichtung, Geschwindigkeit und Beschleunigung des Roboters 1 können basierend auf der Ausgabe des Drehwinkeldetektors 15 detektiert werden. Eine Signalausgabe von dem Drehwinkeldetektor 15 wird in die Zustandsbeobachtungseinheit 51 eingegeben.
-
Die Zustandsvariable ist nicht auf diese Form eingeschränkt, sondern kann beliebigen Variablen entsprechen, die den Roboterzustand darstellen. Beispielsweise kann die Zustandsbeobachtungseinheit 51 mindestens eine Variable der Position, Ausrichtung, Geschwindigkeit und Beschleunigung des Roboters 1 erzielen.
-
Die maschinelle Lernvorrichtung 5 umfasst eine Einheit zum Erzielen von Bestimmungsdaten 52, die Bestimmungsdaten erzielt, die mit der Belastung für die Person 85 verknüpft sind. Die Bestimmungsdaten umfassen bei dieser Ausführungsform die Größenordnung und Richtung der Kraft, die von der Person 85 ausgeübt wird, um das Werkstück W zu transportieren. Die Bestimmungsdaten umfassen bei dieser Ausführungsform ferner die Zeit, die benötigt wird, um das Werkstück W zu bewegen.
-
Die Einheit zum Erzielen von Bestimmungsdaten 52 erzielt bei dieser Ausführungsform Bestimmungsdaten basierend auf der Ausgabe des Kraftdetektors 19. Die Größenordnung der externen Kraft, die von der externen Kraftberechnungseinheit 46 berechnet wird, entspricht der Größenordnung der Kraft, die von der Person 85 ausgeübt wird. Die Richtung der externen Kraft, die von der externen Kraftberechnungseinheit 46 berechnet wird, entspricht der Richtung der Kraft, die von der Person 85 auf das Werkstück W ausgeübt wird. Die Einheit zum Erzielen von Bestimmungsdaten 52 empfängt die Größenordnung und Richtung der Kraft, die von der Person 85 ausgeübt wird, von der externen Kraftberechnungseinheit 46.
-
Der Roboter-Controller 2 umfasst eine Bewegungszeit-Messeinheit 47, welche die Arbeitszeit misst. Die Bewegungszeit-Messeinheit 47 berechnet bei dieser Ausführungsform die Zeit, die benötigt wird, um sich zwischen den Bewegungspunkten zu bewegen (was noch beschrieben wird). Die Bewegungszeit-Messeinheit 47 berechnet bei dieser Ausführungsform die Bewegungszeit basierend auf einem Befehl von der Handlungssteuereinheit 43. Die Bewegungszeit, die von der Bewegungszeit-Messeinheit 47 gemessen wird, wird an die Einheit zum Erzielen von Bestimmungsdaten 52 gesendet.
-
Die Bestimmungsdaten sind nicht auf die zuvor erwähnte Form eingeschränkt, sondern können beliebige Daten sein, die mit mindestens einer von der Belastungshöhe für die Person und der Arbeitseffizienz verknüpft sind. Beispielsweise können die Bestimmungsdaten nicht nur beispielsweise die Größenordnung und die Richtung einer Last, die von dem Roboter erfasst wird, die Größenordnungen und die Richtungen von Lasten, die von Personen oder Objekten in der Umgebung erfasst werden, die Belastungshöhen für die Personen oder Objekte in der Umgebung und die Bewegungszeit, sondern auch Informationen beispielsweise von einer Kamera, einem Bewegungssensor und einem Drucksensor sein. Bei der vorliegenden Beschreibung umfasst die Person nicht nur einen Bediener, der die Verarbeitung (Arbeitsschritt) tatsächlich in Zusammenarbeit mit dem Roboter ausführt, sondern auch diverse Personen, wie etwa Personen, welche die Verarbeitung um den Roboter herum beobachten, oder eine Person, die zufällig in der Nähe des Roboters vorbeigeht, obwohl sie den Roboter nicht direkt betätigen.
-
Die maschinelle Lernvorrichtung 5 umfasst bei dieser Ausführungsform eine Lerneinheit 54, die einen Trainingsdatensatz zum Einstellen der Handlung des Roboters basierend auf der Zustandsvariablen und den Bestimmungsdaten lernt. Die Lerneinheit 54 erzielt die Zustandsvariable von der Zustandsbeobachtungseinheit 51. Die Lerneinheit 54 erzielt ferner die Bestimmungsdaten von der Einheit zum Erzielen von Bestimmungsdaten 52. Der Trainingsdatensatz bedeutet einen Satz von Wertinformationen, die mit Handlungen verknüpft sind, die basierend auf der Zustandsvariablen und den Bestimmungsdaten definiert werden. Die maschinelle Lernvorrichtung 5 kann ein Verfahren zum Antreiben des Roboters durch Vergleichen von Werten, die mit dem Zustand und der Handlung verknüpft sind, in dem Trainingsdatensatz einstellen. Die vorliegende Ausführungsform ist nicht auf einen Industrieroboter eingeschränkt und ist natürlich beispielsweise auch auf einen Feldroboter oder einen Serviceroboter anwendbar.
-
Die maschinelle Lernvorrichtung wird nachstehend beschrieben. Die maschinelle Lernvorrichtung erfüllt die Funktion des Entnehmens, z.B. einer nützlichen Regel, einer Wissensdarstellung und eines Bestimmungskriteriums durch Analyse aus einem Satz von Daten, die in die Vorrichtung eingegeben werden, des Ausgebens der Bestimmungsergebnisse und des Lernens des Wissens (maschinelles Lernen). Es gibt viele verschiedene maschinelle Lerntechniken, die etwa z.B. in „betreutes Lernen“, „unbetreutes Lernen“ und „Verstärkungslernen“ klassifiziert werden können. Um diese Techniken umzusetzen, steht eine andere Technik zur Verfügung, die als „tiefgehendes Lernen“ bezeichnet wird, wobei das Entnehmen der Merkmalsbeträge selber gelernt wird.
-
Die in 2 abgebildete maschinelle Lernvorrichtung 5 verwendet das „Verstärkungslernen“ und eine maschinelle Lernvorrichtung 7 (die noch mit Bezug auf 9 beschrieben wird) verwendet das „betreute Lernen“. Obwohl diese Arten des maschinellen Lernens (maschinelle Lernvorrichtungen 5 und 7) einen universellen Computer oder Prozessor verwenden können, ermöglicht die Verwendung beispielsweise von GPGPU (universelles Rechnen mit Grafikzentraleinheiten) oder großformatigen PC-Clustern eine schnellere Verarbeitung.
-
Beim betreuten Lernen werden zunächst Lehrerdaten, d.h. eine große Anzahl von Datensätzen von bestimmten Eingaben und Ergebnissen (Kennzeichnungen) in eine maschinelle Lernvorrichtung eingespeist, die Merkmale lernt, die in diesen Datensätzen beobachtet werden und induktiv ein Modell (Lernmodell) zum Schätzen des Ergebnisses aus der Eingabe, d.h. ihrer Beziehung, erfasst. Das betreute Lernen kann unter Verwendung eines Algorithmus, wie etwa eines neuronalen Netzes (das noch beschrieben wird), umgesetzt werden.
-
Beim unbetreuten Lernen werden nur Eingabedaten in großen Mengen in eine Lernvorrichtung eingespeist, welche die Verteilung der Eingabedaten lernt und wiederum einen Lernvorgang mit einer Vorrichtung ausführt, die z.B. die Eingabedaten komprimiert, klassifiziert und in Form bringt, ohne dass entsprechende Lehrerausgabedaten in die Lernvorrichtung eingespeist würden. Dies ermöglicht beispielsweise eine Gruppierung der Merkmale, die in diesen Datensätzen zu sehen sind, in ähnliche Merkmale. Das erzielte Ergebnis kann verwendet werden, um gewisse Kriterien zu definieren und Ausgaben gemäß den Kriterien optimiert zuzuteilen, wodurch eine Ausgabe vorhergesagt wird.
-
Es gibt auch eine zwischenliegende Problemstellung zwischen dem unbetreuten Lernen und dem betreuten Lernen, die als teilbetreutes Lernen bezeichnet wird. Dies ist der Fall, wenn beispielsweise nur einige Daten als Datensätze von Eingaben und Ausgaben dienen und die übrigen Daten nur Eingaben umfassen. Bei dieser Ausführungsform kann das Lernen effizient erfolgen, indem Daten (z.B. Bilddaten oder Simulationsdaten), die auch ohne eine tatsächliche Bewegung des Roboters erzielt werden können, auf das unbetreute Lernen angewendet werden.
-
Nachstehend wird das Verstärkungslernen beschrieben. Die Problemstellung des Verstärkungslernens wird folgendermaßen angegangen:
- • der Roboter beobachtet den Umgebungszustand, um über seine Handlung zu entscheiden;
- • die Umgebung kann sich gemäß einer gewissen Regel ändern, und eine Person kann die Umgebung durch ihre eigene Handlung ändern;
- • ein Belohnungssignal wird jedes Mal zurückgegeben, wenn eine Handlung erfolgt ist;
- • die Summe von zukünftigen (Abschlag-) Belohnungen soll maximiert werden;
- • das Lernen beginnt in einem Zustand, in dem ein Ergebnis, das durch die Handlung erbracht werden soll, völlig unbekannt oder nur unvollständig bekannt ist. Mit anderen Worten kann der Roboter das Ergebnis einer Handlung nur als Daten erzielen, nachdem er tatsächlich die Handlung vorgenommen hat. Dies bedeutet, dass eine optimale Handlung bevorzugt empirisch-praktisch gesucht werden kann; und
- • wie bei der Nachahmung des menschlichen Verhaltens kann das Lernen an einem guten Startpunkt beginnen, indem es von einem Anfangszustand ausgeht, in dem das Lernen im Voraus ausgeführt wurde (eine Technik wie etwa das zuvor erwähnte betreute Lernen oder umgekehrtes Verstärkungslernen).
-
Beim Verstärkungslernen wird zusätzlich zu der Bestimmung und Klassifizierung eine Handlung gelernt, um ein Verfahren zum Lernen einer geeigneten Handlung unter Berücksichtigung der Wechselwirkungen, die durch die Handlung auf die Umgebung ausgeübt werden, zu erfassen, d.h. Lernen um die Belohnung zu maximieren, die in Zukunft erzielt werden soll. Obwohl auf diese Beschreibung ein Beispiel des Q-Lernens folgt, ist die vorliegende Erfindung nicht darauf eingeschränkt.
-
Beim Q-Lernen wird ein Wert Q(s, a) der Auswahl einer Handlung a in einem bestimmten Umgebungszustand s gelernt. Mit anderen Worten kann eine Handlung, die den höchsten Wert Q(s, a) in dem bestimmten Zustand s aufweist, bevorzugt als optimale Handlung ausgewählt werden. Zunächst ist jedoch ein richtiger Wert Q(s, a) für ein Paar aus einem Zustand s und einer Handlung a völlig unbekannt. Der Agent (der Gegenstand einer Handlung) wählt diverse Handlungen a in dem bestimmten Zustand s aus, und für die Handlungen a werden Belohnungen geboten. Mit diesem Vorgang lernt der Agent, eine bessere Handlung auszuwählen, d.h. einen richtigen Wert Q(s, a).
-
Um die Summe der zukünftig zu erzielenden Belohnungen als Ergebnis der Handlungen zu maximieren, muss schließlich Q(s, a) = E[Σ(γ
t)r
t] erfüllt werden, wobei E[] der erwartete Wert ist, t die Zeit ist, y ein Parameter ist, der als Abschlagrate bezeichnet wird (was noch beschrieben wird), r
t die Belohnung zum Zeitpunkt t ist, und Σ die Summe zum Zeitpunkt t ist. Der erwartete Wert in diesem Ausdruck wird als Reaktion auf eine Änderung des Zustands genommen, die auf eine optimale Handlung folgt, und ist ein unbekannter Wert, der durch eine Suche gelernt wird. Ein Aktualisierungsausdruck eines derartigen Wertes Q(s, a) wird beispielsweise durch:
gegeben, wobei s
t der Umgebungszustand zum Zeitpunkt t ist und a
t die Handlung zum Zeitpunkt t ist. Bei der Handlung a
t ändert sich der Zustand auf s
t+1·r
t+1 ist die Belohnung, die bei einer Zustandsänderung empfangen wird. Der Term mit „max“ ist das Produkt des Q-Wertes mal y, wenn eine Handlung a, die den höchsten Q-Wert aufweist, der in dem Zustand s
t+1 bekannt ist, ausgewählt wird. γ ist ein Parameter, der als Abschlagrate bezeichnet wird und 0 < γ ≤ 1 erfüllt. α ist ein Lernfaktor, der 0 < α ≤ 1 erfüllt.
-
Der Ausdruck (1) stellt ein Verfahren zum Aktualisieren des Auswertungswertes Q(st, at) der Handlung at in dem Zustand st dar, basierend auf der Belohnung rt+1, die als Ergebnis des Versuchs at zurückgegeben wird. Genauer gesagt wird, wenn die Summe der Belohnung rt+1 und des Auswertungswertes Q(st+1, max at+1) der besten Handlung max a in dem Zustand nach dem Zustand s bei der Handlung a größer als der Auswertungswert Q(st, at) der Handlung a in dem Zustand s ist, Q(st, at) erhöht; ansonsten wird Q(st, at) reduziert. Mit anderen Worten wird der Wert einer bestimmten Handlung in einem bestimmten Zustand der Belohnung, die sofort als Ergebnis zurückgegeben wird, und dem Wert der besten Handlung in dem nachfolgenden Zustand bei der bestimmten Handlung näher gebracht.
-
Verfahren zum Darstellen von Q(s, a) auf einem Computer umfassen ein Verfahren zum Halten der Zahlenwerte aller Zustands-Handlungs-Paare (s, a) in Form einer Tabelle und ein Verfahren zum Bereitstellen einer Funktion, die Q(s, a) nähert. Mit dem letztgenannten Verfahren kann der zuvor erwähnte Ausdruck (1) umgesetzt werden, indem der Parameter einer Näherungsfunktion unter Verwendung einer Technik, wie etwa des stochastischen konjugierten Gradientenverfahrens, angepasst wird. Ein neuronales Netz (das noch beschrieben wird) kann als Näherungsfunktion verwendet werden.
-
Neuronale Netzwerke können auch als Lernmodelle für betreutes Lernen und unbetreutes Lernen oder als Näherungsalgorithmen für Wertfunktionen beim Verstärkungslernen verwendet werden. 3 ist ein Diagramm, das schematisch ein Modell für ein Neuron darstellt, und 4 ist ein Diagramm, das schematisch ein dreischichtiges neuronales Netz darstellt, das dadurch gebildet wird, dass Neuronen kombiniert werden, wie in 3 abgebildet. Genauer gesagt wird das neuronale Netz beispielsweise durch eine arithmetische Vorrichtung und einen Speicher, der ein Modell für ein Neuron nachahmt, wie beispielsweise in 3 abgebildet, umgesetzt.
-
Wie in
3 abgebildet, dienen die Neuronen zum Ausgeben einer Ausgabe (Ergebnis) y für eine Vielzahl von Eingaben x (
3 bildet beispielsweise die Eingaben x1 bis x3 ab). Jede Eingabe x (x1, x2, x3) wird mit einer Gewichtung w (w1, w2, w3) multipliziert, die der Eingabe x entspricht. Mit diesem Vorgang sind die ausgegebenen Ergebnisse y der Neuronen folgendermaßen gegeben:
wobei θ die Vorspannung ist, und f
k die Aktivierungsfunktion ist. Es sei zu beachten, dass die Eingabe x, das Ergebnis y und die Gewichtung w allesamt Vektoren sind.
-
Ein dreischichtiges neuronales Netz, das durch Kombinieren der Neuronen gebildet wird, wie in 3 abgebildet, wird nachstehend mit Bezug auf 4 beschrieben. Eine Vielzahl von Eingaben x (die Eingaben x1 bis x3 werden hier als Beispiel genommen) wird auf der linken Seite des neuronalen Netzes eingegeben, und die Ergebnisse y (die Ergebnisse y1 bis y3 werden hier als Beispiel genommen) werden auf der rechten Seite dieses Netzes ausgegeben, wie in 4 abgebildet. Genauer gesagt werden die Eingaben x1, x2 und x3 mit einer Gewichtung multipliziert, die jedem der drei Neuronen N11 bis N13 entspricht, und werden dann in die Neuronen eingegeben. Die Gewichtungen, die verwendet werden, um diese Eingaben zu multiplizieren, werden hier insgesamt mit W1 bezeichnet.
-
Die Neuronen N11 bis N13 geben jeweils z11 bis z13 aus. Mit Bezug auf 4 werden z11 bis z13 insgesamt als Merkmalsvektoren Z1 bezeichnet und können als Vektoren angesehen werden, die durch Entnehmen der Merkmalsbeträge der Eingabevektoren erzielt werden. Die Merkmalsvektoren Z1 werden zwischen den Gewichtungen W1 und W2 definiert. Z11 bis z13 werden mit einer Gewichtung multipliziert, die jedem von zwei Neuronen N21 und N22 entspricht, und werden dann in die Neuronen eingegeben. Die Gewichtungen, die verwendet werden, um diese Merkmalsvektoren zu multiplizieren, werden hier insgesamt mit W2 bezeichnet.
-
Die Neuronen N21 und N22 geben jeweils z21 und z22 aus. Mit Bezug auf 4 werden z21 und z22 insgesamt als Merkmalsvektoren Z2 bezeichnet. Die Merkmalsvektoren Z2 sind zwischen den Gewichtungen W2 und W3 definiert. z21 und z22 werden mit einer Gewichtung multipliziert, die jedem der drei Neuronen N31 bis N33 entspricht und eingegeben wird. Die Gewichtungen, die verwendet werden, um diese Merkmalsvektoren zu multiplizieren, werden hier insgesamt mit W3 bezeichnet.
-
Schließlich geben die Neuronen N31 bis N33 jeweils die Ergebnisse y1 bis y3 aus. Die Betätigung des neuronalen Netzes umfasst einen Lernmodus und einen Wertvorhersagemodus. Beispielsweise wird die Gewichtung W unter Verwendung eines Lerndatensatzes im Lernmodus gelernt, und eine Roboterhandlung wird im Vorhersagemodus unter Verwendung des Parameters bestimmt. Obwohl zuvor aus praktischen Gründen auf die „Vorhersage“ Bezug genommen wurde, sind natürlich viele verschiedene Arbeitsschritte, wie etwa Detektion, Klassifizierung und Inferenz möglich.
-
Daten, die durch die tatsächliche Betätigung des Roboters im Vorhersagemodus erzielt werden, können sofort gelernt werden und sich in der nachfolgenden Handlung (Online-Lernen) widerspiegeln, oder eine Gruppe von Daten, die im Voraus erhoben wurde, kann verwendet werden, um kollektives Lernen auszuführen und anschließend den Detektionsmodus unter Verwendung der gleichen Parameter (Stapellernen) auszuführen. Als ein anderer zwischenliegender Lösungsansatz kann der Lernmodus jedes Mal interpoliert werden, wenn sich eine gewisse Datenmenge angesammelt hat.
-
Die Gewichtungen W1 bis W3 können durch das Fehlerrückführungsverfahren gelernt werden. Die Information der Fehler tritt von rechts ein und fließt nach links. Das Fehlerrückführungsverfahren wird verwendet, um jede Gewichtung anzupassen (lernen), um die Differenz zwischen der wahren Ausgabe y (Lehrer) und der Ausgabe y, wenn die Eingabe x eingegeben wird, zu reduzieren.
-
Ein derartiges neuronales Netz kann mehr als drei Schichten aufweisen (so genanntes tiefgehendes Lernen). Es ist möglich, nur aus Lehrerdaten automatisch eine arithmetische Vorrichtung zu erfassen, die Merkmale der Eingabe schrittweise entnimmt und ein Ergebnis zurückgibt. Die maschinelle Lernvorrichtung 5 gemäß einer Ausführungsform umfasst beispielsweise eine Zustandsbeobachtungseinheit 51, eine Lerneinheit 54 und eine Entscheidungseinheit 58, wie in 2 abgebildet, um das zuvor beschriebene Q-Lernen auszuführen. Das maschinelle Lernverfahren, das auf die vorliegende Erfindung angewendet wird, ist jedoch nicht auf das Q-Lernen eingeschränkt, wie zuvor erwähnt. Mit anderen Worten sind diverse Techniken, wie etwa „betreutes Lernen“, „unbetreutes Lernen“, „teilbetreutes Lernen“ und „Verstärkungslernen (anderes Verstärkungslernen als Q-Lernen)“, die von der maschinellen Lernvorrichtung verwendet werden können, anwendbar.
-
6 bildet eine schematische Ansicht ab, um die Bewegungspunkte bei dieser Ausführungsform zu erklären. 6 bildet ein Beispiel ab, bei dem sich der Roboterspitzenpunkt der einfachen Beschreibung halber auf einer zweidimensionalen Ebene bewegt. Das Werkstück W wird von einer Startposition 88 zu einer Zielposition 89 transportiert. Die Bewegungspunkte P werden in einem Schachbrettmuster in einer Region eingestellt, in der sich der Roboterspitzenpunkt wahrscheinlich bewegen wird. Der Bewegungspunkt P wird als ein Punkt definiert, an dem der Roboterspitzenpunkt vorbeigeht. Der Roboterspitzenpunkt bewegt sich von einem Bewegungspunkt P00 , welcher der Startposition 88 entspricht, zu einem Bewegungspunkt Pnm , welcher der Zielposition 89 entspricht.
-
7 bildet eine schematische Ansicht ab, um zu erklären, wie sich der Roboterspitzenpunkt bewegt. Bei dieser Ausführungsform wird die Bewegungsrichtung des Roboterspitzenpunktes für jeden Bewegungspunkt P voreingestellt. Der Roboterspitzenpunkt bewegt sich in den Richtungen, die durch die Pfeile 94 bis 97 angegeben werden. Wenn sich der Roboterspitzenpunkt an einem Bewegungspunkt P befindet, bewegt er sich bei der nachfolgenden Handlung bis zu einem anderen Bewegungspunkt P. Wenn sich bei dem in 7 abgebildeten Beispiel der Roboterspitzenpunkt an dem Bewegungspunkt P11 befindet, bewegt er sich bis zu dem Bewegungspunkt P12 , P21 , P10 oder P01 .
-
Bei dieser Ausführungsform wird ein Verstärkungslernen, welches das zuvor erwähnte Q-Lernen verwendet, aus verschiedenen maschinellen Lernverfahren ausgeführt. Der Trainingsdatensatz bei dieser Ausführungsform umfasst eine Vielzahl von Handlungswertvariablen Q. Bei dieser Ausführungsform sind diverse Techniken anwendbar, wie etwa „betreutes Lernen“, „unbetreutes Lernen“, „teilbetreutes Lernen“ und „Verstärkungslernen (einschließlich Q-Lernen)“, wie bereits erwähnt.
-
Bei dieser Ausführungsform entspricht der Zustand st der Zustandsvariablen des Roboters 1. Mit anderen Worten umfasst der Zustand st beispielsweise die Position, Ausrichtung, Geschwindigkeit und Beschleunigung des Roboters 1. Die Handlung at entspricht beispielsweise der Bewegung des Roboterspitzenpunktes in den Richtungen, die von den Pfeilen 94 bis 97 angegeben werden. Die Handlung at umfasst beispielsweise die Position, Ausrichtung, Geschwindigkeit und Beschleunigung des Roboters 1 für eine Bewegung in den Richtungen, die von den Pfeilen 94 bis 97 angegeben werden.
-
Die Lerneinheit 54 bei dieser Ausführungsform aktualisiert die Handlungswertvariablen Q jedes Mal, wenn ein Werkstück W transportiert wird. Die Lerneinheit 54 umfasst eine Belohnungsberechnungseinheit 55, die eine Belohnung einstellt, und eine Funktionsaktualisierungseinheit 56, welche die Handlungswertvariablen Q aktualisiert. Die Belohnungsberechnungseinheit 55 stellt die Belohnung rt basierend auf den Bestimmungsdaten ein, die von der Einheit zum Erzielen von Bestimmungsdaten 52 erzielt werden. Die Belohnungsberechnungseinheit 55 kann die Belohnung rt basierend auf der Zustandsvariablen einstellen, die von der Zustandsbeobachtungseinheit 51 erzielt wird.
-
Die Belohnungsberechnungseinheit 55 kann eine größere Belohnung rt für eine geringere Belastung (Belastungshöhe) für die Person und eine höhere Arbeitseffizienz einstellen. Wenn das Werkstück W beispielsweise erheblich langsamer oder schneller wird, nimmt die Belastung für die Person zu, wodurch sich die Arbeitseffizienz verschlechtert. Genauer gesagt, je kleiner der absolute Wert der Beschleunigung (Beschleunigungsgrößenordnung) des Roboters 1, desto geringer die Belastung für die Person und desto höher die Arbeitseffizienz. Alternativ kann, wenn der absolute Wert der Beschleunigung groß ist, bestimmt werden, dass sich der Roboter 1 auf Grund der schnellen Betätigung des Roboters 1 in einem unerwünschten Zustand befindet. Somit kann die Belohnungsberechnungseinheit 55 eine größere Belohnung für einen kleineren absoluten Wert der Beschleunigung des Roboters 1 einstellen. Die Kraft, die von der Person ausgeübt wird, ist bevorzugt möglichst klein. Die Belohnungsberechnungseinheit 55 kann eine größere Belohnung für eine kleinere Kraft einstellen, die von der Person ausgeübt wird (externe Kraft, die auf den Roboter ausgeübt wird).
-
Je kürzer die Arbeitszeit, um das Werkstück W von der Startposition 88 zu der Zielposition 89 zu transportieren, desto geringer die Belastung für die Person und desto höher die Arbeitseffizienz. Daher stellt die Belohnungsberechnungseinheit 55 eine größere Belohnung für eine kürzere Zeit, die benötigt wird, um sich zwischen den Bewegungspunkten P zu bewegen, ein. In der in 5 abgebildeten Form verlängert sich der Transportweg, wenn das Werkstück W nach unten bewegt wird. Somit stellt die Belohnungsberechnungseinheit 55 eine schlechte Belohnung ein, wenn sich der Roboterspitzenpunkt nach unten bewegt oder die Person eine Kraft nach unten ausübt. Die Belastungshöhe für die Person bedeutet nicht nur die Belastung für die Person selber, sondern umfasst auch Belastungen, die auf diversen Faktoren basieren, wie etwa unerwarteter Kontakt und Drücken durch die Person, und kann sogar die Belastungshöhe umfassen, die nicht nur für die Person sondern beispielsweise auch für Objekte in der Umgebung gilt.
-
Zudem kann die Belohnungsberechnungseinheit 55 eine Belohnung basierend auf einer beliebigen Handlung der Person einstellen. Wenn beispielsweise das Werkstück W gegen den Arbeitstisch 81 stößt, kann die Belohnungsberechnungseinheit 55 eine schlechte positive Belohnung oder eine negative Belohnung einstellen.
-
Bei der Belohnungseinstellung kann die Person beispielsweise den Wert einer Belohnung für eine Variable, wie etwa die Größenordnung der Kraft, voreinstellen und sie in einer Speichereinheit 59 ablegen. Die Belohnungsberechnungseinheit 55 kann die Belohnung, die in der Speichereinheit 59 abgelegt ist, lesen und einstellen. Alternativ kann die Person einen arithmetischen Ausdruck zum Berechnen einer Belohnung in der Speichereinheit 59 im Voraus ablegen, und die Belohnungsberechnungseinheit 55 kann eine Belohnung basierend auf dem arithmetischen Ausdruck berechnen.
-
Die Funktionsaktualisierungseinheit 56 aktualisiert die Handlungswertvariablen Q, die den zuvor erwähnten Ausdruck (1) oder (2) verwenden. Mit anderen Worten wird der Wert der Handlung des Roboters an einem vorbestimmten Bewegungspunkt basierend auf der tatsächlichen Handlung des Roboters und der Kraft, die von der Person ausgeübt wird, aktualisiert.
-
Die Person kann die Startwerte der Handlungswertvariablen Q an jedem Bewegungspunkt P voreinstellen. Alternativ kann die Person zufällige Startwerte voreinstellen.
-
Die maschinelle Lernvorrichtung 5 umfasst eine Entscheidungseinheit 58, die eine Handlung des Roboters 1 basierend auf einem Trainingsdatensatz einstellt. Die Entscheidungseinheit 58 bei dieser Ausführungsform stellt eine Handlung des Roboters 1 basierend auf den Handlungswertvariablen Q ein, die von der Lerneinheit 54 aktualisiert werden. Beispielsweise kann die Entscheidungseinheit 58 eine Handlung auswählen, welche die größten Handlungswertvariablen Q aufweist. Das Verstärkungslernen bei dieser Ausführungsform verwendet das ε-gierige Verfahren. Bei dem ε-gierigen Verfahren stellt die Entscheidungseinheit 58 eine zufällige Handlung mit einer vorbestimmten Wahrscheinlichkeit ε ein. Die Entscheidungseinheit 58 stellt ferner eine Handlung ein, welche die maximalen Handlungswertvariablen Q mit einer Wahrscheinlichkeit (1-ε) aufweist. Mit anderen Worten wählt die Entscheidungseinheit 58 eine andere Handlung als diejenige aus, die mit der Wahrscheinlichkeit ε als optimal angesehen wird. Dieses Verfahren kann die Entdeckung einer besseren Roboterhandlung als derjenigen, die als optimal bestimmt wird, ermöglichen.
-
Ein Befehl für die Handlung des Roboters 1, der von der Entscheidungseinheit 58 eingestellt wird, wird an die Handlungssteuereinheit 43 gesendet. Die Handlungssteuereinheit 43 steuert den Roboter 1 und die Hand 6 basierend auf dem Befehl von der Entscheidungseinheit 58.
-
Somit umfasst ein maschinelles Lernverfahren gemäß der vorliegenden Ausführungsform die Schritte des Erzielens einer Zustandsvariablen, die den Zustand eines Roboters während des Zeitraums, in dem eine Person und der Roboter zusammen arbeiten, darstellt, und des Erzielens von Bestimmungsdaten für mindestens eine von der Belastungshöhe für die Person und der Arbeitseffizienz. Das maschinelle Lernverfahren umfasst ferner den Schritt des Lernens eines Trainingsdatensatzes zum Bestimmen einer Handlung des Roboters basierend auf der Zustandsvariablen und den Bestimmungsdaten.
-
Die maschinelle Lernvorrichtung und das maschinelle Lernverfahren gemäß der vorliegenden Ausführungsform ermöglichen das Lernen eines Verfahrens zum Steuern eines Roboters basierend auf dem Handlungsmuster einer Person durch wiederholtes Transportieren des Werkstücks W. Dies ermöglicht es, ein optimales Verfahren zum Steuern eines Roboters einzustellen, das eine geringere Belastung für eine Person, eine hohe Arbeitseffizienz und eine kurze Arbeitszeit bedingt.
-
Das maschinelle Lernen durch die maschinelle Lernvorrichtung und das maschinelle Lernverfahren sind nicht auf die zuvor erwähnte Form eingeschränkt, sondern können eine beliebige Form des maschinellen Lernens sein. Beispielsweise kann die maschinelle Lernvorrichtung eine optimale Handlung unter Verwendung eines mehrschichtigen neuronalen Netzes, das durch tiefgehendes Lernen gebildet wird, einstellen. Statt eine Tabelle zu verwenden, die Handlungswertvariablen als Funktionen einer Vielzahl von Handlungen und einer Vielzahl von Zuständen darstellt, kann ein neuronales Netz verwendet werden, das Handlungswertvariablen für jede Handlung ausgibt, die unternommen wird, wenn ein vorbestimmter Zustand gegeben ist.
-
Bei der zuvor erwähnten Ausführungsform sind die Bewegungspunkte in einem Schachbrettmuster angeordnet. Die Bewegungspunkte sind jedoch nicht auf diese Form eingeschränkt und können auf eine beliebige Form eingestellt werden. Ferner ermöglicht das Reduzieren des Intervalls zwischen den Bewegungspunkten eine reibungslose Betätigung des Roboters. Bei der zuvor erwähnten Ausführungsform bewegt sich der Roboter zweidimensional, weil die Bewegungspunkte auf einer Ebene eingestellt sind. Das Anordnen von Bewegungspunkten in einem dreidimensionalen Raum ermöglicht es jedoch, den Roboter dreidimensional zu bewegen.
-
Mit Bezug auf 5 umfasst die maschinelle Lernvorrichtung 5 bei dieser Ausführungsform eine Personenidentifizierungseinheit 57, die eine Person identifiziert. Ein personenspezifischer Trainingsdatensatz wird im Voraus erstellt. Die Speichereinheit 59 speichert den personenspezifischen Trainingsdatensatz. Bei dieser Ausführungsform gibt die Person 85 eine personenspezifische Nummer für die Eingabeeinheit 41 ein. Die Personenidentifizierungseinheit 57 liest einen Trainingsdatensatz, welcher der Person entspricht, aus der Speichereinheit 59 basierend auf der eingegebenen Nummer. Die Lerneinheit 54 lernt den Trainingsdatensatz, welcher der Person entspricht. Diese Steuerung ermöglicht eine personenspezifische Einstellung eines Verfahrens zum Steuern eines Roboters basierend auf dem Handlungsmuster einer Person. Mit anderen Worten kann eine optimale Robotersteuerung für jede Person erfolgen. Es gibt verschiedene Personen, wie etwa große Personen, kleine Personen, Personen mit starker Unterkörpermuskulatur und Personen mit starker Armmuskulatur. Eine optimale Robotersteuerung kann für jede Person erreicht werden.
-
Die Steuerung zum Identifizieren einer Person ist nicht auf die zuvor erwähnte Form eingeschränkt, sondern kann ein beliebiges Verfahren verwenden. Beispielsweise kann die maschinelle Lernvorrichtung mit einem Zahlenlesegerät ausgestattet sein. Die Person nimmt eine Karte, auf der eine individuelle Nummer steht. Das Zahlenlesegerät liest die Nummer und sendet das Ergebnis an die Personenidentifizierungseinheit. Die Personenidentifizierungseinheit kann die Person basierend auf der gelesenen Nummer identifizieren.
-
8 ist ein Blockdiagramm, das ein anderes Robotersystem bei dieser Ausführungsform abbildet. Bei einem anderen Robotersystem (Herstellungssystem) 4 erfolgt ein verteiltes Lernen. Das andere Robotersystem 4 umfasst eine Vielzahl von Robotern und eine Vielzahl von Roboter-Controllern, wie in 8 abgebildet. Das Robotersystem 4 umfasst einen ersten Roboter 1a und einen zweiten Roboter 1b. Das Robotersystem 4 umfasst eine erste Hand 6a, die an dem erste Roboter 1a angebracht ist, und eine zweite Hand 6b, die an dem zweiten Roboter 1b angebracht ist. Somit umfasst das andere Robotersystem 4 zwei Roboter 1a und 1b und zwei Hände 6a und 6b.
-
Das Robotersystem 4 umfasst einen ersten Roboter-Controller 2a, der den ersten Roboter 1a steuert, und einen zweiten Roboter-Controller 2b, der den zweiten Roboter 1b steuert. Der erste Roboter-Controller 2a und der zweite Roboter-Controller 2b weisen die gleiche Konfiguration wie der zuvor erwähnte Roboter-Controller 2 auf. Die Vielzahl von Roboter-Controllern 2a und 2b ist über eine Kommunikationsvorrichtung, die eine Kommunikationsleitung 21 umfasst, miteinander verbunden. Die Kommunikationsvorrichtung kann eine Kommunikation beispielsweise über Ethernet® ausführen. Die Roboter-Controller 2a und 2b sind durch die Kommunikation zu einem gegenseitigen Informationsaustausch fähig.
-
In dem Robotersystem 4 arbeiten die Vielzahl von Robotern 1a und 1b und die Person zusammen. Bei dem in 8 abgebildeten Beispiel helfen zwei Roboter der Person bei der Arbeit. Der erste Roboter-Controller 2a lernt unabhängig, den ersten Roboter 1a zu steuern. Der zweite Roboter-Controller 2b lernt unabhängig, den zweiten Roboter 1b zu steuern. Informationen, die von den jeweiligen Roboter-Controllern gelernt werden, werden einander über die Kommunikationsleitung 21 übertragen.
-
Somit können Informationen, die von den jeweiligen Roboter-Controllern 2a und 2b gelernt werden, von dem ersten Roboter-Controller 2a und dem zweiten Roboter-Controller 2b gemeinsam genutzt werden. Diese Steuerung ermöglicht die gemeinsame Nutzung beispielsweise von Handlungsmustern zum Lernen, um die Anzahl von Lernvorgängen zu erhöhen. Dies kann die Lerngenauigkeit verbessern.
-
Die zuvor beschriebene Ausführungsform bildet einen kooperativen Arbeitsschritt zum Transportieren des Werkstücks W ab. Der kooperative Arbeitsschritt ist jedoch nicht auf diese Form eingeschränkt, sondern kann ein beliebiger kooperativer Arbeitsschritt sein. Beispiele können einen Arbeitsschritt zum Zusammenbauen eines Teils in einer vorbestimmten Vorrichtung durch Zusammenarbeit zwischen einem Roboter und einer Person umfassen.
-
9 ist ein Blockdiagramm, das eine Änderung des in 2 abgebildeten Robotersystems abbildet und ein Robotersystem 3' zeigt, das betreutes Lernen nutzt. Das Robotersystem 3' umfasst beispielsweise einen Roboter 1, eine Hand 6 und einen Roboter-Controller 2', wie in 9 abgebildet. Der Roboter-Controller 2' umfasst eine maschinelle Lernvorrichtung 7, eine Eingabeeinheit 41, eine Anzeigeeinheit 42, eine Handlungssteuereinheit 43, eine externe Kraftberechnungseinheit 46 und eine Bewegungszeit-Messeinheit 47. Die maschinelle Lernvorrichtung 7 umfasst eine Zustandsbeobachtungseinheit 71, eine Einheit zum Erzielen von Bestimmungsdaten 72, eine Lerneinheit 74, eine Personenidentifizierungseinheit 77, eine Entscheidungseinheit 78 und eine Speichereinheit 79. Die Lerneinheit 74 umfasst eine Belohnungsberechnungseinheit 55 und eine Funktionsaktualisierungseinheit 56.
-
Genauer gesagt geht aus einem Vergleich von 9 mit der zuvor erwähnten 2 hervor, dass in der Lerneinheit 74 des Robotersystems 3' bei der in 9 abgebildeten Änderung die Belohnungsberechnungseinheit 55 und die Funktionsaktualisierungseinheit 56 in der in 2 abgebildeten Lerneinheit 54 durch eine Fehlerberechnungseinheit 75 und eine Lernmodell-Aktualisierungseinheit 76 ersetzt werden. Die anderen Konfigurationen sind im Wesentlichen die gleichen wie die der in 2 abgebildeten maschinellen Lernvorrichtung 5, und eine Beschreibung derselben entfällt. Die Fehlerberechnungseinheit 75 empfängt Lehrerdaten von außen und führt beispielsweise eine Berechnung aus, um den Fehler bezüglich der Daten zu reduzieren, die durch früheres Lernen erzielt wurden, und die Lernmodell-Aktualisierungseinheit 76 aktualisiert das Lernmodell (Fehlermodell). Mit anderen Worten empfängt die Fehlerberechnungseinheit 75 die Ausgabe der Zustandsbeobachtungseinheit 71, Lehrerdaten und dergleichen und berechnet beispielsweise den Fehler zwischen den Ergebnisse (Kennzeichnungen) führenden Daten und der Ausgabe des Lernmodells, das in der Lerneinheit 74 eingebaut ist. Wenn beispielsweise die Programmeingabe in den Roboter-Controller 2' (der Vorgang, der von dem Robotersystem 3' verarbeitet wird) die gleiche ist, können Ergebnisse (Kennzeichnungen) führende Daten, die bis zu dem Tag vor dem vorbestimmten Tag, an dem das Robotersystem 3' eine Verarbeitung ausführt, erzielt wurden, gehalten werden und der Fehlerberechnungseinheit 75 als Lehrerdaten an dem vorbestimmten Tag bereitgestellt werden.
-
Alternativ können Daten, die beispielsweise über eine Simulation erzielt werden, die außerhalb des Robotersystems 3' ausgeführt wird, oder Ergebnisse (Kennzeichnungen) führende Daten, die von einem anderen Robotersystem erzielt werden, der Fehlerberechnungseinheit 75 des Robotersystems 3' als Lehrerdaten über eine Speicherkarte oder eine Kommunikationsleitung bereitgestellt werden. Die Ergebnisse (Kennzeichnungen) führenden Daten können auch in einem nicht-flüchtigen Speicher gehalten werden, wie etwa einem Flash-Speicher, der in die Lerneinheit 74 eingebaut ist, und in der Lerneinheit 74 direkt verwendet werden.
-
In der vorstehenden Beschreibung unter der Voraussetzung eines Herstellungssystems (Herstellungsanlage), das eine Vielzahl von Robotersystemen 3' (3) umfasst, kann beispielsweise eine maschinelle Lernvorrichtung 7 (5) für jedes Robotersystem 3' (3) bereitgestellt werden, und die Vielzahl von maschinellen Lernvorrichtungen 7 (5), die sich in der Vielzahl von Robotersystemen 3' (3) befindet, kann über ein Kommunikationsmedium miteinander Daten teilen oder austauschen. Eine maschinelle Lernvorrichtung 7 (5) kann sich beispielsweise auch in einem Cloud-Server befinden.
-
Die vorliegende Erfindung kann eine maschinelle Lernvorrichtung, einen Roboter-Controller, ein Robotersystem und ein maschinelles Lernverfahren, welches das Handlungsmuster einer Person lernen und ein Verfahren zum Steuern eines Roboters, der die Person entsprechend unterstützt, einstellen kann, bereitstellen.
-
Alle hier bereitgestellten Beispiele und bedingten Formulierungen sind zu pädagogischen Zwecken gedacht, um dem Leser beim Verständnis der Erfindung und der Konzepte zu helfen, die vom Erfinder zur Förderung der Technik beigetragen werden, und sind nicht als Einschränkungen auf diese spezifisch erwähnten Beispiele und Bedingungen auszulegen, und die Anordnung dieser Beispiele in der Beschreibung soll auch keine Überlegenheit und Unterlegenheit der Erfindung zeigen. Obwohl eine oder mehrere Ausführungsformen der vorliegenden Erfindung ausführlich beschrieben wurde(n), versteht es sich, dass diverse Änderungen, Ersetzungen und Abänderungen daran vorgenommen werden könnten, ohne Geist und Umfang der Erfindung zu verlassen.
-
Nachfolgend werden noch Beispiele zum Verständnis der vorliegenden Erfindung aufgezeigt:
- 1. Maschinelle Lernvorrichtung für einen Roboter (1, 1a, 1b), die es einer Person (85) und dem Roboter (1, 1a, 1b) ermöglicht, zusammen zu arbeiten, wobei die maschinelle Lernvorrichtung Folgendes umfasst:
- eine Zustandsbeobachtungseinheit (51, 71), die eine Zustandsvariable beobachtet, die einen Zustand des Roboters (1, 1a, 1b), wenn die Person (85) und der Roboter (1, 1a, 1b) zusammen arbeiten, darstellt;
- eine Einheit zum Erzielen von Bestimmungsdaten (52, 72), die Bestimmungsdaten für mindestens eine von einer Belastungshöhe für die Person (85) und einer Arbeitseffizienz erzielt; und
- eine Lerneinheit (54, 74), die einen Trainingsdatensatz zum Einstellen einer Handlung des Roboters (1, 1a, 1b) basierend auf der Zustandsvariablen und den Bestimmungsdaten lernt.
- 2. Maschinelle Lernvorrichtung nach Beispiel 1, wobei die Zustandsvariable mindestens eine von einer Position, einer Ausrichtung, einer Geschwindigkeit und einer Beschleunigung des Roboters (1, 1a, 1b) umfasst.
- 3. Maschinelle Lernvorrichtung nach Beispiel 1 oder 2, wobei die Bestimmungsdaten mindestens eine von einer Größenordnung und einer Richtung einer Last, die von dem Roboter erfasst wird (1, 1a, 1b), einer Größenordnung und einer Richtung einer Last, die von einer Umgebung um den Roboter (1, 1a, 1b) herum erfasst wird, einer Belastungshöhe für die Umgebung um den Roboter (1, 1a, 1b) herum, und einer Zeit, die benötigt wird, um den Roboter (1, 1a, 1b) zu bewegen, umfassen.
- 4. Maschinelle Lernvorrichtung nach einem der Beispiele 1 bis 3, wobei der Trainingsdatensatz eine Handlungswertvariable umfasst, die einen Wert einer Handlung des Roboters (1, 1a, 1b) darstellt, der für jeden Zustand des Roboters (1, 1a, 1b) und jede Handlung des Roboters (1, 1a, 1b) eingestellt wird, und die Lerneinheit (54) Folgendes umfasst:
- eine Belohnungsberechnungseinheit (55), die eine Belohnung basierend auf den Bestimmungsdaten und der Zustandsvariablen einstellt; und
- eine Funktionsaktualisierungseinheit (56), welche die Handlungswertvariable basierend auf der Belohnung und der Zustandsvariablen aktualisiert.
- 5. Maschinelle Lernvorrichtung nach Beispiel 4, wobei die Belohnungsberechnungseinheit (55) eine größere Belohnung für einen kleineren absoluten Wert einer Beschleunigung des Roboters (1, 1a, 1b) und eine größere Belohnung für eine kürzere Zeit, die benötigt wird, um den Roboter (1, 1a, 1b) zu bewegen, einstellt.
- 6. Maschinelle Lernvorrichtung nach einem der Beispiele 1 bis 3, wobei der Trainingsdatensatz ein Lernmodell für den Roboter (1, 1a, 1b) umfasst, das für jeden Zustand des Roboters (1, 1a, 1b) und jede Handlung des Roboters (1, 1a, 1b) eingestellt wird, und die Lerneinheit (74) Folgendes umfasst:
- eine Fehlerberechnungseinheit (75), die einen Fehler des Lernmodells basierend auf den Bestimmungsdaten, der Zustandsvariablen und den eingegebenen Lehrerdaten berechnet; und
- eine Lernmodell-Aktualisierungseinheit (76), die das Lernmodell basierend auf dem Fehler und der Zustandsvariablen aktualisiert.
- 7. Maschinelle Lernvorrichtung nach einem der Beispiele 1 bis 6, ferner umfassend:
- eine Personenidentifizierungseinheit (57, 77), die eine Person (85) identifiziert, die mit dem Roboter (1, 1a, 1b) zusammen arbeitet,
- wobei der Trainingsdatensatz für jede Person (85) erstellt wird, und
- die Lerneinheit (54, 74) den Trainingsdatensatz für die identifizierte Person (85) lernt.
- 8. Maschinelle Lernvorrichtung nach einem der Beispiele 1 bis 7, wobei die maschinelle Lernvorrichtung (5, 7) ein neuronales Netz umfasst.
- 9. Maschinelle Lernvorrichtung nach einem der Beispiele 1 bis 8, wobei der Roboter (1, 1a, 1b) einen von einem Industrieroboter, einem Feldroboter und einem Serviceroboter umfasst.
- 10. Roboter-Controller, umfassend:
- die maschinelle Lernvorrichtung (5, 7) nach einem der Beispiele 1 bis 9; und
- eine Handlungssteuereinheit (43), die eine Handlung des Roboters (1, 1a, 1b) steuert,
- wobei die maschinelle Lernvorrichtung eine Entscheidungseinheit (58, 78) umfasst, die eine Handlung des Roboters (1, 1a, 1b) basierend auf dem Trainingsdatensatz einstellt,
- wobei die Handlungssteuereinheit (43) die Handlung des Roboters (1, 1a, 1b) basierend auf einem Befehl von der Entscheidungseinheit (58, 78) steuert.
- 11. Robotersystem, umfassend:
- den Roboter-Controller (2, 2') nach Beispiel 10;
- ein Roboter (1, 1a, 1b), der einer Person (85) bei der Arbeit hilft; und
- einen Endeffektor, der an dem Roboter (1, 1a, 1b) angebracht ist.
- 12. Robotersystem nach Beispiel 11, wobei der Roboter (1, 1a, 1b) Folgendes umfasst:
- einen Kraftdetektor (19), der ein Signal ausgibt, das einer Kraft der Person (85) entspricht; und
- einen Zustandsdetektor (15), der eine Position und eine Ausrichtung des Roboters (1, 1a, 1b) detektiert,
die Einheit zum Erzielen von Bestimmungsdaten (52, 72) die Bestimmungsdaten basierend auf der Ausgabe des Kraftdetektors (19) erzielt, und die Zustandsbeobachtungseinheit (51, 71) die Zustandsvariable basierend auf der Ausgabe des Zustandsdetektors (15) erzielt. - 13. Robotersystem nach Beispiel 12, wobei der Zustandsdetektor (15) mindestens einen von einem Bewegungssensor, einem Drucksensor, einem Drehmomentsensor für einen Motor und einem Kontaktsensor umfasst.
- 14. Robotersystem nach Beispiel 12 oder 13, ferner umfassend:
- eine Vielzahl von Robotern (1a, 1b);
- eine Vielzahl von Roboter-Controllern (2a, 2b); und
- eine Kommunikationsleitung (21), welche die Vielzahl von Roboter-Controllern (2a, 2b) miteinander verbindet,
- wobei jeder der Vielzahl von Roboter-Controllern (2a, 2b) den Trainingsdatensatz für einen Roboter (1a, 1b) unabhängig lernt, der von dem Roboter-Controller (2a, 2b) gesteuert wird, und die gelernten Informationen über die Kommunikationsleitung (21) sendet und teilt.
- 15. Maschinelles Lernverfahren für einen Roboter (1, 1a, 1b), das es einer Person (85) und dem Roboter (1, 1a, 1b) ermöglicht, zusammen zu arbeiten, wobei das maschinelle Lernverfahren folgende Schritte umfasst:
- Beobachten einer Zustandsvariable, die einen Zustand des Roboters (1, 1a, 1b) während eines Zeitraums darstellt, in dem die Person (85) und der Roboter (1, 1a, 1b) zusammen arbeiten;
- Erzielen von Bestimmungsdaten für mindestens eine von einer Belastungshöhe für die Person (85) und einer Arbeitseffizienz; und
- Lernen eines Trainingsdatensatzes zum Einstellen einer Handlung des Roboters (1, 1a, 1b) basierend auf der Zustandsvariablen und den Bestimmungsdaten.