-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich auf eine Aktionsinformations-Lernvorrichtung, ein Robotersteuersystem und ein Aktionsinformations-Lernverfahren.
-
Stand der Technik
-
Konventioneller Weise hat es Fälle gegeben, wo Roboter in einem Raum zusammen mit Menschen existieren. Beispielsweise gibt es Fälle, wo Roboter einer Reihe von Operationen wie etwa Tragen eines Werkstücks bis zu einer vorab programmierten Position, Übergabe des Werkstücks an einen Bediener und Bewegen zum Aufnehmen des nächsten Werkstücks wiederholen. Im Falle der Durchführung einer kooperativen Arbeit zwischen einem Roboter und einem Bediener ist auf diese Weise die Arbeit an Positionen, zu Zeitpunkten etc., über die entsprechend der Programmierung entschieden wird, durchgeführt worden. Jedoch kann in einem solchen Fall das Empfangen für den Bediener schwierig sein, oder das Starten des nächsten Werkstücks kann schwierig sein, abhängig von Übergabeposition und Zeitpunkt. In dieser Hinsicht ist eine Vorrichtung zum Optimieren der durch den Roboter durchzuführenden Arbeit offenbart worden (siehe beispielsweise Patentdokument 1).
-
Patentdokument 1: Japanische ungeprüfte Patentanmeldung, Veröffentlichungs-Nr. 2009-125920.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Um einen Roboter dazu zu bringen, eine optimale Verarbeitung durchzuführen, ist es notwendig, die Übergabeposition etc. durch wieder Durchführen der Programmierung zu erlernen; jedoch hat es Grenzen beim Lokalisieren der Position etc. durch Versuch und Irrtum gegeben.
-
Die vorliegende Erfindung ist unter Berücksichtigung solcher Probleme gemacht worden und eine Aufgabe derselben ist es, eine Aktionsinformations-Lernvorrichtung, ein Robotersteuersystem und ein Aktionsinformations-Lernverfahren bereitzustellen, um das Durchführen der kooperativen Arbeit durch einen Bediener mit einem Roboter zu erleichtern.
-
Eine Aktionsinformations-Lernvorrichtung (z.B. die später beschriebene Aktionsinformations-Lernvorrichtung 300) gemäß einem ersten Aspekt der vorliegenden Erfindung beinhaltet: eine Zustandsinformation-Erfassungseinheit (z.B. die später beschriebene Zustandsformations-Erfassungseinheit 310) zum Erfassen von Zustandsformation (z.B. der später beschriebene Zustand s) eines Roboters (z.B. der später beschriebene Roboter 100) in einem Fall, bei dem der Roboter ein Werkstück (z.B. das später beschriebene Werkstück 7), das aus einem Werkstücklagerplatz erfasst wird, an einen Bediener (z.B. den später beschriebenen Bediener P), innerhalb eines Werkstückübergabebereichs (z.B. den später beschriebenen Übergabebereich 8), welches ein Bereich ist, in welchem das Werkstück zu übergeben ist, übergibt; eine Aktionsinformations-Ausgabeeinheit (z.b. die später beschriebene Aktionsinformations-Ausgabeeinheit 320) zum Ausgeben von Aktionsinformation (z.B. die später beschriebene Aktion a), die Justierinformation für die Zustandsinformation ist; eine Vergütungsrecheneinheit (z.B. der später beschriebene Vergütungsrechenabschnitt 331) zum Erfassen von Bestimmungsinformation, die Information zu einer Übergabezeit (z.B. der später beschriebenen Übergabezeit T) ist, welche sich auf die Übergabe des Werkstücks bezieht, und Berechnen eines Vergütungswertes beim Verstärkungslernen, basierend auf der so erfassten Bestimmungsinformation; und eine Wertefunktions-Aktualisierungseinheit (z.B. die später beschriebene Wertefunktions-Aktualisierungseinheit 332) zum Aktualisieren einer Wertefunktion (z.B. der später beschriebenen Wertefunktion Q) mittels des Durchführens des Verstärkungslernens, basierend auf einem Vergütungswert, welcher durch die Vergütungsrecheneinheit berechnet wird, der Zustandsinformation und der Aktionsinformation.
-
Gemäß einem zweiten Aspekt der vorliegenden Erfindung kann in der Aktionsinformations-Lernvorrichtung, wie im ersten Aspekt beschrieben, die Zustandsformation Information enthalten, die sich auf eine Stellung des Roboters und Übergabeposition innerhalb des Werkstückübergabebereichs bezieht, und kann die Justierinformation Information zum Durchführen der Justierung der Zustandsformation beinhalten.
-
Gemäß einem dritten Aspekt der vorliegenden Erfindung kann in der Aktionsinformations-Lernvorrichtung, wie im zweiten Aspekt beschrieben, die Zustandsinformation weiter einen Bewegungspfad des Roboters ab einer Position, an welcher das Werkstück erfasst wird, bis innerhalb des Werkstückübergabebereichs beinhalten.
-
Gemäß einem vierten Aspekt der vorliegenden Erfindung kann in der Aktionsinformations-Lernvorrichtung, wie in einem der ersten bis dritten Aspekte beschrieben, die Vergütungsrecheneinheit den Vergütungswert als einen positiven Wert in einem Fall etablieren, bei dem die Übergabezeit kürzer als eine vorherige Übergabezeit ist, und den Vergütungswert als einen negativen Wert in einem Fall etablieren, bei dem die Übergabezeit länger als eine vorherige Übergabezeit ist.
-
Gemäß einem fünften Aspekt der vorliegenden Erfindung kann in der Aktionsinformations-Lernvorrichtung, wie in einem der ersten bis vierten Aspekte beschrieben, die Übergabezeit aus einer Bewegungszeit (z.B. der später beschriebenen Bewegungszeit T1) ab Erfassen des Werkstücks bis zum Bewegen zu einer Position innerhalb des Werkstückübergabebereichs und einer Abgabezeit (z.B. der später beschriebenen Abgabezeit T2) bis der Bediener das Werkstück nach Bewegen des Werkstücks zu der Position innerhalb des Werkstückübergabebereichs abnimmt, bestehen, und kann der Wert der Vergütung auf einen größeren Wert für einen Fall gesetzt werden, bei dem die Abgabezeit kürzer ist als ein Fall, bei dem die Bewegungszeit kürzer ist, wenn die Übergabezeit die gleiche ist.
-
Gemäß einem sechsten Aspekt der vorliegenden Erfindung kann in der Aktionsinformations-Lernvorrichtung, wie in einem der ersten bis fünften Aspekte beschrieben, die Wertefunktion mit einer anderen Aktionsinformations-Lernvorrichtung geteilt werden und kann die Wertefunktions-Aktualisierungseinheit die Wertefunktion, die so geteilt ist, aktualisieren.
-
Ein Robotersteuersystem (z.B. das später beschriebene Robotersteuersystem 1000) gemäß einem siebten Aspekt der vorliegenden Erfindung beinhaltet: die Aktionsinformations-Lernvorrichtung (z.B. die später beschriebene Aktionsinformations-Lernvorrichtung 300), wie in einem der ersten bis sechsten Aspekte beschrieben, und eine Robotersteuervorrichtung (z.B. die später beschriebene Robotersteuervorrichtung 200), die mit der Aktionsinformations-Lernvorrichtung über ein Kommunikationsnetzwerk (z.B. das später beschriebene Netzwerk 400) verbunden ist und den Roboter (z.B. den später beschriebenen Roboter 100) steuert, wobei die Aktionsinformations-Lernvorrichtung beinhaltet: eine optimierte Aktionsinformations-Ausgabeeinheit (z.B. die später beschriebene optimierte Aktionsinformations-Ausgabeeinheit 350) zum Erzeugen von optimierter Aktionsinformation, die Aktionsinformation zum Minimieren der Übergabezeit durch den Roboter ist, basierend auf der durch die Wertefunktions-Aktualisierungseinheit aktualisierten Wertefunktion (z.B. dem später beschriebenen Wertefunktions-Aktualisierungsabschnitt 332); die optimierte Aktionsinformations-Ausgabeeinheit (z.B. die später beschriebene optimierte Aktionsinformations-Ausgabeeinheit 350) zum Ausgeben der erzeugten optimierten Aktionsinformation an die Robotersteuervorrichtung.
-
Ein Aktionsinformations-Lernverfahren gemäß einem achten Aspekt der vorliegenden Erfindung beinhaltet die Schritte: Erfassen von Zustandsinformation eines Roboters mittels einer Zustandsinformations-Erfassungseinheit in einem Fall, bei dem der Roboter ein aus dem Werkstücklagerplatz erfasstes Werkstück an einen Bediener übergibt, innerhalb eines Werkstückübergabebereichs, welches ein Bereich ist, in welchem das Werkstück zu übergeben ist; Ausgeben von Aktionsinformation, die Justierinformation für die Zustandsinformation ist, mittels einer Aktionsinformations-Ausgabeeinheit; Erfassen von Bestimmungsinformation, die Information hinsichtlich einer Übergabezeit ist, die sich auf die Übergabe eines Werkstücks bezieht, und Berechnen eines Vergütungswerts beim Verstärkungslernen, basierend auf der so erfassten Bestimmungsinformation mittels einer Vergütungsrecheneinheit; und Aktualisieren, mittels einer Wertefunktions-Aktualisierungseinheit, einer Wertefunktion durch Durchführen des Verstärkungslernens, basierend auf dem Vergütungswert, der so berechnet ist, der Zustandsinformation und der Aktionsinformation.
-
Gemäß der vorliegenden Erfindung ist es möglich, eine Aktionsinformations-Lernvorrichtung, ein Robotersteuersystem und ein Aktionsinformations-Lernverfahren zum Erleichtern der Durchführung der Kooperativen Arbeit durch einen Bediener mit einem Roboter bereitzustellen.
-
Figurenliste
-
- 1 ist ein Blockdiagramm, das die Basis-Gesamtkonfiguration einer Ausführungsform der vorliegenden Erfindung zeigt;
- 2 ist ein Blockdiagramm, welches Funktionsblöcke zeigt, mit denen jede in der Ausführungsform der vorliegenden Erfindung enthaltene Vorrichtung ausgestattet ist;
- 3 ist eine Ansicht zum Erläutern von Operationen eines Roboters in der Ausführungsform der vorliegenden Erfindung;
- 4 ist ein Flussdiagramm, das die Basisoperationen während des Verstärkungslernens in der Ausführungsform der vorliegenden Erfindung zeigt;
- 5 ist ein Flussdiagramm, welches die Basisoperationen während der Auswahl optimierter Aktionsinformation in der Ausführungsform der vorliegenden Erfindung zeigt; und
- 6 ist ein Blockdiagramm, welches eine Kooperation zwischen Aktionsinformations-Lernvorrichtungen in einer modifizierten Ausführungsform der vorliegenden Erfindung zeigt.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
(Ausführungsform)
-
Zuerst wird ein Umriss einer Ausführungsform der vorliegenden Erfindung erläutert. In der vorliegenden Ausführungsform arbeiten ein Roboter 100 und ein Bediener P in Kooperation innerhalb eines Arbeitsraums, wie in 1 gezeigt. Dann transportiert der Roboter 100 ein Werkstück 7 (siehe 3) zum Bediener P und der Bediener P empfängt das Werkstück 7 vom Roboter 100 und nimmt eine Arbeit vor. Dann erlernt ein Robotersteuersystem 1000 die Aktionsinformation der Roboters 100, so dass die Zeit, ab dann wenn der Roboter 100 das Werkstück 7 transportiert, bis der Bediener P das Werkstück 7 abnimmt, ab kürzesten wird.
-
Als Nächstes wird die Konfiguration des Robotersteuersystems 1000 gemäß der vorliegenden Ausführungsform erläutert. Das Robotersteuersystem 1000 beinhaltet den Roboter 100, eine Robotersteuervorrichtung 200, eine Aktionsinformations-Lernvorrichtung 300 und ein Netzwerk 400. Hier sind die Robotersteuervorrichtungen 200 und die Roboter 100 kommunizierbar verbunden, um Eins-zu-Eins-Gruppen zu bilden. Es sollte angemerkt werden, dass die Robotersteuervorrichtungen 200 und die Roboter 100 direkt über eine Verbindungsschnittstelle verbunden sein können oder über ein Netzwerk, wie etwa ein LAN (Lokalbereichsnetzwerk) verbunden sein können.
-
Zusätzlich sind die Robotersteuervorrichtung 200 und die Aktionsinformations-Lernvorrichtung 300 beide direkt über eine Verbindungsschnittstelle verbunden oder sind miteinander über das Netzwerk 400 verbunden, um in der Lage zu sein, gegenseitige Kommunikation durchzuführen. Es sollte angemerkt werden, dass das Netzwerk 400 beispielsweise ein LAN ist, das innerhalb einer Fabrik aufgebaut ist, das Internet, das öffentliche Telefonnetzwerk oder eine Kombination von diesen. Das spezifische Kommunikationssystem des Netzwerks 400, ob es eine verdrahtete Verbindung oder Funkverbindung sein, ist nicht besonders beschränkt.
-
Als Nächstes werden die Funktionen dieser Vorrichtungen, die im Robotersteuersystem 1000 enthalten sind, durch Bezugnahme auf 2 erläutert. Hier ist 2 ein Blockdiagramm, das Funktionsblöcke zeigt, die in jeder Vorrichtung enthalten sind. Es sollte angemerkt werden, dass das zwischen jeder Vorrichtung existierende Netzwerk 400 aus dieser Illustration weggelassen ist.
-
Der Roboter 100 transportiert das Werkstück 7, wie etwa beispielsweise eine Komponente, entsprechend einem Betriebsbefehl, der basierend auf einem in der Robotersteuervorrichtung 200 eingestellten Robotersteuerprogramm erzeugt wird, und den Parameter-Einstellwerten, die in der Robotersteuervorrichtung 200 eingestellt sind. Der Roboter 100 beinhaltet eine Motoreinheit 110 und eine Abgabetaste 120. Die Motoreinheit 110 ist ein Servomotor, welcher eine Antriebwelle einer Handeinheit 13 (später beschrieben) oder dergleichen des Roboters veranlasst, zu verfahren. Die Abgabetaste 120 ist eine Taste zum Durchführen der Verarbeitung zum Loslassen des in der Handeinheit 13 gefassten Werkstücks 7. Die Abgabetaste 120 wird durch den Bediener P betätigt. Drückinformation durch Betätigen der Abgabetaste 120 wird an die Robotersteuervorrichtung 200 gesendet.
-
Hier werden Operationen des Roboters 100 basierend auf 3 erläutert. 3 ist eine Ansicht zum Erläutern von Operationen des Roboters 100 in der Ausführungsform der vorliegenden Erfindung. Der Roboter 100 ist beispielsweise ein 6-Achsen-Schwenkroboter. Die Antriebswelle jedes Gelenkteils des Roboters 100 und die Antriebswelle der Handeinheit 13 treiben gemäß der Motoreinheit 110 an und wird durch die Robotersteuervorrichtung 200 gesteuert. Der Roboter 100 erfasst das an einem Werkstücklagerplatz platziertes Werkstück 7 und transportiert das Werkstück 7 zu einer vorbestimmten Position in einem Übergabebereich 8 an einer Werkbank. Die Zeit, ab wann dieser Roboter 100 das Werkstück 7 erfasst, bis zum Transport des Werkstücks 7 zu der vorbestimmten Position des Übergabebereichs 8 ist als die Bewegungszeit T1 definiert.
-
Der Roboter 100 ändert die Position und Stellung anhand der durch den Bediener P am Roboter 100 vorgenommenen Manipulation, zum Beispiel Operation zum Erfassen und Bewegen der Umgebung der Handeinheit 13 des Roboters 100 durch den Bediener P. Zusätzlich führt die Motorsteuereinheit 210 der Robotersteuervorrichtung 200 eine Steuerung zum Loslassen des Werkstücks 7 aus der Handeinheit 13 gemäß der Druckbetätigung auf der Abgabetaste 120 durch den Bediener P durch, und nimmt der Bediener P das Werkstück 7 vom Roboter 100 entgegen. Die Zeit, ab wann dieser Roboter 100 das Werkstück 7 zu der vorbestimmten Position in dem Übergabebereich 8 transportiert, bis der Bediener P das Werkstück 7 abnimmt, wird als Abgabezeit T2 definiert. Dann wird die Zeit, zu der durch Addieren der Bewegungszeit T1 und der Abgabezeit T2 gelangt wird, als die Übergabezeit T definiert.
-
Obwohl Funktionsblöcke des Roboters 100 oben erläutert worden sind, sind die vorgenannten Funktionsblöcke Bereiche, die für die Operationen der vorliegenden Ausführungsform besonders relevant sind. Der Roboter 100 beinhaltet allgemeine Funktionsblöcke wie etwa einen Motorantriebsverstärker zum Verstärken des Operationsbefehls und ein Steuerpaneel zum Empfangen von Manipulationen des Anwenders beispielsweise zusätzlich zu den vorgenannten Funktionsblöcken. Jedoch, da diese üblichen Funktionsblöcke Fachleuten bekannt sind, wird eine detaillierte Erläuterung und Illustration derselben weggelassen.
-
Rückbezug nehmend auf 2 ist die Robotersteuervorrichtung 200 eine Vorrichtung, die vorbestimmte Operationen veranlasst, durch den Roboter 100 durchzuführen, durch Steuern des Roboters 100. Zusätzlich sendet die Robotersteuervorrichtung 200 Zustandsinformation (auch als „Status“ bezeichnet) an die Aktionsinformations-Lernvorrichtung 300. Weiterhin empfängt die Robotersteuervorrichtung 200 Aktionsinformation (auch als „Aktion“ bezeichnet) aus der Aktionsinformations-Lernvorrichtung 300. Die Details der entsprechenden Information werden zusammen mit der Erläuterung von Funktionsblöcken der Aktionsinformations-Lernvorrichtung 300 erläutert.
-
Die Robotersteuervorrichtung 200 beinhaltet die Motorsteuereinheit 210, die Parametereinstelleinheit 220, die Programmkorrektureinheit 230 und die Übergabezeitmesseinheit 240.
-
Die Motorsteuereinheit 210 erzeugt Betriebsbefehle basierend auf dem Robotersteuerprogramm und den Einstellwerten von Parametern (beispielsweise Werte, die sich auf die Stellung innerhalb des Übergabebereichs 8 des Roboters 100 beziehen, einschließlich der Handeinheit 13, Position innerhalb des Übergabebereichs 8, den Bewegungspfad des Roboters 100 vom Erfassen des Werkstücks 7 bis zum Erreichen der Position innerhalb des Übergabebereichs 8) und sendet die erzeugten Betriebsbefehle an den Roboter 100. Dann erzeugt die Motorsteuereinheit 210 den Antrieb der Motoreinheit 110 etc. des Roboters 100 durch Senden des Betriebsbefehls an den Roboter 100. Die Transportoperation des Werkstücks 7 durch den Roboter 100 wird mittels dieser Verarbeitung realisiert. Hierin sind Ausdrücke und Bedingungen des Transports (beispielsweise eine Karteninformation zum Vermeiden von Hindernissen, Bewegungsgeschwindigkeit etc.) im Robotersteuerprogramm definiert.
-
Die Parametereinstelleinheit 220 ist ein Bereich, der sich auf Bewegungsverarbeitung während des Transports des Werkstücks 7 gemäß diesem Robotersteuerprogramm des Roboters 100 beziehende Parameter einstellt. Parameter des Roboters 100 sind beispielsweise Parameter, die sich auf die Stellung innerhalb des Übergabebereichs 8 des Roboters 100, der die Handeinheit 13 beinhaltet, Position innerhalb des Übergabebereichs 8 und Bewegungspfad des Roboters 100 beziehen. Die Parameter, welche die Stellung des Roboters 100 einschließlich der Handeinheit 13 angeben, sind beispielsweise Daten, die sich auf den Winkel der Handeinheit 13 beziehen. Zusätzlich sind die, die Position innerhalb des Übergabebereichs 8 angebenden Parameter Daten, welche die Position der Handeinheit 13 beispielsweise in XYZ-Koordinaten ausdrücken. Die sich beispielsweise auf den Bewegungspfad des Roboters 100 beziehenden Parameter sind Daten von Lehrpunkten des Roboters 100 ab einer Position des Werkstücklagerplatzes, an welchem der Roboter 100 das Werkstück 7 aufnimmt, bis zum Übergabebereich 8. Hier beziehen sich die Lehrpunkte des Roboters 100 auf die Positionen des Führungsendteils der Handeinheit 13 des Roboters 100. Die Einstellwerte dieser Parameter werden basierend auf der aus der Aktionsinformations-Lernvorrichtung 300 ausgegebenen Aktionsinformation und optimierter Aktionsinformation justiert.
-
Die Programmkorrektureinheit 230 korrigiert direkt das Robotersteuerprogramm. Spezifischer korrigiert die Programmkorrektureinheit 230 direkt Programmcode basierend auf der aus der Aktionsinformations-Lernvorrichtung 300 ausgegebenen Aktionsinformation, wie etwa die Stellung innerhalb des Übergabebereichs 8 des Roboters 100, der die Handeinheit 13 enthält, und Position innerhalb des Übergabebereichs 8, welche durch dieses Robotersteuerprogramm beschrieben werden, und/oder der optimierten Aktionsinformation.
-
Die Übergabezeitmesseinheit 240 ist eine Steuereinheit, die Zeit misst. Die Übergabezeitmesseinheit 240 misst eine Bewegungszeit T1, welches die Zeit ist, bis der Roboter 100 ein in dem Werkstücklagerplatz platziertes Werkstück 7 aufnimmt, bis zum Transportieren des Werkstücks 7 an eine vorbestimmte Position im Übergabebereich 8. Zusätzlich misst die Übergabezeit-Messeinheit einer Abgabezeit T2, welches die Zeit ab dem Transportieren des Werkstücks 7 zu der vorbestimmten Position in dem Übergabebereich 8 ist, bis der Bediener P das Werkstück 7 abnimmt.
-
Die Aktionsinformations-Lernvorrichtung 300 ist eine Vorrichtung, welche Verstärkungslernen durchführt. Vor einer Erläuterung von in der Aktionsinformations-Lernvorrichtung 300 enthaltenen jeweiligen Funktionsblöcken wird zuerst die Basisarbeit des Verstärkungslernens erläutert. Ein Agent (entsprechend der Aktionsinformations-Lernvorrichtung 300 der vorliegenden Ausführungsform) überwacht den Zustand der Umgebung, wählt eine gewisse Aktion aus und die Umgebung ändert sich basierend auf dieser Aktion. In Übereinstimmung mit der Änderung bei der Umgebung wird irgendeine Art von Vergütung gegeben und der Agent erlernt eine Auswahl einer besseren Aktion (Entscheidungstreffen). Supervidiertes Lernen gibt eine vollständig korrekte Lösung an; während die Vergütung beim Verstärkungslernen oft ein fragmentarischer Wert ist, der auf einer partiellen Änderung in der Umgebung basiert. Aus diesem Grund lernt der Agent, eine Aktion so auszuwählen, dass die Summe der Vergütung in der Zukunft maximiert wird.
-
Durch Lernen von Aktionen mit Verstärkungslernen wird auf diese Weise ein Verfahren zum Lernen der angemessenen Aktion erlernt, basierend auf der Interaktion, die der Umgebung durch die Aktion auferlegt wird, das heißt Lernen zum Maximieren der Vergütung, die in der Zukunft erhalten wird. In der vorliegenden Ausführungsform repräsentiert dies die Angelegenheit, in der Lage zu sein, eine Aktion so zu erfassen, dass sie eine Auswirkung auf die Zukunft hat, wie beispielsweise Auswählen von Aktionsinformation zum Verkürzen der Übergabezeit T und weiter Verkürzen der Abgabezeit T2.
-
Hier, obwohl es möglich ist, jegliches Lernverfahren als das Verstärkungsverfahren zu verwenden, wird in der nachfolgenden Erläuterung eine Erläuterung mit einem Beispiel eines Falls gegeben, bei dem Q-Lernen verwendet wird, welches eine Verfahren des Lernens einer Qualität Q(s, a) des Auswählens einer Aktion A in einem gewissen Zustand s der Umgebung ist. Q-Lernen hat den Zweck, eine Aktion A auszuwählen, welche die höchste Qualität Q(s, a) aus den verfügbaren Aktionen a aufweist, als die optimale Aktion, wenn ein gewisser Zustand s.
-
Jedoch, im Moment des anfänglichen Startens von Q-Lernen, ist der korrekte Wert der Qualität Q(s, a) für Kombinationen von Zustand s und Aktionen komplett unbekannt. Daher wählt der Agent verschiedene Aktionen a in einem gewissen Zustand s aus und erlernt die korrekte Qualität Q(s, a) durch Treffen einer Auswahl einer besseren Aktion, basierend auf der gewährten Vergütung relativ zur Aktion a zu dieser Zeit.
-
Zusätzlich, da es gewünscht wird, die Gesamtsumme von Vergütungen, die in der Zukunft erhalten werden, zu maximieren, wird drauf abgezielt, so zu konfigurieren, dass schließlich die Qualität Q(s, a) = E[Σ(γ
t)r
t] wird. Hier repräsentiert [] den Erwartungswert, ist t die Zeit, ist y ein Parameter, der die später beschriebene Rabattrate genannt wird, ist r
t die Vergütung zur Zeit t und ist Σ die Gesamtsumme gemäß Zeit t. Der erwartete Wert dieser Formel ist der erwartete Wert in dem Fall, bei dem sich der Zustand entsprechend der optimalen Aktion ändert. Jedoch, da es unklar ist, was die optimale Aktion ist, im Verlauf des Q-Lernens, wird ein Verstärkungslernen vorgenommen, während durch Durchführen verschiedener Aktionen gesucht wird. Ein Aktualisierungsverfahren einer solchen Qualität Q(s, a) kann durch die nachfolgende Formel (1) repräsentiert werden. [Formel 1]
-
In der obigen Formel (1) repräsentiert st den Zustand der Umgebung zur Zeit t und repräsentiert at die Aktion zur Zeit t. Der Zustand ändert sich entsprechend der Aktion at zu st+1. rt+1 repräsentiert die durch diese Änderung beim Zustand erhaltene Vergütung. Zusätzlich wird ein Ausdruck mit max zu einem Wert, zu dem durch Multiplizieren von y mit dem Q-Wert im Falle der Auswahl der Aktion a mit dem höchsten Q-Wert, der zu dieser Zeit bekannt ist, im Zustand st+1 gelangt wird. Hier ist y ein Parameter von 0<γ≤1 und wird Rabattrate genannt. Zusätzlich ist α eine Lernrate und im Bereich von 0<α≤1 definiert.
-
Die vorstehende Formel (1) drückt ein Verfahren des Aktualisierens der Qualität Q(st, at) einer Aktion beim Zustand st aus, basierend auf der rückgegebenen Vertiefung rt+1 als ein Ergebnis eines Versuchslaufs at. Dieser Aktualisierungstyp zeigt die Angelegenheit der Qualität Q(st, at), welche ansteigt, falls die Qualität maxa Q(st+1, a) der besten Aktion im nachfolgenden Zustand st+1 von der Aktion at größer als die Qualität Q(st, at) der Aktion im Zustand st ist, und zeigt die Qualität Q(st, at), die abnimmt, falls umgekehrt kleiner. Mit anderen Worten wird die Qualität Q(s,a) einer gewissen Aktion in einem gewissen Zustand dazu gebracht, sich dem Wert der besten Aktion im nachfolgenden Zustand davon abhängig anzunähern. Jedoch ändert sich die Differenz abhängig von den Idealzuständen für die Rabattrate γ und Vergütung rt+1; jedoch wird sie im Wesentlichen ein Mechanismus, in welchem die Qualität für die beste Aktion in einem gewissen Zustand zur Qualität der Aktion ein Zustand davor, der dazu führt, propagiert.
-
Hier gibt es beim Q-Lernen en Verfahren des Durchführens von Lernen durch Erzeugen einer Tabelle von Q(s,a) für alle Zustandsaktionspaare (s,a). Jedoch gibt es Fälle, wo die Anzahl von Zuständen zu groß ist, um die Werte von Q(s, a) für alle Zustandsaktionspaare zu ermitteln und das Q-Lernen konvergiert, erfordert aber viel Zeit.
-
Daher kann konfiguriert werden, die bekannte Technik zu verwenden, die DQN (Deep Q-Network, tiefes Q-Netzwerk) genannt wird. Spezifischer, durch Bilden einer Wertefunktion Q unter Verwendung eines angemessenen neuronalen Netzwerks und Justieren von Parametern des neuronalen Netzwerks kann konfiguriert sein, den Wert der Qualität Q(s, a) durch Annähern der Wertefunktion Q durch das angemessene neuronale Netzwerk zu berechnen. unter Verwendung von DQN wird es möglich, die Zeit, die benötigt wird, damit das Q-Lernen konvergiert, zu verkürzen. Es sollte angemerkt werden, dass es eine detaillierte Beschreibung von DQN im nachfolgenden Nicht-Patentdokument gibt.
-
<Nicht-Patentdokument>
-
„Human-level control through deep reinforcement learning,“ Volodymyr Mnih1 (online), (gesucht 17. März 2017)), Internet <URL: http://files.davidqiu.com/research/nature14236.pdf>
-
Die Aktionsinformations-Lernvorrichtung 300 führt ein Q-Lernen durch, für welches eine Erläuterung oben gegeben wurde. Spezifischer erlernt die Aktionsinformations-Lernvorrichtung 300 die Wertefunktion Q zum Auswählen, mit den Inhalten des Robotersteuerprogramms und den Parametern zur Zeit der Ausführung dieses Robotersteuerprogramms, eingestellt im Roboter 100, etabliert als Zustand s, und mit der Korrektur dieses Robotersteuerprogramms und der Justierung von Parametern, die sich auf diesen Zustand s beziehen, etabliert als Aktion a.
-
Die Aktionsinformations-Lernvorrichtung 300 beobachtet den Zustand s des Robotersteuerprogramms, Parameter etc., die im Roboter 100 eingestellt sind und bestimmt die Aktion a. Der Aktionsinformations-Lernvorrichtung 300 wird eine Vergütung rückgegeben, jedes Mal wenn eine Aktion a vorgenommen wird. Die Aktionsinformations-Lernvorrichtung 300 sucht nach der optionalen Aktion a in einer Versuch- und Irrtumsweise, so dass die Gesamtsumme von Vergütungen in der Zukunft maximal wird. Durch Konfiguration auf diese Weise macht es die Aktionsinformations-Lernvorrichtung 300 möglich, die optionale Aktion a relativ zum Zustand s auszuwählen, welches Inhalte des Robotersteuerprogramms sind, eine Kombination von Parametern während der Ausführung dieses Robotersteuerprogramms etc., eingestellt im Roboter 100.
-
Mit anderen Worten, basierend auf der durch die Aktionsinformations-Lernvorrichtung 300 erlernten Wertefunktion Q, durch Auswählen der Aktion a so, dass der Wert der Wertefunktion Q maximal wird, von den auf die Inhalte des Robotersteuerprogramms und Kombination von Parametern während der Ausführung dieses Robotersteuerprogramms angewendete Aktion a, bezogen auf einen gewissen Zustand s, wird es möglich, eine Aktion a so auszuwählen, dass die Übergabezeit t und die Abgabezeit T2, die Zeiten sind, welche sich auf die Übergabe des Werkstücks 7 beziehen, am kürzesten werden.
-
Um das obige Verstärkungslernen durchzuführen, beinhaltet die Aktionsinformations-Lernvorrichtung 300 eine Zustandsformations-Erfassungseinheit 310, eine Aktionsinformations-Ausgabeeinheit 320, eine Lerneinheit 330 und eine Wertefunktions-Speichereinheit 340.
-
Die Zustandsformations-Erfassungseinheit 310 ist ein Bereich, der Zustandsinformation (Zustand s) erfasst, welches die Inhalte eines Robotersteuerprogramms sind, Kombination von Parametern während der Ausführung dieses Robotersteuerprogramms etc., aus der Robotersteuervorrichtung 200 (und/oder dem Roboter 100). Dieser Zustand s entspricht dem Umgebungszustand s beim Q-Lernen.
-
Spezifischer werden im Zustand s der vorliegenden Ausführungsform die Inhalte des Robotersteuerprogramms zum Steuern des Roboters 100 und die Kombination von Parametern während der Ausführung dieses Robotersteuerprogramms eingeschlossen. In den Parametern wird Information hinsichtlich der Stellung innerhalb des Übergabebereichs 8 des Roboters 100 einschließlich der Handeinheit 13, Position innerhalb des Übergabebereichs 8 und der Bewegungspfad vom Aufnehmen des Werkstücks 7 bis zum Eintreffen an einer Position innerhalb des Übergabebereichs 8 mittels dieses Robotersteuerprogramms etc. eingeschlossen. Die Zustandsformations-Erfassungseinheit 310 gibt den erfassten Zustand s an die Lerneinheit 330 aus.
-
Zusätzlich erfasst die Zustandsformations-Erfassungseinheit 310 auch die Bestimmungsinformation zum Berechnen einer Vergütung zum Durchführen von Q-Lernen. Spezifischer wird die Übergabezeit T nach Ausführung entsprechend dem Robotersteuerprogramm, das sich auf s bezieht, und von Parametern während der Ausführung dieses Robotersteuerprogramms, als Bestimmungsinformation zum Berechnen der Vergütung zum Durchführen von Q-Lernen eingestellt. Die Übergabezeit T besteht aus der Bewegungszeit T1, welche die Zeit ist, dass der Roboter 100 das Werkstück 7 erfasst und dann bis zu einer Position innerhalb des Übergabebereichs 8 bewegt, und der Abgabezeit T2 ab dem Bewegen zu einer Position innerhalb des Übergabebereichs 8, bis das Werkstück 7 zum Bediener P übergeben wird, wie oben erwähnt.
-
Die Aktionsinformations-Ausgabeeinheit 320 ist ein Bereich, der die Aktionsinformation (Aktion a), welche durch die Lerneinheit 330 erzeugt wird, an die Robotersteuervorrichtung 200 sendet. Die Robotersteuervorrichtung 200 geht durch Korrigieren des aktuellen Zustands s, das heißt den aktuell eingestellten Robotersteuerprogramm und Parametern, basierend auf dieser Aktion a zum nächsten Zustand s' über (das heißt korrigiertem Robotersteuerprogramm, korrigierten Parametern, und Zustand für einen Fall des Ausführens von Bewegungsverarbeitung entsprechend diesem korrigierten Robotersteuerprogramm und den korrigierten Parametern).
-
Die Lerneinheit 330 ist ein Bereich, welcher die Qualität Q (s, a) für einen Fall des Auswählens einer gewissen Aktion a in einem gewissen Zustand s der Umgebung erlernt. Spezifischer enthält die Lerneinheit 330 eine Vergütungsrecheneinheit 331, eine Wertefunktions-Aktualisierungseinheit 332 und eine Aktionsinformations-Erzeugungseinheit 333.
-
Die Vergütungsrecheneinheit 331 ist ein Bereich, der eine Vergütung für den Fall der Auswahl der Aktion a berechnet, basierend auf der Bestimmungsinformation. Hier soll in der vorliegenden Ausführungsform der Vergütungswert ein negativer Wert in dem Fall sein, dass die Übergabezeit T des Roboters 100, der basierend auf dem sich auf den Zustand s' beziehenden korrigierten Robotersteuerprogramm arbeitet, das anhand der Aktion a korrigiert ist, und den korrigierten Parametern während der Ausführung dieses korrigierten Robotersteuerprogramms länger wird als die Übergabezeit T des Roboters 100, der basierend auf dem Robotersteuerprogramm vor der Korrektur arbeitet, die sich auf den Zustand s bezieht, bevor er anhand der Aktion a korrigiert wird, und die Parameter vor der Korrektur während der Ausführung dieses Robotersteuerprogramms vor der Korrektur.
-
Andererseits soll der Vergütungswert ein positiver Wert in dem Fall sein, bei dem die Übergabezeit T des Roboters 100, der basierend auf dem korrigierten Robotersteuerprogramm arbeitet, das sich auf den Zustand s bezieht, der anhand der Aktion a korrigiert ist, und den korrigierten Parameterwert und der Ausführung dieses korrigierten Robotersteuerprogramms, kürzer wird als die Übergabezeit T des Roboters 100, der basierend auf dem Robotersteuerprogramm vor der Korrektur arbeitet, das sich auf den Zustand s bezieht, bevor er anhand der Aktion a korrigiert wird, und den Parametern vor der Korrektur während der Ausführung dieses Robotersteuerprogramms vor der Korrektur.
-
Zusätzlich ist es möglich, so zu konfigurieren, dass für den Vergütungswert eine Gewichtung gegeben wird. Beispielsweise wird es für die Bewegungszeit T1 und die Abgabezeit T2 bevorzugt, den Positivwert der Vergütung größer für den Fall zu machen, bei dem die Abgabezeit T2 kürzer wird als der Fall, bei dem die Bewegungszeit T1 kürzer wird. Mit anderen Worten ist es gut, so zu konfigurieren, dass der Positivwert größer wird entsprechend dem Ausmaß, um welches die Abgabezeit T2 verkürzt wird. Es sollte angemerkt werden, dass das oben erwähnte Rechenverfahren des Vergütungswerts ein Beispiel ist und nicht darauf beschränkt ist. Beispielsweise kann so konfiguriert werden, dass beliebig vorab eine Vergütungs-Assoziierungstabelle (Provisionsname) erzeugt wird, welche den Vergütungswert mit der Variation bei der Übergabezeit T, Variation bei der Bewegungszeit T1 und Variation bei der Abgabezeit T2 zwischen dem Zustand s' und Zustand s assoziiert und den Wert der Vergütung basierend auf der Vergütungs-Assoziierungstabelle berechnet. Zusätzlich kann so konfiguriert werden, dass vorab eine Vergütungsfunktion (provisorischer Name) beliebig erzeugt wird, die eine Variation bei der Übergabezeit T, Variation bei der Bewegungszeit T1 und Variation bei der Abgabezeit T2 als Eingaben etabliert, und den Wert der Vergütung basierend auf der Vergütungsfunktion berechnet.
-
Der Wertefunktions-Aktualisierungsabschnitt 332 aktualisiert die durch den Wertefunktions-Speicherabschnitt 340 gespeicherten Wertefunktion Q durch Durchführen von Q-Lernen, basierend auf dem Zustand s, der Aktion a, dem Zustand s' im Falle des Anwendens von Aktion a auf den Zustand s und den Vergütungswert, der auf die oben erwähnte Weise berechnet ist.
-
Die Aktualisierung der Wertefunktion Q kann durch Online-Lernen durchgeführt werden, kann durch Batch-Lernen durchgeführt werden oder kann durch Mini-Batch-Lernen durchgeführt werden. Online-Lernen ist ein Lernverfahren des Durchführens der Aktualisierung der Wertefunktion Q momentan, wann immer der Zustand s zu einem neuen Zustand s' übergeht, durch Anwenden einer gewissen Aktion a auf den aktuellen Zustand s. Zusätzlich ist Batch-Lernen ein Lernverfahren des Sammelns von Daten zum Erlernen durch Wiederholen des Anwendens einer gewissen Aktion a auf den aktuellen Zustand s und dass der Zustand s zum neuen Zustand s' übergeht, und dann Durchführen der Aktualisierung der Wertefunktion Q unter Verwendung aller gesammelter Daten zum Lernen. Weiterhin ist ein Mini-Batch-Lernen ein Lernverfahren zwischen Online-Lernen und Batch-Lernen, bei dem Aktualisierung der Wertefunktion Q jedes Mal durchgeführt wird, wenn eine gewisse Datenmenge zum Lernen akkumuliert.
-
Die Aktionsinformations-Erzeugungseinheit 333 erzeugt eine Aktion a, um zu veranlassen, dass verschiedene Operationen (entsprechend Aktion a beim Q-Lernen) durch den Roboter 100 im Verlauf des Q-Lernens durchgeführt werden, und gibt die erzeugte Aktion a an die Aktionsinformations-Ausgabeeinheit 320 aus.
-
Spezifischer wählt die Aktionsinformations-Erzeugungseinheit 333 eine Aktion a im Verlauf des Q-Lernens relativ zum aktuellen Zustand s aus. Sich auf die durch das auf den aktuellen Zustand s beziehende Robotersteuerprogramm codierte Inhalte beziehende Korrekturinformation und die Einstellwerte von Parametern, die sich auf den aktuellen Zustand s beziehen (beispielsweise Werte, die sich auf die Stellung von Roboter 100 einschließlich der Handeinheit 13 beziehen, Position innerhalb des Übergabebereichs 8 und Bewegungspfads des Roboters 100 von Aufnehmen des Werkstücks 7 bis zum Erreichen der Position innerhalb des Übergabebereichs 8) werden in der Aktion a der vorliegenden Ausführungsform eingeschlossen.
-
Beispielsweise im Fall, bei dem Einstellwerte von Parametern, die in der Aktion a enthalten sind, auf das Robotersteuerprogramm angewendet werden und die Parameter (beispielsweise Werte r, Werte, die sich auf die Stellung des Roboters 100 einschließlich der Handeinheit 13 beziehen, Position innerhalb des Übergabebereichs 8 und Bewegungspfad des Roboters 100 von Aufnehmen des Werkstücks 7 bis zum Erreichen einer Position innerhalb des Übergabebereichs 8), die in Zustand s enthalten sind, dann Übergehen zum Zustand s' und eine Plusvergütung (Vergütung positiven Werts), die rückgegeben wird, kann die Aktionsinformations-Erzeugungseinheit 333 so konfiguriert sein, dass sie einen Plan verwendet, der als nächste Aktion a' eine Aktion a' derart auswählt, dass die Übergabezeit T sich weiter verkürzt, durch leichtes Bewegen der Position innerhalb des Übergabebereichs 8 zu einer Seite der Abgabeposition, welches die Position ist, an der das Werkstück 7 losgelassen wird oder leichtes Ändern der Stellung des Roboters 100 in Richtung der Freigabestellung, welches die Stellung ist, in welcher das Werkstück 7 losgelassen wird.
-
Zusätzlich kann umgekehrt so konfiguriert werden, dass die Aktionsinformations-Erzeugungseinheit 333 eine Aktion a' auswählt, um so näher am Zustand s als am Zustand s' in dem Fall zu sein, dass eine Minusvergütung (Vergütung negativen Werts) zurückgegeben wird. Alternativ kann so konfiguriert werden, dass Aktionen gesammelt werden, die als eine Minusvergütung angenommen werden, durch Auswählen einer Aktion a', so dass der Zustand s' angenähert wird. Weiterhin kann der Aktionsinformations-Erzeugungsabschnitt 333 so konfiguriert sein, dass er einen Plan verwendet, der die Aktion a' durch ein wohlbekanntes Verfahren aufweist, wie etwa ein Geizverfahren des Auswählens der Aktion a' mit der höchsten Qualität Q(s, a), von den Qualitäten existierender Aktionen a abgeschätzt, oder ein ε-Geizverfahren des zufälligen Auswählens der Aktion a' mit einer kleinen Wahrscheinlichkeit ε und Auswählen der Aktion a' mit der höchsten Qualität Q(s, a) außer diesem.
-
Die Wertefunktions-Speichereinheit 340 ist eine Speichervorrichtung, welche die Wertefunktionen Q speichert. Die Wertefunktionen Q, die in der Wertefunktions-Speichereinheit 340 gespeichert sind, werden durch den Wertefunktions-Aktualisierungsabschnitt 332 aktualisiert.
-
Zusätzlich erzeugt die Aktionsinformations-Lernvorrichtung 300 eine Aktion a (nachfolgend als „optimierte Aktionsinformation“ bezeichnet), um eine Operation zu veranlassen, für welche die Qualität Q(s, a) ein Maximum erreicht, das im Aktionsinformations-Lernvorrichtung 300 durchzuführen ist, basierend auf der durch den, Q-Lernen durchführenden Wertefunktions-Aktualisierungsabschnitt 332 aktualisierten Wertefunktion Q.
-
Die Aktionsinformations-Lernvorrichtung 300 beinhaltet eine optimierte Aktionsinformations-Ausgabeeinheit 350. Die optimierte Aktionsinformations-Ausgabeeinheit 350 erfasst die in der Wertefunktions-Speichereinheit 340 gespeicherte Wertefunktion Q. Diese Wertefunktion Q ist eine durch den, Q-Lernen durchführenden Wertefunktions-Aktualisierungsabschnitt 332 aktualisierte Funktion, wie oben erwähnt. Dann erzeugt die optimierte Aktionsinformations-Ausgabeeinheit 350 die optimierte Aktionsinformation, basierend auf der Wertefunktion Q und gibt die so erzeugte optimierte Aktionsinformation an die Robotersteuervorrichtung 200 aus. In dieser optimierten Aktionsinformation sind das korrigierte Robotersteuerprogramm und korrigierte Parameter während der Ausführung dieses korrigierten Robotersteuerprogramms enthalten, ähnlich zu der durch die Aktionsinformations-Ausgabeeinheit 320 im Verlauf des Q-Lernens ausgegebenen Aktionsinformation.
-
Durch die das Robotersteuerprogramm und akustisch eingesetzte Parameter korrigierende Robotersteuervorrichtung 200, basierend auf dieser optimierten Aktionsinformation, und Erzeugen eines Betriebsbefehls kann der Roboter 100 so arbeiten, dass die Übergabezeit T und die Abgabezeit T2 am kürzesten wird.
-
Die in der Robotersteuervorrichtung 200 und der Aktionsinformations-Lernvorrichtung 300 enthaltenen Funktionsblöcke sind oben erläutert worden. Um diese Funktionsblöcke zu realisieren, enthalten die Robotersteuervorrichtung 200 und die Aktionsinformations-Lernvorrichtung 300 eine Arithmetik-Verarbeitungseinheit, wie etwa eine CPU (Zentraleinheit). Zusätzlich enthalten die Robotersteuervorrichtung 200 und die Aktionsinformations-Lernvorrichtung 300 auch eine Hilfsspeichervorrichtung, wie etwa eine HDD (Festplattenlaufwerk), die verschiedene Steuerprogramme wie etwa Applikations-Software und das BS (Betriebssystem) speichern, und eine Hauptspeichervorrichtung, wie etwa ein RAM (Wahlfreizugriffsspeicher) zum Speichern von Daten, die zeitweilig bei der Programme ausführenden Arithmetik-Verarbeitungseinheit benötigt werden.
-
Dann liest in der Robotersteuervorrichtung 200 und der Aktionsinformations-Lernvorrichtung 300 die Arithmetik-Verarbeitungseinheit die Applikations-Software und/oder das BS aus der Hilfsspeichervorrichtung aus und führt eine Arithmetik-Verarbeitung durch, basierend auf dieser Applikations-Software und/oder dem BS, während die gelesene Applikations-Software und/oder das BS in der Hauptspeichervorrichtung expandiert werden. Zusätzlich steuern basierend auf diesen Berechnungsergebnissen die Robotersteuervorrichtung 200 und die Aktionsinformations-Lernvorrichtung 300 verschiedene Hardware, über die die jeweiligen Vorrichtungen verfügen. Die Funktionsblöcke der vorliegenden Ausführungsform werden dadurch realisiert. Mit anderen Worten kann die vorliegende Ausführungsform durch Hardware und Software, die kooperieren, realisiert werden.
-
Als ein spezifisches Beispiel kann die Robotersteuervorrichtung 200 durch Kombinieren von Applikations-Software zum Realisieren der vorliegenden Ausführungsform mit einer normalen Steuervorrichtung für den Roboter 100 realisiert werden. Zusätzlich kann die Aktionsinformations-Lernvorrichtung 300 durch Kombinieren von Applikations-Software zum Realisieren der vorliegenden Ausführungsform mit einem üblichen persönlichen Computer realisiert werden.
-
Jedoch, da die Rechenmenge das einhergehende Maschinenlernen für die Aktionsinformations-Lernvorrichtung 300 erhöht, ist es gut, dies so zu machen, dass eine Hochgeschwindigkeitsverarbeitung möglich ist, wenn konfiguriert wird, GPUs (Graphik-Verarbeitungseinheiten) in einen persönlichen Computer zu installieren, und die GPUs in der mit dem Maschinenlernen einhergehenden arithmetischen Verarbeitung zu verwenden, gemäß einer Technik, die GPGPU (General-Purpose computing on Graphics Processing Units) genannt wird. Weiterhin, um höhere Geschwindigkeitsverarbeitungen durchzuführen, kann die Aktionsinformations-Lernvorrichtung 300 konfiguriert sein, einen Computercluster zu konstruieren, der eine Vielzahl von Computern verwendet, die mit solchen GPUs versehen ist, und Parallelverarbeitung mit der Vielzahl von Computern, die in diesem Computercluster enthalten sind, durchzuführen.
-
Als Nächstes wird eine Erläuterung für Operationen der Aktionsinformations-Lernvorrichtung 300 gegeben, welche Q-Lernen durchführt, als Aktionsinformations-Lernverarbeitung in der vorliegenden Ausführungsform, durch Bezug nehmen auf das Flussdiagramm von 4.
-
Zuerst erfasst im Schritt S11 (nachfolgend einfach als „S“ bezeichnet) die Zustandsformations-Erfassungseinheit 310 Zustandsinformation aus der Robotersteuervorrichtung 200. Die erfasste Zustandsinformation wird an den Wertefunktions-Aktualisierungsabschnitt 332 und/oder Aktionsinformations-Erzeugungsabschnitt 333 ausgegeben. Wie oben erwähnt, ist diese Zustandsinformation Information, die dem Zustand s der Umgebung beim Q-Lernen entspricht und die Inhalte des Robotersteuerprogramms und Information, welche sich auf die Stellung innerhalb des Übergabebereichs 8 des Roboters 100 einschließlich der Handeinheit 13 bezieht, Position innerhalb des Übergabebereichs 8 und Bewegungspfad, welche Einstell-Werte von Parametern im Moment von S11 sind, sind darin enthalten. Es sollte angemerkt werden, dass das Robotersteuerprogramm und Einstellwerte von Parametern im Moment des ersten Startens von Q-Lernen durch den Anwender vorab erzeugt werden sollen. Mit anderen Worten werden in der vorliegenden Ausführungsform das Robotersteuerprogramm und Anfangseinstellwerte von Parametern, die durch den Anwender erzeugt werden, mittels Verstärkungslernen auf optimal justiert.
-
In S12 erzeugt der Aktionsinformations-Erzeugungsabschnitt 333 neue Aktionsinformation und gibt die neue Aktionsinformation (Aktion a), die so erzeugt ist, an die Robotersteuervorrichtung 200 über die Aktionsinformations-Ausgabeeinheit 320 aus. Die, die Aktionsinformation erhalten habende Robotersteuervorrichtung 200, treibt den ? Aktionsinformations-Lernvorrichtung 300 an, Übergabeverarbeitung des Werkstücks 7 entsprechend dem Zustand s' durchzuführen, der durch Korrigieren des Robotersteuerprogramms und von Parametern, die sich auf den aktuellen Zustand s beziehen, etabliert wird, basierend auf der empfangenen Aktionsinformation. Wie oben erwähnt, entspricht diese Aktionsinformation der Aktion a beim Q-Lernen. Hier ist der Punkt der Aktionsinformation, welche die korrigierten Werte eines Robotersteuerprogramms und Einstellwerte von Parametern beispielsweise enthält, wie oben erwähnt.
-
In S13 erfasst die Zustandsformations-Erfassungseinheit 310 die Bestimmungsinformation für den neuen Zustand s'. Hierin sind das Robotersteuerprogramm und sich auf den Zustand s' beziehende Parameter im neuen Zustand s' enthalten. Zusätzlich beinhaltet die Bestimmungsinformation die Übergabezeit T, die aus der Bewegungszeit T1, die erfasst wird, um Bewegungsverarbeitung durchzuführen, und der Abgabezeit T2, die sich auf den Zustand s' bezieht, besteht. Die erfasste Zustandsinformation wird an die Vergütungsrecheneinheit 331 ausgegeben.
-
Der Vergütungsrecheneinheit 331 berechnet die Vergütung, basierend auf der eingegebenen Bestimmungsinformation. Aus diesem Grund bestimmt in S14 der Vergütungsrecheneinheit 331, ob die in der Bestimmungsinformation enthaltene Übergabezeit T abgekürzt worden ist. Eine solche Bestimmung kann durchgeführt werden, indem zwischen der Übergabezeit T, die erforderlich ist, um Bewegungsverarbeitung durchzuführen, die sich auf den Zustand s' bezieht, enthalten in der Bestimmungsinformation des Zustands s', und der Übergabezeit T, die benötigt wird, um Bewegungsverarbeitung durchzuführen, welche sich auf den in der Bestimmungsinformation von Zustand s enthaltenen Zustand s bezieht, welches der Zustand vor dem Zustand s' ist, verglichen wird. Falls die Übergabezeit T kürzer wurde (S14: JA), rückt der Vergütungsrecheneinheit 331 die Verarbeitung zu S15 fort. Ansonsten, falls die Übergabezeit T länger wurde (S14: NEIN), rückt der Vergütungsrechenabschnitt 331 die Verarbeitung zu S18 vor.
-
In S15 bestimmt der Vergütungsrechenabschnitt 331, ob die Abgabezeit T2, die in der Bestimmungsinformation enthalten ist, kürzer wurde als die Wechselstrom-Drehmaschine 2, die erforderlich ist, um die Bewegungsverarbeitung durchzuführen, die sich auf den Zustand s bezieht, der in der Bestimmungsinformation vom Zustand s enthalten ist, welches der Zustand vor dem Zustand s' ist. Falls die Abgabezeit T2 kürzer wurde (S15: JA), rückt der Vergütungsrechenabschnitt 331 die Verarbeitung zu S16 vor. Andererseits, falls die Abgabezeit T2 länger wurde (S15: NEIN), rückt die Vergütungsrechenabschnitt die Verarbeitung zu S17 vor.
-
In S16 stellt der Vergütungsrechenabschnitt 331 die Vergütung als einen ersten Wert ein. Hier soll der erste Wert ein positiver Wert sein. Nachfolgend rückt die Lerneinheit 330 die Verarbeitung zu S19 vor. In S17 stellt der Vergütungsrechenabschnitt 331 die Vergütung als einen zweiten Wert ein. Hier soll der zweite Wert ein positiver Wert sein. Zusätzlich soll der zweite Wert ein Wert kleiner als der erste Wert sein. Nachfolgend rückt die Lerneinheit 330 die Verarbeitung zu S19 vor. In S18 stellt der Vergütungsrechenabschnitt 331 die Vergütung als einen dritten Wert ein. Hier soll der dritte Wert ein negativer Wert sein. Es sollte angemerkt werden, dass konfiguriert werden kann, weiter Gewichtung des ersten Werts, zweiten Werts und dritten Werts durchzuführen, anhand der Größe der Differenz bei der Zeit, die mit der vorherigen Zeit verglichen wird.
-
In S19 aktualisiert der Wertefunktions-Aktualisierungsabschnitt 332 die Wertefunktion Q, welche durch die Wertefunktions-Speichereinheit 340 gespeichert ist, basierend auf dem Wert der Vergütung, der in der obigen Weise berechnet worden ist. Dann kehrt die Lerneinheit 330 wieder zu S11 zurück und durch Wiederholen der vorgenannten Verarbeitung konvergiert die Wertefunktion Q auf einen angemessenen Wert. Es sollte angemerkt werden, dass die Lerneinheit 330 konfiguriert werden kann, die vorgenannte Verarbeitung unter der Bedingung zu beenden, dass sie eine vorgegebene Anzahl von Malen wiederholt worden ist, oder eine vorbestimmte Zeit lang wiederholt worden ist. Obwohl die Operationen der Aktionsinformations-Lernvorrichtung 300 oben erläutert worden sind, ist die Verarbeitung des Berechnens des Wertes der Vergütung ab S14 bis S18 ein Beispiel und ist nicht darauf beschränkt. Beispielsweise, wie oben erwähnt, kann so konfiguriert sein, dass der Vergütungswert berechnet wird, indem die Variation bei der Übergabezeit T, Variation bei der Bewegungszeit T1 und Variation bei der Abgabezeit T2, zwischen dem Zustand s' und dem Zustand s, in eine Vergütungs-Assoziierungstabelle (provisorischer Name) oder Vergütungsfunktion (provisorischer Name), die vorab eingestellt werden, eingegeben werden.
-
Gemäß oben erläuterten Operationen unter Bezugnahme auf 4 übt die vorliegende Ausführungsform einen Effekt aus, in der Lage zu sein, eine Wertefunktion Q zum Erzeugen von Aktionsinformation zum Verkürzen der Übergabezeit T und der Abgabezeit T2 zu erzeugen.
-
Als Nächstes wird eine Erläuterung gegeben für Operationen während der Erzeugung optimierter Aktionsinformation mittels der Aktionsinformations-Lernvorrichtung 300 durch Bezugnahme auf das Flussdiagramm von 5. Zuerst erfasst in S21 die optimierte Aktionsinformations-Ausgabeeinheit 350 der Aktionsinformations-Lernvorrichtung 300 eine durch die Wertefunktions-Speichereinheit 340 gespeicherte Wertefunktion Q. Diese Wertefunktion Q wurde dadurch aktualisiert, dass der Wertefunktions-Aktualisierungsabschnitt 332 Q-Lernen in der vorgenannten Weise durchführt.
-
In S22 erzeugt die optimierte Aktionsinformations-Ausgabeeinheit 350 optimierte Aktionsinformation durch Auswählen, als optimale Aktion, der Aktion a mit der höchsten Qualität Q(s, a) aus den verfügbaren Aktionen a für den Zustand s, der aktuell eingestellt ist, beispielsweise basierend auf dieser Wertefunktion Q und gibt die erzeugte optimierte Aktionsinformation an die Robotersteuervorrichtung 200 aus.
-
Gemäß dem Obigen korrigiert die Robotersteuervorrichtung 200 den Zustand s, der aktuell eingestellt ist (d.h. das Robotersteuerprogramm und aktuell eingestellte Parameter) basierend auf dieser optimierten Aktionsinformation, um einen Betriebsbefehl zu erzeugen. Dann, indem der erzeugte Betriebsbefehl an den Roboter 100 gesendet wird, übt die Robotersteuervorrichtung 200 einen Effekt darin aus, dass der Roboter 100 so arbeiten kann, dass die Übergabezeit T am kürzesten wird.
-
Zusätzlich erzeugt in der vorliegenden Ausführungsform vermittels der durch Bezugnahme auf 5 erläuterten Operationen die Aktionsinformations-Lernvorrichtung 300 optimierte Aktionsinformation, basierend auf der Wertefunktion Q, dann korrigiert die Robotersteuervorrichtung 200 das Robotersteuerprogramm und aktuell eingestellte Parameter basierend auf dieser optimierten Aktionsinformation und erzeugt einen Betriebsbefehl. Dann übt die Robotersteuervorrichtung 200 auch einen Effekt aus, dass es möglich wird, den Roboter 100 durch Verkürzen der Übergabezeit T mittels Sendens des erzeugten Betriebsbefehls an den Roboter 100 zu steuern.
-
In der vorliegenden Ausführungsform ist es möglich, die Übergabezeit T mittels des Durchführens von Verstärkungslernen zu verkürzen, während das Robotersteuerprogramm und/oder Einstellwerte von Parametern in der vorgenannten Weise justiert werden. Mit anderen Worten übt die vorliegende Ausführungsform vorteilhafte Effekte im Vergleich zur konventionellen Technologie aus.
-
Es sollte angemerkt werden, dass jede der in dem oben erwähnten Robotersteuersystem 1000 enthaltenen jeweiligen Vorrichtungen mittels Hardware, Software oder einer Kombination dieser realisiert werden kann. Zusätzlich kann das mittels der Kooperation zwischen jeder der in dem Robotersteuersystem 1000 enthaltenen jeweiligen Vorrichtungen durchgeführte Aktionsinformations-Lernverfahren auch mittels Hardware, Software oder einer Kombination von diesen realisiert werden. Hier gibt „durch Software realisiert“ den Umstand an, durch einen Computer realisiert zu werden, der Programme ausliest oder ausführt.
-
Die Programme können unter Verwendung verschiedener Typen nicht-transitorischer computerlesbarer Medien gespeichert werden und einem Computer zugeführt werden. Das nicht-transitorische computerlesbare Medium beinhaltet anfassbare Speichermedien. Beispiele von nicht-transitorischen computerlesbaren Medien beinhalten Magnetmedien (beispielsweise flexible Disks, Magnetbänder, Festplattenlaufwerke), magnet-optische Aufzeichnungsmedien, (beispielsweise magnet-optische Disks), CD-ROM (Nurlesespeicher), CD-R, CD-R/W und Halbleiterspeicher (beispielsweise Masken-ROM, PROM (programmierbares ROM), EPROM (löschbares PROM), Flash-ROM, RAM (Wahlfreizugriffsspeicher)). Zusätzlich können die Programme einem Computer mittels verschiedener Typen von transitorischen computerlesbaren Medien zugeführt werden. Beispiele von transitorischen computerlesbaren Medien beinhalten elektrische Signale, optische Signale und elektromagnetische Wellen. Die transitorischen computerlesbaren Medien können Programme einem Computer über verdrahtete Kommunikationspfade wie elektrische Drähte und optische Faser oder einen Funkkommunikationspfad zuführen.
-
Zusätzlich ist die vorgenannte Ausführungsform eine bevorzugte Ausführungsform der vorliegenden Erfindung; jedoch soll sie nicht den Schutzumfang der vorliegenden Erfindung auf nur die oben erwähnte Ausführungsform beschränken und eine Implementierung ist möglich in Modi, die durch Durchführen verschiedener Modifikationen in einem Schutzumfang erzielt werden, der nicht vom Geist der vorliegenden Erfindung abweicht.
-
In der vorstehenden Ausführungsform wird angenommen, die Aktionsinformations-Lernvorrichtung 300 mittels einer getrennten Vorrichtung vom Roboter 100 und der Robotersteuervorrichtung 200 zu realisieren; jedoch kann so konfiguriert werden, dass ein Teil oder die Gesamtheit der Funktionen der Aktionsinformations-Lernvorrichtung 300 beispielsweise mittels der Robotersteuervorrichtung 200 realisiert werden.
-
In der vorstehenden Ausführungsform wird die Aktionsinformations-Lernvorrichtung 300 als eine Vorrichtung etabliert, die eine Funktion des Lernens und eine Funktion des Erzeugens von Aktionsinformation aufweist; jedoch kann konfiguriert werden, die Funktion des Durchführens von Lernen und die Funktion des Erzeugens von Aktionsinformation mittels einer getrennten Vorrichtung durchzuführen.
-
In der oben erwähnten Ausführungsform wird eine Konfiguration erläutert, in welcher die Aktionsinformations-Lernvorrichtung 300 Verstärkungslernen durchführt. In dieser Hinsicht kann eine Konfiguration etabliert werden, in der ein Robotersteuersystem 1000-2 eine über ein Netzwerk 500 mit einer m Anzahl von Aktionsinformations-Lernvorrichtungen 300 verbundene Verwaltungsvorrichtung 600 enthält, wie in 6 gezeigt. Beispielsweise im Fall, dass die Aktionsinformations-Lernvorrichtung 300 an jeder der Robotersteuervorrichtung 200 eingerüstet ist, ist m die Anzahl von Robotersteuervorrichtungen 200. Dann, im Falle, dass die relativen Arbeitsumgebungen des Roboters 100 und des Bedieners P dieselben Bedingungen erfüllen (beispielsweise eine Angelegenheit der Position des Roboters 100, des Übergabebereichs 8, des beweglichen Bereichs der Handeinheit 13 des Roboters 100 etc. relativ das gleiche seiend), indem die Verwaltungsvorrichtung 600 über das Netzwerk 500 mit der Mehrzahl von Aktionsinformations-Lernvorrichtungen 300-1 bis 300-m verbunden ist, kann die Verwaltungsvorrichtung 600 die Wertefunktionen Q der entsprechenden Lernmodell-Konstruktionsvorrichtungen 300 aggregieren. Durch Konfiguration auf diese Weise werden die Wertefunktionen Q zwischen allen Lernmodell-Konstruktionsvorrichtungen 300 geteilt. Solange wie konfiguriert, die Wertefunktionen Q zwischen einer Vielzahl der Lernmodell-Konstruktionsvorrichtungen 300 zu teilen, wird es möglich sein, ein Verstärkungslernen durchzuführen, durch Verteilen über die entsprechenden Lernmodell-Konstruktionsvorrichtungen 300. Daher wird es möglich, die Effizienz des Verstärkungslernens zu verbessern.
-
Dann kann konfiguriert sein, dass die Verwaltungsvorrichtung 600 die aggregierten Wertefunktionen Q an die entsprechenden Lernmodell-Konstruktionsvorrichtungen 300 sendet. Es sollte angemerkt werden, dass so konfiguriert sein kann, dass die Verwaltungsvorrichtung 600 die Daten zum Erlernen aus den jeweiligen Lernmodell-Konstruktionsvorrichtungen 300 sammelt und die Wertefunktionen Q aktualisiert. Zusätzlich kann so konfiguriert sein, dass die Verwaltungsvorrichtung 600 die optimierte Aktionsinformation an die jeweiligen Robotersteuervorrichtungen 200 ausgibt.
-
Bezugszeichenliste
-
- 7
- Werkstück
- 8
- Übergabebereich
- 13
- Handeinheit
- 100
- Roboter
- 110
- Motoreinheit
- 120
- Abgabetaste
- 200
- Robotersteuervorrichtung
- 210
- Motorsteuereinheit
- 220
- Parametereinstelleinheit
- 300
- Aktionsinformations-Lernvorrichtung
- 310
- Zustandsformations-Erfassungseinheit
- 320
- Aktionsinformations-Ausgabeeinheit
- 330
- Lerneinheit
- 331
- Vergütungsrechenabschnitt
- 333
- Wertefunktions-Aktualisierungsabschnitt
- 333
- Aktionsinformations-Erzeugungsabschnitt
- 340
- Wertefunktions-Speicherabschnitt
- 350
- Optimierte Aktionsinformations-Ausgabeeinheit
- 400, 500
- Netzwerk
- 1000
- Robotersteuersystem
- P
- Bediener
- T
- Übergabezeit
- T1
- Bewegungszeit
- T2
- Abgabezeit