-
Stand der Technik
-
Die Erfindung geht aus von einem Verfahren und einer Vorrichtung zum Betreiben eines Roboters.
-
Roboter werden in einer Vielzahl industrieller Applikationen eingesetzt. Strategien für Bewegungen, die ein Roboter in einer Applikation ausführt können durch Regler in einem geschlossenen Regelkreis oder durch Agenten vorgegeben werden, die eine Strategie abhängig oder unabhängig von einem Modell erlernen und vorgeben.
-
Offenbarung der Erfindung
-
Durch die Vorrichtung und das Verfahren gemäß den unabhängigen Ansprüchen wird eine gegenüber herkömmlichen Applikationen verbesserte Applikation ermöglicht.
-
Verfahren zum Betreiben eines Roboters wobei abhängig von einem ersten Zustand des Roboters und/oder seiner Umgebung und abhängig von einem Ausgang eines ersten Modells ein erster Teil einer Stellgröße zum Ansteuern des Roboters für einen Übergang vom ersten Zustand in einen zweiten Zustand des Roboters bestimmt wird, wobei ein zweiter Teil der Stellgröße abhängig vom ersten Zustand und unabhängig vom ersten Modell bestimmt wird, wobei abhängig vom ersten Zustand und abhängig vom Ausgang des ersten Modells mit einem zweiten Modell ein Gütemaß bestimmt wird, wobei wenigstens ein Parameter des ersten Modells abhängig vom Gütemaß bestimmt wird, wobei abhängig vom Gütemaß und einem Sollwert wenigstens ein Parameter des zweiten Modells bestimmt wird, wobei der Sollwert abhängig von einer Belohnung bestimmt wird, die dem Übergang vom ersten Zustand in den zweiten Zustand zugeordnet ist. Dadurch wird eine besonders effektiv zum Ziel führende residual policy zur Ansteuerung des Roboters eingesetzt, ohne dass den Lernprozess störende Divergenzen auftreten.
-
Es kann vorgesehen sein, dass wenigstens eine Kraft und wenigstens ein Moment bestimmt wird, die auf einen Endeffektor des Roboters wirken, wobei der erste Zustand und/oder der zweite Zustand abhängig von der wenigstens einen Kraft und dem wenigstens einen Moment bestimmt wird.
-
Vorzugsweise ist der erste Zustand und/oder der zweite Zustand bezüglich einer Achse definiert, wobei eine Kraft eine Bewegung des Endeffektors in Richtung der Achse bewirkt, wobei ein Moment eine Drehung des Endeffektors um die Achse bewirkt. Diese Ansteuerung ist für eine Exploration und eine industrielle Anwendung besonders effizient. Die Exploration, d.h. ein insbesondere zufälliges Ausprobieren neuer Aktionen, wird dadurch sicherer. Es kann sicher gestellt werden, dass weder Roboter noch Manipulationsobjekt noch umstehende Menschen zu Schaden kommen.
-
Es kann vorgesehen sein, dass ein Vektor bestimmt wird, der einen konstanten Teil der Stellgröße definiert, wobei der Vektor eine erste Kraft, eine zweite Kraft, eine dritte Kraft, ein erstes Moment, ein zweites Moment, und ein drittes Moment definiert, wobei unterschiedliche Achsen für die Kräfte definiert sind, wobei jedem Moment eine andere der unterschiedlichen Achsen zugeordnet ist. Der Vektor eignet sich besonders gut für die Beschreibung der Zustände und für die Ansteuerung.
-
Das erste Modell kann einen ersten Funktionsapproximator, insbesondere einen ersten Gaussprozess oder ein erstes künstliches neuronales Netzwerk umfassen, wobei ein erster Teil des Vektors einen Eingang dafür definiert, wobei der Eingang unabhängig von einem zweiten Teil des Vektors definiert ist.
-
Das zweite Modell kann einen zweiten Funktionsapproximator, insbesondere einen zweiten Gaussprozess oder ein zweites künstliches neuronales Netzwerk umfassen, wobei der Vektor den Eingang dafür definiert.
-
Es kann vorgesehen sein, dass ein Vektor bestimmt wird, der die Stellgröße definiert, wobei der Vektor eine erste Kraft, eine zweite Kraft, eine dritte Kraft, ein erstes Moment, ein zweites Moment, und ein drittes Moment definiert, wobei unterschiedliche Achsen für die Kräfte definiert sind, wobei jedem Moment eine andere der unterschiedlichen Achsen zugeordnet ist, wobei ein erster Teil des Vektors unabhängig von einem Ausgang des ersten künstlichen neuronalen Netzwerks, welches das erste Modell umfasst, insbesondere konstant definiert ist, wobei ein zweiter Teil des Vektors abhängig vom Ausgang des ersten künstlichen neuronalen Netzwerks definiert ist. Dadurch wird der Roboter in einer vordefinierten Art und Weise mit konstanten Größen ansteuerbar und damit aufgabenabhängig schneller in einen Endzustand bewegbar.
-
Vorzugsweise umfasst der Endeffektor wenigstens einen Finger, der einen zu einem Werkstück komplementären Abschnitt aufweist, dessen Oberfläche griffig oder selbstzentrierend ausgeführt ist. Dadurch wird ein besonders guter Halt ermöglicht.
-
Der Sollwert kann abhängig von einer Schranke bestimmt werden, wobei die Schranke abhängig von einem Graph bestimmt wird, in dem ein Knoten einen Zustand des Roboters definiert, wobei abhängig vom ersten Zustand ein Teilgraph des Graphen bestimmt wird, der einen ersten Knoten, der den ersten Zustand repräsentiert, umfasst, wobei die Schranke abhängig von Werten bestimmt wird, die den Knoten des Teilgraphen zugeordnet sind, die ein Pfad vom ersten Knoten zu einem zweiten Knoten, der einen Endzustand für den Roboter repräsentiert, umfasst. Im Teilgraph sind diesem zugeordnete Q-Werte analytisch bestimmbar. Diese Q-Werte können als untere Schranken verwendet werden.
-
Der Graph wird bevorzugst abhängig von wenigstens einem Zustand des Roboters bestimmt, wobei für einen Knoten, der im Graph ein Blatt darstellt, und der keinem Endzustand des Roboters zugeordnet ist, eine Kante zugeordnet wird, die eine folgenlose Aktion definiert. Dadurch wird eine Ursache für Divergenzen im Lernprozess vermieden.
-
Die folgenlose Aktion kann einem insbesondere konstanten Wert für den ersten Teil der Stellgröße zugeordnet sein. Dadurch werden für die Vermeidung von Divergenz im Lernprozess besonders gut geeignete Schranken bestimmt. In bestimmten Fällen kann durch Einfügen der folgenlosen Aktion überhaupt erst eine Schranke bestimmt werden; in anderen Fällen kann möglicherweise eine höhere untere Schranke als ohne folgenlose Aktion bestimmt werden.
-
Der Sollwert wird vorzugsweise abhängig von einer vorgegebenen Schranke bestimmt. Dadurch kann aufgabenabhängig Domänenwissen berücksichtigt werden.
-
Für ein Training des ersten künstlichen neuronalen Netzwerks kann eine Kostenfunktion abhängig von einem Ausgang des zweiten künstlichen neuronalen Netzwerks bestimmt werden, wobei im Training Parameter des ersten künstlichen neuronalen Netzwerks gelernt werden, für die diese Kostenfunktion einen kleineren Wert hat, als für andere Parameter.
-
In einem Training für das zweite künstliche neuronale Netzwerk kann für einen Ausgang des zweiten künstlichen neuronalen Netzwerks eine Kostenfunktion abhängig vom Ausgang des zweiten künstlichen neuronalen Netzwerks und dem Sollwert definiert sein, wobei Parameter des zweiten künstlichen neuronalen Netzwerks gelernt werden, für die die Kostenfunktion einen kleineren Wert hat, als für andere Parameter.
-
Vorrichtung zum Betreiben eines Roboters, dadurch gekennzeichnet, dass die Vorrichtung ausgebildet ist, das Verfahren nach einem der vorherigen Ansprüche auszuführen.
-
Weitere vorteilhafte Ausführungsformen ergeben sich aus der folgenden Beschreibung und der Zeichnung. In der Zeichnung zeigt:
- 1 eine schematische Darstellung eines Roboters und einer Vorrichtung zum Betreiben des Roboters,
- 2 eine schematische Darstellung eines Teils der Vorrichtung,
- 3 Schritte in einem Verfahren zum Betreiben des Roboters.
-
1 stellte einen Roboter 102 und eine Vorrichtung 104 zum Betreiben des Roboters 102 schematisch dar. Der Roboter 102 ist ausgebildet ein erstes Werkstück 106 mit einem Endeffektor, im Beispiel einer Greifeinrichtung 108 zu greifen. Der Roboter 102 ist in einem Arbeitsraum 110 in eine Vielzahl unterschiedlicher Posen p bewegbar. Im Beispiel kann eine Pose p abhängig von einem dreidimensionalen kartesischen Koordinatensystem angegeben werden. Ein Ursprung 112 des Koordinatensystems ist im Beispiel mittig zwischen zwei Finger 114 der Greifeinrichtung 108 angeordnet, mit dem das erste Werkstück 106 greifbar ist. Andere Anordnungen des kartesischen Koordinatensystems sind ebenfalls möglich.
-
Das kartesische Koordinatensystem definiert mit den Koordinaten x, y, z eine Position für eine Bewegung im Arbeitsraum 110.
-
In 1 ist im Arbeitsraum 110 ein zweites Werkstück 116 dargestellt. Im Beispiel ist im zweiten Werkstück 116 eine Öffnung 118 vorgesehen, die ausgebildet ist, das erste Werkstück 106 aufzunehmen.
-
Beispielsweise ist das erste Werkstück 106 ein Schaft, insbesondere ein Motorschaft. Beispielsweise ist das zweite Werkstück 116 ein Kugellager das ausgebildet ist, den Schaft aufzunehmen. Das Kugellager kann in einem Motorgehäuse angeordnet sein.
-
Der Roboter 102 ist ausgebildet, das erste Werkstück 106 auf einer Trajektorie gemäß einer Strategie im Arbeitsraum 110 derart zu bewegen, dass das erste Werkstück 106 am Ende der Trajektorie im zweiten Werkstück 116 aufgenommen ist.
-
Die Vorrichtung 104 umfasst wenigstens einen Prozessor 120 und wenigstens einen Speicher 122 für Instruktionen, bei deren Ausführung durch den wenigstens einen Prozessor 120 ein im Folgenden beschriebenes Verfahren abläuft. Es kann auch wenigstens eine Graphical Processsing Unit vorgesehen sein, mit der ein Funktionsapproximator insbesondere ein künstliches neuronales Netzwerk besonders effizient trainierbar ist. Der wenigstens eine Prozessor 120 und der wenigstens eine Speicher 122 können als ein oder mehrere Mikroprozessoren ausgeführt sein. Die Vorrichtung 104 kann außerhalb des Roboters 102 oder in den Roboter 102 integriert angeordnet sein. Es können Datenleitungen zur Kommunikation zwischen Prozessor, Speicher, Ansteuereinrichtung und Roboter 102 vorgesehen sein. Diese sind in 1 nicht dargestellt.
-
Die Vorrichtung 104 kann eine Ausgabeeinrichtung 124 umfassen, die zur Ansteuerung des Roboters 102 ausgebildet ist. Die Ausgabeeinrichtung 124 kann eine Endstufe oder eine Kommunikationsschnittstelle zur Ansteuerung eines oder mehrerer Aktuatoren des Roboters 102 umfassen.
-
2 stellt einen Teil der Vorrichtung 104 schematisch dar.
-
Die Vorrichtung 104 umfasst einen insbesondere autonomen Agenten 202, der ausgebildet ist, mit seiner Umgebung zu interagieren.
-
Zu jedem diskreten Zeitschritt t kann der Agent 202 einen Zustand st beobachten und abhängig von einer Strategie π eine Aktion at = π(st) ausführen, die den nächsten Zustand st+1 definiert. Nach jeder Aktion erhält der Agent 202 eine Belohnung rt = R(st, at, st+1).
-
Die Umgebung wird in diesem Beispiel durch einen Markov-Entscheidungsprozess mit Zuständen, Aktionen, Übergangsdynamiken und einer Belohnungsfunktion dargestellt. Die Übergangsdynamiken können stochastisch sein.
-
Ein Erwartungswert
für eine Summe der zukünftigen Belohnungen r
i, die erreicht werden, wenn die Strategie π ausgehend von einem Zustand s verfolgt wird, ist durch ein Ergebnis
mit einem Faktor γ ∈ [0,1) definiert.
-
Für ein in einem ersten Schritt von der Strategie π unabhängiges Verhalten kann ein Q-Wert berücksichtigt werden. Der Q-Wert kann als ein Erwartungswert für eine Summe der zukünftigen Belohnungen berücksichtigt werden, die erreicht werden, wenn eine Aktion a
t zu einem momentanen Zeitschritt t ausgeführt wird und ab dann der Strategie π gefolgt wird:
-
Das Ziel, das der Agent 202 verfolgt, ist es, eine optimale Strategie π* zum Erreichen eines Endzustands zu bestimmen. Es kann vorgesehen sein, eine Angabe dt zu bestimmen, die angibt, ob der Roboter 102 seine Aufgabe erfüllt hat oder nicht, also den Endzustand erreicht hat. Durch die optimale Strategie π* wird für jeden aktuellen Zustand st die Aktion at ausgewählt, die eine erwartete Belohnung über alle bezüglich des jeweiligen Zustands st zukünftigen Zustände maximiert. Die erwarteten Belohnungen zukünftiger Zustände werden im Beispiel mit einem Abschlag γ gewichtet in einer Summe der zukünftigen Zustände berücksichtigt, die die erwartete Belohnung definiert.
-
Der Agent 202 kann dies dadurch erreichen, dass eine Q-Funktion für die Umgebung bestimmt wird und die Aktionen at gewählt wird, die den Q-Wert der Q-Funktion zu jedem Zeitschritt t maximiert.
-
Die Q-Funktion Q
target wird für eine Optimierung des Funktionsapproximators verwendet und kann beispielsweise durch eine Schätzung des Q-Werts abhängig von Erfahrung und einer momentanen Schätzung der Q-Funktion bestimmt werden:
-
Dies wird als temporal difference learning bezeichnet. Es kann vorgesehen sein, abhängig von der Angabe dt zu bestimen, ob der Zustand st+1 ein Endzustand ist.
-
Diese Funktionen können durch künstliche neuronale Netzwerke approximiert werden. Beispielsweise werden zwei künstliche neuronale Netzwerke verwendet. Ein erstes künstliches neuronales Netzwerk 204 repräsentiert die deterministische Strategie π. Das erste künstliche neuronale Netzwerk 204 wird als actor network bezeichnet. Das zweite künstliche neuronale Netzwerk 206 bestimmt einen Q-Wert abhängig von einem Paar von Zustand st und Aktion at an seinem Eingang. Das zweite künstliche neuronalen Netzwerk 206 wird als critic network bezeichnet. Diese Vorgehensweise wird als Deep Deterministic Policy Gradients bezeichnet und ist beispielsweise in T. P. Lillicrap, J. J. Hunt, A. Pritzel, N. Heess, T. Erez, Y. Tassa,D. Silver, and D. Wierstra, „Continuous control with deep reinforcement learning,“ arXiv preprint arXiv:1509.02971, 2015 beschrieben.
-
Deep Deterministic Policy Gradients ist eine modellfreie Methode für kontinuierliche Zustands- und Aktionsräume. Um Instabilitäten in einem Lernprozess mit nichtlinearen neuronalen Netzwerken zu vermeiden, können Schrankee für die Q-Werte bestimmt werden. Diese Schranken werden während des Lernprozesses eingesetzt, wodurch der Lernprozess stabil bleibt.
-
Im Lernprozess werden Daten über die Interaktion des Agenten mit der Umgebung in einem Wiedergabespeicher gespeichert. Statt eine Liste (st, at, st+1, rt; dt) von Übergängen, Belohnung und die Angabe darüber, ob der Endzustand erreicht wurde oder nicht im Wiedergabespeicher zu speichern werden diese wie folgt verarbeitet. Es ist auch möglich, die Liste zu speichern und dann ständig von der Liste einen neuen Graphen abzuleiten. Ein Übergang umfasst im Beispiel einen Zustand st, eine Aktion at, ein durch Ausführen der Aktion at im Zustand st erreichter Zustand st+1. Die dadurch erreichte Belohnung rt und die Angabe dt beziehen sich auf diesen Übergang. Statt der Liste der Übergänge ist ein Datengraph vorgesehen, in dem ein erster Knoten den Zustand st und ein zweiter Knoten den durch Ausführen der Aktion at im Zustand st erreichten Zustand st+1 definiert. Eine Kante im Graph zwischen dem ersten Knoten und dem zweiten Knoten definiert in diesem Fall die Aktion at. Die Belohnung rt und die Angabe dt sind der Kante zugeordnet. Verschiedene Übergänge im Datengraph können mit unterschiedlicher Wahrscheinlichkeit zu einer Divergenz des Lernprozesses führen. Für temporal difference learning ist die Wahrscheinlichkeit abhängig von einer Struktur des Datengraphs.
-
Eine Wahrscheinlichkeit dafür, dass ein Übergang, mit dem ein Endzustand erreicht wird, eine Divergenz erzeugt, ist gegenüber den Wahrscheinlichkeiten für andere Übergänge, mit denen kein Endzustand erreicht wird, am geringsten. Eine Wahrscheinlichkeit dafür, dass ein Zustand st aus dem über einen Pfad im Graph ein Endzustand erreichbar ist, zu einer Divergenz des Lernprozesses führt, ist geringer als die Wahrscheinlichkeit dafür, dass eine Divergenz im Lernprozess durch einen Zustand st entsteht, aus dem kein Endzustand im Graph erreichbar ist.
-
Untere Schranken können ausgehend vom Datengraphen bestimmt werden. Beispielsweise wird ein Teilgraph des Datengraphen bestimmt, mit dem unter der Annahme der Teilgraph sei vollständig, alle dem Teilgraph zugeordneten Q-Werte analytisch bestimmbar sind. Diese Q-Werte können als untere Schranken für den Datengraph verwendet werden. Weitere untere und obere Schranken können a priori, d.h. durch Domänen-Wissen z.B. über den Roboter 102, das erste Werkstücke 106, das zweite Werkstück 116 und/oder die zu lösende Aufgabe und/oder die verwendete Belohnungsfunktion definiert sein.
-
Eine Möglichkeit die Schranken einzusetzen besteht darin, die Q-Funktion abhängig von einer unteren Schranke LB und einer oberen Schranke UB zu begrenzen. Daraus resultiert die die Q-Funktion:
-
In einem Training für das zweite künstliche neuronale Netzwerk
206 kann für einen Ausgang des zweiten künstlichen neuronalen Netzwerks
206 Q(s
t,a
t) eine Kostenfunktion als mean squared error definiert sein:
-
Ziel des Trainings ist im Beispiel, Parameter des zweiten künstlichen neuronalen Netzwerks 206 zu lernen, für die die Kostenfunktion einen kleineren Wert hat, als für andere Parameter. Diese Kostenfunktion wird beispielweise in einem Gradientenabstiegsverfahren minimiert.
-
Es kann vorgesehen sein, Knoten im Datengraphen von denen keine Kanten ausgehen, die eine Aktion at definieren, mit folgenlosen Aktionen, d.h. Zero Actions, zu versehen. Auch andere Knoten können mit folgenlosen Aktionen versehen werden. Eine folgenlose Aktion ist im Beispiel eine Aktion, die den Zustand des Roboters 102 unverändert lässt, z.B. indem eine Beschleunigung von Null vorgegeben wird.
-
Dadurch werden Blätter im Datengraph vermieden, von denen keine Aktion mehr ausgeht. Eine untere Schranke kann für jeden Übergang bestimmt werden, der in einer unendlichen Schleife endet. Durch folgenlose Aktionen sind mehr untere Schranken bestimmbar als ohne. Dadurch ist es möglich, dass die unteren Schranken insgesamt enger sind.
-
Als Eingang für das erste künstliche neuronale Netzwerk 204 wird im Beispiel ein erster Teil der Größen verwendet, die den Zustand st definieren. Der Eingang des ersten künstlichen neuronalen Netzwerks 204 ist unabhängig von einem zweiten Teil der Größen, die den Zustand st definieren.
-
Die Größen können geschätzte Größen ζ̂ = [ƒ̂x ƒ̂y ƒ̂z τ̂x τ̂y τ̂z] sein. Die Größen können auch gemessene Größe sein oder abhängig von gemessenen Größen berechnet oder geschätzt werden.
-
Im Beispiel ist ein Zustand st durch eine geschätzte Kraft in x Richtung ƒ̂x, eine geschätzte Kraft in y Richtung ƒ̂y, eine geschätzte Kraft in z Richtung ƒ̂z, ein geschätztes Moment τ̂x einer Drehung um eine sich in x Richtung erstreckende Achse, ein geschätztes Moment τ̂y einer Drehung um eine sich in y Richtung erstreckende Achse und ein geschätztes Moment τ̂z einer Drehung um eine sich in z Richtung erstreckende Achse definiert, die in einer momentanen Pose p an der Greifeinrichtung 108 auftreten. Im Beispiel wird der Eingang des ersten künstlichen neuronalen Netzwerks 204 unabhängig von der geschätzten Kraft ƒ̂x, der geschätzten Kraft ƒ̂y und unabhängig vom geschätzten Momente τ̂z bestimmt. Dieser zweite Teil der Größen wird im Beispiel nicht als Eingang für das erste künstliche neuronale Netzwerk 204 verwendet. Dies reduziert die Dimensionalität und sorgt daher dafür, dass das erste künstliche neuronale Netzwerk 204 kleiner wird und deshalb schneller oder einfacher trainiert werden kann. In anderen Anwendungen könnten diese Größen dafür bestimmt und verwendet werden, wobei andere Größen nicht verwendet werden. Dies ist besonders vorteilhaft für eine Bewegung des Roboters 102, in der das erste Werkstück 106 in die Öffnung 118 gesteckt wird, die sich in z Richtung erstreckt.
-
Im Beispiel ist eine Aktion a
t durch einen insbesondere konstanten ersten Teil und einen zweiten Teil definiert. Der erste Teil definiert im Beispiel für eine Bewegung der Greifeinrichtung
108 eine Kraft in x Richtung ƒ
x eine Kraft in y Richtung ƒ̂
y, eine Kraft in z Richtung ƒ
z und ein Moment
für eine Drehung um die sich in z Richtung erstreckende Achse. Die Kraft ƒ
z kann ƒ
z = -15N sein. Im Beispiel bedeutet dies, der Roboter
102 bewegt die Greifeinrichtung
108 dauernd entlang der z-Achse der Greifeinrichtung
108. Der zweite Teil definiert im Beispiel einen ersten Sollwert für ein Moment
für eine Drehung um die sich in x Richtung erstreckende Achse und/oder einen zweiten Sollwert für ein Moment
um die sich in y Richtung erstreckende Achse. Im Beispiel wird der erste Sollwert abhängig von einer ersten Ausgangsgröße des ersten künstlichen neuronalen Netzwerks
204 bestimmt. Im Beispiel wird der zweite Sollwert abhängig von einer zweiten Ausgangsgröße des ersten künstlichen neuronalen Netzwerks
204 bestimmt. Im Beispiel wird jede dieser Ausgangsgrößen auf ein Intervall von [-3, 3] Nm skaliert.
-
Insgesamt wird im Beispiel als Aktion a
t eine Stellgröße
bestimmt. Im Beispiel ist im ersten Teil ƒ
x = ƒ
y = 0,ƒ
z = -15N,
Der erste Teil kann auch andere Werte vorsehen. Die Stellgröße ζ kann auch anders aufgebaut sein, wenn der Roboter
102 anders anzusteuern ist. Die Stellgröße ζ wird im Beispiel an einen Regler
208 für eine Einstellung einer neuen Pose p der Greifeinrichtung
108 ausgegeben, der den Roboter
102 ansteuert, bis die neue Pose p erreicht ist. Eine Aktion a
t ist im Beispiel dann beendet, wenn der Regler
208 für die Greifeinrichtung
108 einen stabilen Zustand erreicht hat, beispielsweise mit Geschwindigkeiten unter einer vorgegebenen Grenzgeschwindigkeit. Es kann vorgesehen sein, dass der Regler
208 ausgebildet ist, den Zustand s
t des Roboters
102 zu bestimmen. Es kann vorgesehen sein, dass der Regler
208 ausgebildet ist, die Angabe d
t, dass der Roboter
102 den Endzustand erreicht hat, auf einen ersten Wert, z.B. 1 zu setzen. Es kann vorgesehen sein, die Angabe d
t mit einem anderen Wert zu initialisieren oder anderenfalls auf einen anderen Wert zu setzen, z.B. 0. Die Geschwindigkeit für die Bestimmung der Angabe d
t kann gemessen, aus gemessenen Größen berechnet oder geschätzt werden.
-
Dadurch übt der Roboter 102 auf das erste Werkstück 106 eine konstante Kraft in z Richtung aus, mit der das Werkstück 106 in z Richtung bewegt wird. Der Roboter 102 wird durch Momente in x Richtung und y Richtung bezüglich der Greifeinrichtung 108 bewegt.
-
Ein Beispiel für eine andere Anwendung ist eine Bewegung des Roboters
102 in der das erste Werkstück
108 in die Öffnung
118 geschraubt werden soll. In diesem Fall kann eine andauernde Drehbewegung um die sich in z Richtung erstreckende Achse sinnvoll sein. Dies kann berücksichtigt werden, indem der Eingang des ersten künstlichen neuronalen Netzwerks
204 unabhängig von der geschätzten Kraft in x Richtung ƒ̂
x, unabhängig von der geschätzten Kraft in y Richtung ƒ̂
y, unabhängig von der geschätzten Kraft in z Richtung ƒ̂
z, abhängig vom geschätzten Moment τ̂
x, abhängig vom geschätzten Moment τ̂
y und unabhängig vom geschätzten Moment τ̂
z bestimmt wird. Der erste Ausgang des ersten künstlichen neuronalen Netzwerks
204 kann in diesem Fall ein erster Sollwert für das Moment
sein. Der zweite Ausgang des ersten künstlichen neuronalen Netzwerks
204 kann in diesem Fall ein zweiter Sollwert für das Moment
sein. Die anderen Größen für die Bestimmung der Stellgröße
werden in diesem Fall unabhängig vom ersten künstlichen neuronalen Netzwerk
204 bestimmt.
-
Die Belohnung rt kann durch eine erste Belohnungsfunktion vorgegeben sein, die einem Übergang zu einem Endzustand einen Wert für die Belohnung rt = 0 zuweist und jedem andern Übergang einen Wert für die Belohnung rt = -1.
-
Die Belohnung rt kann durch eine zweite Belohnungsfunktion vorgegeben sein, die einem Übergang einen Wert abhängig von einem Abstand der momentanen Pose p der Greifeinrichtung 108 und einer Pose p der Greifeinrichtung in einem Endzustand zuweist. Der Endzustand ist im Beispiel erreicht, wenn das zweite Werkstück 116 das erste Werkstück 106 in der dafür vorgesehenen Öffnung 118 aufnimmt.
-
Im Beispiel wird dazu eine erste Belohnung rp abhängig von einem Positionsfehler ΔP bestimmt. Im Beispiel wird der Positionsfehler ΔP als eine l2 Norm eines Euklidischen Differenzvektors bestimmt. Der Differenzvektor wird beispielsweise aus der Position aus der momentanen Pose p der Greifeinrichtung 108 und der Position aus der Pose p der Greifeinrichtung 108 im Endzustand bestimmt. Im Beispiel wird dazu eine zweite Belohnung rR abhängig von einem Orientierungsfehler ΔR bestimmt. Im Beispiel wird der Orientierungsfehler ΔR als eine l2 Norm eines Winkelfehlers für eine Drehung bezüglich der x-Achse und eines Winkelfehlers für eine Drehung bezüglich der y-Achse zwischen der Orientierung aus der momentanen Pose p der Greifeinrichtung 108 und der Orientierung aus der Pose p der Greifeinrichtung 108 im Endzustand bestimmt. Im Beispiel wird die Drehung bezüglich der z-Achse nicht berücksichtigt. Die Drehung bezüglich der z-Achse kann in anderen Aufgabenstellungen berücksichtigt werden.
-
Die zweite Belohnungsfunktion ist im Beispiel:
mit einem einstellbaren ersten Parameter σ
P = 0.015 und einem einstellbaren zweiten Paramter σ
R = 0.7 bestimmt. Dadurch bleibt die Belohnung r
t im Beispiel in einem Intervall [-1,0].
-
In einer derartigen Anordnung ist es leicht möglich, dass im Lernprozess Divergenzen auftreten, da im zughörigen Datengraph große Pfadlängen zwischen einem Ausgangszustand und dem Endzustand auftreten.
-
Um diese Divergenzen im Lernprozess, d.h. im Training, zu vermeiden ist vorgesehen, dass folgenlose Aktionen und zusätzliche obere Schranken UB und untere Schranken LB im Lernprozess eingesetzt werden. Die oberen Schranken UB und unteren Schranken LB werden im Beispiel abhängig von einer minimalen Belohnung und einer maximalen Belohnung definiert. Im Beispiel werden eine untere Schranke
und eine obere Schranke
0 für die Q-Funktion Q
target vorgesehen für die gilt:
-
Die folgenlosen Aktionen werden im Beispiel für den zweiten Teil der Stellgröße definiert. Im Beispiel werden
als folgenlose Aktion definiert. Die folgenlosen Aktionen können in anderen Szenarien auch für andere Teile der Stellgröße definiert sein.
-
Im Beispiel ist eine Lerneinrichtung 210 vorgesehen, die ausgebildet ist, die Belohnung rt abhängig von wenigstens einer der Belohnungsfunktionen zu bestimmen. Die Lerneinrichtung 210 ist im Beispiel ausgebildet, einen Wert der Q-Funktion Qtarget zu bestimmen. Es kann vorgesehen sein, dass Lerneinrichtung 210 ausgebildet ist, die Angabe dt auszuwerten, und den Wert der Q-Funktion Qtarget abhängig von einem Wert der Angabe dt entweder unabhängig vom Q-Wert zu bestimmen, wenn der mit der Aktion at erreichte Zustand st+1 ein Endzustand ist, oder anderenfalls abhängig vom Q-Wert zu bestimmen. Es kann vorgesehen sein, dass die Lerneinrichtung ausgebildet ist, den Wert der Q-Funktion Qtarget mit der unteren Schranke LB oder der oberen Schranke UB zu begrenzen.
-
Für ein Training des ersten künstlichen neuronalen Netzwerks
204 kann eine Kostenfunktion abhängig vom Q-Wert Q(s
t,a
t) an einem Ausgang des zweiten künstlichen neuronalen Netzwerks
206 definiert sein:
-
Ziel des Trainings ist im Beispiel, Parameter des ersten künstlichen neuronalen Netzwerks 204 zu lernen, für die diese Kostenfunktion einen kleineren Wert hat, als für andere Parameter. Durch die Definition des Q-Werts Q(st,at) ist dieser selbst im Beispiel negativ. Diese Kostenfunktion wird daher im Beispiel in einem Gradientenabstiegsverfahren minimiert.
-
Im Folgenden wird ein Training des ersten künstliche neuronalen Netzwerks 204 und des zweiten künstlichen neuronalen Netzwerks 206 beschrieben. Zum Training kann ein Adam Optimierer eingesetzt werden.
-
Das erste künstliche neuronale Netzwerk
204, d.h. das actor network, umfasst im Beispiel drei vollständig verbundene Schichten, in dem zwei verborgene Schichten jeweils 100 Neuronen umfassen. Das erste künstliche neuronale Netzwerk
204 umfasst eine Eingangsschicht für Kräfte und Momente, die den Zustand s
t angeben. Im Beispiel werden die geschätzten Größen ζ̂ = [ƒ̂
x ƒ̂
y ƒ̂
z τ̂
x τ̂
y τ̂
z] verwendet. Die Kräfte und Momente können im Beispiel linear auf Werte einer Zustandsbeschreibung in einem Intervall [-1,+1] abgebildet sein. Das erste künstliche neuronale Netzwerk
204 umfasst eine Ausgangsschicht für Kräfte und Momente die eine Aktion a
t definieren. Die Schichten umfassen im Beispiel tanh-Aktivierungsfunktionen. Die Gewichte für die Schichten können zufällig initialisiert sein insbesondere durch eine Glorot Gleichverteilung. Ein Ausgang der Ausgangsschicht definiert im Beispiel die Stellgröße
für die Aktion a
t. Im Beispiel ist die Ausgabeschicht zweidimensional. Der erste Ausgang definiert im Beispiel das Moment
in x-Richtung. Der zweite Ausgang definiert im Beispiel das Moment
in y-Richtung. Im Beispiel ist der erste Teil ƒ
x ƒ
y ƒ
z der Stellgröße
unabhängig vom ersten künstlichen neuronalen Netzwerk
204 konstant vorgegeben, beispielsweise ƒ
x = 0, ƒ
y = 0, ƒ
z = -15,
Der erste Ausgang und der zweite Ausgang definieren den zweite Teil der Stellgröße
-
Das zweite künstliche neuronale Netzwerk 206, d.h. das critic network, umfasst im Beispiel drei vollständig verbundene Schichten, in dem zwei verborgene Schichten jeweils 100 Neuronen umfassen. Das zweite künstliche neuronale Netzwerk 206 umfasst eine Eingangsschicht für Kräfte und Momente, die den Zustand st und die Aktion at angeben. Die Kräfte und Momente können im Beispiel linear auf Werte einer Zustandsbeschreibung in einem Intervall [-1,+1] abgebildet sein. Das zweite künstliche neuronale Netzwerk 206 umfasst eine eindimensionale Ausgangsschicht. Die Ausgangsschicht umfasst im Beispiel keine Nichtlinearität insbesondere keine Aktivierungsfunktion. Am Ausgang des zweiten künstlichen neuronalen Netzwerks 206 wird der Q-Wert Q(st,at) ausgegeben. Die anderen Schichten umfassen im Beispiel ReLU-Aktivierungsfunktionen. Die Gewichte für die Schichten können zufällig initialisiert sein insbesondere durch eine He Gleichverteilung.
-
Im Training kann vorgesehen sein, die Greifeinrichtung 108 aus einer Startpose heraus zu bewegen. Die Startpose kann eine von beispielsweise 8 möglichen vorgegebenen Startposen sein. Eine Episode des Trainings wurde im Beispiel entweder beendet, wenn der Endzustand erreicht wurde, oder nach einer vorgegebenen Anzahl Rechenschritte t = T, beispielsweise T=1000. Im Beispiel wurde in einer vorgegebenen Anzahl Episoden, beispielsweise 40 Episoden, trainiert. Die Gewichte des ersten künstlichen neuronalen Netzwerks 204 und/oder des zweiten künstlichen neuronalen Netzwerks 206 wurden im Beispiel in der Episode nach einer vorgegebenen Anzahl Rechenschritt t = N, beispielsweise N=20, bestimmt. Nach dem Training kann eine Testphase ausgeführt werden. In der Testphase kann eine vorgegebene Anzahl Episoden, im Beispiel 8 Episoden, ausgeführt werden. Die Startpose kann sich in der Testphase von der Startpose oder den Startposen aus dem Training unterscheiden.
-
Im Training werden durch das erste künstliche neuronale Netzwerk 204 abhängig von dessen Gewichten unterschiedliche Aktionen at ausgeführt. Im Training werden durch das zweite künstliche neuronale Netzwerk 206 abhängig von dessen Gewichten unterschiedliche Werte der Q-Funktion Qtarget ausgeführt. Das Training erfolgt im Beispiel ausgehend von durch Anpassen der Gewichte des ersten künstlichen neuronalen Netzwerks 204 und/oder des zweiten künstlichen neuronalen Netzwerks 206. Das Ziel des Trainings ist beispielsweise, die Gewichte des ersten künstlichen neuronalen Netzwerks 204 und/oder des zweiten künstlichen neuronalen Netzwerks 206 derart anzupassen, das durch eine Aktion at, die das erste künstliche neuronale Netzwerk 204 bestimmt, ein Wert der Q-Funktion Qtarget, den das zweite künstliche neuronale Netzwerk 206 bestimmt, eine größeren Wert annimmt, als der Wert für andere Gewichte. Beispielsweise werden die Gewichte des ersten künstlichen neuronalen Netzwerks 204 und/oder des zweiten künstlichen neuronalen Netzwerks 206 bestimmt, für die der Wert der Q-Funktion Qtarget einen maximalen Wert annimmt. Für das Anpassen der Gewichte wird im Beispiel eine Kostenfunktion verwendet, die abhängig von den Gewichten des ersten künstlichen neuronalen Netzwerks 204 und/oder des zweiten künstlichen neuronalen Netzwerks 206 definiert ist.
-
Die Kostenfunktion ist im Beispiel abhängig von dem Ausgang des ersten künstlichen neuronalen Netzwerks 204 und des zweiten künstlichen neuronalen Netzwerks 206 definiert. Die Gewichte des ersten künstlichen neuronalen Netzwerks 204 und/oder des zweiten künstlichen neuronalen Netzwerks 206 werden im Beispiel abhängig von einem Wert eines Gradienten für die Kostenfunktion und einer Lernrate angepasst, die definiert, welchen Einfluss der Wert des Gradienten der Kostenfunktion auf einzelne dieser Gewichte hat. Es kann eine Wahl unterschiedlicher Lernraten für das erste künstliche neuronale Netzwerk 204 und für das zweite künstliche neuronale Netzwerk vorgesehen sein. Vorzugsweise ist eine erste Lernrate des ersten künstlichen neuronalen Netzwerks 204 kleiner als eine zweite Lernrate des zweiten künstlichen neuronalen Netzwerks 206. Vorteilhaft ist es, wenn die erste Lernrate um einen Faktor 10 kleiner ist als die zweite Lernrate.
-
Als Hyperparameter für das Training können außer der ersten Lernrate und der zweiten Lernrate auch die vorstehend erwähnten vorgegebenen Anzahlen von Rechenschritten und/oder Episoden variiert werden.
-
Bevorzugt wird die erste Belohnungsfunktion verwendet, da diese mit weniger Rechenspeicher auskommt. Dies ist insbesondere in einem Embedded System vorteilhaft. Die erste Belohnungsfunktion ist eine spares rewards Funktion, welche einfacher allgemein zu definieren ist, als die zweite Belohnungsfunktion. Dadurch kann ein Anwender in einem Werk das Training schneller abschließen. Dies ist insbesondere im industriellen Umfeld vorteilhaft, in dem ein Roboter 102 für eine Aufgabe trainiert werden soll.
-
Durch dieses Verfahren werden gegenüber dem Verfahren nach Deep Deterministic Policy Gradients im Training folgende Vorteile erreicht:
- höhere Robustheit gegen Änderungen in den Hyperparametern, zuverlässigeres Erreichen des Endzustands,
- geringere Varianz hinsichtlich der Initialisierung der Gewichte mit unterschiedlichen Random Seeds,
- höhere Robustheit gegenüber einer Änderung der Belohnungsfunktion,
- höhere Robustheit gegenüber beschränktem Speicher, z.B. in embedded systems,
- sicherere Exploration.
-
3 stellt Schritte in einem Verfahren zum Betreiben des Roboters 102 schematisch dar.
-
In einem Schritt 300 wird wenigstens eine Kraft und wenigstens ein Moment bestimmt, die auf einen Endeffektor 108 des Roboters 102 wirken. Es kann vorgesehen sein, die geschätzten Größen ζ̂ = [ƒ̂x ƒ̂y ƒ̂z τ̂x τ̂y τ̂z] zu bestimmen oder entsprechende Größen wie beschrieben zu bestimmen.
-
In einem Schritt 302 wird der erste Zustand st abhängig von der wenigstens einen Kraft und dem wenigstens einen Moment bestimmt.
-
Der erste Zustand st ist im Beispiel bezüglich einer Achse definiert, wobei eine Kraft eine Bewegung des Endeffektors 108 in Richtung der Achse bewirkt, wobei ein Moment eine Drehung des Endeffektors 108 um die Achse bewirkt.
-
Im Beispiel wird ein Vektor bestimmt, der den ersten Zustand st definiert, wobei der Vektor eine erste Kraft, eine zweite Kraft, eine dritte Kraft, ein erstes Moment, ein zweites Moment, und ein drittes Moment definiert, wobei unterschiedliche Achsen für die Kräfte definiert sind, wobei jedem Moment eine andere der unterschiedlichen Achsen zugeordnet ist. Der Vektor ist beispielsweise durch die geschätzten Größen ζ̂ = [ƒ̂x ƒ̂y ƒ̂z τ̂x τ̂y τ̂z] definiert.
-
In einem Schritt 304 wird abhängig von einem ersten Zustand st des Roboters 102 und/oder seiner Umgebung und abhängig von einem Ausgang eines ersten Modells ein erster Teil einer Stellgröße zum Ansteuern des Roboters 102 für einen Übergang vom ersten Zustand st in den zweiten Zustand st+1 des Roboters 102 bestimmt.
-
Das erste Modell umfasst beispielsweise das erste künstliche neuronale Netzwerk 204. Ein erster Teil des Vektors definiert im Beispiel den Eingang für das erste künstliche neuronale Netzwerk 204 zur Bestimmung des ersten Teils der Stellgröße. Der Eingang des ersten künstlichen neuronalen Netzwerks 204 ist im Beispiel unabhängig von einem zweiten Teil des Vektors definiert.
-
In einem Schritt 306 wird ein zweiter Teil der Stellgröße abhängig vom ersten Zustand st und unabhängig vom ersten Modell bestimmt.
-
Im Beispiel wird ein Vektor bestimmt, der die Stellgröße definiert. Der Vektor umfasst eine erste Kraft, eine zweite Kraft, eine dritte Kraft, ein erstes Moment, ein zweites Moment, und ein drittes Moment, wobei unterschiedliche Achsen für die Kräfte definiert sind. Jedem Moment ist eine andere der unterschiedlichen Achsen zugeordnet.
-
Ein erster Teil des Vektors wird im Beispiel unabhängig von einem Ausgang des ersten künstlichen neuronalen Netzwerks 204 insbesondere konstant definiert.
-
Ein zweiter Teil des Vektors wird im Beispiel abhängig vom Ausgang des ersten künstlichen neuronalen Netzwerks 204 definiert.
-
Im Beispiel wird der Vektor wie für die Stellgröße
beschrieben bestimmt.
-
In einem Schritt 308 wird der Datengraph abhängig von wenigstens einem Zustand des Roboters 102 bestimmt. Im Beispiel wird der zuletzt erfolgte Übergang verwendet, um den Datengraph zu ergänzen. Einem Knoten, der im Datengraph ein Blatt darstellt, und der keinem Endzustand des Roboters 102 zugeordnet ist, kann eine Kante zugeordnet werden, die eine folgenlose Aktion definiert. Die folgenlose Aktion ist optional einem insbesondere konstanten Wert für den ersten Teil der Stellgröße zugeordnet.
-
In einem Schritt 310 wird abhängig vom ersten Zustand und abhängig vom Ausgang des ersten Modells mit einem zweiten Modell ein Gütemaß bestimmt.
-
Das zweite Modell umfasst im Beispiel das zweite künstliche neuronale Netzwerk 206. Der Vektor definiert im Beispiel den Eingang für das zweite künstliche neuronale Netzwerk 206. Der Ausgang des zweiten künstlichen neuronalen Netzwerks 206 definiert im Beispiel das Gütemaß.
-
In einem Schritt 312 wird wenigstens ein Parameter des ersten Modells abhängig vom Gütemaß bestimmt. Dazu wird das Training wie zuvor für das erste künstliche neuronale Netzwerk 204 beschrieben ausgeführt.
-
In einem Schritt 314 wird ein Sollwert abhängig von einer Belohnung bestimmt wird, die dem Übergang vom ersten Zustand in den zweiten Zustand zugeordnet ist.
-
Der Sollwert wird im Beispiel abhängig von einer Schranke bestimmt. Die Schranke wird abhängig vom Datengraph bestimmt. Im Beispiel wird abhängig vom ersten Zustand der Teilgraph des Graphen bestimmt und die Schranke wie beschrieben abhängig von den Q-Werten bestimmt, die den Knoten des Teilgraphen zugeordnet sind.
-
In einem optionalen Schritt 314 ist vorgesehen, dass der Sollwert abhängig von einer vorgegebenen Schranke bestimmt wird, der aufgabenabhängig Domänenwissen berücksichtigt.
-
In einem Schritt 316 wird abhängig vom Gütemaß und dem Sollwert wenigstens ein Parameter des zweiten Modells bestimmt. Dazu wird das Training wie zuvor für das zweite künstliche neuronale Netzwerk 206 beschrieben ausgeführt.
-
Die Schritte des Verfahrens können in dieser oder anderer Reihenfolge für mehrere Episoden und/oder Epochen wiederholt werden, um das erste künstliche neuronale Netzwerk 204 gemäß der optimalen Strategie zu trainieren, den Q-Wert des zweiten künstlichen neuronalen Netzwerks 206 zu maximieren. Es kann vorgesehen sein, den Roboter 102 abhängig von der Stellgröße ζ anzusteuern, die durch die optimale Strategie bestimmt wird.
-
Der Endeffektor 108 kann wenigstens einen Finger 114 umfasst, der den zum ersten Werkstück 110 komplementären Abschnitt aufweist und dessen Oberfläche selbstzentrierend ausgeführt ist. Dadurch wird ein besonders guter Halt beim konstanten Druck nach unten ermöglicht. Besonders wichtig ist auch die Selbstzentrierung bei hohen Momenten, die bezüglich des Arbeitsraums 110 nicht senkrecht nach unten wirken. Dadurch kann ein ansonsten mögliches Verdrehen des Objektes vermieden werden.