-
Verschiedene Ausführungsbeispiele betreffen allgemein eine Vorrichtung und ein Verfahren zum Steuern einer Robotervorrichtung.
-
Robotervorrichtungen können eine Vielzahl von Fertigkeiten besitzen und können mehrere dieser Fertigkeiten ausführen, um eine Aufgabe auszuführen. Das Verhalten der Robotervorrichtung beim Ausführen einer Fertigkeit kann hierbei von einer Vielzahl von Parametern abhängig sein. Die zum Ausführen einer Aufgabe auszuführenden Fertigkeiten können zum Beispiel mittels Roboter-Steuerungsmodellen ermittelt werden. Allerdings kann die hohe Anzahl an Fertigkeiten in Verbindung mit der hohen Anzahl an Parametern zu langen Analysezeiten beim Ermitteln der auszuführenden Fertigkeiten führen. Ist die Robotervorrichtung in Betrieb, so können zum Beispiel kurze Analysezeiten zum Ermitteln auszuführender Fertigkeiten erforderlich sein.
-
Ferner kann es vorteilhaft sein, dem Roboter-Steuerungsmodell Roboterfähigkeiten aus Demonstrationen zu vermitteln.
-
Die Veröffentlichung „Optimizing sequences of probabilistic manipulation skills learned from demonstration" von L. Schwenkel, M. Guo, und M. Bürger, in Conference on Robot Learning, 2019, (im Folgenden als Referenz [1] bezeichnet) beschreibt einen Fertigkeitszentrierten Ansatz, bei dem jede Fertigkeit unabhängig unter verschiedenen Szenarien gelernt wird, aber nicht an eine bestimmte Aufgabe gebunden ist.
-
Das Verfahren und die Vorrichtung mit den Merkmalen der unabhängigen Ansprüche 1 (erstes Beispiel) und 9 (neuntes Beispiel) ermöglichen, Fertigkeiten zum Ausführen einer Aufgabe durch eine Robotervorrichtung mit geringem rechentechnischen Aufbau und/oder geringem Zeitaufwand zu ermitteln. Zum Beispiel ermöglichen das Verfahren und die Vorrichtung, für einen derzeitigen Zustand und einen Zielzustand einer Robotervorrichtung mit geringem rechentechnischen Aufbau und/oder geringem Zeitaufwand eine durch die Robotervorrichtung auszuführende Fertigkeit zu ermitteln. Insbesondere können das Verfahren und die Vorrichtung die auszuführende Fertigkeit unter Verwendung eines trainierten Steuerungsmodells bereitstellen. Ferner werden ein Verfahren und eine Vorrichtung bereitstellt, mittels denen dem Steuerungsmodell Roboterfähigkeiten aus Demonstrationen vermittelt werden können.
-
Eine Robotervorrichtung kann jede Art von computergesteuerter Vorrichtung sein, wie beispielsweise ein Roboter (z.B. ein Fertigungsroboter, ein Wartungsroboter, ein Haushaltsroboter, ein Medizinroboter, etc.), ein Fahrzeug (z.B. ein autonomes Fahrzeug), ein Haushaltsgerät, eine Produktionsmaschine, ein persönlicher Assistent, ein Zugangs-Steuerungs-System etc.
-
Das gemäß dem ersten Beispiel erzeugte Steuerungsmodell berücksichtigt zum Beispiel einerseits die Zusammenhänge von einem zuletzt ausgeführten Zustandsübergang (wie beispielsweise einer zuletzt ausgeführten Fertigkeit) und einem nachfolgend ausführbaren Zustandsübergang (wie beispielsweise einer nachfolgend ausführbaren Fertigkeit) sowie andererseits die geometrischen Bedingungen, welche der Abfolge dieser beiden Zustandsübergänge zugrunde liegen.
-
Das Steuerungsmodell ist beispielsweise vorteilhaft dahingehend, dass keine komplexen Berechnungen zum Ermitteln einer Abfolge von durchzuführenden Zustandsübergängen (wie beispielsweise durchzuführenden Fertigkeiten, welche die durchzuführenden Zustandsübergänge induzieren können) erforderlich sind. Zum Beispiel kann eine auszuführende Fertigkeit unabhängig von einer hohen Anzahl an Fertigkeiten, einer hohen Anzahl an Parametern und/oder einer hohen Anzahl an beteiligten Objekten in der Umgebung der Robotervorrichtung eine durchzuführende Fertigkeit mit geringem Zeitaufwand ermitteln. Ferner hat das Steuerungsmodell den Effekt, dass kein manueller Auswahlprozess zum Auswählen einer auszuführenden Fertigkeit erforderlich ist.
-
Das Steuerungsmodell ist beispielsweise vorteilhaft dahingehend, dass es für zusätzliche Fertigkeiten der Robotervorrichtung linear erweitert werden kann.
-
Jede Steuerungs-Zustands-Sequenz kann eine alternierende Abfolge von Zuständen und Zustandsübergängen aufweisen. Das in diesem Absatz beschriebene Merkmal in Kombination mit dem ersten Beispiel bildet ein zweites Beispiel.
-
Das Steuern der Robotervorrichtung mit dem Steuerungsmodell kann in jedem Zustand aufweisen: für jeden in dem Zustand ausführbaren Zustandsübergang, Ermitteln eines jeweiligen Satzes von Aufgabenparametern in Reaktion auf eine Eingabe des Zielzustands und des Zustandsübergangs mit dem der Zustand erreicht wurde in das trainierte Parametermodell hin; für jeden in dem Zustand ausführbaren Zustandsübergang, Ermitteln einer jeweiligen Wahrscheinlichkeitsverteilung für ein jedes Objekts der ein oder mehreren Objekte in Reaktion auf eine Eingabe des Zielzustands, den jeweiligen Zuständen der anderen Objekte der ein oder mehreren Objekte, und des mittels des trainierten Parametermodells ermittelten Satzes von Aufgabenparametern in das trainierte Objektmodell hin; Ermitteln einer Wahrscheinlichkeit jeden in dem Zustand ausführbaren Zustandsübergang unter Verwendung der für die ein oder mehreren Objekte ermittelten Wahrscheinlichkeitsverteilungen; und Ermitteln des ausführbaren Zustandsübergangs mit der höchsten ermittelten Wahrscheinlichkeit als auszuführenden Zustandsübergang. Die in diesem Absatz beschriebenen Merkmale in Kombination mit dem ersten Beispiel oder dem zweiten Beispiel bilden ein drittes Beispiel.
-
Das Ermitteln des jeweiligen Satzes von Aufgabenparametern kann für jeden in dem Zustand ausführbaren Zustandsübergang aufweisen: Ermitteln der jeweiligen Wahrscheinlichkeitsverteilung für jeden Aufgabenparameter des Satzes von Aufgabenparametern; und Ermitteln des Erwartungswertes der jeweiligen Wahrscheinlichkeitsverteilung als Aufgabenparameter des Satzes von Aufgabenparametern. Die in diesem Absatz beschriebenen Merkmale in Kombination mit dem dritten Beispiel bilden ein viertes Beispiel.
-
Das Bereitstellen einer Steuerungs-Zustands-Sequenz kann für jedes Anfangszustand-Zielzustand-Paar der Vielzahl von Anfangszustand-Zielzustand-Paaren aufweisen: Auswählen eines Zustandsübergangs in einem jeweiligen Zustand der Robotervorrichtung beginnend mit dem Anfangszustand bis zu dem Zielzustand; und Ermitteln des dem ausgewählten Zustandsübergang zugeordneten Satzes von Aufgabenparametern und des aus dem Zustandsübergang resultierenden Zustands der Robotervorrichtung mittels einer Simulation. Die in diesem Absatz beschriebenen Merkmale in Kombination mit ein oder mehreren des ersten Beispiels bis dem vierten Beispiel bilden ein fünftes Beispiel.
-
Das Bereitstellen einer Steuerungs-Zustands-Sequenz für ein Anfangszustand-Zielzustand-Paar kann aufweisen: Ermitteln einer Vielzahl von potentiellen Steuerungs-Zustands-Sequenzen für das Anfangszustand-Zielzustand-Paar, wobei jede Steuerungs-Zustands-Sequenz eine alternierende Abfolge von Zuständen und Zustandsübergängen aufweist; und Ermitteln der potentiellen Steuerungs-Zustands-Sequenz mit der kürzesten Abfolge von Zuständen und Zustandsübergängen als Steuerungs-Zustands-Sequenz für das Anfangszustand-Zielzustand-Paar. Die in diesem Absatz beschriebenen Merkmale in Kombination mit ein oder mehreren des ersten Beispiels bis dem fünften Beispiel bilden ein sechstes Beispiel.
-
Das Steuerungsmodell kann für jeden Zustandsübergang ferner ein Robotertrajektorie-Modell, ein Vorbedingungsmodell und ein Endbedingungsmodell aufweisen. Das Trainieren des Steuerungsmodells kann ferner aufweisen: Bereitstellen von Demonstrationen zum Durchführen eines jeden Zustandsübergangs der Zustandsübergänge; Trainieren des Robotertrajektorie-Modells für jeden Zustandsübergang unter Verwendung der Demonstrationen, wobei jedes Robotertrajektorie-Modell ein Hidden-Semi-Markov-Modell mit ein oder mehreren Anfangszuständen und ein oder mehreren Endzuständen ist; Trainieren des Vorbedingungsmodells und des Endbedingungsmodells für jeden Zustandsübergang unter Verwendung der Demonstrationen, wobei das Vorbedingungsmodell für jeden Anfangszustand des dem Zustandsübergang zugeordneten Robotertrajektorie-Modells eine Wahrscheinlichkeitsverteilung von Roboterkonfigurationen vor dem Ausführen des Zustandsübergangs aufweist, und wobei das Endbedingungsmodell für jeden Endzustand des dem Zustandsübergang zugeordneten Robotertrajektorie-Modells eine Wahrscheinlichkeitsverteilung von Roboterkonfigurationen nach dem Ausführen des Zustandsübergangs aufweist. Das Steuern der Robotervorrichtung mit dem Steuerungsmodell kann in jedem Zustand aufweisen: Ermitteln eines Satzes von Aufgabenparametern unter Verwendung des trainierten Parametermodells; Ermitteln eines auszuführenden Zustandsübergangs unter Verwendung des trainierten Objektmodells; Ermitteln einer Robotertrajektorie mittels des Robotertrajektorie-Modells unter Verwendung des auszuführenden Zustandsübergangs und des Satzes von Aufgabenparametern; und Steuern der Robotervorrichtung zum Ausführen der ermittelten Robotertrajektorie. Die in diesem Absatz beschriebenen Merkmale in Kombination mit ein oder mehreren des ersten Beispiels bis dem sechsten Beispiel bilden ein siebtes Beispiel.
-
Das Lernen des Steuerungsmodells aus Demonstrationen hat den Effekt, dass die Lerneffizienz erhöht (z.B. der erforderliche rechentechnische Aufwand verringert, z.B. der erforderliche Zeitaufwand verringert, z.B. der Aufwand zum Erzeugen von Lerndaten bzw. Trainingsdaten verringert) wird.
-
Ferner hat das Lernen des Robotertrajektorie-Modells aus Demonstrationen hat den Effekt, dass mittels des gelernten Robotertrajektorie-Modells die Leistungsfähigkeit (z.B. die Effizienz) beim Ermitteln der als nächstes auszuführenden Fertigkeit signifikant erhöht wird. Ferner hat dies den Vorteil, dass keine komplexe Simulation erforderlich ist.
-
Das Bereitstellen einer Steuerungs-Zustands-Sequenz für ein Anfangszustand-Zielzustand-Paar kann aufweisen: Auswählen eines Zustandsübergangs in einem jeweiligen Zustand der Robotervorrichtung beginnend mit dem Anfangszustand bis zu dem Zielzustand; Ermitteln des dem ausgewählten Zustandsübergang zugeordneten Satzes von Aufgabenparametern unter Verwendung des dem ausgewählten Zustandsübergang zugeordneten Vorbedingungsmodells; und Ermitteln des aus dem Zustandsübergang resultierenden Zustands der Robotervorrichtung unter Verwendung des dem ausgewählten Zustandsübergang zugeordneten Endbedingungsmodells. Die in diesem Absatz beschriebenen Merkmale in Kombination mit dem siebten Beispiel bilden ein achtes Beispiel.
-
Anschaulich kann das Steuerungsmodell mittels der ermittelten Steuerungs-Zustands-Sequenzen anhand vorheriger Problemstellungen bezüglich eines derzeitigen Zustands und eines Zielzustands gelernt werden und dabei geometrische Bedingungen berücksichtigen, so dass basierend darauf die Leistungsfähigkeit im Betrieb der Robotervorrichtung erhöht werden kann.
-
Ein Computerprogrammprodukt kann Programminstruktionen speichern, welche, falls sie ausgeführt werden, das Verfahren nach einem oder mehreren des ersten Beispiels bis dem achten Beispiel ausführen. Das Computerprogrammprodukt mit den in diesem Absatz beschriebenen Merkmalen bildet ein zehntes Beispiel.
-
Ein nichtflüchtiges Speichermedium kann Programminstruktionen speichern, welche, falls sie ausgeführt werden, das Verfahren einem oder mehreren des ersten Beispiels bis dem achten Beispiel ausführen. Das nichtflüchtige Speichermedium mit den in diesem Absatz beschriebenen Merkmalen bildet ein elftes Beispiel.
-
Ein nichtvolatiles Speichermedium kann Programminstruktionen speichern, welche, falls sie ausgeführt werden, das Verfahren einem oder mehreren des ersten Beispiels bis dem achten Beispiel ausführen. Das nichtvolatile Speichermedium mit den in diesem Absatz beschriebenen Merkmalen bildet ein zwölftes Beispiel.
-
Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und in der nachfolgenden Beschreibung näher erläutert.
-
Es zeigen
- 1 eine beispielhafte Robotervorrichtungsanordnung gemäß verschiedenen Ausführungsformen;
- 2 ein Ablaufdiagramm zum Erzeugen eines Steuerungsmodells gemäß verschiedenen Ausführungsformen;
- 3 ein Ermitteln einer beispielhaften Steuerungs-Zustands-Sequenz gemäß verschiedenen Ausführungsformen;
- 4 ein Ablaufdiagramm eines Lernens aus Demonstrationen gemäß verschiedenen Ausführungsformen;
- 5 eine Anordnung zum Aufzeichnen von Demonstrationen eines Benutzers gemäß verschiedenen Ausführungsformen;
- 6A und 6B jeweils ein Ablaufdiagramm zum Steuern einer Robotervorrichtung gemäß verschiedenen Ausführungsformen;
- 7 anschaulich eine Funktionsweise eines Steuerungsmodells für eine beispielhafte Aufgabe gemäß verschiedenen Ausführungsformen;
- 8 ein Verfahren zum Steuern einer Robotervorrichtung gemäß verschiedenen Ausführungsformen.
-
In einer Ausführungsform kann ein „Computer“ als jede Art von Logik-implementierender Entität verstanden werden, welche Hardware, Software, Firmware oder eine Kombination davon sein kann. Daher kann in einer Ausführungsform ein „Computer“ eine hartverdrahtete Logikschaltung oder eine programmierbare Logikschaltung, wie beispielsweise ein programmierbarer Prozessor, zum Beispiel ein Mikroprozessor (z.B. ein CISC (Prozessor mit großem Befehlsvorrat) oder ein RISC (Prozessor mit reduziertem Befehlsvorrat)), sein. Ein „Computer“ kann ein oder mehrere Prozessoren aufweisen. Ein „Computer“ kann auch Software sein, die von einem Prozessor implementiert bzw. ausgeführt wird, zum Beispiel jede Art von Computerprogramm, zum Beispiel ein Computerprogramm das einen virtuellen Maschinencode, wie beispielsweise Java, verwendet. Jede andere Art der Implementierung der jeweiligen Funktionen, die im Folgenden ausführlicher beschrieben werden, kann in Übereinstimmung mit einer alternativen Ausführungsform als ein „Computer“ verstanden werden.
-
Beim Steuern von Robotervorrichtungen zum Ausführen einer Aufgabe können Roboter-Steuerungsmodelle verwendet werden, um Fertigkeiten zu ermitteln, die zum Erfüllen der Aufgabe durch die Robotervorrichtung ausgeführt werden bzw. werden sollen. Ist die Robotervorrichtung in Betrieb, so kann es erforderlich sein, die auszuführenden Fertigkeiten mit einer geringen Latenz (z.B. kurzen Analysezeiten) zu ermitteln. Verschiedene Ausführungsbeispiele betreffen eine Vorrichtung und ein Verfahren zum Steuern einer Robotervorrichtung, die imstande sind, unter Berücksichtigung der Aufgabe die von der Robotervorrichtung auszuführenden Fertigkeiten mit einer geringen Latenz zu ermitteln. Ferner betreffen verschiedene Ausführungsbeispiele ein Verfahren und eine Vorrichtung, mittels denen ein Modell zum Ermitteln der auszuführenden Fertigkeiten unter Verwendung von Demonstrationen erzeugt werden kann.
-
1 zeigt eine Robotervorrichtungsanordnung 100. Die Robotervorrichtungsanordnung 100 kann eine Robotervorrichtung 101 aufweisen. Die in 1 gezeigte und im Folgenden beispielhaft beschriebene Robotervorrichtung 101 stellt zur Veranschaulichung eine beispielhafte Robotervorrichtung dar und kann zum Beispiel einen Industrieroboter in der Form eines Roboterarms zum Bewegen, Montieren oder Bearbeiten eines Werkstücks aufweisen. Es wird darauf hingewiesen, dass die Robotervorrichtung jede Art von computergesteuerter Vorrichtung sein kann, wie beispielsweise ein Roboter (z.B. ein Fertigungsroboter, ein Wartungsroboter, ein Haushaltsroboter, ein Medizinroboter, etc.), ein Fahrzeug (z.B. ein autonomes Fahrzeug), ein Haushaltsgerät, eine Produktionsmaschine, ein persönlicher Assistent, ein Zugangs-Steuerungs-System etc.
-
Die Robotervorrichtung 101 weist Roboterglieder 102, 103, 104 und einen Sockel (oder allgemein eine Halterung) 105 auf, durch die die Roboterglieder 102, 103, 104 getragen werden. Der Begriff „Roboterglied‟ bezieht sich auf die beweglichen Teile der Robotervorrichtung 101, deren Betätigung eine physische Interaktion mit der Umgebung ermöglicht, z.B. um eine Aufgabe auszuführen, z.B. um ein oder mehrere Fertigkeiten auszuführen bzw. durchzuführen.
-
Zur Steuerung beinhaltet die Robotervorrichtungsanordnung 100 eine Steuervorrichtung 106, die eingerichtet ist, die Interaktion mit der Umgebung gemäß einem Steuerungsprogramm zu realisieren. Das letzte Element 104 (von dem Sockel 105 aus gesehen) der Roboterglieder 102, 103, 104 wird auch als Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge wie einen Schweißbrenner, ein Greifwerkzeug, ein Lackiergerät oder dergleichen beinhalten.
-
Die anderen Roboterglieder 102, 103 (näher am Sockel 105) können eine Positionierungsvorrichtung bilden, so dass zusammen mit dem Endeffektor 104 ein Roboterarm (oder Gelenkarm) mit dem Endeffektor 104 an seinem Ende vorgesehen ist.
-
Der Roboterarm ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm erfüllen kann (möglicherweise mit einem Werkzeug an seinem Ende).
-
Die Robotervorrichtung 101 kann Verbindungselemente 107, 108, 109 beinhalten, die die Roboterglieder 102, 103, 104 miteinander und mit dem Sockel 105 verbinden. Ein Verbindungselement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, von denen jedes eine Drehbewegung und/oder eine Translationsbewegung (d.h. eine Verschiebung) für zugehörige Roboterglieder relativ zueinander bereitstellen kann. Die Bewegung der Roboterglieder 102, 103, 104 kann mit Hilfe von Stellgliedern eingeleitet werden, die von der Steuervorrichtung 106 gesteuert werden.
-
Der Begriff „Stellglied“ kann als eine Komponente verstanden werden, die geeignet ist, als Reaktion darauf, dass sie angetrieben wird, einen Mechanismus zu beeinflussen. Das Stellglied kann von der Steuervorrichtung 106 ausgegebene Anweisungen (die sogenannte Aktivierung) in mechanische Bewegungen umsetzen. Das Stellglied, z.B. ein elektromechanischer Wandler, kann eingerichtet werden, elektrische Energie als Reaktion auf seine Ansteuerung in mechanische Energie umzuwandeln.
-
Der Begriff „Steuervorrichtung“ (auch als „Steuereinrichtung bezeichnet“) kann als jede Art von logischer Implementierungseinheit verstanden werden, die beispielsweise eine Schaltung und/oder einen Prozessor beinhalten kann, der in der Lage ist, in einem Speichermedium gespeicherte Software, Firmware oder eine Kombination derselben auszuführen, und die Anweisungen, z.B. an ein Stellglied im vorliegenden Beispiel, erteilen kann. Die Steuervorrichtung kann beispielsweise durch Programmcode (z.B. Software) eingerichtet werden, den Betrieb eines Systems, im vorliegenden Beispiel eines Roboters, zu steuern.
-
In dem vorliegenden Beispiel beinhaltet die Steuervorrichtung 106 einen Computer 110 und einen Speicher 111, der Code und Daten speichert, auf deren Grundlage der Computer 110 die Robotervorrichtung 101 steuert. Gemäß verschiedener Ausführungsformen steuert die Steuervorrichtung 106 die Robotervorrichtung 101 auf der Grundlage eines im Speicher 111 gespeicherten Roboter-Steuerungsmodells 112.
-
Gemäß verschiedenen Ausführungsformen kann die Robotervorrichtungsanordnung 100 ein oder mehrere Sensoren 113 aufweisen. Die ein oder mehreren Sensoren 113 können eingerichtet sein, Sensordaten, die einen Zustand der Robotervorrichtung charakterisieren, bereitzustellen. Zum Beispiel können die ein oder mehreren Sensoren 113 einen Bildgebungssensor, wie beispielsweise eine Kamera (z.B. eine Standardkamera, eine Digitalkamera, eine Infrarotkamera, eine Stereokamera, etc.), einen Radar-Sensor, einen LIDAR-Sensor, einen Positionssensor, einen Geschwindigkeitssensor, einen Ultraschallsensor, einen Beschleunigungssensor, einen Drucksensor, etc. aufweisen.
-
Die Robotervorrichtung 101 kann in einem Zustand einer Vielzahl von Zuständen sein. Gemäß verschiedenen Ausführungsformen kann die Robotervorrichtung 101 zu jedem Zeitpunkt in einem derzeitigen Zustand der Vielzahl von Zuständen sein. Der jeweilige Zustand der Vielzahl von Zuständen kann unter Verwendung der von den ein oder mehreren Sensoren 113 bereitgestellten Sensordaten und/oder der Konfiguration der Robotervorrichtung 101 ermittelt werden.
-
Zwischen jedem Zustand und einem dem Zustand nachfolgenden Zustand kann ein Zustandsübergang stattfinden. Der Begriff „Zustandsübergang“, wie hierin verwendet, kann einer Aktion und/oder einer Fertigkeit der Robotervorrichtung 101 entsprechen. Anschaulich kann die Robotervorrichtung 101 in einem Zustand eine Aktion und/oder Fertigkeit ausführen und dies kann zu einem neuen Zustand der Robotervorrichtung 101 führen.
-
Die Robotervorrichtung 101 kann eingerichtet sein, eine Vielzahl von Fertigkeiten auszuführen. Die Fertigkeiten der Vielzahl von Fertigkeiten können beispielsweise in dem Programmcode der Steuervorrichtung 106 vordefiniert sein. Ein oder mehrere Fertigkeiten der Vielzahl von Fertigkeiten können zum Beispiel eine mechanische Bewegung von ein oder mehreren Robotergliedern 102, 103, 104 aufweisen. Ein oder mehrere Fertigkeiten der Vielzahl von Fertigkeiten können zum Beispiel eine Aktion des Endeffektors (z.B. einem Greifen, z.B. einem Lösen, etc.) aufweisen. Gemäß verschiedenen Ausführungsformen kann eine in einem derzeitigen Zustand der Robotervorrichtung 101 durchgeführte Fertigkeit zu einem resultierenden Zustand der Vielzahl von Zuständen der Robotervorrichtung 101 führen.
-
Das Roboter-Steuerungsmodell 112 kann eingerichtet sein, einen auszuführende Zustandsübergang zu ermitteln und die Steuervorrichtung 106 kann eingerichtet sein, die Robotervorrichtung 101 zum Ausführen des Zustandsübergangs zu steuern. Das Roboter-Steuerungsmodell 112 kann eingerichtet sein, eine auszuführende Fertigkeit zu ermitteln und die Steuervorrichtung 106 kann eingerichtet sein, die Robotervorrichtung 101 zum Ausführen der Fertigkeit zu steuern.
-
Gemäß verschiedenen Ausführungsformen kann zumindest ein Teil des Steuerungsmodells 112 eingerichtet sein, für einen Zustand der Robotervorrichtung 101 und einen Zielzustand der Robotervorrichtung 101 einen auszuführenden Zustandsübergang (z.B. eine auszuführende Fertigkeit) bereitzustellen. Das Steuerungsmodell 112 kann eingerichtet sein, für einen Zustand der Robotervorrichtung 101 und einen Zielzustand der Robotervorrichtung 101 eine auszuführende Fertigkeit und der Fertigkeit zugeordnete Aufgabenparameter bereitzustellen. Der Zielzustand kann zum Beispiel der Zustand sein, in dem eine auszuführende Aufgabe abgeschlossen wird bzw. ist.
-
Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 112 erzeugt (z.B. gelernt) werden, während die Robotervorrichtung 101 außer Betrieb ist. Gemäß verschiedenen Ausführungsformen kann das erzeugte Steuerungsmodell 112 während des Betriebs der Robotervorrichtung 101 verwendet werden, um von der Robotervorrichtung 101 auszuführende Fertigkeiten zu ermitteln.
-
2 zeigt ein Ablaufdiagramm 200 zum Erzeugen eines Steuerungsmodell 206 gemäß verschiedenen Ausführungsformen. Das derart erzeugte Steuerungsmodell 206 kann zum Beispiel als Steuerungsmodell 112 und/oder als ein Teil des Steuerungsmodells 112 verwendet werden. Ein Computer kann eingerichtet sein, das Steuerungsmodell 206 zu erzeugen. Der Computer kann beispielsweise der Computer 110 der Steuervorrichtung 106 sein. Wie hierin beschrieben, kann das Steuerungsmodell 206 auch erzeugt (z.B. gelernt) werden, wenn die Robotervorrichtung 101 nicht Betrieben wird; so kann zum Beispiel der Computer ein von dem Computer 110 verschiedener Computer sein. Zum Beispiel kann das Steuerungsmodell 206 räumlich getrennt von der Robotervorrichtungsanordnung 100 gelernt werden.
-
Gemäß verschiedenen Ausführungsformen kann eine Vielzahl von Anfangszustand-Zielzustand-Paaren 202 {(S0, SN)} bereitgestellt werden (z.B. eine Vielzahl von Anfangszustand-Zielzustand-Paaren 202 {(S0, SN)} für die selbe Aufgabe). Gemäß verschiedenen Ausführungsformen kann der Computer eingerichtet sein, eine Vielzahl von Anfangszustand-Zielzustand-Paaren 202 {(S0, SN)} auszuwählen. Zum Beispiel Ausführungsformen kann der Computer eingerichtet sein, die Vielzahl von Anfangszustand-Zielzustand-Paaren 202 {(S0, SN)} zu ermitteln. Jedes Anfangszustand-Zielzustand-Paar (s0, SN) kann einen Anfangszustand S0 und einen Zielzustand SN aufweisen. Jeder Anfangszustand S0 kann ein Zustand der Vielzahl von Zuständen der Robotervorrichtung 101 sein. Jeder Anfangszustand S0 kann einen Zustand der Robotervorrichtung 101 und ein oder mehrerer Objekte angeben. Jeder Zielzustand SN kann ein Zustand der Vielzahl von Zuständen der Robotervorrichtung 101 sein. Jeder Zielzustand SN kann einen Zustand der Robotervorrichtung 101 und ein oder mehrerer Objekte angeben. Zum Beispiel kann der Computer eingerichtet sein, jedes Anfangszustand-Zielzustand-Paar (s0, sN) aus einem Zustandsraum, der die Vielzahl von Zuständen aufweist, auszuwählen (z.B. im Wesentlichen zufällig auswählen, z.B. mittels eines vordefinierten Algorithmus auswählen).
-
Gemäß verschiedenen Ausführungsformen kann der Computer eingerichtet sein, für jedes Anfangszustand-Zielzustand-Paar (s0, sN) der Vielzahl von Anfangszustand-Zielzustand-Paaren 202 {(S0, SN)} eine Steuerungs-Zustands-Sequenz ξ zu ermitteln. Jede Steuerungs-Zustands-Sequenz kann Zustände und Zustandsübergänge aus einer Menge von möglichen Zuständen und Zustandsübergängen aufweisen. Zum Beispiel kann für die Vielzahl von Anfangszustand-Zielzustand-Paaren 202 {(S0, SN)} eine Vielzahl von Steuerungs-Zustands-Sequenzen 204 Ξ = {ξ} ermittelt werden. Gemäß verschiedenen Ausführungsformen kann Ξ eine Datenbank von Steuerungs-Zustands-Sequenzen {ξ} sein. Jede Steuerungs-Zustands-Sequenz ξ eines zugeordneten Anfangszustand-Zielzustand-Paars (s0, sN) kann eine alternierende Abfolge von Zuständen und Zustandsübergängen (z.B. Fertigkeiten) aufweisen. Jede Steuerungs-Zustands-Sequenz ξ eines zugeordneten Anfangszustand-Zielzustand-Paars (s0, sN) kann eine alternierende Abfolge von Zuständen und Zustandsübergängen vom Anfangszustand s0 bis zum Zielzustand sN aufweisen.
-
Zur Veranschaulichung werden die Zustandsübergänge im Folgenden anhand von Fertigkeiten der Robotervorrichtung 101 beschrieben.
-
Anschaulich kann in dem Anfangszustand s0 eine Fertigkeit a ∈ A ausgeführt (z.B. theoretisch ausgeführt) werden, wobei die Fertigkeit zu einem resultierenden Zustand der Robotervorrichtung 101 führt, wobei in dem nachfolgenden Zustand eine nächste Fertigkeit ausgeführt werden kann, usw. Jeder Fertigkeit a ∈ A kann hierbei ein Satz von Aufgabenparametern TPa zugeordnet sein. Die in dem Satz von Aufgabenparametern TPa enthaltenen Aufgabenparameter können gemäß verschiedenen Ausführungsformen die zugeordnete Fertigkeit beschreiben.
-
Gemäß verschiedenen Ausführungsformen kann eine Steuerungs-Zustands-Sequenz ξ eines zugeordneten Anfangszustand-Zielzustand-Paars (s
0, s
N) beschrieben werden durch
-
Anschaulich kann ein Zustandsübergang beschrieben werden durch ein a ∈ A und dem Zustandsübergang kann ein Satz von Aufgabenparametern TPa zugeordnet sein.
-
Gemäß verschiedenen Ausführungsformen können die Aufgabenparameter p eines Satzes von Aufgabenparametern TPa unter Verwendung des Zustandes der Robotervorrichtung 101 vor der zugeordneten Fertigkeit (z.B. des Zustands vor dem theoretischen Ausführen der Fertigkeit) ermittelt werden.
-
Eine Steuerungs-Zustands-Sequenz für ein Anfangszustand-Zielzustand-Paar (s0, sN) kann zum Beispiel mittels eines Lösers zur Aufgaben-und-Bewegungs-Planung (TAMP-Löser) ermittelt werden. Ein TAMP-Löser kann zum Beispiel eine diskrete logische Schlussfolgerung mit geometrischen Bedingungen bezüglich der Robotervorrichtung 101 verbinden. Ein TAMP-Löser kann beispielsweise als ein neuronales Netzwerk implementiert sein. Gemäß verschiedenen Ausführungsformen kann eine Steuerungs-Zustands-Sequenz für ein Anfangszustand-Zielzustand-Paar (s0, sN) durch einen TAMP-Löser mittels Anwendens eines Graph-Suchalgorithmus ermittelt werden. Der Graph-Suchalgorithmus kann zum Beispiel auf (z.B. in dem Speicher der Steuervorrichtung 106) vorprogrammierte Parameter angewendet werden. Der Graph-Suchalgorithmus kann zum Beispiel eine Breitensuche, einen Dijkstra-Algorithmus und/oder einen A*-Algorithmus aufweisen. Hierbei kann in jedem derzeitigen Zustand jeder Zustandsübergang (z.B. jede Fertigkeit) ausgeführt (z.B. theoretisch ausgeführt) werden, um das System in einen resultierenden Zustand zu bringen.
-
Der der Fertigkeit a ∈ A zugeordnete Satz von Aufgabenparametern TPa kann beispielsweise mittels des Computers (z.B. unter Verwendung des TAMP-Lösers) berechnet werden. Gemäß verschiedenen Ausführungsformen kann der aus einer Fertigkeit resultierende Zustand mittels einer Simulation ermittelt werden. Gemäß verschiedenen Ausführungsformen kann eine Steuerungseingabe für die Robotervorrichtung mit den geringsten Kosten ermittelten werden, um den Zustandsübergang mit den Aufgabenparametern des zugeordneten Satzes von Aufgabenparametern (z.B. theoretisch) auszuführen.
-
Gemäß verschiedenen Ausführungsformen kann der der Fertigkeit a ∈ A zugeordnete Satz von Aufgabenparametern TPa unter Verwendung eines Vorbedingungsmodells γ1,a ermittelt werden. Gemäß verschiedenen Ausführungsformen kann der aus der Fertigkeit a ∈ A resultierende Zustand unter Verwendung eines Endbedingungsmodell γT,a ermittelt werden. Für jede Fertigkeit kann das Vorbedingungsmodells γ1,a für jeden Anfangszustand eine Wahrscheinlichkeitsverteilung von Roboterkonfigurationen vor dem Ausführen der Fertigkeit aufweisen. Für jede Fertigkeit kann das Endbedingungsmodell γT,a für jeden aus der Fertigkeit resultierenden Zustand (in manchen Aspekten als Endzustand bezeichnet) eine Wahrscheinlichkeitsverteilung von Roboterkonfigurationen nach dem Ausführen der Fertigkeit aufweisen. Das Vorbedingungsmodells γ1,a und/oder das Endbedingungsmodell γT,a können mittels Lernen aus Demonstrationen ermittelt werden (siehe hierzu zum Beispiel die Beschreibung zu 4 und 5 sowie Referenz [1]).
-
Gemäß verschiedenen Ausführungsformen kann für jedes Anfangszustand-Zielzustand-Paar (s0, sN) der Vielzahl von Anfangszustand-Zielzustand-Paaren 202 {(S0, SN)} eine Vielzahl von potentiellen Steuerungs-Zustands-Sequenzen ermittelt werden. Jede potentielle Steuerungs-Zustands-Sequenz der Vielzahl von potentiellen Steuerungs-Zustands-Sequenzen eines Anfangszustand-Zielzustand-Paares (s0, sN) kann eine alternierende Abfolge von Zuständen und Zustandsübergängen (z.B. Fertigkeiten) vom Anfangszustand s0 bis zum Zielzustand sN aufweisen. Gemäß verschiedenen Ausführungsformen kann die potentielle Steuerungs-Zustands-Sequenz der Vielzahl von potentiellen Steuerungs-Zustands-Sequenzen mit den geringsten ermittelten Kosten als Steuerungs-Zustands-Sequenz ξ für das Anfangszustand-Zielzustand-Paar (s0, sN) ermittelt werden. Gemäß verschiedenen Ausführungsformen kann die potentielle Steuerungs-Zustands-Sequenz der Vielzahl von potentiellen Steuerungs-Zustands-Sequenzen mit der kürzesten Abfolge von Zuständen und Zustandsübergängen (z.B. mit den wenigstens Zuständen bzw. Zustandsübergängen) als Steuerungs-Zustands-Sequenz ξ für das Anfangszustand-Zielzustand-Paar (s0, sN) ermittelt werden.
-
Ein Ermitteln einer beispielhaften Steuerungs-Zustands-Sequenz 204A ist in 3 dargestellt. Zum Beispiel kann die beispielhafte Steuerungs-Zustands-Sequenz 204A für das Anfangszustand-Zielzustand-Paar (s0, S12) 202A ermittelt werden, wobei Anfangszustand S0=S0 ist und wobei der Zielzustand SN=S12 ist. Die beispielhafte Steuerungs-Zustands-Sequenz 204A kann unter Verwendung des anschaulich dargestellten Zustands-Zustandsübergangs-Diagramm 302 zum Beispiel mittels eines Graph-Suchalgorithmus ermittelt werden. Wie hierin beschrieben, können jedem Zustandsübergang jeweilige Aufgabenparameter (in dem Zustands-Zustandsübergangs-Diagramm 302 als p gekennzeichnet) zugeordnet sein. Das Zustands-Zustandsübergangs-Diagramm 302 zeigt eine beispielhaft ermittelte Sequenz 304 von Zuständen und Zustandsübergängen vom Anfangszustand bis zum Zielzustand. Die beispielhafte Steuerungs-Zustands-Sequenz 204A kann anhand dieses Beispiels wie folgt beschrieben werden: ξ = s0 (a2, p4) S4 (a6, P11) S12.
-
Mit Bezug auf
2 kann der Computer eingerichtet sein, unter Verwendung der ermittelten Vielzahl von Steuerungs-Zustands-Sequenzen 204 Ξ = {ξ} ein Steuerungsmodell 206 zu erzeugen (z.B. zu trainieren bzw. zu lernen). Das Steuerungsmodell 206 kann zum Beispiel ein geometrisches Aufgabenmodell sein und kann geometrische Bedingungen beim Steuern der Robotervorrichtung 101 berücksichtigen. Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 eingerichtet sein, in Reaktion auf ein Eingeben eines derzeitigen Zustands der Robotervorrichtung 101 und eines Zielzustands hin einen auszuführenden Zustandsübergang a
★ und einen dem auszuführenden Zustandsübergang zugeordneten Satz von Aufgabenparametern
bereitzustellen (z.B. auszugeben). Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 eingerichtet sein, in Reaktion auf ein Eingeben eines derzeitigen Zustands der Robotervorrichtung 101 und eines Zielzustands hin eine auszuführende Fertigkeit a
★ und einen der auszuführenden Fertigkeit zugeordneten Satz von Aufgabenparametern
bereitzustellen (z.B. auszugeben).
-
Im Folgenden wird ein beispielhaftes Erzeugen des Steuerungsmodells 206 gemäß verschiedenen Ausführungsformen beschrieben.
-
Gemäß verschiedenen Ausführungsformen kann jeder Steuerungs-Zustands-Sequenz ξ eine virtuelle Anfangsfertigkeit a am Anfang der Steuerungs-Zustands-Sequenz (d.h. der Abfolge von Zuständen und Fertigkeiten) hinzugefügt werden. Jeder Steuerungs-Zustands-Sequenz ξ kann eine virtuelle Endfertigkeit
a am Ende der Steuerungs-Zustands-Sequenz hinzugefügt werden. Somit kann eine Steuerungs-Zustands-Sequenz ξ mit einer Länge von N Zuständen (mit Bezug auf Gleichung (1)) beschrieben werden als:
-
Gemäß verschiedenen Ausführungsformen kann der Computer eingerichtet sein, eine Menge von Zustandsübergang-Zustand-Zustandsübergang Tripeln zu ermitteln, die in den bereitgestellten Steuerungs-Zustands-Sequenzen enthalten sind. Gemäß verschiedenen Ausführungsformen kann der Computer für jede Steuerungs-Zustands-Sequenz der Vielzahl von Steuerungs-Zustands-Sequenzen 204 Ξ = {ξ} eine Menge von Tripeln (z.B. jedes Tripel) gegeben durch Zustandsübergang-Zustand-Zustandsübergang (z.B. Fertigkeit-Zustand-Fertigkeit) ermitteln. Wie hierin beschrieben, kann jeder Fertigkeit ein Satz von Aufgabenparametern TP
a zugeordnet sein. Ein Zustandsübergang-Zustand-Zustandsübergang Tripel (im Folgenden auch als erstes Tripel bezeichnet) kann beschrieben werden durch
wobei n ein Laufindex von N ist.
-
Jedes Paar der beiden Zustandsübergänge (an, an+1) eines jeweiligen ersten Tripels
((an, TP an , sn+1, (an+1, TPan+1 )) kann anschaulich eine Abfolge von zwei Fertigkeiten sein. Zum Zweck der anschaulichen Beschreibung werden die beiden Zustandsübergänge eines jeweiligen ersten Tripels hierin auch als Fertigkeitsübergang bezeichnet. Anschaulich stellt ein wie hierin beschriebener Fertigkeitsübergang zwei nacheinander ausführbare (oder ausgeführte) Fertigkeiten dar. Folglich kann jeder Fertigkeitsübergang einem Übergang von einer Fertigkeit an zu einer nachfolgenden Fertigkeit an+1 zugeordnet sein. Zum Beispiel kann jeder Fertigkeitsübergang einem Übergang von einer Fertigkeit zu einer nachfolgenden Fertigkeit in Übereinstimmung mit der Vielzahl von Steuerungs-Zustands-Sequenzen zugeordnet sein. Gemäß verschiedenen Ausführungsformen können die ersten Tripel eine Vielzahl von ersten Tripeln sein und unter Verwendung der Vielzahl von ersten Tripeln kann eine Vielzahl von Fertigkeitsübergängen (d.h. eine Vielzahl von Zustandsübergangs-Paaren(an,an+1) eines jeweiligen ersten Tripels
((an, TPan ), sn+1, (an+1, TPan+1)) ermittelt werden. Die Vielzahl von Fertigkeitsübergängen kann einem Satz von Fertigkeitsübergangen E hinzugefügt werden, wobei jeder Fertigkeitsübergang e ∈ Ê sein kann.
-
Gemäß verschiedenen Ausführungsformen kann für jeden Fertigkeitsübergang (a
n, a
n+1) ein erweiterter Zustandssatz Ŝ
anan+1 (in manchen Aspekten auch als Zustandsdatensatz bezeichnet) ermittelt werden. Der erweiterte Zustandssatz S
anan+1 kann ein oder mehrere erweiterte Zustände Ŝ aufweisen. Gemäß verschiedenen Ausführungsformen kann der Computer für jede Steuerungs-Zustands-Sequenz der Vielzahl von Steuerungs-Zustands-Sequenzen 204 Ξ = {ξ} jedes Tripel gegeben durch nachfolgenden Zustandnachfolgende Aufgabenparameter-Zielzustand (im Folgenden auch als zweites Tripel bezeichnet) ermitteln. Ein zweites Tripel kann beschrieben werden durch
Jedes zweite Tripel kann ein erweiterter Zustand Ŝ des zugeordneten erweiterten Zustandssatz S
anan+1 sein.
-
Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 ein Parametermodell γ
p und ein Objektmodell γ
o aufweisen. Gemäß verschiedenen Ausführungsformen kann der Computer eingerichtet sein, eine Abbildungsfunktion f (a
k, a
l) zu trainieren, um von jedem Fertigkeitsübergang (z.B. der Fertigkeit a
k auf die Fertigkeit a
ℓ) auf ein jeweiliges Parametermodell γ
p und/oder ein jeweiliges Objektmodell γ
o abzubilden. Zum Beispiel kann die trainierte Abbildungsfunktion f(a
k,a
ℓ) von jedem Fertigkeitsübergang (a
k, a
ℓ) das Parametermodell γ
p und das Objektmodell γ
o gemäß Gleichung (5) abbilden:
Gemäß verschiedenen Ausführungsformen kann für jeden Aufgabenparameter p ∈ TP
aℓ das Parametermodell γ
p gelernt werden. Das Parametermodell γ
p kann ein aufgaben-parametrisiertes Gaußsches Mischmodell (TP-GMM) sein. Das Parametermodell γ
p kann für jeden Aufgabenparameter p ∈ TP unter Verwendung des der nachfolgenden Fertigkeit des jeweiligen Fertigkeitsübergangs zugeordneten Satzes von Aufgabenparametern {TP
aℓ,p) als Beobachtungen und eines Paares {(s
j, S
N)} bestehend aus dem Zustand S
j und dem Zielzustand S
N als zugeordnete Frames trainiert werden. Anschaulich beschreibt (z.B. modelliert) das Parametermodell γ
p wie die gewählten Aufgabenparameter mit Bezug auf den derzeitigen Zustand der Robotervorrichtung 101 und dem Zielzustand beschränkt (z.B. bedingt) sind. Anschaulich beschreibt das Parametermodell γ
p wie in Anbetracht des Zielzustands die Aufgabenparameter in vorangegangen Lösungen ausgewählt wurden. Es wird darauf hingewiesen, dass in diesen Beispielen der Zustand des ersten Tripels als S
j bezeichnet wird, so dass das erste Tripel aus der Fertigkeit a
k, dem Zustand S
j, und der Fertigkeit a
ℓ besteht.
-
Gemäß verschiedenen Ausführungsformen kann das Parametermodell γp für jedes erste Tripel der Menge von ersten Tripeln angepasst werden. Gemäß verschiedenen Ausführungsformen kann das Parametermodell γp angepasst werden, so dass das Parametermodell γp in Reaktion auf eine Eingabe des ersten Tripels (des Zustandsübergangs-Zustand-Zustandsübergang Tripels) und des zugeordneten Zielzustands der Steuerungs-Zustand-Sequenz, in der das erste Tripel enthalten ist, hin, eine Wahrscheinlichkeitsverteilung für jeden Aufgabenparameter aus dem Satz von Aufgabenparametern, der dem dem Zustand nachfolgenden Zustandsübergang zugeordnet ist, ermittelt.
-
Gemäß verschiedenen Ausführungsformen kann für jedes Objekt o ∈ Oaℓ das Objektmodell γo gelernt werden. Das Objektmodell γo kann ein aufgaben-parametrisiertes Gaußsches Mischmodell (TP-GMM) sein. Das Objektmodell γo kann für jedes Objekt o ∈ Oaℓ unter Verwendung des Zustands des jeweiligen Objekts sj,o als Beobachtungen und eines Tupels {(sj,∼o, TPaℓ,sN)} bestehend aus dem jeweiligen Zustand der anderen Objekte sj, ∼o (d.h., der Objekte, die nicht dem Objekt o entsprechen) der ein oder mehreren Objekten o ∈ Oaℓ , dem der nachfolgenden Fertigkeit zugeordneten Satzes von Aufgabenparametern TPaℓ und dem Zielzustand SN als zugeordnete Frames trainiert werden. Anschaulich beschreibt (z.B. modelliert) das Objektmodell γo wie der derzeitige Zustand mit Bezug auf die gewählten Aufgabenparameter und dem Zielzustand beschränkt (z.B. bedingt) ist. Anschaulich beschreibt das Objektmodell γo wie wahrscheinlich der Übergang in Anbetracht des Zielzustands anhand vorangegangener Lösungen ist. Es wird darauf hingewiesen, dass in diesen Beispielen der Zustand des ersten Tripels als sj bezeichnet wird, so dass das erste Tripel aus der Fertigkeit ak, dem Zustand sj, und der Fertigkeit aℓ (in manchen Aspekten als nachfolgende Fertigkeit bezeichnet) besteht.
-
Gemäß verschiedenen Ausführungsformen kann das Objektmodell γo für jedes erste Tripel der Menge von ersten Tripeln angepasst werden. Gemäß verschiedenen Ausführungsformen kann das Objektmodell γo angepasst werden, so dass das Objektmodell γo für jede Objekt der ein oder mehreren Objekte, in Reaktion auf eine Eingabe der beiden Zustandsübergänge des ersten Tripels (z.B. des Fertigkeitsübergangs des ersten Tripels), den jeweiligen Zuständen der anderen Objekte sj, ∼o der ein oder mehreren Objekte, einem Satz von Aufgabenparametern, und des zugeordneten Zielzustands, hin, eine Wahrscheinlichkeitsverteilung für den Zustand des Objekts ermittelt.
-
Die TP-GMMs können zum Beispiel mittels des EM(Expectation Maximization)-Algorithmus gelernt werden. TP-GMMs werden mit Bezug auf 4 und 5 sowie in Referenz [1] ausführlicher beschrieben.
-
Gemäß verschiedenen Ausführungsformen kann das Parametermodell γp unter Verwendung des hierin beschriebenen Vorbedingungsmodells γ1,a und/oder Endbedingungsmodells γT,a ermittelt werden. Gemäß verschiedenen Ausführungsformen kann das Objektmodell γo unter Verwendung des hierin beschriebenen Vorbedingungsmodells γ1,a und/oder Endbedingungsmodells γT,a ermittelt werden.
-
Anschaulich kann das trainierte Parametermodell γp eine Wahrscheinlichkeitsverteilung ausgeben, wie anhand der Trainingsdaten (z.B. den Steuerungs-Zustands-Sequenzen) in einem Zustand in Anbetracht eines Zielzustands die Aufgabenparameter des Satzes von Aufgabenparametern ausgewählt wurden. Anschaulich kann das trainierte Objektmodell γo betrachten, wie anhand der Trainingsdaten in dem Zustand in Anbetracht des Zielzustands bei Verwendung bestimmter Aufgabenparameter die an der Fertigkeit beteiligten Objekte zueinander in Beziehung standen. Somit kann das trainierte Objektmodell γo geometrische Bedingungen berücksichtigen. Zur zusätzlichen Veranschaulichung kann in einem Beispiel ein Roboter die Aufgabe haben, ein Bauteil auf ein Podest zu stellen: Hierbei kann die Fertigkeit das Stellen des Bauteils auf das Podest sein und kann durch Aufgabenparameter, wie beispielsweise eine Kraft, eine Geschwindigkeit, eine Drehung, eine Position des Bauteils, eine Zielposition etc. beschrieben werden. Das trainierte Parametermodell γp kann ausgeben, wie für die Fertigkeit basierend auf den Trainingsdaten die Aufgabenparameter ausgewählt wurden. Allerdings können an der Fertigkeit noch andere Objekte, wie beispielsweise ein anderes Bauteil neben dem Bauteil, ein zweiter Roboter, noch ein anderes Bauteil auf dem Podest, etc., beteiligt sein. Das trainierte Objektmodell γo kann diese geometrischen Zusammenhänge berücksichtigen und kann verwendet werden, um eine Wahrscheinlichkeit zu ermitteln, mit welcher die Fertigkeit mit den von dem trainierten Parametermodell γp ermittelten Aufgabenparametern durchgeführt wurde. Zum Beispiel kann das trainierte Parametermodell γp als Erwartungswert der jeweiligen Aufgabenparameter eine Geschwindigkeit und eine Bewegung ermitteln, mit welcher beim Trainieren das Bauteil auf das Podest gestellt wurde. Allerdings kann zwischen dem Bauteil und dem Podest ein blockierendes Bauteil stehen und das trainierte Objektmodell γo kann ermitteln, dass für diese Konstellation der Bauteile und für diese Aufgabenparameter die Wahrscheinlichkeit, dass die Fertigkeit durchgeführt wurde, niedrig ist. Andererseits kann eine andere Fertigkeit sein, das blockierende Bauteil wegzustellen, das trainierte Parametermodell γp kann hierzu die Aufgabenparameter ermitteln und das trainierte Objektmodell γo kann für die Konstellation der Bauteile mit dem blockierenden Bauteil und für die zweite Fertigkeit ermittelten Aufgabenparameter ermitteln, dass die zweite Fertigkeit beim Trainieren mit einer hohen Wahrscheinlichkeit durchgeführt wurde. Anschaulich kann der Roboter zum Beispiel zuerst die zweite Fertigkeit zum Wegstellen des blockierenden Bauteils und anschließend die Fertigkeit zum Stellen des Bauteils auf das Podest ermitteln.
-
Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 unter Verwendung der Vielzahl von Fertigkeitsübergängen (z.B. dem Satz von Fertigkeitsübergangen Ê) und der Abbildungsfunktion f (ak, aℓ) erzeugt werden. Zum Beispiel kann der Computer ein Netzwerk bestehend aus Fertigkeitsknoten V und Fertigkeitsübergängen E ermitteln. Der Computer kann eingerichtet sein, die Fertigkeitsknoten V und Fertigkeitsübergänge E unter Verwendung des Satzes von Fertigkeitsübergangen Ê zu ermitteln. Hierbei können zum Beispiel die Eckpunkte des Netzwerks (V, E) und/oder die jeweiligen Fertigkeitsübergänge e direkt von dem Satz von Fertigkeitsübergangen E abgeleitet werden. Die Fertigkeitsknoten V können eine Teilmenge der Fertigkeiten-Menge A sein. Zum Beispiel kann der Satz von Fertigkeitsübergängen E durch E ⊆ V × V beschrieben werden. Die Abbildungsfunktion ƒ kann wie hierin beschrieben auf das Parametermodell und das Objektmodells abbilden und kann beschrieben werden durch ƒ : E →2γs . Anschaulich beschreibt (V, E) wie die Fertigkeiten nacheinander ausgeführt werden können. Anschaulich beschreibt (z.B. modelliert) die Abbildungsfunktion für einen Fertigkeitsübergang (ak,aℓ), also für ein e ∈ E, die geometrischen Bedingungen bezüglich der Objekte und der Robotervorrichtung 101. Gemäß verschiedenen Ausführungsformen kann die Anzahl an Komponenten eines jeden TP-GMMs (z.B. des Parametermodells und/oder des Objektmodells) innerhalb der Abbildungsfunktion ƒe der Anzahl von Steuerungs-Zustands-Sequenzen (z.B. von einzigartigen Steuerungs-Zustands-Sequenzen, d.h., genau einer Steuerungs-Zustands-Sequenz pro einzigartigen Anfangszustand-Zielzustand-Paar) entsprechen, die diesen Fertigkeitsübergang e E E aufweisen.
-
Das Steuerungsmodell 206 G kann unter Verwendung des Netzwerks (V, E) und der Abbildungsfunktion ƒ (ak, aℓ) erzeugt werden. Zum Beispiel kann das Steuerungsmodell 206 G durch das Netzwerk (V, E) und die Abbildungsfunktion ƒ(ak,aℓ) gebildet sein, so dass das Steuerungsmodell 206 G durch das Tripel G = (V, E, ƒ) beschrieben werden kann.
-
Ein derart erzeugtes Steuerungsmodell 206 berücksichtigt einerseits die möglichen Übergänge von Fertigkeiten und andererseits die geometrischen Bedingungen, welche diesen Übergängen zugrunde liegen, wobei das Steuerungsmodell 206 auf den Zielzustand parametrisiert ist. Anschaulich ist das derart erzeugte Steuerungsmodell 206 eine kompakte Repräsentation für TAMP-Strategien.
-
Das hierin beschriebene Trainieren (z.B. Lernen) des Steuerungsmodells 206 G unter Verwendung von Demonstrationen D
a (siehe zum Beispiel die Beschreibung zu
4 und
5 sowie Referenz [1]) kann mittels des Algorithmus 1 beschrieben werden:
wobeiS
F der Zielzustand (z.B. eingegebene Zielzustand) ist.
-
Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 für eine vordefinierte Aufgabe gelernt werden. Gemäß verschiedenen Ausführungsformen können mehrere Steuerungsmodelle gelernt werden, wobei jedes Steuerungsmodell der mehreren Steuerungsmodelle einer jeweiligen Aufgabe zugeordnet ist.
-
4 zeigt ein Ablaufdiagramm 400 eines Lernens aus Demonstrationen gemäß verschiedenen Ausführungsformen.
-
Um einem Roboter eine Fertigkeit beizubringen, wie beispielsweise sich gemäß einer gewünschten Trajektorie zu bewegen, können kinästhetische Demonstrationen durchgeführt werden, bei denen der Roboter direkt bewegt wird, z.B. durch physisches Schieben oder mittels einer Fernbedienung. Neben der dafür erforderlichen Erfahrung, der Sicherheitsrisiken und der Anforderungen (z.B. für Aufgaben, die präzise Bewegungen erfordern) ist das Bewegen des Roboters auch viel weniger intuitiv für einen Menschen, um eine Aufgabe durchzuführen, verglichen mit dem Gebrauch der eigenen Hände.
-
In Hinblick auf das obere wird gemäß verschiedenen Ausführungsbeispielen eine Herangehensweise bereitgestellt, die es einem menschlichen Benutzer ermöglicht, einem Roboter eine Tätigkeit (Fertigkeit) beizubringen, indem er einfach die Tätigkeit selbst durchführt. Dabei werden Demonstrationen beispielsweise durch Verfolgen der Hand des Benutzers (und optional der involvierten Objekte) aufgezeichnet, anstatt die Trajektorie des End-Effektors aufzuzeichnen. Demonstrationen werden dann dazu verwendet, eine kompakte mathematische Repräsentation der Fertigkeit zu lernen, die (zum Beispiel von der Steuervorrichtung 106) dazu verwendet werden kann, diese Fertigkeit durch den Roboter in neuen Szenarien (zum Beispiel neuen relativen Positionen zwischen dem Roboter und zu manipulierendem Objekt) zu reproduzieren.
-
Verschiedene Ausführungsbeispiele basieren auf den technischen Fortschritten in zwei Bereichen: Erstens ist die Verfolgung einer Hand basierend auf Kamerabildern in Bereichen, wo Roboter eingesetzt werden, beispielsweise in Fabriken, typischerweise verfügbar und zweitens erlauben es Verfahren zum Trainieren von Robotern basierend auf menschlichen Demonstrationen sowohl das effiziente Lernen durch den Roboter (d.h. Trainieren des Roboters) als auch die flexible Reproduktion. Ein Beispiel hierfür sind TP-HSMMs (Task-Parameterized Hidden Semi Markov Models), die eine Aufgabenparameter-abhängige Repräsentation von gelernten Bewegungsfertigkeiten ermöglichen.
-
Das Verfolgen von Objekten und menschlichen Händen ist ein aktives Forschungsgebiet, (insbesondere im maschinellen Sehen) und ist für industrielle Anwendungen von großer Bedeutung. Im Unterschied zur Anwendung entsprechender Techniken auf die Mensch-Maschine-Interaktion (wie beispielsweise für Videospiele) wird es gemäß verschiedenen Ausführungsformen für das Trainieren (Unterrichten) und Lernen von Robotern eingesetzt.
-
In einer Demonstrationsphase, demonstriert ein Benutzer (oder allgemein eine Vorführinstanz) die gewünschte Fertigkeit. Die Demonstration wird aufgezeichnet. Beispielsweise wird eine Videoaufnahme mittels einer Kamera erstellt und die Abfolge der Stellungen einer Hand des Benutzers (allgemein eines Teils der Vorführinstanz) wird aus den Bildern des Videos ermittelt und in Form einer Trajektorie repräsentiert. Dies wird für mehrere Demonstrationen 402 wiederholt. Es sollte beachtet werden, dass dies auf entkoppelte Art geschehen kann, d.h. beispielsweise wird eine Menge von Videos verwendet, die zuvor ohne Absicht, einem Roboter eine Fertigkeit beizubringen, aufgenommen wurden.
-
In einer Lern- oder Trainingsphase, wird ein mathematisches Modell aus den gesammelten Demonstrationen gelernt. Beispielsweise wird ein TP-HSMM gelernt, das eine Handpose als einen der Aufgaben-Parameter enthält. Eine „Pose“ enthält beispielsweise Information über Position und/oder Orientierung oder auch über Zustand (z.B. „Hand geschlossen“ gegenüber „Hand geöffnet“).
-
5 zeigt eine Anordnung 500 zum Aufzeichnen von Demonstrationen eines Benutzers gemäß verschiedenen Ausführungsformen.
-
Ein Benutzer 501 demonstriert eine Fertigkeit durch Bewegen seiner Hand 502. Beispielsweise nimmt er ein Objekt 504 von einer ersten Position 505 und bewegt es an eine zweite Position 506. Eine Kamera 507 zeichnet die Bewegung des Benutzers auf. Es können auch mehrere Kameras vorgesehen sein, die die Demonstration aus verschiedenen Blickwinkeln, insbesondere aus Sicht der Startposition 505 und aus Sicht der Endposition 506 des Objekts 504 aufzeichnen.
-
Jede Demonstration wird damit als eine Folge von Bildern repräsentiert, die einer Steuereinrichtung 508, die beispielsweise der Steuervorrichtung 106 entspricht, zugeführt wird. Die Steuereinrichtung 508 kann beispielsweise einen Computer aufweisen, um Berechnungen durchzuführen. Die Steuereinrichtung 508 lernt basierend auf den Demonstrationen ein statistisches Modell 509, wie beispielsweise das Robotertrajektorie-Modell 404 und/oder TP-GMMs 406 (z.B. das Vorbedingungsmodell und das Endbedingungsmodell, wie hierin beschrieben). Es wird ferner angenommen, dass jede Demonstration aus der Perspektive P unterschiedlicher Koordinatensysteme TP, die als Aufgabenparameter (Task-Parameter) bezeichnet werden, aufgenommen wird.
-
Zum Beispiel können am Ende der Demonstrationsphase die Demonstrationen abstrahiert werden (beispielsweise als Verläufe von Koordinaten der Hand 502 oder des Objekts 504 repräsentiert sind) und als Trajektorien (zum Beispiel der Hand 502 Subjekts 504 oder auch mehrerer Hände und/oder mehrerer Objekte) abgespeichert werden, beispielsweise in einem Speicher der Steuereinrichtung 508.
-
Mit Bezug auf 4 ermöglicht ein TP-HSMM sowohl effizientes Lernen als auch flexible Reproduktion zum Lernen von Roboter-Fähigkeiten aus menschlichen Demonstrationen. Genauer wird die aufgezeichnete Trajektorie der Benutzerhand 502 als gewünschte Bewegung behandelt, die gelernt werden soll, während die Trajektorie des Objekts (504 dazu verwendet wird, unterschiedliche Aufgabenparameter (Task-Parameter) für die Fertigkeit zu erzeugen, die unterschiedliche Konfigurationen des Arbeitsbereichs repräsentieren. Die Aufgabenparameter können zum Beispiel anhand des derzeitigen Zustands ermittelt werden. Die Aufgabenparameter können zum Beispiel frei gewählt werden.
-
Gemäß verschiedenen Ausführungsformen kann ein Robotertrajektorie-Modell 404 unter Verwendung der Demonstrationen 402 ermittelt werden. Das Robotertrajektorie-Modell 404 kann ein TP-HSMM sein.
-
Ein HSMM (Hidden semi-Markov-Model) erweitert einen einfachen HMM (Hidden Markov Modell) dahingehend, dass zeitliche Informationen in den zu Grunde liegenden stochastischen Prozess eingebettet werden. Das heißt, dass während bei einem HMM angenommen wird, dass der zu Grunde liegende statistische Prozess die Markov-Eigenschaft hat, d.h. die Wahrscheinlichkeit, in den nächsten Zustand überzugehen, nur vom aktuellen Zustand abhängt, bei einem HSMM der Prozess die Wahrscheinlichkeit, in den nächsten Zustand überzugehen, vom aktuellen Zustand und von der Verweildauer im aktuellen Zustand abhängt. HSMMs werden typischerweise insbesondere bei der Sprachsynthese angewendet.
-
Ein Aufgaben-parametrisiertes HSMM (TP-HSMM), wie beispielsweise das Robotertrajektorie-Modell 404, wird gemäß einer Ausführungsform repräsentiert durch
wobei a
hk die Übergangswahrscheinlichkeit vom Zustand h in den Zustand k bezeichnet,
die Gaußschen Verteilungen für die Verweildauer im Zustand k bezeichnen (das hochgestellte D ist hierbei kein Index sondern soll nur den Zusammenhang mit der Verweildauer (engl. duration) kennzeichnen) und γ
k die k-te Komponente eines (zugehörigen oder assoziierten) TP-GMMs (Aufgaben-parametrisierten Gaußschen Mischmodells)
ist, wobei K die Anzahl von Gaußschen Komponenten in dem Mischmodell bezeichnet, π
k die A-priori-Wahrscheinlichkeit für die k-te Komponente bezeichnet und
der Mittelwert bzw. die Kovarianz der k-ten Komponente in dem Koordinatensystem p ∈ TP sind.
-
Das TP-GMM beschreibt die Ausgabewahrscheinlichkeiten (oder Emissionswahrscheinlichkeiten d.h. Wahrscheinlichkeiten für die Beobachtungen) für jeden Zustand k = 1, ... K. Ein solches Mischmodel kann (im Unterschied zu einfachen GMMs) nicht unabhängig für jedes Koordinatensystem gelernt werden. Der Grund ist, dass die Mischkoeffizienten πk sich von allen Koordinatensystemen geteilt werden (d.h. für alle Koordinatensysteme gelten) und die k-te Komponente im Koordinatensystem p muss der k-ten Komponente im globalen Koordinatensystem entsprechen. Eine Möglichkeit, solche Modelle zu lernen (d.h. zu trainieren) ist der EM(Expectation Maximization)-Algorithmus.
-
Wenn ein TP-GMM trainiert ist, kann es während der Ausführung von der Steuereinrichtung 508 und/oder der Steuervorrichtung 106 dazu verwendet werden, eine Trajektorie für eine gelernte Fähigkeit bzw. Fertigkeit zu reproduzieren.
-
Die A-priori-Wahrscheinlichkeiten πk beschreiben bei einem HSMM jedoch nur die Wahrscheinlichkeitsverteilung für die für die anfänglichen Komponenten bei t=1. Die Wahrscheinlichkeiten zu späteren Zeiten werden durch das zu Grunde liegende Semi-Markov-Modell gegeben.
-
In diesem betrachteten TP-HSMM, entspricht jeder Zustand einer Gaußschen Komponente im zugehörigen TP-GMM.
-
Die Robotervorrichtung 101 kann in einem statischen, bekannten Arbeitsumfeld arbeiten. Innerhalb der Reichweite der Robotervorrichtung 101 (in manchen Aspekten als Roboter bezeichnet) gibt es Objekte (von Interesse), die mit O = {o1, o2, ... , oJ} bezeichnet werden. Jedes Objekt kann durch seinen Zustand po beschrieben werden.
-
Ferner wird angenommen, dass es eine Menge von Kern-Manipulationsfertigkeiten gibt, die es dem Roboter ermöglicht, die Objekte zu manipulieren (z.B. zu bewegen). Die Menge dieser Kern-Manipulationsfertigkeiten wird als A = {a1, a2, ... ,aH} bezeichnet.
-
Für jede Tätigkeit (entsprechend einer Fertigkeit) führt der Benutzer 501 mehrere Demonstrationen durch, die definieren, wie die Robotervorrichtung 101 sie durchführen soll. Insbesondere ist für eine Fertigkeit a ∈ A eine Objektmenge O
a ⊆ O involviert und die Menge von Demonstrationen wird mit D
a = {D1, ...
, DM
a} bezeichnet, wobei jede Demonstration mit
bezeichnet wird, wobei r der Zustand des Endeffektors 104 ist, wobei D
m eine Folge von Zuständen s ist, wobei jeder Zustand den (zu dem Zeitpunkt t) gewünschten Zustand r, wie er aus der Verfolgen der Hand (durch Aufnahme von Kamerabildern) ermittelt wurde, und Objektzustände {p
o, o ∈ O
a } angibt. Mittels einer Kombination dieser Fertigkeiten kann die Robotervorrichtung 101 jeweilige Objekte manipulieren, so dass sie einen gewünschten Endzustand erreichen.
-
Bezüglich der TP-GMMs
kann jedes p ein Aufgabenparameter eines Satzes von Aufgabenparametern TP sein. Jeder Fertigkeit a ∈ A kann mindestens ein Satzes von Aufgabenparametern TP
a zugeordnet sein. Zum Beispiel kann eine Fertigkeit a ∈ A unter Verwendung eines Satzes von Aufgabenparametern TP
a ausgeführt werden. Gemäß verschiedenen Ausführungsformen kann ein jeweiliger Satzes von Aufgabenparametern TP
a mittels der Vereinigungsmenge TP
a = O
a ∪ F
a ∪ {r} beschrieben werden, wobei F
a ein Satz von freien Aufgabenparametern der Fertigkeit a ∈ A ist.
-
Das TP-HSMM wird (beispielsweise von der Steuereinrichtung 508) in der Lernphase basierend auf den Demonstrationen
des Benutzers 501 trainiert, beispielsweise gemäß einer EM(Expectation Maximization)-Prozedur.
-
Das Resultat des Trainings sind Werte für den Parametersatz
die das TP-HSMM charakterisieren.
-
Gemäß verschiedenen Ausführungsformen kann die Steuervorrichtung 106 die Robotervorrichtung 101 unter Verwendung des TP-HSMM-Robotertrajektorie-Modells 404 steuern, um eine Tätigkeit auszuführen, beispielsweise für ein neues Szenario. Zum Beispiel kann die Steuervorrichtung 106 das Robotertrajektorie-Modell 404 verwenden, um eine Referenztrajektorie für das neue Szenario zu ermitteln, und steuert die Robotervorrichtung 101 derart, dass diese der Referenztrajektorie folgt. Der Begriff „Szenario“ bezieht sich hierbei auf eine spezielle Wahl der modellierten Aufgabenparameter (z.B. Startposition 505 bzw. derzeitige Position und Zielposition 506; z.B. derzeitiger Zustand und Zielzustand).
-
Gemäß verschiedenen Ausführungsformen können ein oder mehrere TP-GMMs 406 ermittelt werden (z.B. mittels der Steuervorrichtung 508). Zum Beispiel kann in der Lernphase ein Vorbedingungsmodell γ1,a trainiert bzw. gelernt werden. Zum Beispiel kann in der Lernphase ein Endbedingungsmodell γT,a trainiert bzw. gelernt werden.
-
Das Vorbedingungsmodell γ
1,a kann ein TP-GMM 406 sein. Das Vorbedingungsmodell γ
1,a kann durch
beschrieben werden, wobei p
F die optimalen freien Aufgabenparameter sind, wobei
die Gaußverteilung (Mittelwert und Kovarianz der Gaußverteilung) der initialen Pose des Objekts o∈ O
a zum Zeitpunkt 1 aus der Perspektive der initialen Pose des Objekts P's zum initialen Zeitpunkt 1 ist. Anschaulich beschreibt (z.B. modelliert) das Vorbedingungsmodell γ
1,a den Zustand des Systems vor dem Ausführen der Fertigkeit a.
-
Das Endbedingungsmodell γT,a kann ein TP-GMM 406 sein. Das Endbedingungsmodell γ
T,a kann durch
beschrieben werden, wobei
die Gaußverteilung (Mittelwert und Kovarianz der Gaußverteilung) der finalen (z.B. resultierenden) Pose des Objekts o∈O
a zum Zeitpunkt T aus der Perspektive der initialen Pose des Objekts P's ist. Anschaulich beschreibt (z.B. modelliert) das Endbedingungsmodell γT,a die Veränderung des Zustands des Systems nach dem Ausführen der Fertigkeit 3.
-
Gemäß verschiedenen Ausführungsformen kann eine Fertigkeits-spezifische Mannigfaltigkeit M
a mittels des TP-HSMM-Robotertrajektorie-Modells 404, des Vorbedingungsmodells γ
1,a und des Endbedingungsmodells γ
T,a gemäß Gleichung (10) beschrieben werden:
Anschaulich beschreibt (z.B. modelliert) das TP-HSMM-Robotertrajektorie-Modell 404 die Trajektorie einer Fertigkeit 3. Anschaulich beschreiben (z.B. modellieren) das Vorbedingungsmodell γ
1,a und das Endbedingungsmodell γ
T,a die geometrischen Beziehungen zwischen der Robotervorrichtung 101 und den Objekten o∈O
a. Anschaulich können das Vorbedingungsmodell γ
1,a, das Endbedingungsmodell γT,a und das TP-HSMM-Robotertrajektorie-Modells 404 eine Fertigkeits-Datenbank bilden.
-
Mehr Details zum Lernen aus Demonstrationen, zum Beispiel bezüglich des Trainierens des Robotertrajektorie-Modells 404 als TP-HSMM und des Trainierens des Vorbedingungsmodells γ1,a und des Endbedingungsmodells γT,a (in manchen Aspekten auch als Effektmodell bezeichnet) werden in Referenz [1] beschrieben.
-
6A zeigt ein Ablaufdiagramm 600A zum Steuern einer Robotervorrichtung gemäß verschiedenen Ausführungsformen. Das Ablaufdiagramm 600A kann ein Ablaufdiagramm zum Steuern der Robotervorrichtung 101 während des Betriebs sein.
-
Gemäß verschiedenen Ausführungsformen kann in einem Anfangszustand S0 der Robotervorrichtung 101 ein Zielzustand SF bereitgestellt werden, zum Beispiel mittels einer Benutzerschnittstelle eingegebenen werden. Zum Beispiel kann die Steuervorrichtung 106 den derzeitigen Zustand der Robotervorrichtung 101 als Anfangszustand S0 ermitteln. Zum Beispiel kann der Zielzustand SF der Steuervorrichtung 106 bereitgestellt werden. Zum Beispiel kann die Steuervorrichtung 106 den Zielzustand SF ermitteln (z.B. basierend auf einer Eingabe eines Benutzers, z.B. basierend auf einer durch die Robotervorrichtung 101 durchzuführende Aufgabe, etc.). Somit kann in einem Initialzustand der Robotervorrichtung 101 das Anfangszustand-Zielzustand-Paar (s0, SF) 602 bereitgestellt sein. Die Robotervorrichtung 101 kann zu jedem Zeitpunkt in einem derzeitigen Zustand Sk 604 beginnend mit dem Anfangszustand S0 bis zum Zielzustand SF sein.
-
Gemäß verschiedenen Ausführungsformen kann das erzeugte Steuerungsmodell 206 in Reaktion auf ein Eingeben des derzeitigen Zustands S
k 604 und des Zielzustands S
F hin Daten 606 zum Ausführen einer Fertigkeit a
★ bereitstellen (z.B. ausgeben). Gemäß verschiedenen Ausführungsformen kann das erzeugte Steuerungsmodell 206 in Reaktion auf ein Eingeben des derzeitigen Zustands S
k 604 und des Zielzustands S
F hin einen auszuführenden Zustandsübergang (z.B. eine auszuführende Fertigkeit) a
★ und einen zugeordneten Satz von Aufgabenparametern
bereitstellen. In dem Anfangszustand * S
0 kann das Steuerungsmodell 206 die auszuführende Fertigkeit a
★ und den der auszuführenden Fertigkeit a
★ zugeordneten Satz von Aufgabenparametern
unter Verwendung einer virtuellen Anfangsfertigkeit a ermitteln.
-
Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 unter Verwendung des Satzes von Fertigkeitsübergängen E alle für eine zuletzt ausgeführte Fertigkeit a
k möglichen Fertigkeiten a
ℓ ermitteln, die als nächstes ausgeführt werden können, zum Beispiel alle in dem Satzes von Fertigkeitsübergängen E definierten Fertigkeitsübergänge (a
k,a
ℓ). Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 (z.B. mittels des trainierten Parametermodells) für jeden in einem Zustand ausführbaren Zustandsübergang einen jeweiligen Satz von Aufgabenparametern ermitteln in Reaktion auf eine Eingabe des Zielzustands und des Zustandsübergangs mit dem der Zustand erreicht wurde hin. Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 unter Verwendung des Parametermodells γ
p für jeden potentiellen Fertigkeitsübergang (a
k, a
ℓ) für jeden Aufgabenparameter p ∈ TP
aℓ der Fertigkeit a
ℓ die optimalen Aufgabenparameter, gegeben durch den Satz von optimierten (z.B. optimalen) Aufgabenparametern
der Fertigkeit a
ℓ gemäß Gleichung (11) ermitteln:
wobei pdf die Wahrscheinlichkeitsdichtefunktion einer multivariaten Gaußverteilung ist. Anschaulich ist der jeweilige optimale Aufgabenparameter der Mittelwert (in manchen Aspekten als Erwartungswert bezeichnet) der mittels des Parametermodells γ
p(s
k, s
F) ermittelten Gaußverteilung des jeweiligen Aufgabenparameters. Das Parametermodell γ
p kann für den jeweiligen potentiellen Fertigkeitsübergang (a
k,a
ℓ) mittels der Abbildungsfunktion ƒ ermittelt werden.
-
Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 (z.B. mittels des trainierten Objektmodells) für jeden in einem Zustand ausführbaren Zustandsübergang eine jeweilige Wahrscheinlichkeitsverteilung für jedes Objekt der ein oder mehreren Objekte ermitteln in Reaktion auf eine Eingabe des Zielzustands, den jeweiligen Zuständen der anderen Objekte der ein oder mehreren Objekte und des ermittelten Satzes von Aufgabenparametern hin. Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 für jeden potentiellen Fertigkeitsübergang (a
k,a
ℓ) unter Verwendung des für den jeweiligen potentiellen Fertigkeitsübergang (a
k,a
ℓ) ermittelten Satzes von optimierten (z.B. optimalen) Aufgabenparametern
eine Übergangswahrscheinlichkeit ρa
ka
ℓ (s
k,s
F) gemäß Gleichung (12) ermitteln:
wobei Harmonic-Mean die harmonische Mittelwertfunktion und s
k,o die Beobachtung des derzeitigen Zustands des Objektes o ∈ O
aℓ ist. Das Objektmodell γ
o kann für den jeweiligen potentiellen Fertigkeitsübergang (a
k,a
ℓ) mittels der Abbildungsfunktion ƒ ermittelt werden. Das Objektmodell γ
o kann für den Zustand der anderen Objekte s
k,~o als das Objekt o ∈ O
aℓ , den ermittelten Satz von optimierten Aufgabenparametern
und dem Zielzustand S
F die dem derzeitigen Zustand des Objekts S
k,o zugeordnete Gaußverteilung ermitteln. Damit betrachtet die harmonische Mittelwertfunktion alle Objekte o ∈ O
aℓ . Folglich ist die Überganswahrscheinlichkeit ρa
ka
ℓ(s
k,s
F) zu der jeweiligen Fertigkeit a
ℓ gering, falls ein Objekt der Objekte o ∈ O
aℓ bezüglich der anderen Objekte signifikant von den gelernten Beziehungen (z.B. die mittels des gelernten Objektmodells γ
o beschrieben werden) verschieden ist.
-
Gemäß verschiedenen Ausführungsformen kann basierend auf den potentiellen Fertigkeitsübergangen (a
k,a
ℓ) die auszuführende Fertigkeit a
★ gemäß Gleichung (13) ermittelt werden:
Anschaulich kann die auszuführende Fertigkeit a* die Fertigkeit a
ℓ mit der größten Überganswahrscheinlichkeit ρa
ka
ℓ (s
k,s
F) sein. Anschaulich wird für alle in einem derzeitigen Zustand S
k 604 ausführbare Fertigkeiten a
ℓ eine Übergangswahrscheinlichkeit ermittelt und die ausführbare Fertigkeit mit der höchsten Übergangswahrscheinlichkeit * wird als auszuführende Fertigkeit a
★ ermittelt.
-
Gemäß verschiedenen Ausführungsformen kann die Robotervorrichtung 101 in Übereinstimmung mit dem Steuerungsmodell 206 gesteuert werden. Gemäß verschiedenen Ausführungsformen kann die Robotervorrichtung 101 die auszuführende Fertigkeit a
★ unter Verwendung des zugeordneten Satzes von Aufgabenparametern
ausführen (z.B. durchführen). Das Ausführen der Fertigkeit a
★ führt zu einem neuen Zustand S
k 604 der Robotervorrichtung 101. Gemäß verschiedenen Ausführungsformen kann das Steuerungsmodell 206 in Reaktion auf das Eingeben des jeweiligen derzeitigen Zustands S
k 604 und des Zielzustands S
F hin Daten 606 zum Ausführen der jeweiligen Fertigkeit a
★ bereitstellen und die Robotervorrichtung 101 die auszuführende Fertigkeit a
★ unter Verwendung des zugeordneten Satzes von Aufgabenparametern
ausführen bis der derzeitigen Zustands S
k 604 dem Zielzustands S
F entspricht.
-
Das Ablaufdiagramm 600A zum Steuern der Robotervorrichtung 101 kann mittels Algorithmus 2 beschrieben werden:
wobei
st ein jeweilige Zustand der Robotervorrichtung ist.
-
6B zeigt ein Ablaufdiagramm 600B zum Steuern einer Robotervorrichtung 101 gemäß verschiedenen Ausführungsformen. Das Ablaufdiagramm 600B kann im Wesentlichen dem Ablaufdiagramm 600A entsprechen, wobei die Steuervorrichtung 106 (z.B. der Computer 110 der Steuervorrichtung 106) unter Verwendung des Robotertrajektorie-Modells 404
für die auszuführende Fertigkeit a
★ eine auszuführende Robotertrajektorie 608 ermitteln kann.
-
Hierbei kann das mittels Demonstrationen gelernte Robotertrajektorie-Modells 404 verwendet werden, um die Robotervorrichtung 101 derart zu steuern, dass diese die Fertigkeit innerhalb eines demonstrierten Szenarios oder auch eines nicht-demonstrierten Szenarios ausführt.
-
Gemäß verschiedenen Ausführungsformen kann die Steuervorrichtung 106 unter Verwendung der auszuführenden Fertigkeit a* und des zugeordneten Satzes von Aufgabenparametern
die wahrscheinlichste Zustandsfolge k
★ = k
0k
1. . . k
T, wobei k
t ∈ {1, . . . , K}, einbezogen des zu einem Zeitpunkts T(z.B. unter Berücksichtigung der zeitlichen Abfolge) mittels des Viterbi-Algorithmus für HSMMs ermitteln. Das TP-HSMM-Robotertrajektorie-Modell 404 enthält anschaulich noch die Information, wie die Zustände des TP-GMMs zeitlich durchlaufen werden sollen (gegeben durch die Wahrscheinlichkeitsverteilungen für die Verweildauer in jedem Zustand und die Übergangswahrscheinlichkeiten zwischen den Zuständen). Für jeden Zustand k
t ermittelt die Steuervorrichtung 106 einen korrespondierenden Endeffektorzustand r
t, z.B. gemäß einer LQG(Linear Quadratic Gaussian)-Regelung. Als Referenz kann sie dabei für jeden Zustand den Mittelwert µ
t der jeweiligen TP-GMM-Komponente nehmen. Die Steuervorrichtung 106 sorgt dafür, dass die Unterschiede zwischen aufeinanderfolgenden r
t nicht zu groß sind (gemäß der gewählten Reglerparameter). Bei der Ausführung versucht der Roboter dann r
t zu folgen, k
t ist nur eine Zwischengröße. Derart kann die Steuervorrichtung 106 eine Referenztrajektorie r
★ (z.B. eine auszuführende Robotertrajektorie 608) ermitteln. Im Allgemeinen kann k
★ als die gewünschte Zustandsfolge angesehen werden und die Steuervorrichtung 106 kann die Robotervorrichtung 101 steuern, damit die Robotervorrichtung 101 dieser Referenz so gut wie physikalisch möglich folgt. Die Steuervorrichtung 106 kann die Robotervorrichtung 101 zum Ausführen der ermittelten Robotertraj ektorie steuern.
-
7 zeigt anschaulich eine Funktionsweise eines Steuerungsmodells 206 für eine beispielhafte Aufgabe 700 gemäß verschiedenen Ausführungsformen. Die Robotervorrichtung 101 kann in einem Anfangszustand („STRT“) sein und ein Zielzustand („STP“) kann bereitgestellt werden (siehe zum Beispiel 602 in 6A und 6B). Das Steuerungsmodell 206 kann unter Verwendung des Satzes von Fertigkeitsübergängen E die Fertigkeit a1 und die Fertigkeit a2 als potentiell mögliche ausführbare Fertigkeiten ermitteln, wobei in diesem Beispiel die Fertigkeit a2 als auszuführende Fertigkeit a★ ermittelt wird. Die Robotervorrichtung 101 kann die Fertigkeit a2 ausführen und dadurch in einen neuen Zustand gelangen. Das Steuerungsmodell 206 kann für den neuen Zustand die Fertigkeit a3, die Fertigkeit a4, und die Fertigkeit a6 als potentiell mögliche ausführbare Fertigkeiten ermitteln, wobei in diesem Beispiel die Fertigkeit a6 als auszuführende Fertigkeit a★ ermittelt wird. Zum Beispiel kann durch das Ausführen der Fertigkeit a6 der Zielzustand („STP“) erreicht werden. Derart kann die Robotervorrichtung 101 eine Steuerungs-Zustands-Sequenz 702 vom Anfangszustand bis zum Zielzustand ausführen.
-
8 zeigt ein Verfahren 800 zum Steuern einer Robotervorrichtung gemäß verschiedenen Ausführungsformen.
-
Das Verfahren 800 kann ein Trainieren eines Steuerungsmodells aufweisen (in 802 bis 806). Das Steuerungsmodell kann ein Parametermodell und ein Objektmodell aufweisen.
-
Das Trainieren des Steuerungsmodells kann für jedes Anfangszustand-Zielzustand-Paar einer Vielzahl von Anfangszustand-Zielzustand-Paaren ein Bereitstellen einer Steuerungs-Zustands-Sequenz, aufweisend Zustände und Zustandsübergänge aus einer Menge von möglichen Zuständen und Zustandsübergängen, aufweisen (in 802). Der Anfangszustand kann einen Zustand der Robotervorrichtung und ein oder mehrerer Objekte angeben. Der Zielzustand kann einen Zustand der Robotervorrichtung und ein oder mehrerer Objekte angeben. Jedem Zustandsübergang kann ein Satz von Aufgabenparametern zugeordnet sein.
-
Das Trainieren des Steuerungsmodells kann ein Ermitteln einer Menge von Zustandsübergang-Zustand-Zustandsübergang Tripeln, die in den bereitgestellten Steuerungs-Zustands-Sequenzen enthalten sind, aufweisen (in 804).
-
Das Trainieren des Steuerungsmodells kann für jedes Zustandsübergang-Zustand-Zustandsübergang Tripel der Menge von Zustandsübergang-Zustand-Zustandsübergang Tripel ein Anpassen des Parametermodells und ein Anpassen des Objektmodells aufweisen (in 806). Das Parametermodell kann angepasst werden, sodass das Parametermodell, in Reaktion auf eine Eingabe des Zustandsübergang-Zustand-Zustandsübergang Tripels und des zugeordneten Zielzustands der Steuerungs-Zustands-Sequenz, in der das Zustandsübergang-Zustand-Zustandsübergang Tripel enthalten ist, hin, eine Wahrscheinlichkeitsverteilung für jeden Aufgabenparameter aus dem Satz von Aufgabenparametern, der dem dem Zustand nachfolgenden Zustandsübergang zugeordnet ist, ermittelt. Das Objektmodell kann angepasst werden, sodass das Objektmodell für jedes Objekt der ein oder mehreren Objekte, in Reaktion auf eine Eingabe der beiden Zustandsübergänge des Zustandsübergang-Zustand-Zustandsübergang Tripels, den jeweiligen Zuständen der anderen Objekte der ein oder mehreren Objekte, einem Satz von Aufgabenparametern, und des zugeordneten Zielzustands, hin, eine Wahrscheinlichkeitsverteilung für den Zustand des Objekts ermittelt.
-
Das Verfahren 800 kann ein Steuern der Robotervorrichtung mit dem Steuerungsmodell ausgehend von einem vorgegebenen Anfangszustand über eine Folge von Zuständen zu einem zu erreichenden Zielzustand aufweisen (in 808). In jedem Zustand kann unter Verwendung des trainierten Parametermodells ein Satz von Aufgabenparametern ermittelt werden. In jedem Zustand kann unter Verwendung des trainierten Objektmodells ein auszuführender Zustandsübergang ermittelt werden. In jedem Zustand kann die Robotervorrichtung zum Ausführen des auszuführenden Zustandsübergangs unter Verwendung des ermittelten Satzes von Aufgabenparametern gesteuert werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- „Optimizing sequences of probabilistic manipulation skills learned from demonstration“ von L. Schwenkel, M. Guo, und M. Bürger, in Conference on Robot Learning, 2019 [0004]