-
Stand der Technik
-
Die vorliegende Offenbarung betrifft Vorrichtungen und Verfahren zur Steuerung einer Robotervorrichtung.
-
Robotische Fertigkeiten können mittels Ansätzen des Lernens aus Demonstration (LfD) programmiert werden, wobei ein nominaler Plan einer Fertigkeit von einem Roboter aus Demonstrationen erlernt wird. Die Hauptidee von LfD ist das Parametrisieren von Gauß-Verteilungen durch die Pose einer Kamera, die den Arbeitsraum des Roboters und ein Zielobjekt, das von dem Roboter gehandhabt werden soll, überwacht. Das Lernen aus Demonstration ergibt einen schnellen, intuitiven und effizienten Rahmen zur Programmierung von Roboterfertigkeiten, z. B. für industrielle Anwendungen. Anstelle einer einzigen Bewegung enthalten komplexe Manipulationsaufgaben jedoch oft mehrere Verzweigungen von Fertigkeitssequenzen, die sich einige gemeinsame Fertigkeiten teilen. Es wird deshalb ein Planungsprozess benötigt, der die richtige Sequenz von Fertigkeiten und ihre Parameter unter verschiedenen Szenarien erzeugt. Zum Beispiel muss bei einer Behälter-Entnahmeaufgabe ein Objekt aus der Box entnommen werden (abhängig davon, wie, wo es sich in der Box befindet), es gegebenenfalls von den Ecken entfernt werden, es umorientiert werden, um seinen Strichcode zu enthüllen, und der Strichcode einem Scanner gezeigt werden. Das Wählen der korrekten Fertigkeitssequenz ist für flexible robotische Systeme über verschiedene Anwendungen hinweg wesentlich. Solche Übergänge zwischen den Fertigkeiten und den zugeordneten Bedingungen sind oft manuell schwierig und umständlich vorzugeben.
-
Deshalb sind zuverlässige Ansätze zur Auswahl der korrekten Sequenz von Fertigkeitsprimitiven und der korrekten Parameter für jede Fertigkeitsprimitive unter verschiedenen Szenarien erwünscht.
-
Offenbarung der Erfindung
-
Gemäß verschiedenen Ausführungsformen wird ein Verfahren zur Steuerung einer Robotervorrichtung bereitgestellt, umfassend: Bereitstellen eines Steuermodells für jede Funktion von einer Mehrzahl von Funktionen zur Steuerung der Robotervorrichtung zur Ausführung der Funktion; Bereitstellen eines Auswahlmodells zum Auswählen unter der Mehrzahl von Funktionen und Ausführen mehrerer Instanzen einer Aufgabe durch die Robotervorrichtung, umfassend, bei jeder Ausführung, wenn eine Funktion der Mehrzahl von Funktionen zur Ausführung der Aufgabeninstanz ausgewählt werden muss, Prüfen, ob das Auswahlmodell eine Auswahl einer Funktion bereitstellt, und wenn das Auswahlmodell eine Auswahl einer Funktion bereitstellt, Steuern der Robotervorrichtung zur Ausführung der durch das Auswahlmodell ausgewählten Funktion unter Verwendung des Steuermodells für die ausgewählte Funktion; und wenn das Auswahlmodell nicht eine Auswahl einer Funktion bereitstellt, Empfangen von eine Auswahl einer Funktion angebenden Benutzereingaben, Auswählen einer Funktion gemäß der durch die Benutzereingaben angegebenen Auswahl, Steuern der Robotervorrichtung zur Ausführung der gemäß der durch die Benutzereingaben angegebenen Auswahl ausgewählten Funktion unter Verwendung des Steuermodells für die ausgewählte Funktion und Trainieren des Auswahlmodells gemäß der durch die Benutzereingaben angegebenen Auswahl.
-
Somit erlaubt das oben beschriebene Verfahren das Trainieren eines Auswahlmodells im Fluge während der Steuerung einer Robotervorrichtung durch Benutzer- (d. h. menschliche) Eingaben. Das bereitgestellte Auswahlmodell kann untrainiert oder nur vortrainiert sein, so dass mindestens für einige Konfigurationen der Robotervorrichtung (oder des gesteuerten Systems, z. B. einschließlich Konfigurationen der Umgebung wie Objekten) das Auswahlmodell keine Auswahl einer Funktion bereitstellt. Während der Ausführung von Aufgabeninstanzen wird das Auswahlmodell immer zuverlässiger, so dass letztendlich die Robotervorrichtung komplexe Manipulationsaufgaben ausführen kann, die Sequenzen mehrerer Fertigkeiten und/oder Fertigkeitsverzweigungen umfassen.
-
Im Folgenden werden verschiedene Beispiele gegeben.
-
Beispiel 1 ist ein Verfahren zur Steuerung eines Roboters wie oben beschrieben.
-
Beispiel 2 ist das Verfahren von Beispiel 1, wobei das Auswahlmodell Angaben von Konfidenzen für Auswahlen von Funktionen der Mehrzahl von Funktionen ausgibt und wobei Trainieren des Auswahlmodells gemäß der durch die Benutzereingaben angegebenen Auswahl ein Justieren des Auswahlmodells zur Vergrößerung einer durch das Auswahlmodell ausgegebenen Konfidenz zur Auswahl der gemäß der durch die Benutzereingaben angegebenen Auswahl ausgewählten Funktion umfasst.
-
Somit erhält die Robotervorrichtung immer mehr Konfidenz für Auswahlen, für die sie Benutzereingaben empfangen hat, bis sie sich autonom verhalten kann.
-
Beispiel 3 ist das Verfahren von Beispiel 1 oder 2, wobei das Auswahlmodell Angaben von Konfidenzen für Auswahlen von Funktionen der Mehrzahl von Funktionen ausgibt und das Prüfen, ob das Auswahlmodell eine Auswahl einer Funktion bereitstellt, Prüfen, ob das Auswahlmodell eine Angabe einer Konfidenz für eine Auswahl der Funktion ausgibt, die über einer vordefinierten unteren Konfidenzschranke liegt, umfasst.
-
Das Auswahlmodell wird somit so trainiert, dass es über die Auswahl von Funktionen immer gewisser wird, bis es für bestimmte Auswahlen (z. B. für Fertigkeitsverzweigungsauswahlen in bestimmten Zuständen) eine ausreichende Konfidenz erzielt hat. Dann sind Benutzereingaben nicht mehr notwendig (und werden z. B. nicht mehr angefordert). Die Bemühung für den Benutzer nimmt somit mit der Zeit ab und die Robotervorrichtung kann letztendlich die Aufgabe autonom ausführen.
-
In Situationen, die noch nicht angetroffen wurden (und für die somit Konfidenz gering ist) werden dagegen Benutzereingaben als Grundlage für die Auswahl verwendet. Falsche Entscheidungen, die zum Beispiel zu Beschädigungen der Robotervorrichtung oder gehandhabter Objekte führen könnten, können somit vermieden werden.
-
Beispiel 4 ist das Verfahren nach einem der Beispiele 1 bis 3, wobei die Funktionen Fertigkeit und Verzweigungen von Fertigkeiten umfassen und die Auswahlfunktion dafür trainiert wird, für Mengen alternativer Fertigkeiten eine Auswahl einer Fertigkeit und für Mengen alternativer Verzweigungen von Fertigkeiten eine Auswahl einer Verzweigung bereitzustellen.
-
Somit wird ein hierarchischer Ansatz verwendet, wobei Auswahlen von Fertigkeiten durchgeführt werden und für eine ausgewählte Fertigkeit eine Auswahl einer Verzweigung. Das Auswahlmodell kann somit einen Kantenselektor (zur Auswahl unter Fertigkeiten, z. B. in einem Aufgabennetzwerk) und einen Zweigselektor (zur Auswahl unter Verzweigungen von Fertigkeiten) umfassen. Dadurch wird die Auswahl verständlicher und somit intuitiv für den menschlichen Benutzer, wodurch die Benutzerbemühung und Fehler bei der Auswahl verringert werden.
-
Beispiel 5 ist das Verfahren nach einem der Beispiele 1 bis 4, wobei Bereitstellen des Steuermodells für jede Funktion Durchführen von Demonstrationen der Funktion und Trainieren des Steuermodells unter Verwendung der Demonstrationen umfasst.
-
Anders ausgedrückt, werden die Funktionen (z. B. Primitiv-Fertigkeiten) aus Lernen durch Demonstrationen trainiert. Die ergibt eine effiziente Weise zum Lernen von Primitiv-Fertigkeiten.
-
Beispiel 6 ist das Verfahren nach einem der Beispiele 1 bis 5, wobei das Auswahlmodell ein logistisches Regressionsmodell ist.
-
Dies erlaubt zuverlässiges schnelles Training (und Neutraining) aus geringen Mengen an Daten
-
Beispiel 7 ist das Verfahren nach einem der Beispiele 1 bis 6, bei dem, wenn das Auswahlmodell keine Auswahl einer Funktion bereitstellt, Betrieb der Robotervorrichtung angehalten wird, bis Benutzereingaben empfangen wurden, die eine Auswahl einer Funktion angeben.
-
Die Robotervorrichtung arbeitet somit, bis ihre Steuerung nicht mehr entscheiden kann, mit welcher Funktion fortzufahren ist, und hält dann an, bis der Benutzer sie anleitet. Falscher Betrieb, der zu Beschädigungen führen kann, kann somit vermieden werden. Dass die Robotervorrichtung anhält, gibt dem Benutzer außerdem an, dass Benutzereingaben benötigt werden.
-
Beispiel 8 ist eine Robotersteuerung, die dafür ausgelegt ist, ein Verfahren nach einem der Beispiele 1 bis 7 auszuführen.
-
Beispiel 9 ist ein Computerprogramm mit Anweisungen, die, wenn sie durch einen Computer ausgeführt werden, bewirken, dass der Computer ein Verfahren nach einem der Beispiele 1 bis 7 ausführt.
-
Beispiel 10 ist ein computerlesbares Medium mit Anweisungen, die, wenn sie durch einen Computer ausgeführt werden, bewirken, dass der Computer ein Verfahren nach einem der Beispiele 1 bis 7 ausführt.
-
In den Zeichnungen beziehen sich ähnliche Bezugszeichen im Allgemeinen in den verschiedenen Ansichten durchweg auf dieselben Teile. Die Zeichnungen sind nicht unbedingt maßstabsgetreu und es wird stattdessen allgemein die Veranschaulichung der Prinzipien der Erfindung betont. In der folgenden Beschreibung werden verschiedene Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben. Es zeigen:
- 1 einen Roboter.
- 2 eine Robotersteuerung für ein Aufgabenziel gemäß einer Ausführungsform.
- 3 die Bestimmung von Merkmalvektoren für einen Kantenselektor und einen Zweigselektor.
- 4 ein Flussdiagramm eines Verfahrens zur Steuerung einer Robotervorrichtu n g.
-
Die folgende ausführliche Beschreibung bezieht sich auf die beigefügten Zeichnungen, die zur Veranschaulichung spezifische Einzelheiten und Aspekte der vorliegenden Offenbarung zeigen, in denen die Erfindung praktiziert werden kann. Es können andere Aspekte benutzt und strukturelle, logische und elektrische Änderungen vorgenommen werden, ohne vom Wesen der Erfindung abzuweichen. Die verschiedenen Aspekte der vorliegenden Offenbarung schließen sich nicht unbedingt gegenseitig aus, da einige Aspekte der vorliegenden Offenbarung mit einem oder mehreren anderen Aspekten der vorliegenden Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
-
Im Folgenden werden verschiedene Beispiele ausführlicher beschrieben.
-
1 zeigt einen Roboter 100.
-
Der Roboter 100 umfasst einen Roboterarm 101, zum Beispiel einen industriellen Roboterarm zum Handhaben oder Zusammenbauen eines Arbeitsstücks (oder eines oder mehrerer anderer Objekte). Der Roboterarm 101 umfasst Manipulatoren 102, 103, 104 und eine Basis (oder Halterung) 105, durch die die Manipulatoren 102, 103, 104 gehalten werden. Der Ausdruck „Manipulator“ bezieht sich auf die beweglichen Glieder des Roboterarms 101, deren Betätigung physische Interaktion mit der Umgebung ermöglicht, z. B. um eine Aufgabe auszuführen. Zur Steuerung umfasst der Roboter 100 eine (Roboter-) Steuerung 106, die dafür ausgelegt ist, die Interaktion mit der Umgebung gemäß einem Steuerprogramm zu implementieren. Das letzte Glied 104 (am weitesten von der Halterung 105 entfernt) der Manipulatoren 102, 103, 104 wird auch als der Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge umfassen, wie etwa einen Schweißbrenner, ein Greifinstrument, eine Lackiervorrichtung oder dergleichen.
-
Die anderen Manipulatoren 102, 103 (der Halterung 105 näher) können eine Positionierungsvorrichtung bilden, dergestalt, dass zusammen mit dem Endeffektor 104 der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende bereitgestellt wird. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm (möglicherweise mit einem Werkzeug an seinem Ende) bereitstellen kann.
-
Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 umfassen, die die Manipulatoren 102, 103, 104 miteinander und mit der Halterung 105 verbinden. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, die jeweils drehbare Bewegung (d. h. Drehbewegung) und/oder Translationsbewegung (d. h. Verschiebung) für zugeordnete Manipulatoren relativ zueinander bereitstellen können. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels durch die Steuerung 106 gesteuerter Aktoren eingeleitet werden.
-
Der Ausdruck „Aktor“ kann als eine Komponente aufgefasst werden, die dafür ausgelegt ist, als Reaktion auf Ansteuerung einen Mechanismus oder Prozess zu beeinflussen. Der Aktor kann durch die Steuerung 106 ausgegebene Anweisungen (die sogenannte Aktivierung) in mechanische Bewegungen umsetzen. Der Aktor, z. B. ein elektromechanischer Wandler, kann dafür ausgelegt sein, elektrische Energie als Reaktion auf Ansteuerung in mechanische Energie umzuwandeln.
-
Der Ausdruck „Steuerung“ kann als eine beliebige Art von Logik implementierender Entität aufgefasst werden, die zum Beispiel eine Schaltung und/oder einen Prozessor mit der Fähigkeit zur Ausführung von Software umfassen kann, die in einem Speicherungsmedium, Firmware oder einer Kombination davon gespeichert ist, und die Anweisungen, z. B. an einen Aktor in dem vorliegenden Beispiel, ausgeben kann. Die Steuerung kann zum Beispiel durch Programmcode (z. B. Software) zur Steuerung des Betriebs eines Systems, in dem vorliegenden Beispiel eines Roboters, konfiguriert werden.
-
In dem vorliegenden Beispiel umfasst die Steuerung 106 einen oder mehrere Prozessoren 110 und einen Speicher 111 zur Speicherung von Code und Daten, auf deren Basis der Prozessor 110 den Roboterarm 101 steuert. Gemäß verschiedenen Ausführungsformen steuert die Steuerung 106 den Roboterarm 101 auf der Grundlage eines in dem Speicher 111 gespeicherten Maschinenlernmodells 112. Das Maschinenlernmodell 112 umfasst Steuermodelle für Fertigkeiten und Fertigkeitsverzweigungen, sowie ein Auswahlmodell zum Auswählen unter Fertigkeiten und Fertigkeitsverzweigungen.
-
Ein Roboter 100 kann Ansätze des Lernens aus Demonstration (LfD) ausnutzen, um zu lernen, wie eine Fertigkeit auszuführen oder mit einem menschlichen Partner zu kollaborieren ist. Menschliche Demonstrationen können durch ein probabilistisches Modell (auch als Steuermodell bezeichnet) codiert werden. Die Steuerung 106 kann danach das Steuermodell, das auch als Roboter-Trajektorienmodell bezeichnet wird, verwenden, um die gewünschten Roboterbewegungen zu erzeugen, möglicherweise als Funktion des Zustands (Konfiguration) sowohl des menschlichen Partners als auch des Roboters und der Umgebung des Roboters.
-
Die Grundidee von LfD ist das Anpassen eines festgelegten Fertigkeitsmodells, wie etwa GMMs, an eine Handvoll Demonstrationen. Man betrachte M Demonstrationen, die jeweils T
m Datenpunkte für eine Datenmenge von N = ∑
m T
m Gesamtbeobachtungen
enthalten, wobei ξ
t ∈ ℝ
d ist. Außerdem wird angenommen, dass dieselben Demonstrationen aus der Perspektive P verschiedener Koordinatensysteme (gegeben durch die Aufgabenparameter, wie etwa lokale Koordinatensysteme oder Bezugssysteme von interessierenden Objekten) aufgezeichnet werden. Eine übliche Weise zum Erhalten solcher Daten ist das Transformieren der Demonstrationen aus einem statischen globalen Bezugssystem in das Bezugssystem p durch
Hier ist
die Translation und Rotation eines (lokalen) Bezugssystems p mit Bezug auf das Welt- (d. h. globale) Bezugssystem. Dann wird ein TP-TMM durch die Modellparameter
beschrieben, wobei K die Anzahl der gaußschen Komponenten im Mischungsmodell repräsentiert, π
k die Prior-Wahrscheinlichkeit jeder Komponente ist und
die Parameter (Mittelwert und Kovarianz) der k-ten gaußschen Komponente im Bezugssystem p sind.
-
Im Gegensatz zu Standard-GMM kann das obige Mischungsmodell nicht unabhängig für jedes Bezugssystem gelernt werden. Tatsächlich teilen sich die Mischungskoeffizienten πk alle Bezugssysteme, und die k-te Komponente im Bezugssystem p muss sich auf die entsprechende k-te Komponente im globalen Bezugssystem abbilden. EM (Erwartungswert-Maximierung) ist ein wohl etabliertes Verfahren zum Lernen solcher Modelle.
-
Nach dem Lernen kann TP-GMM während der Ausführung verwendet werden, um eine Trajektorie für die gelernte Fertigkeit zu reproduzieren.
-
HSMM (Hidden Semi-Markov Models) erweitern Standard-HMM (Hidden Markov Models) durch Einbettung von zeitlichen Informationen des zugrundeliegenden stochastischen Prozesses. Das heißt, während bei HMM angenommen wird, dass der zugrundeliegende verborgene Prozess Markov ist, d. h. die Wahrscheinlichkeit des Übergangs in den nächsten Zustand hängt nur vom aktuellen Zustand ab, wird bei HSMM angenommen, dass der Zustandsprozess Semi-Markov ist. Das heißt, dass ein Übergang zum nächsten Zustand sowohl vom aktuellen Zustand als auch von der vergangenen Zeit seit dem Eintritt in den Zustand abhängt. Sie können in Kombination mit TP-GMMs zur Roboter-Fertigkeitscodierung angewandt werden, um räumlich-zeitliche Merkmale der Demonstrationen zu lernen, was zu einem aufgabenparametrisierten HSMM-Modell (TP-HSMM) führt. Ein aufgabenparametrisiertes HSMM- bzw. TP-HSMM-Modell ist definiert als:
wobei a
hk die Übergangswahrscheinlichkeit von Zustand h zu k ist;
die gaußschen Verteilungen für die Dauer des Zustands k, d. h. die Wahrscheinlichkeit des Verbleibs im Zustand k für eine bestimmte Anzahl aufeinander folgender Schritte, beschreiben;
gleich dem zuvor eingeführten TP-GMM, wodurch die Beobachtungswahrscheinlichkeit entsprechend dem Zustand k repräsentiert wird. Man beachte, dass hier die Anzahl der Zustände der Anzahl gaußscher Komponenten in dem „angeschlossenen“ TP-GMM entspricht.
-
Man betrachte nun einen robotischen Arm 101 mit mehreren DoF (Freiheitsgraden) in einem statischen und bekannten Arbeitsraum, wovon der Endeffektor 104 den Zustand r aufweist, wie etwa seine 6-D-Pose und Greiferzustand. Außerdem gibt es mehrere interessierende Objekte 113, bezeichnet als O = {o1,··· , oJ}, wie etwa seine 6-D-Pose.
-
Es wird angenommen, dass es eine Menge von Primitiv-Fertigkeiten gibt, die es dem Roboter ermöglichen, diese Objekte zu manipulieren, bezeichnet als A = {a
1, a
2, ···, a
H}. Für jede Fertigkeit führt ein menschlicher Benutzer mehrere kinästhetische Demonstrationen an dem Roboter aus. Insbesondere wird für die Fertigkeit a ∈ A die Menge von beteiligten Objekten gegeben durch O
a ⊆ O und die Menge von Demonstrationen gegeben durch D
a = {D
1, ···, D
Ma }, wobei jede Demonstration D
m eine getimte Sequenz von Zuständen ist, besteht aus dem Endeffektorzustand r und Objektzuständen {p
o, o ∈ O
a}, d. h.
-
Für jede (Primitiv-) Fertigkeit a ∈ A wird somit ein TP-HSMM Θa (d. h. ein Steuermodell) wie in Gleichung (1) gelernt.
-
Über eine Kombination dieser Fertigkeiten können die Objekte 113 durch den Roboterarm 101 manipuliert werden, um verschiedene Zustände zu erreichen. Es ist wünschenswert, dass der Roboter 100 (speziell die Steuerung 106) für eine generische Manipulationsaufgabe trainiert wird, d. h. in der Lage sein sollte, viele verschiedene Instanzen einer generischen Aufgabe auszuführen. Jede Aufgabeninstanz wird durch einen Anfangszustand s0 und eine Menge von (mindestens einem) gewünschten Zielzuständen sG vorgegeben. Eine Aufgabe (Instanz) ist gelöst, wenn der Systemzustand (auch als Konfiguration bezeichnet) von s0 in sG umgeändert wird.
-
Wenn eine neue Aufgabe (s0; sG) gegeben ist, sollte die Steuerung 106 also (i) die diskrete Sequenz von (Primitiv-) Fertigkeiten und (ii) die stetige Robotertrajektorie zur Ausführung jeder Fertigkeit bestimmen. Eine Aufgabe kann hier eine Instanz einer komplexen Manipulationsaufgabe sein, wobei die Sequenz gewünschter Fertigkeiten und die zugeordneten Trajektorien signifikant vom Szenario der Aufgabeninstanz abhängen.
-
2 zeigt eine Robotersteuerung für ein Aufgabenziel (201) gemäß einer Ausführungsform.
-
Gemäß verschiedenen Ausführungsformen implementiert die Steuerung (erweiterte) Primitiv-Fertigkeitsmodelle 202 und ein GTN (geometrisches Aufgabennetzwerk), die während Online-Ausführung durch menschliche Eingaben interaktiv trainiert werden.
-
Primitiv- Fertigkeits-Lernen
-
Wie für die Fertigkeiten in den Fertigkeitsmodellen 202 dargestellt, gibt es oft mehrere Weisen der Ausführung derselben Fertigkeit unter verschiedenen Szenarien (als Verzweigungen bezeichnet). Zum Beispiel gibt es fünf verschiedene Weisen des Nehmens von Objekten aus einem Behälter, d. h. Annäherung mit verschiedenen Winkeln abhängig von den Abständen zu jeder Grenze. Um mit der Verzweigung umzugehen, implementiert die Steuerung für jede (Primitiv-) Fertigkeit einen Zweigselektor 207 als Erweiterung de TP-HSMM-Modells Θa für die Fertigkeit.
-
Die Steuerung 106 trainiert den Zweigselektor 207 aus Demonstrationen 205 und Online-Anweisungen 204, um für jede Fertigkeit 202, die zur Erzielung des Aufgabenziels 201 auszuführen ist, einen Zweig 206 zu wählen. Ein Zweig 206 ist anders ausgedrückt eine Variante einer Fertigkeit. Zum Beispiel kann die Fertigkeit das Entnehmen eines Objekts aus einem Behälter sein und Zweige können das Entnehmen des Objekts von links nach rechts sein, abhängig davon, wo sich das Objekt im Behälter befindet. Wenn es zum Beispiel mit seiner rechten Seite in der Nähe einer Behälterwand positioniert ist, wählt der Zweigselektor 207 den Zweig zum Entnehmen des Objekts von links.
-
Man betrachte eine Fertigkeits-Primitive mit M Demonstrationen (aus für alle Fertigkeiten bereitgestellten Demonstrationen 205) und B verschiedenen Zweigen. Jede Ausführungstrajektorie oder Demonstration der Fertigkeit wird mit
bezeichnet, was genau einem Zweig b
m ∈ B
a = {1, ···, B} zugeordnet ist. Es sei J
a die Menge solcher Trajektorien, so initialisiert, dass sie die Menge von Demonstrationen D
a ist (und während des Betriebs ergänzt durch Online-Anweisungen 204). Die J
m zugeordneten Bezugssysteme werden von dem Anfangszustand s0 berechnet durch Abstrahieren der Koordinaten des Roboterarms 101 und der Objekte 113, bezeichnet mit (F
0, F
1, ... , F
P), wobei F
p = (b
p, A
P) die Koordinate des Bezugssystems des Bezugssystems p ∈ {1, ...,P} ist; ihre Reihenfolge kann frei gewählt werden, liegt aber danach fest. Dann leitet die Steuerung 106 einen Merkmalvektor
ab, wobei F
ij = (b
ij, a
ij) ∈ ℝ
6 die relative Transformation von Bezugssystem F
i nach Bezugssystem F
j ist, b
ij ∈ ℝ
3 die relative Pose ist und
die relative Orientierung. Wenn J
a gegeben ist, kann die Steuerung 106 somit die Trainingsdaten für den Zweigselektor 207 konstruieren:
wobei b
m die Zweigkennzeichnung der Trajektorie J
m ist; v
m der zugeordnete Merkmalvektor ist. Die Steuerung 106 kann dann den Zweigselektor 207, bezeichnet durch
über einen beliebigen Mehrfach-Nominal-Klassifikationsalgorithmus trainieren. Zum Beispiel ergibt logistische Regression unter der Strategie „einer gegen den Rest“ einen effektiven Selektor aus wenigen Trainingsstichproben. Wenn ein neues Szenario mit dem Zustand s
t gegeben ist, wählt die Steuerung 106 den Z weig 6 mit der Wahrscheinlichkeit:
wobei ρ
b ∈ [0, 1]. Da die meisten Fertigkeiten zwei oder drei Bezugssysteme enthalten, hat der Merkmalvektor v
m normalerweise die Dimension 6 oder 12.
-
Aufgabennetzwerk-Konstruktion
-
Wie bereits erwähnt, enthalten komplexe Manipulationsaufgaben oft verschiedene Sequenzen von Fertigkeiten 202, um verschiedene Szenarien zu berücksichtigen.
-
Wenn zum Beispiel ein zu scannender Strichcode oben an einem Objekt ist, muss der Roboter 100 das Objekt wenden (d. h. eine Wendefertigkeit ausführen), bevor er das Objekt aufnimmt und es einer Kamera zeigt (d. h. eine Zeigefertigkeit ausführt). Dies kann nicht erforderlich sein, wenn sich der Strichcode bereits unten befindet. Eine Abstraktion auf hoher Ebene solcher Beziehungen zwischen Fertigkeiten wird als Aufgabennetzwerk bezeichnet. Ein gültiger Plan entwickelt sich durch Übergang von einer Fertigkeit 202 zu einer anderen, bis die Aufgabe gelöst ist. Die Bedingungen an diesen Übergängen sind besonders schwierig und umständlich manuell vorzugeben. Gemäß verschiedenen Ausführungsformen verwendet deshalb die Steuerung 106 eine Koordinationsstruktur, die als GTN (Geometrische-Aufgaben-Netzwerk) 203 bezeichnet wird, wobei die Bedingungen aus Aufgabenausführungen gelernt werden.
-
Ein GTN 203 hat eine Struktur, die durch ein Tripel G = (V, E, f) definiert wird. Die Menge von Knoten V ist eine Teilmenge der Primitiv-Fertigkeiten A; die Menge von Kanten E ⊆ V × V enthält die zulässigen Übergänge von einer Fertigkeit zu einer anderen; die Funktion ƒ: v → C bildet jeden Knoten mit Bezug auf alle seine abgehenden Kanten auf einen Kantenselektor ab. Intuitiv gibt (V, E) vor, wie Fertigkeiten für die gegebene Aufgabe aufeinanderfolgend ausgeführt werden können, während die Funktion f(v) die verschiedenen geometrischen Beschränkungen unter den Objekten und dem Roboter für die abgehenden Kanten des Knotens v modelliert. Es sollte beachtet werden, dass f(·) explizit sowohl an dem aktuellen Systemzustand als auch dem Zielzustand konditioniert ist.
-
Ein vollständiger Plan einer Aufgabe wird durch die folgende Sequenz gegeben:
wobei a und
avirtuelle Fertigkeiten „Start“ bzw. „Stopp“ sind. Für verschiedene anfängliche und Ziel-Zustandsinstanzen der Aufgabe können die resultierenden Pläne verschieden sein. Es sei Ξ = (ξ) die Menge vollständiger Pläne für eine Menge gegeben nach Aufgabeninstanzen. Für jedes Tripel „Aktion-Zustand-Aktion“ (a
n, s
n+1, a
n+1) in ξ wird zuerst das Paar (a
n, a
n+1) zu einer Kantenmenge Ê hinzugefügt, wenn es nicht bereits anwesend ist; als Zweites wird für jeden einzigartigen Fertigkeitsübergang (a
n, a
n+1) eine Menge ergänzter Zustände gesammelt, bezeichnet mit ŝ
anan+1 = {ŝ}, wobei ŝ = (s
n+1, s
G) ist. Die Steuerung 106 trainiert einen Kantenselektor 208 zum Auswählen von Kanten und somit auszuführenden Fertigkeiten 202. Hierzu leitet für jeden ergänzten Zustand ŝ
ℓ = (s
t, s
G) ∈ ŝ
anan+1 die Steuerung 106 den folgenden Merkmalvektor ab:
wobei h
tG = (H
r, H
o1 , ···, H
oH ) ist, wobei H
o = (b
o, α
o) ∈ ℝ
6 die relative Translation und Rotation des Roboters r und der Objekte o
1,o
2,··· , o
H ∈ O
an von dem aktuellen Systemzustand s
t zu dem Zielzustand s
G ist; v
G ist der in Gleichung (2) definierte Merkmalvektor, dem Zielzustand s
G zugeordnet. Es sollte beachtet werden, dass h
ℓ Merkmale sowohl aus der relativen Transformation zum Ziel als auch dem Zielzustand selbst einkapselt. Seine Dimension ist linear zur Anzahl von für die Fertigkeit a
n relevanten Objekten, wie in
3 gezeigt.
-
3 zeigt die Bestimmung von Merkmalvektoren vm für den Kantenselektor 208 und hℓ für den Zweigselektor 207 bei gegebenen Fertigkeits-BezugssystemenFp.
-
Nachdem die Steuerung 106 alle Pläne in Ξ verarbeitet hat, kann sie das GTN 203
folgendermaßen konstruieren. Als Erstes werden seine Knoten und Kanten direkt aus E abgeleitet. Dann wird für jeden Knoten a die Menge seiner abgehenden Kanten in E gegeben durch Ê
a = {(a,a
ℓ) ∈ Ê}. Somit gibt die Funktion ƒ(a) den Kantenselektor 208
über Ê
a zurück. Zur Berechnung dieses Selektors konstruiert man zuerst die folgenden Trainingsdaten:
wobei e die Kennzeichnung für die Kante e = (a, a
ℓ) ∈ Ê
a; und h
ℓ der aus Gleichung (3) abgeleitete Merkmalvektor ist. Dann kann der Kantenselektor
über mehrfachnominale Klassifikationsalgorithmen gelernt werden. Ähnlich wie beim Zweigselektor 207 wählt, wenn ein neues Szenario mit dem Zustand s
t und der vorgegebene Zielzustand s
G gegeben sind, die Steuerung 106 eine Kante e mit einer Wahrscheinlichkeit von
wobei ρ
e ∈ [0, 1] ist. Es sollte beachtet werden, dass ρ
e für Fertigkeiten mit nur einer abgehenden Kante (d. h. mit nur einer Möglichkeit für die nachfolgende Fertigkeit) trivial ist.
-
In den zwei vorherigen Abschnitten wurden die Ansätze zum Lernen eines erweiterten Fertigkeitsmodells (wobei ein Zweigselektor 207 involviert ist) und das Aufgabennetzwerk 203 (woran Kantenselektoren 208 involviert sind) beschrieben. Die erforderlichen Trainingsdaten sind Ausführungstrajektorien der Fertigkeiten und vollständige Pläne der Aufgabe. Gemäß verschiedenen Ausführungsformen erzeugt die Steuerung 106 Trainingsdaten für die Zweigselektoren 207 und Kantenselektoren 208 aus menschlichen Anweisungen 204, die während der Laufzeit bereitgestellt werden. Dadurch wird es möglich, sowohl das Fertigkeitsmodell als auch das Aufgabennetzwerk im Fluge zu verbessern.
-
Das GTN
wird als leer initialisiert (d. h. ist anfänglich untrainiert). Man betrachte eine Probleminstanz der Aufgabe, nämlich (s
0, s
G). Das System beginnt vom Zustand s
n, während das GTN 203 von dem virtuellen Startknoten a
n = a für n = 0 beginnt. Der zugeordnete Kantenselektor
wird dann zur Berechnung der Wahrscheinlichkeit ρ
e jeder abgehenden Kante e ∈ Ê
an verwendet. Dann wird die nächste ausführende Fertigkeit als
gewählt, wobei ρ
E > 0 ein Entwurfsparameter als untere Konfidenzschranke ist. Es sollte beachtet werden, dass, wenn die aktuelle Mange abgehender Kanten leer ist, d. h. Ê
an = Ø, oder die Maximalwahrscheinlichkeit aller Kanten kleiner als ρ
E ist, die Steuerung 106 den menschlichen Bediener auffordert, die bevorzugte nächste Fertigkeit
(als Online-Anweisung 204) einzugeben, z. B. durch Anhalten der Ausführung, d. h. der Roboter 100 wartet, bis der menschliche Bediener die Online-Anweisung eingibt, z. B. den Roboterarm 101 führt oder eine Zweignummer eingibt. Folglich fügt die Steuerung 106 einen zusätzlichen Datenpunkt zu den Trainingsdaten
hinzu, d. h.
wobei der Merkmalvektor h gemäß (3) berechnet wird. Somit wird eine neue Kante
zu der Graphtopologie (V, E) hinzugefügt, wenn sie nicht anwesend ist, und die eingebettete Funktion f(·) wird durch Neulernen der Kantenselektoren
mit diesem gegebenen neuen Datenpunkt aktualisiert.
-
Hinsichtlich Ausführung und Aktualisierung der Zweigselektoren 207 sei a
n+1 als nächste Fertigkeit (gemäß dem Kantenselektor 208) gewählt. Dann verwendet die Steuerung 106 den Zweigselektor
zur Vorhersage der Wahrscheinlichkeit jedes Zweigs ρ
b, ∀b ∈ B
an+1 . Dann wählt sie den höchstwahrscheinlichen Zweig für a
n+1 durch
wobei ρ
B > 0 ein anderer Parameter als untere Konfidenzschranke für die Zweigauswahl ist. Wenn die Steuerung 106 auf diese Weise keinen Zweig finden kann, fordert sie wieder wie bei der Kantenauswahl den menschlichen Bediener auf, den bevorzugten Zweig
für die Fertigkeit a
n+1 einzugeben, z. B. durch Führen des Roboterarms 101 oder Eingeben einer Kantenzahl. In diesem Fall fügt die Steuerung 106 einen zusätzlichen Datenpunkt zu den Trainingsdaten
hinzu, d. h.,
wobei der Merkmalvektor v gemäß Gleichung (2) berechnet wird.
-
Sobald die Steuerung 106 einen Zweig b* für die gewünschte nächste Fertigkeit
ausgewählt hat, kann die Steuerung 106 seine Trajektorie unter Verwendung des Fertigkeitsmodells θ
an+1 abrufen. Der Abrufprozess besteht aus zwei Schritten: als Erstes kann die höchstwahrscheinliche Sequenz von GMM-Komponenten im gewünschten Zweig (bezeichnet als
) über einen modifizierten Viterbi-Algorithmus berechnet werden. Dann eine durch eine Optimal-Steuerung 210 (z. B. LQG-Steuerung) erzeugte Referenztrajektorie 209 zum Verfolgen dieser Sequenz von Gauß-Verteilungen im Aufgabenraum. Diese Referenztrajektorie 209 wird somit dann zur Berechnung des Steuersignals u* zu der Impedanzsteuerung auf niedriger Ebene gesendet.
-
Danach wird der Systemzustand in Sn+2 umgeändert, mit verschiedenen Posen des Roboterarms 113 und der Objekte 113, d. h., Erhalten aus den Zustandsschätzungs- und Wahrnehmungsmodulen (wie etwa einer Kamera), die Beobachtungen 211 bereitstellen. Wenn dieser neue Zustand gegeben ist, wiederholt die Steuerung 106 den Prozess zum Wählen der nächsten Fertigkeit und ihres optimalen Zweigs, bis der Zielzustand 201 erreicht ist.
-
Im Folgenden wird ein beispielhafter Gesamtalgorithmus in Pseudocode (unter Verwendung der gewöhnlichen englischen Schlüsselwörter wie „while“, „do“ usw.) gegeben.
-
Während der Online-Ausführung zur Lösung neuer Aufgaben führt der Algorithmus das GTN 203 wie oben beschrieben aus und aktualisiert es. Dies geschieht durch die Funktion ExUpGtn(·) in Zeile 6, falls erforderlich mit möglicher menschlicher Eingabe
a
n Sobald die nächste Fertigkeit a
n+1 gewählt ist, führt der Algorithmus den Zweigselektor 208 aus und aktualisiert ihn. Die geschieht durch die Funktion Ex U p B rs (.) in Zeile 7, falls erforderlich mit möglicher menschlicher Eingabe
Danach werden das GTN 203 und die Zweigselektoren 208 gemäß Gleichung (4) und Gleichung (5) im Fluge aktualisiert und verbessert. Verglichen mit der manuellen Vorgabe des Übergangs und der Verzweigungsbedingungen sind die menschlichen Eingaben intuitiver und leichter vorzugeben.
-
Kurzgefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren wie in 4 dargestellt bereitgestellt.
-
4 zeigt ein Flussdiagramm 400 eines Verfahrens zur Steuerung einer Robotervorrichtung.
-
In 401 wird für jede Funktion einer Mehrzahl von Funktionen ein Steuermodell (Fertigkeitsmodell oder Fertigkeitsverzweigungsmodell) zur Steuerung der Robotervorrichtung zur Ausführung der Funktion bereitgestellt.
-
In 402 wird ein Auswahlmodell zum Auswählen unter der Mehrzahl von Funktionen bereitgestellt.
-
In 403 werden mehrere Instanzen einer Aufgabe durch die Robotervorrichtung ausgeführt (d. h., die Robotervorrichtung wird dazu gesteuert, mehrere Instanzen einer Aufgabe auszuführen), umfassend, bei jeder Ausführung, wenn eine Funktion der Mehrzahl von Funktionen ausgewählt werden muss, um die Aufgabeninstanz auszuführen, Prüfen, ob das Auswahlmodell eine Auswahl einer Funktion bereitstellt, und wenn das Auswahlmodell eine Auswahl einer Funktion bereitstellt, Steuern der Robotervorrichtung dazu, die durch das Auswahlmodell ausgewählte Funktion unter Verwendung des Steuermodells für die ausgewählte Funktion in 404 auszuführen, und wenn das Auswahlmodell keine Auswahl einer Funktion bereitstellt, Empfangen von Benutzereingaben, die eine Auswahl einer Funktion angeben, Auswählen, gemäß der durch die Benutzereingabe angegebenen Auswahl, einer Funktion, Steuern der Robotervorrichtung dazu, die gemäß der durch die Benutzereingaben angegebenen Auswahl ausgewählte Funktion unter Verwendung des Steuermodells für die ausgewählte Funktion auszuführen und Trainieren des Auswahlmodells gemäß der durch die Benutzereingabe angegebenen Auswahl in 405.
-
Der Ansatz von 4 kann verwendet werden, um ein Steuersignal zum Steuern eines physischen Systems zu berechnen, das im Allgemeinen als „Robotervorrichtung“ bezeichnet wird, wie z. B. eine computergesteuerte Maschine, wie ein Roboter, ein Fahrzeug, ein Haushaltsgerät, ein Elektrowerkzeug, eine Herstellungsmaschine, ein persönlicher Assistent oder ein Zugangskontrollsystem. Gemäß verschiedenen Ausführungsformen kann eine Richtlinie zur Steuerung des physischen Systems gelernt werden und dann kann das physische System dementsprechend betrieben werden.
-
Verschiedene Ausführungsformen können Bilddaten (d. h. Digitalbilder) von verschiedenen visuellen Sensoren (Kameras), wie etwa Video, Radar, LiDAR, Ultraschall, thermische Bildgebung, Bewegung, Sonar usw. zum Beispiel als Grundlage für die Deskriptorbilder empfangen und verwenden.
-
Gemäß einer Ausführungsform wird das Verfahren computer-implementiert.
-
Obwohl hier spezifische Ausführungsformen dargestellt und beschrieben wurden, ist für Durchschnittsfachleute erkennbar, dass vielfältige alternative und/oder äquivalente Implementierungen die spezifischen gezeigten und beschriebenen Ausführungsformen ersetzen können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Die vorliegende Anmeldung soll jegliche Anpassungen oder Varianten der hier besprochenen spezifischen Ausführungsformen abdecken. Deshalb ist beabsichtigt, dass die vorliegende Erfindung nur durch die Ansprüche und ihre Äquivalente beschränkt wird.