DE102021212494A1 - Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung - Google Patents

Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung Download PDF

Info

Publication number
DE102021212494A1
DE102021212494A1 DE102021212494.1A DE102021212494A DE102021212494A1 DE 102021212494 A1 DE102021212494 A1 DE 102021212494A1 DE 102021212494 A DE102021212494 A DE 102021212494A DE 102021212494 A1 DE102021212494 A1 DE 102021212494A1
Authority
DE
Germany
Prior art keywords
selection
function
model
robotic device
skill
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102021212494.1A
Other languages
English (en)
Inventor
Mathias Buerger
Meng Guo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021212494.1A priority Critical patent/DE102021212494A1/de
Priority to US18/047,358 priority patent/US20230141855A1/en
Priority to CN202211373918.1A priority patent/CN116079762A/zh
Priority to JP2022177175A priority patent/JP2023070168A/ja
Publication of DE102021212494A1 publication Critical patent/DE102021212494A1/de
Granted legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed

Abstract

Gemäß verschiedenen Ausführungsformen wird ein Verfahren zur Steuerung einer Robotervorrichtung beschrieben, umfassend: Bereitstellen eines Auswahlmodells und Ausführen mehrerer Instanzen einer Aufgabe, wobei bei jeder Ausführung, wenn eine Funktion der Robotervorrichtung ausgewählt werden muss, um die Aufgabeninstanz auszuführen, geprüft wird, ob das Auswahlmodell eine Auswahl einer Funktion bereitstellt, und wenn ja, Steuern der Robotervorrichtung zur Ausführung der durch das Auswahlmodell ausgewählten Funktion, und wenn nein, Empfangen von Benutzereingaben, die eine Auswahl einer Funktion angeben, 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 und Trainieren des Auswahlmodells gemäß der durch die Benutzereingaben angegebenen Auswahl.

Description

  • 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 Tm Datenpunkte für eine Datenmenge von N = ∑m Tm Gesamtbeobachtungen ξ = { ξ t } t = 1 N
    Figure DE102021212494A1_0001
    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 ξ t ( p ) = A ( p ) 1 ( ξ t b ( p ) ) .
    Figure DE102021212494A1_0002
    Hier ist { ( b ( p ) , A ( p ) ) } p=1 P
    Figure DE102021212494A1_0003
    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 { π k , { μ k ( p ) , Σ k ( p ) } p=1 P } p=1 K
    Figure DE102021212494A1_0004
    beschrieben, wobei K die Anzahl der gaußschen Komponenten im Mischungsmodell repräsentiert, πk die Prior-Wahrscheinlichkeit jeder Komponente ist und { μ k ( p ) , Σ k ( p ) } p=1 P
    Figure DE102021212494A1_0005
    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:
    θ = { { a hk } h-1 K , ( μ k D , σ k D ) , π k , { ( μ k ( p ) , Σ k ( p ) ) } p=1 P } k-1 K ,
    Figure DE102021212494A1_0006
    wobei ahk die Übergangswahrscheinlichkeit von Zustand h zu k ist; ( μ k D , σ k D )
    Figure DE102021212494A1_0007
    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; { π k , { μ k ( p ) , Σ k ( p ) } p=1 P } k-1 K
    Figure DE102021212494A1_0008
    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 = {a1, a2, ···, aH}. 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 Oa ⊆ O und die Menge von Demonstrationen gegeben durch Da = {D1, ···, DMa }, wobei jede Demonstration Dm eine getimte Sequenz von Zuständen ist, besteht aus dem Endeffektorzustand r und Objektzuständen {po, o ∈ Oa}, d. h. D m = [ s t ] t = 1 T m = [ ( r t , { p t , o , o eO a } ) ] t = 1 T m
    Figure DE102021212494A1_0009
  • 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 J m = [ s t ] t = 1 T m
    Figure DE102021212494A1_0010
    bezeichnet, was genau einem Zweig bm ∈ Ba = {1, ···, B} zugeordnet ist. Es sei Ja die Menge solcher Trajektorien, so initialisiert, dass sie die Menge von Demonstrationen Da ist (und während des Betriebs ergänzt durch Online-Anweisungen 204). Die Jm zugeordneten Bezugssysteme werden von dem Anfangszustand s0 berechnet durch Abstrahieren der Koordinaten des Roboterarms 101 und der Objekte 113, bezeichnet mit (F0, F1, ... , FP), wobei Fp = (bp, AP) 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 v m = ( F 01 , F 12 , , F ( P 1 ) P )
    Figure DE102021212494A1_0011
    ab, wobei Fij = (bij, aij) ∈ ℝ6 die relative Transformation von Bezugssystem Fi nach Bezugssystem Fj ist, bij ∈ ℝ3 die relative Pose ist und a i j S 3
    Figure DE102021212494A1_0012
    die relative Orientierung. Wenn Ja gegeben ist, kann die Steuerung 106 somit die Trainingsdaten für den Zweigselektor 207 konstruieren: τ a D = { ( v m , b m ) , J m J a } ,
    Figure DE102021212494A1_0013
    wobei bm die Zweigkennzeichnung der Trajektorie Jm ist; vm der zugeordnete Merkmalvektor ist. Die Steuerung 106 kann dann den Zweigselektor 207, bezeichnet durch C a B
    Figure DE102021212494A1_0014
    ü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 st gegeben ist, wählt die Steuerung 106 den Z weig 6 mit der Wahrscheinlichkeit: ρ b = C a B ( s t , b ) , b B a ,
    Figure DE102021212494A1_0015
    wobei ρb ∈ [0, 1]. Da die meisten Fertigkeiten zwei oder drei Bezugssysteme enthalten, hat der Merkmalvektor vm 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: ξ = a _ s 0  a 0 s 1  a 1 s 2   s G a ¯ ,
    Figure DE102021212494A1_0016
    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“ (an, sn+1, an+1) in ξ wird zuerst das Paar (an, an+1) zu einer Kantenmenge Ê hinzugefügt, wenn es nicht bereits anwesend ist; als Zweites wird für jeden einzigartigen Fertigkeitsübergang (an, an+1) eine Menge ergänzter Zustände gesammelt, bezeichnet mit ŝanan+1 = {ŝ}, wobei ŝ = (sn+1, sG) 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 ŝ = (st, sG) ∈ ŝanan+1 die Steuerung 106 den folgenden Merkmalvektor ab: h l = ( h tG , v G ) ,
    Figure DE102021212494A1_0017
    wobei htG = (Hr, Ho1 , ···, HoH ) ist, wobei Ho = (bo, αo) ∈ ℝ6 die relative Translation und Rotation des Roboters r und der Objekte o1,o2,··· , oH ∈ Oan von dem aktuellen Systemzustand st zu dem Zielzustand sG ist; vG ist der in Gleichung (2) definierte Merkmalvektor, dem Zielzustand sG 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 an 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 G
    Figure DE102021212494A1_0018
    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 C a E
    Figure DE102021212494A1_0019
    über Êa zurück. Zur Berechnung dieses Selektors konstruiert man zuerst die folgenden Trainingsdaten: τ a E = { ( h l , e ) , s ^ l s ^ e , e E ^ a }
    Figure DE102021212494A1_0020
    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 C a E
    Figure DE102021212494A1_0021
    über mehrfachnominale Klassifikationsalgorithmen gelernt werden. Ähnlich wie beim Zweigselektor 207 wählt, wenn ein neues Szenario mit dem Zustand st und der vorgegebene Zielzustand sG gegeben sind, die Steuerung 106 eine Kante e mit einer Wahrscheinlichkeit von ρ e = C a E ( ( s t , s G ) , e ) , e E ^ a ,
    Figure DE102021212494A1_0022
    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 G
    Figure DE102021212494A1_0023
    wird als leer initialisiert (d. h. ist anfänglich untrainiert). Man betrachte eine Probleminstanz der Aufgabe, nämlich (s0, sG). Das System beginnt vom Zustand sn, während das GTN 203 von dem virtuellen Startknoten an = a für n = 0 beginnt. Der zugeordnete Kantenselektor C a n E
    Figure DE102021212494A1_0024
    wird dann zur Berechnung der Wahrscheinlichkeit ρe jeder abgehenden Kante e ∈ Êan verwendet. Dann wird die nächste ausführende Fertigkeit als a n + 1 * = argmax e E ^ a n { ρ e ( s n , s G ) ,  mit  ρ e > ρ _ E }
    Figure DE102021212494A1_0025
    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 a n + 1 *
    Figure DE102021212494A1_0026
    (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 τ a n E
    Figure DE102021212494A1_0027
    hinzu, d. h. τ a n E ( h ( s n , s G ) , ( a n , a n + 1 * ) ) ;
    Figure DE102021212494A1_0028
    wobei der Merkmalvektor h gemäß (3) berechnet wird. Somit wird eine neue Kante ( a n , a n + 1 * )
    Figure DE102021212494A1_0029
    zu der Graphtopologie (V, E) hinzugefügt, wenn sie nicht anwesend ist, und die eingebettete Funktion f(·) wird durch Neulernen der Kantenselektoren C a n E
    Figure DE102021212494A1_0030
    mit diesem gegebenen neuen Datenpunkt aktualisiert.
  • Hinsichtlich Ausführung und Aktualisierung der Zweigselektoren 207 sei an+1 als nächste Fertigkeit (gemäß dem Kantenselektor 208) gewählt. Dann verwendet die Steuerung 106 den Zweigselektor C a n + 1 E
    Figure DE102021212494A1_0031
    zur Vorhersage der Wahrscheinlichkeit jedes Zweigs ρb, ∀b ∈ Ban+1 . Dann wählt sie den höchstwahrscheinlichen Zweig für an+1 durch b n + 1 * = argmax b B a n + 1 { ρ b ( s n ) ,  mit  ρ b > ρ _ B } ,
    Figure DE102021212494A1_0032
    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 b n + 1 *
    Figure DE102021212494A1_0033
    für die Fertigkeit an+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 τ a n + 1 B
    Figure DE102021212494A1_0034
    hinzu, d. h., τ a n + 1 B ( v ( s n ) , b n + 1 * )
    Figure DE102021212494A1_0035
    wobei der Merkmalvektor v gemäß Gleichung (2) berechnet wird.
  • Sobald die Steuerung 106 einen Zweig b* für die gewünschte nächste Fertigkeit a n + 1 *
    Figure DE102021212494A1_0036
    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 k T *
    Figure DE102021212494A1_0037
    ) ü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.
    Figure DE102021212494A1_0038
  • 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 * .
    Figure DE102021212494A1_0039
    an Sobald die nächste Fertigkeit an+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 b n + 1 * ,
    Figure DE102021212494A1_0040
    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.

Claims (10)

  1. Verfahren zur Steuerung einer Robotervorrichtung, 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; Ausführen mehrerer Instanzen einer Aufgabe durch die Robotervorrichtung, wobei bei jeder Ausführung, wenn eine Funktion der Mehrzahl von Funktionen zur Ausführung der Aufgabeninstanz ausgewählt werden muss, geprüft wird, 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.
  2. Verfahren nach Anspruch 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.
  3. Verfahren nach Anspruch 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.
  4. Verfahren nach einem der Ansprüche 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.
  5. Verfahren nach einem der Ansprüche 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.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Auswahlmodell ein logistisches Regressionsmodell ist.
  7. Verfahren nach einem der Ansprüche 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.
  8. Robotersteuerung, die dafür ausgelegt ist, ein Verfahren nach einem der Ansprüche 1 bis 7 auszuführen.
  9. Computerprogramm mit Anweisungen, die, wenn sie durch einen Computer ausgeführt werden, bewirken, dass der Computer ein Verfahren nach einem der Ansprüche 1 bis 7 ausführt.
  10. Computerlesbares Medium mit Anweisungen, die, wenn sie durch einen Computer ausgeführt werden, bewirken, dass der Computer ein Verfahren nach einem der Ansprüche 1 bis 7 ausführt.
DE102021212494.1A 2021-11-05 2021-11-05 Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung Granted DE102021212494A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102021212494.1A DE102021212494A1 (de) 2021-11-05 2021-11-05 Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung
US18/047,358 US20230141855A1 (en) 2021-11-05 2022-10-18 Device and method for controlling a robot device
CN202211373918.1A CN116079762A (zh) 2021-11-05 2022-11-04 用于控制机器人设备的设备和方法
JP2022177175A JP2023070168A (ja) 2021-11-05 2022-11-04 ロボット装置を制御するための装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021212494.1A DE102021212494A1 (de) 2021-11-05 2021-11-05 Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung

Publications (1)

Publication Number Publication Date
DE102021212494A1 true DE102021212494A1 (de) 2023-05-11

Family

ID=86053546

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021212494.1A Granted DE102021212494A1 (de) 2021-11-05 2021-11-05 Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung

Country Status (4)

Country Link
US (1) US20230141855A1 (de)
JP (1) JP2023070168A (de)
CN (1) CN116079762A (de)
DE (1) DE102021212494A1 (de)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011109144A1 (de) 2011-08-02 2013-02-07 Thomas Schütt Verfahren zur automatischen Verbesserung dynamischer Bewegungsabläufe bei Robotern mittels einer künstlichen Intelligenz (KI)
DE102012213188B4 (de) 2011-08-02 2015-06-25 GM Global Technology Operations, LLC (n.d. Ges. d. Staates Delaware) Verfahren und System zum Steuern einer Ausführungssequenz eines geschickten Roboters unter Verwendung einer Zustandsklassifizierung
DE102013202378B4 (de) 2012-02-21 2015-07-02 GM Global Technology Operations LLC (n. d. Ges. d. Staates Delaware) Prozedurales Gedächtnislernen und Robotersteuerung
DE202017105598U1 (de) 2016-09-15 2018-05-24 Google LLC (n.d.Ges.d. Staates Delaware) System zum tiefen Verstärkungslernen für Robotermanipulation
DE112020000009T5 (de) 2019-01-14 2020-10-01 Mujin, Inc. Robotersystem mit Koordinationsmechanismus und Verfahren zum Betreiben dieses Systems
EP3771522A1 (de) 2019-07-30 2021-02-03 Siemens Aktiengesellschaft Verfahren und manipulationssystem zur manipulation eines objekts durch einen roboter mittels vektorfelder
DE112018002565B4 (de) 2017-08-10 2021-07-01 Robert Bosch Gmbh System und Verfahren zum direkten Anlernen eines Roboters
DE102021103272A1 (de) 2020-02-14 2021-08-19 Nvidia Corporation Robotersteuerung unter Verwendung von Deep Learning
DE102020204551A1 (de) 2020-04-08 2021-10-14 Kuka Deutschland Gmbh Roboterprozess
DE102020207085A1 (de) 2020-06-05 2021-12-09 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern eines roboters und robotersteuereinheit

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011109144A1 (de) 2011-08-02 2013-02-07 Thomas Schütt Verfahren zur automatischen Verbesserung dynamischer Bewegungsabläufe bei Robotern mittels einer künstlichen Intelligenz (KI)
DE102012213188B4 (de) 2011-08-02 2015-06-25 GM Global Technology Operations, LLC (n.d. Ges. d. Staates Delaware) Verfahren und System zum Steuern einer Ausführungssequenz eines geschickten Roboters unter Verwendung einer Zustandsklassifizierung
DE102013202378B4 (de) 2012-02-21 2015-07-02 GM Global Technology Operations LLC (n. d. Ges. d. Staates Delaware) Prozedurales Gedächtnislernen und Robotersteuerung
DE202017105598U1 (de) 2016-09-15 2018-05-24 Google LLC (n.d.Ges.d. Staates Delaware) System zum tiefen Verstärkungslernen für Robotermanipulation
DE112018002565B4 (de) 2017-08-10 2021-07-01 Robert Bosch Gmbh System und Verfahren zum direkten Anlernen eines Roboters
DE112020000009T5 (de) 2019-01-14 2020-10-01 Mujin, Inc. Robotersystem mit Koordinationsmechanismus und Verfahren zum Betreiben dieses Systems
EP3771522A1 (de) 2019-07-30 2021-02-03 Siemens Aktiengesellschaft Verfahren und manipulationssystem zur manipulation eines objekts durch einen roboter mittels vektorfelder
DE102021103272A1 (de) 2020-02-14 2021-08-19 Nvidia Corporation Robotersteuerung unter Verwendung von Deep Learning
DE102020204551A1 (de) 2020-04-08 2021-10-14 Kuka Deutschland Gmbh Roboterprozess
DE102020207085A1 (de) 2020-06-05 2021-12-09 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern eines roboters und robotersteuereinheit

Also Published As

Publication number Publication date
JP2023070168A (ja) 2023-05-18
US20230141855A1 (en) 2023-05-11
CN116079762A (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
DE102018215057B4 (de) Maschinelles-Lernen-Vorrichtung, Robotersystem und maschinelles-Lernen-Verfahren
DE102014103738B3 (de) Visuelle fehlersuche bei roboteraufgaben
DE102019216229B4 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102010045529B4 (de) Interaktives Robotersteuerungssystem und Verwendungsverfahren
DE112018002565B4 (de) System und Verfahren zum direkten Anlernen eines Roboters
DE102020207085A1 (de) Verfahren zum steuern eines roboters und robotersteuereinheit
DE102020214231A1 (de) Verfahren zum steuern einer robotervorrichtung und robotersteuereinrichtung
DE102021204697B4 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102021204961B4 (de) Verfahren zur Steuerung einer Robotervorrichtung
DE102020212658A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102020214633A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102019216560A1 (de) Verfahren und Vorrichtung zum Trainieren von Manipulationsfertigkeiten eines Robotersystems
DE102020209685A1 (de) Verfahren zum steuern einer robotervorrichtung und robotervorrichtungssteuerung
DE102020210823A1 (de) Maschinen-Steueranordnung
DE102020214300A1 (de) Vorrichtung und verfahren zum trainieren eines maschinellen lernmodells zum erkennen einer objekttopologie eines objekts aus einem bild des objekts
DE102020211648A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102020208211A1 (de) Vorrichtungen und Verfahren zum Trainieren eines maschinellen Lernmodells zum Erkennen einer Objekttopologie eines Objekts aus einem Bild des Objekts
DE102021212494A1 (de) Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung
DE102021210533A1 (de) Einrichtung und Verfahren zum Steuern eines Agenten
DE102020200165B4 (de) Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
DE102022201116A1 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102020214177A1 (de) Vorrichtung und Verfahren zum Trainieren einer Steuerungsstrategie mittels bestärkendem Lernen
DE102019201045B4 (de) Verfahren, Vorrichtung und Computerprogramm zum Ermitteln einer Aktion oder Trajektorie eines Roboters
DE102020211053A1 (de) Annotationsvorrichtung
DE102020214301A1 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division