-
Stand der Technik
-
Die vorliegende Offenbarung bezieht sich auf Verfahren zum Steuern einer Robotervorrichtung.
-
Das Aufnehmen eines Objekts aus einem geöffneten Behälter, wie einer Kiste oder einer Schachtel ist eine häufige Aufgabe für einen Roboter in der Industrie, z.B. an einem Fließband. Eine grundlegende atomare Aufgabe für den Roboter ist hierbei das Greifen. Wenn das Greifen gelingt, kann der Roboter auch die komplexere Manipulationsaufgabe des Aufnehmens aus einem Behälter (und ggf. Ablegens) durchführen. Besonders schwierig ist es, wenn mehrere Objekte in dem Behälter platziert sind und der Roboter alle Objekte aus dem Behälter zu entnehmen soll und an einer Zielposition ablegen soll. Darüber hinaus können viele andere technische Herausforderungen auftreten, die zu bewältigen sind, wie Rauschen und Verdeckungen in der Wahrnehmung, Objektbehinderungen und Kollisionen in der Bewegungsplanung. Daher sind robuste Verfahren zum Steuern eines Roboters zum Aufnehmen von Objekten aus einem Behälter wünschenswert.
-
Offenbarung der Erfindung
-
Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Steuern einer Robotervorrichtung bereitgestellt, das aufweist: Beschaffen eines Bildes von einer Umgebung der Robotervorrichtung, Verarbeiten des Bildes mittels eines neuronalen Konvolutionsnetzwerks, das ein Bild in einem Merkmalsraum aus dem Bild erzeugt, wobei das Bild im Merkmalsraum für jeden Pixel zumindest einer Teilmenge des Bildes einen Vektor im Merkmalsraum aufweist, Zuführen des Bildes im Merkmalsraum zu einem neuronalen Actor-Netzwerk, das aus dem Bild im Merkmalsraum eine Abbildung auf Aktions-Parameter erzeugt, wobei die Abbildung für jeden der Pixel einen Satz von Aktionsparameterwerten für eine Aktion der Robotervorrichtung aufweist, Zuführen des Bildes im Merkmalsraum und des Aktions-Parameter-Bilds zu einem neuronalen Critic-Netzwerk, das ein Bewertungs-Bild erzeugt, das für jeden Pixel eine Bewertung für die durch den Satz von Aktionsparameterwerten für den Pixel definierte Aktion aufweist, Auswählen, aus mehreren Sätzen von Aktionsparametern des Aktions-Parameter-Bilds, desjenigen Satzes von Aktionsparameterwerten mit der höchsten Bewertung und Steuern des Roboters zum Ausführen einer Aktion gemäß dem ausgewählten Aktions-Parameter-Satz.
-
Mittels des obigen Steuerverfahrens kann es vermieden werden, dass für kontinuierliche Parameter einer Aktion der Robotervorrichtung (z.B. einer Roboterfertigkeit wie ein Greifen) eine Diskretisierung vorgenommen wird. Dies ermöglicht Berechnungen und Speichereffizienz während des Trainings und die Verallgemeinerung von Trainings-Szenarien auf ähnliche Szenarien. Außerdem ermöglicht es die obige Herangehensweise Parameter für Fertigkeiten oder Aktionsprimitive hinzuzufügen und dabei den mit der Diskretisierung einhergeneden „Fluch der Dimensionalität‟ zu vermeiden. Dies ermöglicht das effiziente Arbeiten mit Aktionen mit einer hohen Anzahl von Freiheitsgraden. Mit anderen Worten skaliert gemäß verschiedenen Ausführungsformen die Ausgabe des neuronalen Netzes (auf dessen Grundlage die Aktions-Parameter für die Steuerung ausgewählt werden) linear mit der Dimensionalität der Aktionen, anstatt exponentiell anzusteigen, wie es typischerweise der Fall ist, wenn alle Parameter diskretisiert werden.
-
Das Zuführen des Bilds im Merkmalsraum und des Aktions-Parameter-Bilds zu dem neuronalen Critic-Netzwerk kann eine Vorverarbeitung aufweisen, um die Formate der beiden Bilder aneinander anzupassen und die beiden Bilder miteinander zu verknüpfen oder zu kombinieren.
-
Da die Aktion eine einfach Aktion im Laufe einer größeren Aufgabe sein kann, wird sie in der Folgenden Beschreibung auch als Aktionsprimitiv bezeichnet.
-
Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
-
Ausführungsbeispiel 1 ist das oben beschriebene Verfahren zum Steuern einer Robotervorrichtung.
-
Ausführungsbeispiel 2 ist das Verfahren nach Ausführungsbeispiel 1, wobei der Roboter gesteuert wird, die Aktion an einer horizontalen Position auszuführen, die durch die Position des Pixels in dem Bild gegeben ist, für den das Aktions-Parameter-Bild den ausgewählten Satz von Aktionsparameterwerten aufweist.
-
Damit wird eine Mischung von diskreten Aktionsparametern (horizontale Pixelpositionen) und kontinuierlichen Aktionsparametern (vom Actor-Netzwerk bestimmte Sätze von Aktionsparameterwerten) erreicht. Der „Fluch der Dimensionalität“ bleibt dabei begrenzt, da nur die Position in der Ebene diskretisiert wird.
-
Ausführungsbeispiel 3 ist das Verfahren nach Ausführungsbeispiel 1 oder 2, wobei das Bild ein Tiefenbild ist und der Roboter gesteuert wird, die Aktion an einer vertikalen Position auszuführen, der durch die Tiefeninformation des Bildes für den Pixel gegeben ist, für den das Aktions-Parameter-Bild den ausgewählten Satz von Aktionsparameterwerten aufweist.
-
Damit wird die Tiefeninformation aus dem Tiefenbild direkt als Aktionsparameterwert verwendet und kann beispielsweise angeben, in welcher Höhe ein Roboterarm mit seinem Greifer zugreifen soll.
-
Ausführungsbeispiel 4 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 3, wobei das Bild ein oder mehrere Objekte zeigt, wobei die Aktion ein Greifen oder ein Schieben eines Objekts durch einen Roboterarm ist.
-
Insbesondere in einem solchen „Bin-Picking“-Szenario eignet sich die oben beschriebene Herangehensweise, da hier diskrete Positionen und kontinuierliche Greifer-Orientierungen (und auch Schiebedistanzen und -richtungen) genommen werden können.
-
Ausführungsbeispiel 5 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 4, aufweisend, für jeden Aktionstyp mehrerer Aktionstypen,
Verarbeiten des Bildes mittels eines neuronalen Konvolutionsnetzwerks, das ein Bild im Merkmalsraum aus dem Bild erzeugt, wobei das Bild im Merkmalsraum für jeden zumindest einer Teilmenge der Pixel des Bildes einen Vektor in dem Merkmalsraum aufweist;
Zuführen des Bilds im Merkmalsraum zu einem neuronalen Actor-Netzwerk, das aus dem Bild im Merkmalsraum ein Aktions-Parameter-Bild erzeugt, wobei das Aktions-Parameter-Bild für jeden der Pixel einen Satz von Aktionsparameterwerten für eine Aktion des Aktionstyps aufweist; und Zuführen des Bilds im Merkmalsraum und des Aktions-Parameter-Bilds zu einem neuronalen Critic-Netzwerk, das ein Bewertungs-Bild erzeugt, das für jeden Pixel eine Bewertung für die durch den Satz von Aktionsparameterwerten für den Pixel
definierte Aktion aufweist; und
Auswählen, aus mehreren Sätzen von Aktionsparametern der Aktions-Parameter-Bilder für verschiedene der mehreren Aktionstypen, desjenigen Satzes von Aktionsparameterwerten mit der höchsten Bewertung und Steuern des Roboters zum Ausführen einer Aktion gemäß dem ausgewählten Aktions-Parameter-Satz und gemäß des Aktionstyps, für den das Aktions-Parameter-Bild erzeugt wurde, aus dem der ausgewählte Aktions-Parameter-Satz ausgewählt wurde.
-
Damit ist die Steuerung in der Lage, nicht nur die Aktionsparameter für einen Aktionstyp, sondern auch den durchzuführenden Aktionstyp selbst (z.B. Greifen oder Schieben) effizient auszuwählen. Die neuronalen Netzwerke können für die unterschiedlichen Aktionstypen unterschiedlich sein, sodass sie passend zum jeweiligen Aktionstyp trainiert werden können.
-
Ausführungsbeispiel 6 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 5, aufweisend Durchführen des Verfahrens für mehrere Bilder und Trainieren des neuronalen Konvolutionsnetzwerks, des neuronalen Actor-Netzwerks und des neuronalen Critic-Netzwerks mittels eines Actor-Critc-Reinforcement-Leaming-Verfahrens, wobei jedes Bild einen Zustand repräsentiert und der ausgewählte Aktions-Parameter-Satz die in dem Zustand durchgeführte Aktion repräsentiert.
-
Damit kann das gesamte neuronale Steuerungsnetzwerk (aufweisend das neuronale Konvolutionsnetzwerk, das neuronale Actor-Netzwerk und das neuronale Critic-Netzwerk) effizient Ende-zu-Ende trainiert werden.
-
Ausführungsbeispiel 7 ist eine Robotersteuereinrichtung, die ein neuronales Konvolutionsnetzwerk, ein neuronales Actor-Netzwerk und ein neuronale Critic-Netzwerk implementiert und eingerichtet ist, das Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchzuführen.
-
Ausführungsbeispiel 8 ist ein Computerprogramm mit Befehlen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchführt.
-
Ausführungsbeispiel 9 ist ein computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchführt.
-
In den Zeichnungen beziehen sich ähnliche Bezugszeichen im Allgemeinen auf dieselben Teile in den verschiedenen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstäblich, wobei die Betonung stattdessen im Allgemeinen auf die Darstellung der Prinzipien der Erfindung gelegt wird. In der folgenden Beschreibung werden verschiedene Aspekte mit Bezug auf die folgenden Zeichnungen beschrieben.
- 1 zeigt einen Roboter.
- 2 zeigt ein neuronales Netzwerk, mittels welchem gemäß einer Ausführungsform die Steuereinrichtung des Roboters von 1 ausgehend von einem RGB-D-Bild eine Steueraktion auswählt.
- 3 zeigt ein Ablaufdiagramm, das ein Verfahren zum Trainieren einer Steueranordnung für ein gesteuertes System gemäß einer Ausführungsform darstellt.
-
Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Erläuterung spezielle Details und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeführt werden kann. Andere Aspekte können verwendet werden und strukturelle, logische und elektrische Änderungen können durchgeführt werden, ohne vom Schutzbereich der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da einige Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
-
Im Folgenden werden verschiedene Beispiele genauer beschrieben.
-
1 zeigt einen Roboter 100.
-
Der Roboter 100 umfasst einen Roboterarm 101, beispielsweise einen Industrieroboterarm zum Handhaben oder Montieren eines Werkstücks (oder eines oder mehrerer anderer Objekte). Der Roboterarm 101 umfasst Manipulatoren 102, 103, 104 und eine Basis (oder Stütze) 105, durch die die Manipulatoren 102, 103, 104 abgestützt sind. Der Begriff „Manipulator“ bezieht sich auf die beweglichen Elemente des Roboterarms 101, deren Betätigung eine physikalische Wechselwirkung mit der Umgebung ermöglicht, z. B. um eine Aufgabe auszuführen. Für die Steuerung umfasst der Roboter 100 eine (Roboter-) Steuereinrichtung 106, die dazu eingerichtet ist, die Wechselwirkung mit der Umgebung gemäß einem Steuerprogramm zu implementieren. Das letzte Element 104 (am weitesten von der Stütze 105 entfernt) der Manipulatoren 102, 103, 104 wird auch als Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge wie z. B. einen Schweißbrenner, ein Greifinstrument, ein Lackierwerkzeug oder dergleichen umfassen.
-
Die anderen Manipulatoren 102, 103 (näher an der Basis 105) können eine Positionierungsvorrichtung bilden, sodass zusammen mit dem Endeffektor 104 der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende vorgesehen ist. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm (möglicherweise mit einem Werkzeug an seinem Ende) erfüllen kann.
-
Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 umfassen, die die Manipulatoren 102, 103, 104 miteinander und mit der Basis 105 verbinden. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, von denen jedes eine Drehbewegung und/oder Translationsbewegung (d.h. Verschiebung) von zugehörigen Manipulatoren relativ zueinander bereitstellen kann. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktuatoren bewirkt werden, die durch die Steuereinrichtung 106 gesteuert werden.
-
Der Begriff „Aktuator“ kann als Komponente verstanden werden, die dazu ausgelegt ist, einen Mechanismus oder Prozess in Reaktion darauf, dass sie angetrieben wird, zu beeinflussen. Der Aktuator kann Befehle, die durch die Steuereinrichtung 106 ausgegeben werden (die sogenannte Aktivierung), in mechanische Bewegungen umwandeln. Der Aktuator, z. B. ein elektromechanischer Wandler, kann dazu eingerichtet sein, auf seine Aktivierung hin elektrische Energie in mechanische Energie umzuwandeln.
-
Der Begriff „Steuereinrichtung“ kann als irgendein Typ von Logik, die eine Entität implementiert, verstanden werden, die beispielsweise eine Schaltung und/oder einen Prozessor, der in der Lage ist, eine Software auszuführen, die in einem Speichermedium gespeichert ist, Firmware oder eine Kombination davon umfassen kann, und die Befehle, z. B. an einen Aktuator im vorliegenden Beispiel, ausgeben kann. Die Steuereinrichtung kann beispielsweise durch einen Programmcode (z. B. Software) konfiguriert sein, um den Betrieb eines Roboters zu steuern.
-
Im vorliegenden Beispiel umfasst die Steuereinrichtung 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, der Code und Daten speichert, gemäß der der Prozessor 110 den Roboterarm 101 steuert.
-
Des Roboters 100 soll beispielsweise ein Objekt 113 aufnehmen. Beispielsweise ist der Endeffektor 104 ein Greifer und soll das Objekt 113 aufnehmen, aber der Endeffektor 104 kann auch beispielsweise eingerichtet sein, das Objekt 113 zum Aufnehmen anzusaugen. Das Objekt 113 befindet sich beispielsweise in einem Behälter 114, z.B. in einer Kiste oder in einem Karton.
-
Das Aufnehmen des Objekts 113 ist insbesondere dann schwierig, wenn sich das Objekt nahe an der Wand oder sogar in einer Ecke eines Behälters befindet. Liegt das Objekt 113 nahe an einer Wand oder in der Ecke, kann der Endeffektor 104 das Objekt nicht aus beliebigen Richtungen aufnehmen. Das Objekt 113 kann auch nah an anderen Objekten liegen, sodass der Endeffektor 104 das Objekt 113 nicht beliebig aufnehmen kann. In solchen Fällen kann der Roboter das Objekt 113 zuerst verschieben, z.B. in die Mitte des Behälters 114 schieben.
-
Gemäß verschiedenen Ausführungsformen wird der Roboterarm 101 für das Aufnehmen eines Objekts unter Verwendung zweier kontinuierlich parametrisierter Aktionsprimitive gesteuert, einem Greif-Primitiv und einem Schiebe-Primitiv. Werte für die Parameter, die die Aktionsprimitive definieren, werden als Ausgabe eines tiefen neuronalen Netzwerks 112 geliefert. Das Steuerverfahren kann Ende-zu-Ende trainiert werden.
-
Für das Greifen wird eine Parametrisierung mit zwei diskreten Parametern (2D-Position in der x-y-Ebene eines RGB-D-Bilds) und drei kontinuierlichen Parametern (Gieren, Nicken des Endeffektors und Greiferöffnung) verwendet, während für das Schieben eine Parametrisierung mit zwei diskreten Parametern (2D-Position in der x-y-Ebene eines RGB-D-Bilds) und fünf kontinuierlichen Parametern (Gieren, Neigen, Rollen des Endeffektors sowie Schieberichtung und Schiebedistanz) verwendet wird.
-
Obwohl diskrete und kontinuierliche Parameter verwendet werden, wird eine hybride Formulierung vermieden. Da die kontinuierlichen Parameter von der Wahl der diskreten Parametern abhängen, wird hingegen ein hierarchisches verstärkendes Lernen (RL für engl. Reinforcement Learning) und eine hierarchische Steuerungsstrategie-Optimierung verwendet.
-
Gemäß verschiedenen Ausführungsformen wird als zu Grunde liegendes RL-Verfahren Soft Actor-Critic (SAC) verwendet.
-
SAC ist ein Off-Policy-Actor-Critic-Verfahren, bei dem gemeinsam ein Paar von State-Action-Wertfunktionen
und eine stochastische Steuerungsstrategie π
θ trainiert werden. Da SAC dem Paradigma des Maximum-Entropie-RLs folgt, wird der Actor trainiert, um den kumulativen erwarteten Nutzen zu und seine Entropie zu maximieren, sodass er so zufällig wie möglich agiert. Beim Standard-SAC ist der Actor als Gaußsche Steuerungsstrategie π
θ parametrisiert und wird mit der folgenden Zielfunktion trainiert:
mit
-
Die Critics Q
ϕi werden mittels tiefem Q-Lernen trainiert, wobei die Ziele durch zugehörige, zeitliche verzögerte Ziel-Netzwerke
geliefert werden, d.h. der Critic-Verlust ist gegeben durch
wobei yt(s',a') definiert ist als
-
Hier werden Zustände s, Aktionen a, nächste Zustände s' und Belohnungen aus einem Wiederholungsspeicher gesampelt, der im Laufe des Trainings kontinuierlich aufgefüllt wird. Die Aktion a' im Zustand s' wird aus der aktuellen Steuerungsstrategie gesampelt. Der Hyperparameter α, der die Entropie steuert, kann automatisch eingestellt werden.
-
Gemäß verschiedenen Ausführungsformen werden die Aktionen, die von dem Roboter ausgeführt werden, ausgehend von RGB-D-Bildern ermittelt.
-
Tiefe RL-Verfahren auf hochdimensionalen Eingaberäumen, wie beispielsweise Bildern, sind bekannt dafür, dass sie unter einer schlechten Sampling-Effizienz leiden. Deshalb werden gemäß verschiedenen Ausführungsformen Repräsentationen (in einem Merkmalsraum) gelernt, wobei kontrastives Lernen verwendet wird.
-
Kontrastives Lernen basiert auf der Idee, dass ähnliche Eingaben auf Punkte (Repräsentationen) qi abgebildet werden, die im Merkmalsraum nahe beieinander liegen, während Repräsentationen von Eingaben, die nicht ähnlich sind, weiter auseinander liegen sollten.
-
Die Nähe zweier Einbettungen (d.h. Repräsentationen) wird durch eine Bewertungsfunktion ƒ(q
i; q
j) gemessen. Dies ist beispielsweise das Skalarprodukt
oder eine andere bilineare Verknüpfung
der beiden Einbettungen.
-
Um das Lernen einer Abbildungen von Eingaben auf Repräsentationen mit dieser Eigenschaft zu fördern, wird bei kontrastiven Verfahren „rauschkontrastive Schätzung‟ (NCE für englisch Noise Contrastive Estimation) und ein sog. InfoNCE-Loss verwendet gegeben durch
-
Hierbei bezeichnet q
pos die Repräsentation eines Positiv-Beispiels, dem die aktuell betrachtete Repräsentation q ähnlich sein soll und oft aus q durch Datenaugmentierung der entsprechenden Eingabe konstruiert wird.
bezeichnet die Repräsentation eines Negativ-Beispiels, das üblicherweise als Repräsentation einer zufälligen anderen Eingabe gewählt wird. Bei Verwendung von Minibatches können z.B. als die Negativ-Beispiele alle anderen Stichproben des aktuellen Minibatches als die aktuell betrachtete Einbettung (d.h. Repräsentation) gewählt werden.
-
In dem folgenden Ausführungsbeispiel soll der Roboter 100 das Objekt 113 aus dem Behälter 114 aufnehmen. Diese Aufgabe wird als Markov-Entscheidungsprozess mit endlichem Zeithorizont modelliert, d.h. durch ein Tupel (S, A, T, r, γ, H), mit Zustandsraum S, Aktionsraum A, Übergangswahrscheinlichkeitsfunktion T, Belohnungsfunktion r, Diskontierungsfaktor γ, und Zeithorizont mit H Zeitschritten. In jedem Zeitschritt t = 1, ..., H, beobachtet die Steuereinrichtung einen Zustand st ∈ S (mittels Sensordaten, insbesondere Bildern einer Kamera 115, die auch an dem Roboterarm 101 befestigt sein kann) und wählt gemäß einer Steuerungsstrategie π(at|st) (die zumindest teilweise von dem neuronalen Netzwerks 112 implementiert wird) eine Aktion at ∈ A aus. Die Anwendung der Aktion at im Zustand st führt zu einer Belohnung T (st, at) und das gesteuerte System (hier der Roboterarm 101) wechselt gemäß T in einen neuen Zustand st+1.
-
Der Zustand st wird als RGB-D-Bild mit vier Kanälen, Farbe (RGB) und Höhe (Z) repräsentiert. Die Steuereinrichtung 106 ermittelt das RGB-D-Bild aus einem von der Kamera 115 gelieferten RGB-D Bild von dem Bereich, in dem der Roboterarm 101 und der Behälter 114 angebracht sind. Unter Verwendung der intrinsischen und extrinsischen Kameraparameter transformiert die Steuereinrichtung das Bild in eine RGB-Punktwolke in dem Koordinatensystem des Roboterarms 101, dessen Ursprung z.B. zweckmäßigerweise in die Mitte der Basis 105 gelegt wird und wobei die z-Achse nach oben (in die der Schwerkraft entgegengesetzte Richtung) zeigt. Die Steuereinrichtung projiziert dann die Punktwolke orthogonal auf ein 2-dimensionales Raster (z.B. mit einer Granularität von 5mm x 5 mm) in der xy-Ebene, auf der sich der Behälter befindet, zum Erzeugen des RGB-D-Bilds.
-
2 zeigt ein neuronales Netzwerk 200, mittels welchem die Steuereinrichtung 106 ausgehend von einem RGB-D-Bild 201 eine Steueraktion auswählt.
-
In 2 sind Konvolutionsschichten mit ansteigenden Diagonalen schraffiert dargestellt, ReLU-Schichten horizontal schraffiert dargestellt und Batch-Normalisierungsschichten querschraffiert dargestellt. Ist angegeben, dass eine Gruppe von Schichten mehrmals hintereinander vorkommt („x2“ bzw. „x3“) so bedeutet dies, dass die Schichten mit derselben Dimensionen mehrmals vorkommen, während sich ansonsten die Dimensionen der Schichten im Allgemeinen (insbesondere von Konvolutionsschicht zu Konvoluationsschicht) ändern.
-
Jede Aktion at ist ein Aktionsprimitiv (oder Bewegungsprimitiv) wie oben beschrieben, d.h. ein Greif-Primitiv oder ein Schiebe-Primitiv, definiert durch einen jeweiligen Satz von Parameterwerten. Die Belohnung rt, die im t-en Zeitschritt erhalten wird, ist 1, falls die Aktion at dazu führt, dass der Roboterarm 101 das Objekt 113 erfolgreich greift, ansonsten ist sie 0.
-
Die Steuerungsstrategie πa
t|s
t) wird mittels verstärkendem Lernen trainiert, um die Q-Funktion zu maximieren, die definiert ist durch
-
Die Bellman-Gleichung
ist eine Möglichkeit, die Q-Funktion rekursiv zu berechnen und gemäß verschiedenen Ausführungsformen liegt sie dem verwendeten RL-Verfahren zu Grunde.
-
Die Steuerungsstrategie π(at|st) gibt in jedem Schritt den Typ des Aktionsprimitivs ϕ ∈ {g(reifen), s(schieben)} sowie den Parameterwertesatz für das jeweilige Aktionsprimitiv aus. Der Typ und der Parameterwertesatz definieren die Handlung, die der Roboterarm 101 ausführen soll. Die Ausführung eines Aktionsprimitivs wird wie folgt gesteuert.
-
Greifen: Das Zentrum des End-Effektors 104 (hier speziell ein Greifer, es kann aber auch ein Endeffektor verwendet werden, der Objekte zum Aufnehmen ansaugt), auch bezeichnet als TCP (tool center point) wird von oben nach unten in eine Zielpose gebracht, die durch die kartesischen Koordinaten (xg, yg, zg) und die Eulerwinkel (ig, jg, kg) definiert ist, wobei die Distanz zwischen den Greif-Fingern auf wg gesetzt wird.
-
Wenn die Zielpose erreicht wurde oder eine Kollision erkannt wurde, wird der Greifer geöffnet und um (beispielsweise) 20cm angehoben, woraufhin dem Greifer erneut signalisiert wird, zu schließen. Das Greifen gilt als erfolgreich, wenn der abgelesene Abstand zwischen den Fingern einen Schwellwert überschreitet, der größer ist als ein Wert, der etwas unterhalb der kleinsten Abmessung der betrachteten Objekte liegt. Für das Greif-Primitiv enthält der Parametersatz ag = {xg yg, j9,kgwg) die oben genannten Parameter außer zg, den die Steuereinrichtung 106 direkt aus dem RGB-D-Bild an der Position (xg, yg) extrahiert, und der Rollwinkel ig, der auf 0 gesetzt wird, um zu gewährleisten, dass die Finger sich alle in der gleichen Höhe befinden, um stabil von oben greifen zu können. Rollen ist im Beispiel von 1 eine Drehung um eine Achse durch 109 in 1, wobei die Achse aus der Papierebene herauskommt.
-
Verschieben: Der TCP wird mit geschlossenem Greifer in eine Zielpose (xs,yszs,is,js,ks) gefahren, danach wird er um ds in horizontaler Richtung bewegt, die durch einen Drehwinkel ks um die z-Achse definiert ist. Der Parametersatz ist hierbei as = (xs, ys,is,js, ks, ds, ks) wobei wie beim Greif-Primitiv die Steuereinrichtung 106 den Parameter zg aus dem RGB-D-Bild extrahiert.
-
Das neuronale Netzwerk 200 ist gemäß verschiedenen Ausführungsformen ein „Fully Convolutional“ Netzwerk (FCN) Ψϕ zum Ermitteln des Parameterwertsatzes aϕ und Approximieren des Werts Qϕ(s, aϕ) für jeden Aktionsprimitiv-Typ ϕ für das RGB-D-Bild 201). Die zu Grunde liegende Algorithmik und die Architektur des neuronalen Netzwerks 200 kann als Kombination von SAC für kontinuierliche Aktionen und Q-Lernen für diskrete Aktionen gesehen werden: Für jeden Pixel des RGB-D-Bilds ermittelt ein erstes Konvolutions-(Teil)-Netzwerk 202, bezeichnet als Pixel-Encoder, eine Darstellung, bezeichnet mit µ (z.B. ein Vektor mit 64 Komponenten, den der Pixel-Encoder 202 für jeden Pixel des RGB-D-Bilds, also für h x w Pixel, ermittelt). Auf die Pixel-Einbettungen µ für das RGB-D-Bilds werden weitere Konvolutions-(Teil)-Netzwerke 203, 204, 205, 206 auf die Ausgabe des Pixel-Encoders 202 angewendet und erzeugen eine Aktionskarte (bezeichnet mit A) pro Aktionsprimitiv-Typ und eine Q-Wert-Karte pro Aktionsprimitiv-Typ, die jeweils die gleichen räumlichen Dimensionen h und w (Höhe und Breite) des RGB-D-Bilds 201 haben. Diese Konvolutions-(Teil)-Netzwerke 203, 204, 205, 206 sind ein Actor-Netzwerk 203, ein Aktions-Encoder-Netzwerk 204, ein Pixel-Aktions-Encoder-Netzwerk 205 und ein Critic-Netzwerk 206.
-
Das Actor-Netzwerk 203 erhält die Pixel-Einbettungen µ als Eingabe und ordnet den Pixeln der Aktionskarte derart Pixelwerte zu, dass die Auswahl eines Pixels der Aktionskarte eine vollständigen Parameterwertsatz aϕ (für den jeweiligen Aktionsprimitiv-Typ) liefert. Dabei leitet die Steuereinrichtung 106 die Werte der räumlichen Parameter (xϕ, yϕ) aus der Pixelposition ab (die entsprechend des RGB-D-Bilds einer Position in der x-y-Ebene entspricht). Die Werte der anderen Parameter sind durch die Pixelwerte der Aktionskarte an der Pixelposition (d.h. durch die Werte der Kanäle der Aktionskarte an der Pixelposition) gegeben. Analog liefert der Pixelwert der Q-Wert-Karte (für den jeweiligen Aktionsprimitiv-Typ) an der Pixelposition den Q-Wert für das Zustands-Aktions-Paar (s, aϕ). Die Q-Wert-Karte repräsentiert deshalb Qϕ(s,aϕ) für eine diskrete Menge von Aktionen entsprechend der Pixel des RGB-D-Bilds und kann entsprechend unter Verwendung eines Q-Lern-Schemas für diskrete Aktionen trainiert werden.
-
Das Actor-Netzwerk 203 ermittelt beispielsweise eine Gauß-verteilte Aktion (wie in SAC) für jeden Pixel (mit einer Anzahl von Ausgangskanälen entsprechend der Anzahl von Parametern des jeweiligen Aktionsprimitivs).
-
Der Pixel-Aktions-Encoder 205 codiert Paare aus Pixeln und Aktionen, wobei jede Aktion (d.h. die Pixelwerte aus der Aktionskarte) zunächst von dem Aktions-Encoder Netzwerk 204 verarbeitet werden (siehe Pfad (a) in 2) und dann mit der zugehörigen Pixel-Einbettung konkateniert wird, bevor dieses Paar dem Pixel-Aktions-Encoder 205 zugeführt wird.
-
Das Critic-Netzwerk 206 ermittelt den Q-Wert für jedes Pixel-Aktions-Paar. Ähnlich wie bei einer SAC-Implementierung kann dazu eine Doppel-Q-Architektur verwendet werden, wo der Q-Wert als Minimum zweier Q-Karten genommen wird, um Überschätzen zu vermeiden.
-
Die Steuereinrichtung 106 ermittelt eine Aktion im Zeitschritt t für ein RGB-D-Bild s
t wie folgt: Das neuronale Netzwerk 200 (welches einen Teil
für beide AktionsPrimitive aufweist) wird Ende-zu-Ende durchlaufen, wodurch die Aktionskarte A
ϕ (entsprechend der Steuerungsstrategie
) für beide Primitive und die Q-Wert-Karte
für beide Aktionsprimitiv-Typen erzeugt wird. Der Index t deutet hier an, dass die Netzwerke und Ausgaben alle zeitabhängig sind bzw. sein können, wie es bei Markov-Entscheidungsprozessen mit endlichem Zeithorizont typischerweise der Fall ist.
-
Die Steuereinrichtung 106 wählt den Aktionsprimitiv-Typ aus gemäß
und setzt die Parameter des Aktionsprimitives gemäß
-
Für das Training sammelt die Steuereinrichtung 106 Daten, d.h. Tupel (st, at, rt, st+1), aus Experimenten und speichert sie in einem Wiederholungsspeicher. Aus diesem liest sie dann zum Trainieren aus (Pfad (b) in 2 für die Aktionen). Die Aktionen aus dem Wiederholungsspeicher werden durch eine Umformungsschicht 207 in eine für das Aktions-Encoder Netzwerk 204 geeignete Form gebracht. Beim Sampeln von MiniBatches aus den Daten für das Training kann sie Datenaugmentierung verwenden, um die Sample-Effizienz zu erhöhen. Insbesondere kann sie zu einer gesampelten Erfahrung (st, at, rt, st+1) Versionen erzeugen, die bezüglich der zu lernenden Aufgabe invariant sind, indem sie das RGB-D-Bild st um einen zufälligen Winkel dreht und die relevanten Winkel des Parameterwertsatzes der Aktion at um denselben Winkel dreht. Beispielsweise kann für beide Primitive der Gierwinkel verändert werden und beim Schiebe-Primitiv zusätzlich die Schieberichtung gedreht werden. Auf diese Weise kann die Steuereinrichtung zu einem Trainings-Sample (aus dem Wiederholungs-Speicher) ein zusätzliches Trainings-Sample erzeugen, das zu einem ähnlichen Ergebnis rt und st+1 wie das ursprüngliche Trainings-Sample führen sollte.
-
Die Steuereinrichtung 106 trainiert das neuronale Netzwerk unter Verwendung der folgenden Verlust- bzw. Zielfunktionen.
-
Critic-Verlust:
wobei BCE (Binary Cross Entropy) für den Binäre-Kreuz-Entropie-Verlust und MSE (Mean Squared Error) für den Mittlerer-Quadratischer-Fehler-Verlust bezeichnen und
-
Die Netzwerkparameter des Pixel-Encoder-Netzwerks 202, des Pixel-Aktions-Encoder-Netzwerks 205 und des Critic-Netzwerks 206 werden zum Minimieren (bzw. Reduzieren) des Critic-Verlusts trainiert.
-
Actor-Zielfunktion:
-
Die Netzwerkparameter des Pixel-Encoder-Netzwerks 202, und des Actor-Netzwerks 203 werden zum Maximieren (bzw. Erhöhen) des Actor-Zielfunktion trainiert.
-
Wie oben erläutert kann die Steuereinrichtung 106 Datenaugmentierung auf Trainings-Sample anwenden, indem sie den Zustand (RGB-D-Bild) verändert und die zugehörige Aktion entsprechend anpasst. Idealerweise sind sich die von dem Pixel-Encoder 202 erzeugten Pixel-Einbettungen für Augmentierungen (bzw. Versionen) desselben Samples ähnlicher als für unterschiedliche Samples (also solche, bei denen nicht eines die Augmentierung des anderen ist). Um dies beim Training des Pixel-Aktion-Encoders zu fördern, kann als zusätzlicher Verlustterm ein kontrastiver Verlust verwendet werden.
-
Dazu erzeugt die Steuereinrichtung 106 beispielsweise für ein Sample in dem Mini-Batch zwei Augmentierungen und codiert sie mittels des Pixel-Encoders 202 zu einer Abfrage-Einbettung q bzw. zu einer Schlüssel-Einbettung k. Sie berechnet dann die Ähnlichkeit zwischen q und k durch die bilineare Verknüpfung sim(k,q) = kTWq, wobei W eine Parametermatrix ist (die selbst gelernt werden kann). Damit kann dann ein kontrastiver Verlust, der abhängt von den Ähnlichkeiten, wie sie durch die Funktion sim(.) gegeben sind und von der Information darüber, welche Samples Augmentierungen desselben Samples sind und somit eine hohe Ähnlichkeit aufweisen sollten.
-
In MDPs mit endlichem Zeithorizont ist die Q-Funktion zeitabhängig und entsprechend ist es sinnvoll, die Q-Funktionen in den verschiedenen Zeitschritten durch unterschiedliche Netzwerke zu approximieren. Dies erfordert jedoch das Training von H neuronalen Netzwerken, was einen großen Rechenaufwand bedeuten kann.
-
Dieses Problem kann umgangen werden, indem der MDP als MDP mit unendlichen Zeithorizont behandelt wird, unabhängig vom tatsächlichen Modell, und ein Diskontierungsfaktor verwendet wird, um den Effekt zukünftiger Schritte zu mildern. Gemäß einer Ausführungsform werden stattdessen unterschiedliche Netzwerke für die unterschiedlichen Zeitschritte verwendet und unterschiedliche abschwächende Maßnahmen vorgenommen. Beispielsweise wird unabhängig von der Anzahl der Zeitschritte, die erlaubt sind, um den Behälter 114 zu leeren, ein fester und kleiner Zeithorizont von H = 2 verwendet. Diese Wahl hilft dabei, die oben erwähnten Hürden zu verringern, die durch einen großen Aktionsraum sowie durch die Tatsache, dass Belohnungen zu Beginn des Trainings nur selten auftreten, noch verstärkt werden. Sie kann auch durch die Beobachtung motiviert werden, dass das die Steuerung zum Aufnehmen aus einem Behälter typischerweise nicht viel davon profitiert, mehr als ein paar Schritte vorauszuschauen. In der Tat ist das Vorausschauen über den aktuellen Zustand hinaus vor allem dann vorteilhaft, wenn eine Verschiebung erforderlich ist, um ein aufeinanderfolgendes Greifen zu ermöglichen, und in diesem Fall reicht mit hoher Wahrscheinlichkeit ein einziges Verschieben aus.
-
Entsprechend dieser Abschwächung verwendet die Steuereinrichtung gemäß einer Ausführungsform ein neuronales Netz ψ0, um eine Aktion im Schritt t =0 herzuleiten und ein neuronales Netz ψ1 für t = 1.
-
Während des Trainings kann die Steuereinrichtung 106 alle aufgezeichneten Erfahrungen zur Aktualisierung der neuronalen Netzwerke für alle Zeitschritte verwenden, unabhängig davon, für welche Zeitschritt innerhalb der Episode sie tatsächlich aufgetreten sind.
-
Gemäß verschiedenen Ausführungsformen verwendet die Steuerungseinrichtung 106 eine Explorationsheuristik. Um die Chancen für ein erfolgreiches Ergebnis einer Greif-Aktion oder einer Verschiebe-Aktion bei Explorationsschritten zu erhöhen, verwendet die Steuereinrichtung ein Verfahren zur Erkennung von Veränderungen, um Pixel zu lokalisieren, die Objekten entsprechen. Dazu vergleicht sie die Punktwolke des aktuellen Zustandes von einer Referenzpunktwolke eines Bildes mit leerem Behälter und maskiert die Pixel, bei denen es einen ausreichenden Unterschied gibt. Sie sampelt dann eine Explorations-Aktion aus diesen maskierten Pixeln gemäß einer Gleichverteilung.
-
Außerdem verfügt die Steuereinrichtung über eine Bounding-Box des Behälters 114 (diese kann bekannt sein oder die Steuereinrichtung kann sie durch Verwendung eines Erkennungs-Tools erhalten). Es können dann Punkte auf dem End-Effektor 104 (inklusive z.B. einer am Roboter befestigten Kamera) definiert werden, die die Steuereinrichtung 105 entsprechend einer Zielpose transformiert, um ihre Machbarkeit zu überprüfen, indem sie prüft, ob die transformierten Punkte innerhalb der Bounding-Box des Behälters 114 liegen. Wenn es mindestens einen Punkt gibt, der außerhalb des Behälters 114 liegt, wird der Versuch verworfen, da er zu einer Kollision führen würde. Die Steuereinrichtung 106 kann diese Berechnung auch als ergänzende Explorationsheuristik für die Suche nach einer machbaren Orientierung für eine gegebene Translation verwenden, indem sie aus einer zufälligen Menge von Orientierungen eine auswählt, die machbar ist, wenn eine solche existiert.
-
Zusammenfassend wird gemäß verschiedenen Ausführungsformen ein Verfahren bereitgestellt, wie es in 3 dargestellt ist.
-
3 zeigt ein Ablaufdiagramm 300, das ein Verfahren zum Steuern einer Robotervorrichtung veranschaulicht.
-
In 301 wird ein Bild von einer Umgebung der Robotervorrichtung beschafft (z.B. von einer Kamera aufgenommen).
-
In 302 wird das Bild mittels eines neuronalen Konvolutionsnetzwerks verarbeitet, das ein Bild in einem Merkmalsraum aus dem Bild erzeugt, wobei das Bild im Merkmalsraum für jeden Pixel zumindest einer Teilmenge der Pixel des Bildes einen Vektor in dem Merkmalsraum aufweist.
-
In 303 wird das Bild im Merkmalsraum einem neuronalen Actor-Netzwerk zugeführt, das aus dem Bild im Merkmalsraum ein Aktions-Parameter-Bild erzeugt, wobei das Aktions-Parameter-Bild für jeden der Pixel einen Satz von Aktionsparameterwerten für eine Aktion der Robotervorrichtung aufweist.
-
In 304 werden das Bild im Merkmalsraum und das Aktions-Parameter-Bild einem neuronalen Critic-Netzwerk zugeführt, das ein Bewertungs-Bild erzeugt, das für jeden Pixel eine Bewertung für die durch den Satz von Aktionsparameterwerten für den Pixel definierte Aktion aufweist.
-
In 305 wird aus mehreren Sätzen von Aktionsparametern des Aktions-Parameter-Bilds derjenige Satz von Aktionsparameterwerten mit der höchsten Bewertung ausgewählt.
-
In 306 wird die Robotervorrichtung zum Ausführen einer Aktion gemäß dem ausgewählten Aktions-Parameter-Satz gesteuert.
-
Das Verfahren von 3 kann durch einen oder mehrere Computer mit einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden. Der Begriff „Datenverarbeitungseinheit“ kann als irgendein Typ von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Die Daten oder Signale können beispielsweise gemäß mindestens einer (d.h. einer oder mehr als einer) speziellen Funktion behandelt werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentraleinheit (CPU), eine Graphikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), eine integrierte Schaltung einer programmierbaren Gatteranordnung (FPGA) oder irgendeine Kombination davon umfassen oder aus dieser ausgebildet sein. Irgendeine andere Weise zum Implementieren der jeweiligen Funktionen, die hierin genauer beschrieben werden, kann auch als Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es können ein oder mehrere der im Einzelnen hier beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit durch eine oder mehrere spezielle Funktionen ausgeführt (z. B. implementiert) werden, die durch die Datenverarbeitungseinheit durchgeführt werden.
-
Die Herangehensweise von 3 dient zum Erzeugen eines Steuersignals für eine Robotervorrichtung. Der Begriff „Robotervorrichtung“ kann als sich auf irgendein physikalisches System (mit einem mechanischen Teil, dessen Bewegung gesteuert wird) beziehend verstanden werden, wie z. B. eine computergesteuerte Maschine, ein Fahrzeug, ein Haushaltsgerät, ein Elektrowerkzeug, eine Fertigungsmaschine, einen persönlichen Assistenten oder ein Zugangskontrollsystem. Es wird eine Steuerungsvorschrift für das physikalische System gelernt und das physikalische System dann entsprechend gesteuert.
-
Verschiedene Ausführungsformen können Sensorsignale von verschiedenen Sensoren wie z. B. Video, Radar, LiDAR, Ultraschall, Bewegung, Wärmeabbildung usw. empfangen und verwenden, beispielsweise um Sensordaten hinsichtlich Zuständen des Systems (Roboter und Objekt oder Objekte) und Konfigurationen und Steuerszenarios zu erhalten. Ausführungsformen können zum Trainieren eines Maschinenlernsystems und Steuern einer Robotervorrichtung verwendet werden, z. B. um verschiedene Manipulationsaufgaben in verschiedenen Steuerszenarios durchzuführen.
-
Obwohl spezielle Ausführungsformen hier dargestellt und beschrieben wurden, wird vom Fachmann auf dem Gebiet erkannt, dass die speziellen Ausführungsformen, die gezeigt und beschrieben sind, gegen eine Vielfalt von alternativen und/oder äquivalenten Implementierungen ausgetauscht werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll irgendwelche Anpassungen oder Variationen der speziellen Ausführungsformen abdecken, die hier erörtert sind. Daher ist beabsichtigt, dass diese Erfindung nur durch die Ansprüche und die Äquivalente davon begrenzt ist.