DE102022202143A1 - Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe - Google Patents

Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe Download PDF

Info

Publication number
DE102022202143A1
DE102022202143A1 DE102022202143.6A DE102022202143A DE102022202143A1 DE 102022202143 A1 DE102022202143 A1 DE 102022202143A1 DE 102022202143 A DE102022202143 A DE 102022202143A DE 102022202143 A1 DE102022202143 A1 DE 102022202143A1
Authority
DE
Germany
Prior art keywords
robot
target
image data
task
data item
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
DE102022202143.6A
Other languages
English (en)
Inventor
Oren Spector
Dotan Di Castro
Vladimir TCHUIEV
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 DE102022202143.6A priority Critical patent/DE102022202143A1/de
Priority to CN202310212657.3A priority patent/CN116690555A/zh
Priority to US18/185,684 priority patent/US20230311331A1/en
Publication of DE102022202143A1 publication Critical patent/DE102022202143A1/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/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/02Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
    • B25J9/023Cartesian coordinate type
    • 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/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/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/092Reinforcement learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40032Peg and hole insertion, mating and joining, remote center compliance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40033Assembly, microassembly

Abstract

Gemäß verschiedenen Ausführungsformen wird ein Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe beschrieben, umfassend das Erfassen, für jedes Ziel einer Abfolge von Zielen, die mindestens ein Zwischenziel der Aufgabe und ein endgültiges Ziel einer Aufgabe umfasst, eines Zielbilddatenelements, welches mindestens ein Zielbild aus einer Perspektive eines Endeffektors des Roboters an einer jeweiligen Zielposition des Roboters umfasst, und nacheinander gemäß der Abfolge von Zielen für jedes Ziel in der Reihenfolge, Erfassen, für das Ziel, eines Ursprungsbilddatenelements, Zuführen des Ursprungsbilddatenelements und der Zielbilddaten zu einem maschinellen Lernmodell, das zum Ableiten einer Delta-Bewegung zwischen der aktuellen Ursprungsposition und der Zielposition konfiguriert ist, und Steuern des Roboters zur Bewegung gemäß der Delta-Bewegung.

Description

  • Stand der Technik
  • Die vorliegende Offenbarung betrifft Vorrichtungen und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe.
  • Die Montage, wie etwa die Montage elektrischer Leitungen, ist eine der häufigsten manuellen Tätigkeiten in der Industrie. Beispiele sind die Montage von Schalttafeln und die Montage von Schaltanlagen in Gehäusen. Komplizierte Montageprozesse lassen sich in der Regel als eine Abfolge von zwei Haupttätigkeiten beschreiben: Greifen und Einstecken. Ähnliche Aufgaben fallen zum Beispiel bei der Kabelherstellung an, die typischerweise das Einstecken von Kabeln zur Validierung und Verifizierung umfasst.
  • Während für Greifaufgaben in der Industrie in der Regel geeignete Robotersteuerungsschemata zur Verfügung stehen, ist die Durchführung von Einsteck- oder „Stift-in-Loch“-Aufgaben durch Roboter in der Regel nur bei kleinen Teilmengen von Problemen anwendbar, hauptsächlich für solche, die einfache Formen an festen Stellen betreffen und bei denen Variationen nicht berücksichtigt werden. Außerdem sind die vorhandenen visuellen Techniken langsam, in der Regel etwa dreimal langsamer als menschliche Bediener.
  • Daher sind effiziente Verfahren zum Trainieren einer Steuerung für einen Roboter zur Durchführung von Aufgaben, wie einer Einsteckaufgabe, wünschenswert.
  • Offenbarung der Erfindung
  • Gemäß verschiedenen Ausführungsformen wird ein Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe bereitgestellt, das Folgendes umfasst: Erfassen, für jedes Ziel einer Abfolge von Zielen, die mindestens ein Zwischenziel der Aufgabe und ein endgültiges Ziel einer Aufgabe umfasst, eines Zielbilddatenelements, welches mindestens ein Zielbild aus einer Perspektive eines Endeffektors des Roboters an einer jeweiligen Zielposition des Roboters und nacheinander gemäß der Abfolge von Zielen für jedes Ziel in der Abfolge, Erfassen, für das Ziel, eines Ursprungsbilddatenelements, das mindestens ein Ursprungsbild aus der Perspektive des Endeffektors des Roboters an einer Ursprungsposition des Roboters, von der aus das Ziel erreicht werden soll, umfasst;
  • Zuführen des Ursprungsbilddatenelements und des Zielbilddatenelements für das Ziel zu einem maschinellen Lernmodell, das zum Ableiten einer Delta-Bewegung zwischen der aktuellen Ursprungsposition und der Zielposition konfiguriert ist;
  • Steuern des Roboters zur Bewegung gemäß der Delta-Bewegung; und Einstellen, es sei denn, das Ziel ist das endgültige Ziel, der Ursprungsposition des nächsten Ziels in der Abfolge von Zielen auf eine Position, die durch die Delta-Bewegung erreicht wird.
  • Das oben beschriebene Verfahren ermöglicht eine effiziente Robotersteuerung für Mehrschrittaufgaben durch Erfassen von Bildern für gewünschte Zwischenziele und das endgültige Ziel und, für eine Ausgangsposition und erreichte Zwischenpositionen (beim Versuch, die Zwischenziele zu erreichen), entsprechende Zielbilddaten und für die Position erfasste Bilddaten für das maschinelle Lernmodell. So kann der Roboter nur (oder zumindest hauptsächlich) auf der Grundlage von Bilddaten gesteuert werden, und es sind keine weiteren Sensoren erforderlich.
  • Im Folgenden werden verschiedene Beispiele angeführt.
  • Beispiel 1 ist das Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe wie oben beschrieben.
  • Beispiel 2 ist das Verfahren von Beispiel 1, ferner umfassend das Trainieren des maschinellen Lernmodells, um Delta-Bewegungen aus Paaren von Bilddatenelementen abzuleiten, durch Sammeln eines Satzes primärer Trainingselemente, wobei jedes primäre Trainingselement ein Bilddatenelement umfasst, das mindestens ein Bild aus der Perspektive des Endeffektors an einer jeweiligen Position und einen Bewegungsvektor zum Bewegen des Endeffektors von der Position zu einer gewünschten Position umfasst, Erzeugen von sekundären Trainingselementen durch Auswählen, für jedes sekundäre Trainingselement, von zwei der primären Trainingselemente, wobei die Bilddatenelemente der primären Trainingselemente in das Trainingselement aufgenommen werden und eine Differenz zwischen den Bewegungsvektoren der primären Trainingselemente als Ground-Truth-Bewegungsvektor aufgenommen wird, und Trainieren des maschinellen Lernmodells unter Verwendung der sekundären Trainingselemente auf überwachte Weise.
  • Durch die Auswahl von Kombinationen von Bilddatenelementen und ihren assoziierten Bewegungsvektoren lässt sich leicht eine hohe Anzahl von Trainingselementen des maschinellen Lernmodells erzeugen, da alle möglichen Paare ausgewählt werden können. So kann eine hohe Dateneffizienz des Trainings erreicht werden.
  • Beispiel 3 ist das Verfahren von Beispiel 1 oder 2, wobei das maschinelle Lernmodell ein Encodernetzwerk umfasst, wobei das Verfahren das Zuführen des Ursprungsbilddatenelements und des Zielbildelements jeweils zu dem Encodernetzwerk und das Zuführen von Einbettungen des Ursprungsbilddatenelements und des Zielbildelements zu einem neuronalen Netzwerk des maschinellen Lernmodells, das zum Ableiten der Delta-Bewegung aus den Einbettungen konfiguriert ist, umfasst.
  • Durch die Verwendung von Codierungen kann die Komplexität des neuronalen Netzwerks verringert werden, da es nur mit zwei Einbettungen und nicht mit zwei Bilddatenelementen arbeiten muss. Die Einbettungen für das Ursprungsbilddatenelement und das Zieldatenelement werden von demselben Encodernetzwerk erzeugt, das unabhängig von dem neuronalen Netzwerk trainiert werden kann, um eine Überanpassung zu vermeiden. Das neuronale Netzwerk zur Ableitung der Delta-Bewegung kann dann unter Verwendung einer geringen Menge von Trainingsdaten trainiert werden.
  • Beispiel 4 ist das Verfahren nach einem der Beispiele 1 bis 3, umfassend das Erfassen des Ursprungsbilddatenelements und des Zielbilddatenelements, sodass diese jeweils zwei Bilder umfassen, wobei die Bilder für dieselbe Position des Endeffektors des Roboters von zwei unterschiedlichen, am Endeffektor angebrachten Kameras aufgenommen werden.
  • Mit zwei Kameras (die z. B. auf gegenüberliegenden Seiten einer Greiferebene des Endeffektors angeordnet sind) kann das Problem der Missverständlichkeit bei nur einem Bild umgangen und es können Tiefeninformationen extrahiert werden, und gleichzeitig kann auf der gesamten Einstecktrajektorie eine Verdeckung vermieden werden (wenn die Sicht einer Kamera verdeckt ist, hat die andere Kamera freie Sicht). Zum Beispiel ist jede Kamera in einem 45-Grad-Winkel in Bezug auf ihre jeweilige Fingeröffnung positioniert, was eine gute Sicht auf die Szene und das Objekt zwischen den Fingern ermöglicht.
  • Beispiel 5 ist das Verfahren aus Beispiel 1, umfassend das Steuern des Roboters für eine Aufgabe des Einsteckens eines Objekts in einen Einsatz und das Manipulieren des Objekts beim Einstecken in den Einsatz, wobei das Erfassen des Zielbildelements für mindestens ein Zwischenziel der Aufgabe das Aufnehmen des mindestens einen Zielbildes durch Greifen eines Referenzobjekts, das in den Einsatz passt, durch den Roboter, das Bringen des Roboters in eine Position, sodass das Referenzobjekt in den Einsatz eingesteckt wird, und das Aufnehmen des mindestens einen Zielbildes an der Position umfasst.
  • Die Zieldaten können daher einfach durch die Aufnahme von Bildern der Sicht, die der Endeffektor hat (z. B. von Objekt und Einsatz), wenn das endgültige Ziel oder ein Zwischenziel der Aufgabe erreicht ist, erzeugt werden. Die Zieldaten können einmal vor der Durchführung der Aufgabe zusammengetragen und später mehrere Male als Ziel in verschiedenen Steuerszenarien verwendet werden.
  • Beispiel 6 ist das Verfahren nach einem der Beispiele 1 bis 5, wobei das Erfassen des Zielbildelements für ein weiteres Zwischenziel der Aufgabe oder das endgültige Ziel der Aufgabe das Aufnehmen des mindestens einen Zielbildes durch Greifen des Referenzobjekts, das in den Einsatz passt, durch den Roboter, das Bringen des Roboters in eine Position, sodass das Referenzobjekt in den Einsatz eingesteckt wird, das Drehen des Objekts und das Aufnehmen des mindestens einen Zielbildes umfasst.
  • So können zum Beispiel für eine Aufgabe wie das Öffnen eines Schlosses, die mehrere Schritte umfasst, bei denen sich das Objekt an der gleichen Position befindet, Zielbilddatenelemente erzeugt werden, und der Roboter kann die Aufgabe durchführen.
  • Beispiel 7 ist eine Robotersteuerung, die dazu konfiguriert ist, ein Verfahren nach einem der Beispiele 1 bis 6 durchzuführen.
  • Beispiel 8 ist ein Roboter, der eine Robotersteuerung gemäß Beispiel 7 und einen Endeffektor mit mindestens einer Kamera, die zum Erfassen des mindestens einen Ursprungsbilds konfiguriert ist, umfasst.
  • Beispiel 9 ist ein Computerprogramm, das Anweisungen umfasst, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Beispiele 1 bis 6 durchführt.
  • Beispiel 10 ist ein computerlesbares Medium, das Anweisungen speichert, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Beispiele 1 bis 6 durchführt.
  • Es sei angemerkt, dass die im Zusammenhang mit dem Roboter beschriebenen Ausführungsformen und Beispiele analog auch für das Verfahren zur Steuerung eines Roboters gelten und umgekehrt.
  • In den Zeichnungen beziehen sich im Allgemeinen überall in den verschiedenen Ansichten ähnliche Bezugszeichen auf die gleichen Teile. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, stattdessen wird der Schwerpunkt allgemein auf die Veranschaulichung der Prinzipien der Erfindung gelegt. In der folgenden Beschreibung werden verschiedene Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben, wobei gilt:
    • 1 zeigt einen Roboter.
    • 2 zeigt einen Roboter-Endeffektor im Detail.
    • 3 veranschaulicht das Training eines Encodernetzwerkes gemäß einer Ausführungsform.
    • 4 zeigt die Bestimmung einer Delta-Bewegung aus einem Bilddatenelement und einem Krafteingang.
    • 5 zeigt die Bestimmung einer Delta-Bewegung aus zwei Bilddatenelementen.
    • 6 veranschaulicht ein Beispiel für eine Mehrschritteinsteckaufgabe.
    • 7 zeigt ein Flussdiagramm, das ein Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe veranschaulicht.
  • Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die veranschaulichend spezifische Einzelheiten und Aspekte dieser Offenbarung zeigen, in denen die Erfindung umgesetzt werden kann. Andere Aspekte können genutzt werden und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da manche Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
  • Im Folgenden werden verschiedene Beispiele ausführlicher beschrieben.
  • 1 zeigt einen Roboter 100.
  • Der Roboter 100 beinhaltet einen Roboterarm 101, zum Beispiel einen Industrieroboterarm zum Handhaben oder Montieren eines Arbeitsstücks (oder eines oder mehrerer anderer Objekte). Der Roboterarm 101 beinhaltet Manipulatoren 102, 103, 104 und eine Basis (oder Stütze) 105, mittels der die Manipulatoren 102, 103, 104 gestützt werden. Der Begriff „Manipulator“ bezieht sich auf die beweglichen Bauteile des Roboterarms 101, deren Betätigung eine physische Interaktion mit der Umgebung ermöglicht, z. B. um eine Aufgabe durchzuführen. Zur Steuerung beinhaltet der Roboter 100 eine (Roboter-) Steuerung 106, die zum Implementieren der Interaktion mit der Umgebung gemäß einem Steuerprogramm konfiguriert ist. Das letzte Bauteil 104 (das am weitesten von der Stütze 105 entfernt ist) der Manipulatoren 102, 103, 104 wird auch als der Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge beinhalten, wie etwa einen Schweißbrenner, ein Greifinstrument, ein Lackiergerät oder dergleichen.
  • Die anderen Manipulatoren 102, 103 (die sich näher an der Stütze 105 befinden) können eine Positionierungsvorrichtung bilden, sodass, zusammen mit dem Endeffektor 104, der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende bereitgestellt ist. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm bereitstellen kann (möglicherweise mit einem Werkzeug an seinem Ende).
  • Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 beinhalten, die die Manipulatoren 102, 103, 104 miteinander und mit der Stütze 105 verbinden. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, die jeweils eine drehbare Bewegung (d. h. Drehbewegung) und/oder translatorische Bewegung (d. h. Verlagerung) für assoziierte Manipulatoren relativ zueinander bereitstellen können. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktoren initiiert werden, die durch die Steuerung 106 gesteuert werden.
  • Der Ausdruck „Aktor“ kann als eine Komponente verstanden werden, die als Reaktion auf ihren Antrieb zum Bewirken eines Mechanismus oder Prozesses ausgebildet ist. Der Aktor kann durch die Steuerung 106 erstellte Anweisungen (die sogenannte Aktivierung) in mechanische Bewegungen implementieren. Der Aktor, z. B. ein elektromechanischer Wandler, kann dazu konfiguriert sein, als Reaktion auf seinen Antrieb elektrische Energie in mechanische Energie umzuwandeln.
  • Der Ausdruck „Steuerung“ kann als ein beliebiger Typ von logikimplementierender Entität verstanden werden, die zum Beispiel eine Schaltung und/oder einen Prozessor beinhalten kann, die/der in der Lage ist, in einem Speicherungsmedium gespeicherte Software, Firmware oder eine Kombination davon auszuführen, und die/der Anweisungen, z. B. im vorliegenden Beispiel für einen Aktor, ausstellen kann. Die Steuerung kann zum Beispiel durch Programmcode (z. B. Software) konfiguriert werden, um den Betrieb eines Systems, eines Roboters im vorliegenden Beispiel, zu steuern.
  • Im vorliegenden Beispiel umfasst die Steuerung 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, in dem Code und Daten gespeichert sind, gemäß denen der Prozessor 110 den Roboterarm 101 steuert. Gemäß verschiedenen Ausführungsformen steuert die Steuerung 106 den Roboterarm 101 auf Basis eines maschinellen Lernmodells 112, das im Speicher 111 gespeichert ist.
  • Gemäß verschiedenen Ausführungsformen ist das maschinelle Lernmodell 112 dazu konfiguriert und trainiert, dass der Roboter 100 eine Einsteckaufgabe (z. B. Stift in Loch) durchführen kann, zum Beispiel das Einstecken eines Steckers 113 in eine entsprechende Buchse 114. Dazu nimmt die Steuerung 106 mittels der Kameras 117, 119 Bilder des Steckers 113 und der Buchse 114 auf. Der Stecker 113 ist zum Beispiel ein USB(Universal Serial Bus)-Stecker oder kann auch ein Netzstecker sein. Es sei angemerkt, dass, wenn der Stecker mehrere Stifte aufweist, wie etwa ein Netzstecker, jeder Stift als einzusetzendes Objekt betrachtet werden kann (wobei der Einsatz ein entsprechendes Loch ist). Alternativ kann der gesamte Stecker als das einzusteckende Objekt gesehen werden (wobei der Einsatz eine Steckdose ist). Es ist zu beachten, dass (je nachdem, was als Gegenstand betrachtet wird) das Objekt 113 nicht unbedingt vollständig in den Einsatz eingesteckt wird. Wie im Falle des USB-Steckers gilt der USB-Stecker als eingesteckt, wenn der Metallkontaktteil 116 in der Buchse 114 eingesteckt ist.
  • Die Robotersteuerung zur Durchführung einer Stift-in-Loch-Aufgabe enthält in der Regel zwei Hauptphasen: Suchen und Einstecken. Während der Suche wird die Buchse 114 identifiziert und lokalisiert, um die für das Einstecken des Steckers 113 erforderlichen wesentlichen Informationen zu erhalten.
  • Die Suche nach einem Einsatz kann auf Sicht- oder Blindstrategien beruhen, die zum Beispiel spiralförmige Pfade beinhalten. Visuelle Techniken hängen stark von der Lage der Kameras 117, 119 und der Platte 118 (in der die Buchse 114 in der Plattenoberfläche 115 platziert ist) sowie von Hindernissen ab und sind in der Regel etwa dreimal langsamer als menschliche Bediener. Aufgrund der Einschränkungen visueller Verfahren kann die Steuerung 106 Kraft-Drehmoment-Rückmeldungen und haptische Rückmeldungen berücksichtigen, entweder ausschließlich oder in Kombination mit visuellen Informationen.
  • Das Konstruieren eines Roboters, der verschiedene Objekte (z. B. Stecker, Motorzahnräder) zuverlässig einsteckt, ist eine große Herausforderung bei der Entwicklung von Fertigungs-, Inspektions- und Heimservice-Robotern. Die Minimierung der Aktionszeit, die Maximierung der Zuverlässigkeit und die Minimierung des Kontakts zwischen dem gegriffenen Objekt und der Zielkomponente sind aufgrund der damit einhergehenden Unsicherheiten in Bezug auf Abtastung, Steuerung, Empfindlichkeit gegenüber angewandten Kräften und Verdeckungen schwierig.
  • Gemäß verschiedenen Ausführungsformen wird ein dateneffizienter, sicherer und überwachter Ansatz zum Erfassen einer Roboterstrategie bereitgestellt. Dieser ermöglicht das Erlernen einer Steuerungsstrategie, insbesondere für eine Mehrschritteinsteckaufgabe, mit wenigen Datenpunkten, indem kontrastive Methodiken und One-Shot-Lerntechniken genutzt werden.
  • Gemäß verschiedenen Ausführungsformen umfasst das Training und/oder die Robotersteuerung eines oder mehreres aus Folgendem:
    1. 1) Verwendung von zwei Kameras, um das Problem der Missverständlichkeit bei nur einem Bild zu vermeiden und um Tiefeninformationen zu extrahieren. Dies ermöglicht insbesondere, dass die Berührung der Buchsenoberfläche 115 beim Einstecken des Objekts 113 nicht mehr erforderlich ist.
    2. 2) Integration von kontrastivem Lernen, um die Menge der gelabelten Daten zu reduzieren.
    3. 3) Ein Beziehungsnetzwerk, das One-Shot-Lernen und Mehrschritteinstecken ermöglicht.
    4. 4) Mehrschritteinstecken unter Verwendung dieses Beziehungsnetzwerks.
  • 2 zeigt einen Roboter-Endeffektor 201 im Detail.
  • Der Endeffektor 201 entspricht zum Beispiel dem Endeffektor 105 des Roboterarms 101, z. B. einem Roboterarm mit sechs Freiheitsgraden (Degrees of Freedom, DoF). Gemäß verschiedenen Ausführungsformen weist der Roboter zwei sensorische Eingänge auf, die die Steuerung 106 zur Steuerung des Roboterarms 101 verwenden kann. Der erste ist für die stereoskopische Wahrnehmung, die von zwei (siehe Punkt 1 oben) Handgelenkkameras 202 bereitgestellt wird, die zum Beispiel in einem Winkel von 45° geneigt und auf einen Punkt zwischen den Endeffektor-Fingern (EEF) 203 fokussiert sind.
  • Die Bilder 205 und 206 sind Beispiele für Bilder, die von der ersten Kamera bzw. der zweiten Kamera für eine Position des Endeffektors 201 aufgenommen wurden.
  • Im Allgemeinen ist jede Kamera 202 so ausgerichtet, dass die aufgenommenen Bilder beispielsweise einen Teil (hier einen Pin 207) eines durch den Endeffektor 201 gegriffenen Objekts 204, das eingesteckt werden soll, und einen Bereich darum herum zeigen, sodass beispielsweise der Einsatz 208 sichtbar ist. Es sei angemerkt, dass sich der Einsatz hier auf das Loch für den Pin bezieht, er kann sich aber auch auf die Löcher für die Pins sowie die Öffnung für den zylindrischen Teil des Steckers beziehen. Das Einstecken eines Objekts in einen Einsatz bedeutet also nicht unbedingt, dass das Objekt vollständig in den Einsatz eingesteckt wird, sondern nur ein oder mehrere Teile.
  • Ausgehend von einer Höhe H, einer Breite W und drei Kanälen für jedes Kamerabild wird ein Bilddatenelement für eine aktuelle (oder ursprüngliche) Position des vom Roboter bereitgestellten Arms als Img ∈ ℝH×W×6 (mit sechs Kanälen, da es die Bilder von beiden Kameras 202 beinhaltet) angegeben. Der zweite sensorische Eingang ist ein Krafteingang, d. h. Messungen eines Kraftsensors 120, der ein Moment und eine Kraft misst, die der Endeffektor 105, 201 erfährt, wenn er das Objekt 113 auf eine Ebene (z. B. die Oberfläche 115 der Platte 118) drückt. Die Kraftmessung kann durch den Roboter oder durch einen externen Kraft- und Drehmomentsensor vorgenommen werden. Der Krafteingang umfasst zum Beispiel eine Kraftangabe F ( ƒ x , ƒ y , ƒ z ) 3
    Figure DE102022202143A1_0001
    und eine Momentangabe M = (mx, my, mz) ∈ ℝ3.
  • Für die folgenden Erläuterungen wird die Beobachtung des Roboters für eine aktuelle Position als Obs = (Img; F; M) angegeben. Um die Kontaktkräfte exakt zu erfassen und flüssige Bewegungen zu erzeugen, kann eine Hochfrequenzkommunikation (Echtzeitdatenaustausch) zwischen den Sensorvorrichtungen (Kameras 202 und Kraftsensor 120) und der Steuerung 106 verwendet werden.
  • Zum Beispiel werden Kraft- und Dreh(moment)messungen mit 500 Hz abgetastet und Befehle an die Aktoren mit 125 Hz gesendet.
  • Die Endeffektor-Finger 203 bilden einen Greifer, dessen Stellung als L angegeben wird.
  • Insbesondere ist L [ L pos , L ang ] ,
    Figure DE102022202143A1_0002
    wobei L pos ( x 0 , y 0 , z 0 )
    Figure DE102022202143A1_0003
    die Lage des Greifers und L ang ( θ 0 x , θ 0 y , θ 0 z )
    Figure DE102022202143A1_0004
    seine Stellung ist. Die Aktion des Roboters im kartesischen Raum wird durch (Δx, Δy, Δz, Δθx, Δθy, Δθz) definiert, wobei Δx, Δy und Δz die gewünschten Korrekturen sind, die für den EEF im kartesischen Raum in Bezug auf die aktuelle Lage erforderlich sind. Diese Roboteraktion gibt die Bewegung des Roboters von einer aktuellen (oder ursprünglichen) Stellung (insbesondere einer aktuellen Position) zu einer Zielstellung (insbesondere einer Zielposition) an.
  • Durch das Zwei-Kamera-Schema, d. h. dass für jede in Betracht gezogene Roboterposition ein Bilddatenelement vorhanden ist, das zwei Bilder umfasst, kann der Abstand zwischen zwei in den Bildern gezeigten Punkten gewonnen werden, d. h. es kann das Problem der Missverständlichkeit der visuellen Eindrücke vermieden werden, das auftritt, wenn versucht wird, den Abstand zwischen zwei Punkten in Weltkoordinaten ohne Tiefeninformationen unter Verwendung eines einzigen Bildes zu gewinnen.
  • Gemäß verschiedenen Ausführungsformen wird (z. B. von der Steuerung 106) das Rückwärtslernen verwendet, bei dem die Bilder der zwei Kameras 202 verwendet werden, um Trainingsdaten (insbesondere Bilder) nicht nur nach dem Berühren der Oberfläche 115, sondern auch entlang der Bewegungstrajektorie zu sammeln. Das bedeutet, dass zum Sammeln eines Trainingsdatenelements die Steuerung 106 den Roboterarm in seiner endgültigen (Ziel-)Position Lfinal platziert, d. h. wenn der Stecker 116 in die Buchse 114 eingesteckt wird (oder in ähnlicher Weise für jegliches Zwischenziel, für das das maschinelle Lernmodell 112 trainiert werden soll). (Es sei angemerkt, dass unter Verwendung der Kameras 202 ein Zielbilddatenelement in dieser Position erfasst werden kann, das gemäß verschiedenen Ausführungsformen, wie unten beschrieben, verwendet wird). Für jedes Trainingsdatenelement werden dann zwei Punkte aus der Wahrscheinlichkeitsverteilung (z. B. einer Normalverteilung) abgetastet: einer ist Thigh, der an einem zufälligen Ort über der Buchse positioniert ist, und der zweite ist Tlow, der zufällig um die Höhe der Buchse herum positioniert ist.
  • Eine Korrektur für dieses Trainingsdatenelement wird durch Δ correction L final T random
    Figure DE102022202143A1_0005
    definiert, wobei Trandom ein hoher oder tiefer Punkt ist (d. h. Thigh oder Tlow). Ein Trainingsdatensatz, als D angegeben, wird auf der Grundlage eines Satzes von Trainingsaufgaben τ { τ i } i = 1 N τ
    Figure DE102022202143A1_0006
    gebildet, wobei es für jede Aufgabe τi eine entsprechende L final i
    Figure DE102022202143A1_0007
    gibt. Für jede Aufgabe wird ein randomisierter Satz von Punkten { T τ i , j } j = 1 N τ i
    Figure DE102022202143A1_0008
    erzeugt, der die Start- und Endpunkte für die Aufgaben und die Ausgangszufallspunkte D τ i τ { D τ i , j } j = 1 N τ i
    Figure DE102022202143A1_0009
    (wobei j = hoch, niedrig ist) und D τ i , j [ L f i n a l i , T τ i , j ]
    Figure DE102022202143A1_0010
    ergibt. Für jedes Dτi,j wird eine entsprechende Korrektur Δ τ i , j L final i T τ i , j
    Figure DE102022202143A1_0011
    definiert. Algorithmus 1 zeigt ein detailliertes Beispiel für die Datensammlung und das allgemeine Rückwärtslernen für eine Aufgabe τ.
  • Figure DE102022202143A1_0012
  • Gemäß Algorithmus 1 werden Kraftsensordaten erfasst. Dies ist gemäß verschiedenen Ausführungsformen nicht notwendig, insbesondere bei solchen, die mit Zielbilddatenelementen arbeiten, wie weiter unten unter Bezugnahme auf 5 beschrieben.
  • Gemäß verschiedenen Ausführungsformen umfasst das maschinelle Lernmodell 112 mehrere Komponenten, von denen eine ein Encodernetzwerk ist, das die Steuerung 106 zur Bestimmung einer Codierung für jedes Bilddatenelement Img verwendet.
  • 3 veranschaulicht das Training eines Encodernetzwerkes 301 gemäß einer Ausführungsform.
  • Das Encodernetzwerk 301 ist zum Beispiel ein konvolutionales neuronales Netzwerk, z. B. mit einer ResNet18-Architektur.
  • Das Encodernetzwerk 301 (das die Funktion φ realisiert) wird unter Verwendung eines kontrastiven Verlusts und von einem oder beidem von einem Delta-Strategie-Verlust und einem Beziehungsdatenverlust trainiert, also beispielsweise gemäß dem folgenden Verlust: Verlust = Icontrastive + Idelta + Irelation .
    Figure DE102022202143A1_0013
  • Diese Verlustkomponenten werden im Folgenden beschrieben.
  • Kontrastives Lernen, d. h. Training auf der Grundlage von kontrastiven Verlusten, ist ein Rahmen für das Lernen von Darstellungen, die Ähnlichkeits- oder Unähnlichkeitsbedingungen in einem Datensatz befolgen, die auf positive bzw. negative Labels abgebildet werden. Ein möglicher kontrastiver Lernansatz ist die Instanzdiskriminierung, bei der ein Beispiel und ein Bild ein positives Paar sind, wenn sie Datenaugmentierungen derselben Instanz sind, und andernfalls ein negatives Paar sind. Eine zentrale Herausforderung
    beim kontrastiven Lernen ist die Wahl der Negativbeispiele, da sie die Qualität der erlernten zugrunde liegenden Darstellungen beeinflussen kann.
  • Gemäß verschiedenen Ausführungsformen wird das Encodernetzwerk 301 (z. B. durch die Steuerung 106 oder durch eine externe Vorrichtung, die später in der Steuerung 106 gespeichert wird) unter Verwendung einer kontrastiven Technik trainiert, sodass es relevante Merkmale für die jeweilige Aufgabe ohne spezifische Labels lernt. Ein Beispiel ist der InfoNCE-Verlust (NCE: Noise-Contrastive Examination). Dabei wird durch Stapeln von zwei Bildern der zwei Kameras 202 zu einem Bilddatenelement 302 eine Tiefenregistrierung des Steckers 113 und der Buchse 114 erhalten. Diese Tiefeninformationen werden verwendet, um das Bilddatenelement auf verschiedene Weise zu augmentieren. Aus dem ursprünglichen (d. h. nicht augmentierten) Bilddatenelement und einer oder mehreren auf diese Weise erhaltenen Augmentierungen werden Paare von Bilddatenelementen abgetastet, wobei ein Element des Paares dem Encodernetzwerk 301 und das andere einer anderen Version 303 des Encodernetzwerks zugeführt wird. Die andere Version 303 realisiert die Funktion φ', die beispielsweise die gleichen Parameter wie das Encodernetzwerk 301 aufweist und unter Verwendung einer Polyak-Mittelung gemäß φ' = φ' + (1 - m) φ mit m = 0,999 aktualisiert wird (wobei φ, φ' verwendet wurden, um die Gewichtung der beiden Encodernetzwerkversionen 301, 302 darzustellen).
  • Die beiden Encodernetzwerkversionen 301, 302 geben jeweils eine Darstellung (d. h. Einbettung) der Größe L für das Eingangsdatenelement 302 aus (d. h. eine 2 x L Ausgabe des Paares). Führt man dies bei einem Stapel von N Bilddatenelementen durch (d. h. man bildet ein Paar von Augmentierungen oder Ursprung und Augmentierung für jedes Bilddatenelement), d. h. für Trainingseingangsbilddaten der Größe N × 6 × H × W ergibt dies N Paare von Darstellungen, die durch die zwei Encodernetzwerkversionen 301, 302 ausgegeben werden (d. h. Darstellungsausgangsdaten der Größe 2 × N × L). Unter Verwendung dieser N Paare von Darstellungen wird der kontrastive Verlust des Encodernetzwerks 301 berechnet, indem positive Paare und negative Paare aus den in den Paaren enthaltenen Darstellungen gebildet werden. Dabei sind zwei Darstellungen ein positives Paar, wenn sie aus dem gleichen Eingangsdatenelement 302 erzeugt wurden, und ein negatives Paar, wenn sie aus unterschiedlichen Eingangsdatenelementen 302 erzeugt wurden. Das bedeutet, dass ein positives Paar zwei Augmentierungen desselben Ursprungsbilddatenelements enthält oder ein Ursprungsbilddatenelement und eine Augmentierung davon enthält. Alle anderen Paare sind negative Paare.
  • Zur Bestimmung des kontrastiven Verlustes 304 wird eine Ähnlichkeitsfunktion sim(.) verwendet, die die Gleichheit (oder den Abstand zwischen zwei Einbettungen) misst. Sie kann den euklidischen Abstand (im latenten Raum, d. h. im Raum der Einbettungen) verwenden, aber es können auch kompliziertere Funktionen verwendet werden, z. B. unter Verwendung eines Kernels. Der kontrastive Verlust ist dann zum Beispiel gegeben durch die Summe über i, j von l i , j = log e x p ( s i m ( z i , z j ) / τ ) k = 1   [ k i ] 2 N exp ( sim ( z i , z k ) / τ )
    Figure DE102022202143A1_0014
    wobei zi die Einbettungen sind. τ ist hier ein Temperaturnormalisierungsfaktor (nicht zu verwechseln mit der Aufgabe τ, die oben verwendet wird).
  • 4 zeigt die Bestimmung einer Delta-Bewegung 405 aus einem Bilddatenelement 401 und einem Krafteingang 402.
  • Die Delta-Bewegung Δ = (Δx Δy, 0, Δθx Δθy Δθz) ist die Roboteraktion Δ = (Δx, Δy, Δz, Δθx, Δθy Δθz) ohne die Bewegung in z-Richtung, da die Steuerung 106 gemäß verschiedenen Ausführungsformen die Bewegung in z-Richtung Δz unabhängig von anderen Informationen steuert, z. B. unter Verwendung der Höhe des Tisches, auf dem der Sockel 114 platziert ist, aus dem Vorwissen oder von der Tiefenkamera.
  • In diesem Fall erzeugt das Encodernetzwerk 403 (entspricht dem Encodernetzwerk 301) eine Einbettung für das Bilddatenelement. Die Einbettung wird zusammen mit dem Krafteingang 402 an ein neuronales Netzwerk 404 weitergeleitet, das die Delta-Bewegung 405 bereitstellt. Bei dem neuronalen Netzwerk 404 handelt es sich beispielsweise um ein konvolutionales neuronales Netzwerk, das als Delta-Netzwerk bezeichnet wird und eine Delta-(Steuerungs-)Strategie implementieren soll.
  • Der Delta-Verlust Idelta zum Trainieren des Encodernetzwerks 403 (sowie des Delta-Netzwerks 404) wird bestimmt, indem man Ground-Truth-Delta-Bewegungslabels für Trainingseingangsdatenelemente hat (die ein Bilddatenelement 401 und einen Krafteingang 402 umfassen, d. h. das, was oben insbesondere in Algorithmus 1 mit Obs = (Img; F; M) angegeben wurde). Der durch den Algorithmus 1 erzeugte Trainingsdatensatz D beinhaltet die Trainingseingangsdatenelemente Obs und die Ground-Truth-Labels für den Delta-Verlust.
  • 5 zeigt die Bestimmung einer Delta-Bewegung 505 aus zwei Bilddatenelementen 501, 502.
  • In diesem Fall erzeugt das Encodernetzwerk 503 (entspricht dem Encodernetzwerk 301) eine Einbettung für jedes Bilddatenelement 501, 502. Die Einbettungen werden an ein neuronales Netzwerk 504 weitergeleitet, das die Delta-Bewegung 505 bereitstellt. Bei dem neuronalen Netzwerk 504 handelt es sich beispielsweise um ein konvolutionales neuronales Netzwerk, das als Beziehungsnetzwerk bezeichnet wird und eine Beziehungs-(Steuerungs-)Strategie implementieren soll.
  • Der Beziehungsverlust Irelation zum Trainieren des Encodernetzwerks 503 (sowie des Beziehungsnetzwerks 504) wird bestimmt, indem man für Paare von Bilddatenelementen 501, 502 Ground-Truth-Delta-Bewegungslabels hat. Das Ground-Truth-Delta-Bewegungslabel für ein Paar von Bilddatenelementen 501, 502 kann beispielsweise erzeugt werden, indem man die Differenz zwischen den Ground-Truth-Delta-Bewegungslabels (d. h. den Aktionen), die für die Bilddatenelemente in dem durch den Algorithmus 1 erzeugten Datensatz D enthalten sind, ermittelt.
  • Das bedeutet, dass für das Training mit dem Beziehungsverlust der Datensatz D verwendet wird, um die Delta-Bewegung zwischen zwei Bildern derselben Steckaufgabe, Imgi und Imgj, zu berechnen, wobei j ≠ k ist durch Berechnung der Ground-Truth
    durch die Differenz Δτk,j = Δτi,j Δτi,k. Falls Imgi und Imgj für dieses Training augmentiert werden, werden Augmentierungen verwendet, die konsistent sind.
  • Der Beziehungsverlust Irelation erleichtert das One-Shot-Lernen, ermöglicht das Mehrschritteinstecken und verbessert die Ausnutzung der gesammelten Daten.
  • Wenn sie trainiert sind, implementieren das Encodernetzwerk 403 und das Delta-Netzwerk 404, die wie anhand 4 beschrieben verwendet werden, um aus einem Bilddatenelement 401 und einem Krafteingang 402 eine Delta-Bewegung abzuleiten, die sogenannte Delta-(Steuerungs-)Strategie. In ähnlicher Weise implementieren das trainierte Encodernetzwerk 503 und das Beziehungsnetzwerk 504, die wie anhand von 5 beschrieben verwendet werden, um eine Delta-Bewegung aus einem Bilddatenelement 501 (für eine aktuelle Position) und einem Bilddatenelement 502 (für eine Zielposition) abzuleiten, die sogenannte Beziehungs-(Steuerungs-)Strategie.
  • Die Steuerung kann die Delta-Strategie oder die Beziehungsstrategie als Reststrategie πResidual in Kombination mit einer Hauptstrategie πMain verwenden. Für die Inferenz verwendet die Steuerung 106 also das Encodernetzwerk 403, 503 für die Delta-Strategie oder die Beziehungsstrategie. Dies kann je nach Anwendungsfall entschieden werden. Zum Beispiel wird für One-Shot- oder Mehrschritt-Einsteckaufgaben die Beziehungsstrategie (und die Beziehungsarchitektur gemäß 5) verwendet, da sie bei diesen Aufgaben besser verallgemeinert werden kann. Für andere Aufgaben wird die Delta-Strategie (und die Delta-Architektur aus 4) verwendet.
  • Im Anschluss an die Hauptstrategie approximiert die Steuerung 106 die Stelle des Lochs, d. h. sie lokalisiert zum Beispiel die Löcher, Buchsen, Gewinde usw. in der Szenerie, zum Beispiel anhand von Bildern, und verwendet zum Beispiel eine PD-Steuerung, um einer aus der Approximation berechneten Bahn zu folgen.
  • Sie aktiviert dann die Reststrategie, z. B. bei einem bestimmten R des Steckers 113 von der Oberfläche 115 und nimmt das eigentliche Einstecken gemäß der Reststrategie vor. Eine Aktion der Reststrategie ist eine Delta-Bewegung Δ = ( Δ x , Δ y ,0, Δ θ x , Δ θ y , Δ θ z ) .
    Figure DE102022202143A1_0015
  • Der Algorithmus 2 ist ein detailliertes Beispiel für dieses Vorgehen.
    Figure DE102022202143A1_0016
  • Gemäß verschiedenen Ausführungsformen können zur Verbesserung der Robustheit sowie zur Verallgemeinerung über Farbe und Form verschiedene Augmentierungen für Trainingsdatenelemente verwendet werden. Sowohl die Reihenfolge als auch die Eigenschaften jeder
    Augmentierung hat bzw. haben einen großen Einfluss auf die Verallgemeinerung. Für die visuelle Augmentierung (d. h. die Augmentierung von Trainingsbilddaten) kann dies für das Training auf der Grundlage des Delta-Verlusts und des Beziehungsverlusts eine Größenänderung, einen zufälligen Ausschnitt, Farbjitter, Verschiebung, Drehung, Löschen und
    zufällige Konvolution beinhalten. Für den kontrastiven Verlust sind beispielhafte Augmentierungen etwa zufällige Größenanpassungen des Ausschnitts, starke Verschiebung, starke Drehung und Löschung. Ähnliche Augmentierungen können für Trainingsdatenelemente innerhalb desselben Stapels verwendet werden. Bei der Kraftaugmentierung (d. h. der Augmentierung der Trainingskrafteingangsdaten) ist die Richtung der
    Vektoren (F, M), und nicht ihre Größe, in der Regel der wichtigere Faktor. Daher ist gemäß verschiedenen Ausführungsformen der Krafteingang 402 in das Delta-Netzwerk die Richtung der Kraft- und Momentvektoren. Diese können für das Training augmentiert werden (z. B. durch Jittern).
  • Wie oben erwähnt, kann die Beziehungsstrategie insbesondere für eine Mehrschrittaufgabe, z. B. Mehrschritt-Einstecken, verwendet werden. Es sei angemerkt, dass es bei Mehrschritteinsteckaufgaben, wie dem Verschließen einer Tür, in der Regel schwieriger ist, Trainingsdaten zu sammeln und zu überprüfen, dass jeder Schritt abgeschlossen werden kann.
  • Gemäß verschiedenen Ausführungsformen werden bei einer Mehrschrittaufgabe für jedes Ziel, einschließlich eines oder mehrerer Zwischenziele und eines endgültige Ziels, Bilder vorab gespeichert. Dann wird für jedes aktuell zu erreichende Ziel (abhängig von dem aktuellen Schritt, d. h. gemäß einer Abfolge von Zwischenzielen und, als letztes Element, dem endgültige Ziel) ein Bilddatenelement für die aktuelle Position aufgenommen (z. B. durch Aufnahme von Bildern von beiden Kameras 202) und zusammen mit dem Bild (oder den Bildern) für das Ziel in das Encodernetzwerk 503 eingespeist, und eine Delta-Bewegung wird durch das Beziehungsnetzwerk 504 wie mit Bezug auf 5 beschrieben abgeleitet.
  • 6 veranschaulicht ein Beispiel für eine Mehrschritteinsteckaufgabe.
  • Im Beispiel von 6, einer Aufgabe zum Verschließen einer Tür, besteht die Aufgabe aus drei
    Schritten ausgehend von einer Ausgangsposition 601: Einstecken des Schlüssels 602, Drehen des Schlosses 603 und dann Zurückdrehen 604. Für jeden Schritt wird ein Bild des Zustands mit den zwei (z. B. 45-Grad-) Kameras 202 aufgenommen und vorab gespeichert. Die Ausführung der Aufgabe folgt dem Algorithmus 2 mit der Beziehungsstrategie und einer Ähnlichkeitsfunktion, um zwischen den Schritten zu wechseln. So gilt zum Beispiel ein Zwischenziel als erreicht, wenn die Ähnlichkeit zwischen den aufgenommenen Bildern und den vorab gespeicherten Zielbildern für den aktuellen Schritt unter einem Schwellenwert liegt.
  • Auch wenn eine regelmäßige rückwärtige Datensammlung (z. B. nach Algorithmus 1) verwendet wird und die
    Verriegelungs- und Einsteckzustände selbst beim Training nicht erreicht werden (nur aufsuchende Zustände oberhalb oder Berührung der Lochoberfläche), kann die Steuerung 106 die
    Aufgabe auf diese Weise erfolgreich durchführen.
  • Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren wie in 7 veranschaulicht bereitgestellt.
  • 7 zeigt ein Flussdiagramm 700, das ein Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe veranschaulicht.
  • Bei 701 wird für jedes Ziel einer Abfolge von Zielen, die mindestens ein Zwischenziel der Aufgabe und ein endgültiges Ziel einer Aufgabe umfasst, ein Zielbilddatenelement, welches mindestens ein Zielbild aus einer Perspektive eines Endeffektors des Roboters an einer jeweiligen Zielposition des Roboters umfasst, erfasst.
  • Bei 702 wird nacheinander gemäß der Reihenfolge von Zielen für jedes Ziel in der Reihenfolge,
    für das Ziel ein Ursprungsbilddatenelement bei 703 erfasst, das mindestens ein Ursprungsbild aus der Perspektive des Endeffektors des Roboters an einer Ursprungsposition des Roboters, von der aus das Ziel erreicht werden soll, umfasst;
    das Ursprungsbilddatenelement und das Zielbilddatenelement für das Ziel bei 704 einem maschinellen Lernmodell zugeführt, das dazu konfiguriert ist, eine Delta-Bewegung zwischen der aktuellen Ursprungsposition und der Zielposition abzuleiten;
    der Roboter bei 705 so eingestellt, dass er sich entsprechend der Delta-Bewegung bewegt und,
    es sei denn, das Ziel ist das endgültige Ziel, die Ursprungsposition des nächsten Ziels in der Abfolge von Zielen bei 706 auf eine Position eingestellt, die durch die Delta-Bewegung erreicht wird.
  • Das Verfahren von 7 kann durch einen oder mehrere Computer durchgeführt werden, die eine oder mehrere Datenverarbeitungseinheiten beinhalten. Der Ausdruck „Datenverarbeitungseinheit“ kann als eine beliebige Art von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Beispielsweise können die Daten oder Signale gemäß mindestens einer (d. h. einer oder mehr als einer) spezifischen Funktion bearbeitet werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Mischsignalschaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentralverarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), ein programmierbares Gate-Array (FPGA), eine integrierte Schaltung oder eine beliebige Kombination davon beinhalten oder daraus gebildet werden. Jede andere Art der Implementierung der jeweiligen Funktionen kann auch als Datenverarbeitungseinheit oder Logikbeschaltung verstanden werden. Es versteht sich, dass ein oder mehrere der hierin ausführlich beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit über eine oder mehrere spezifische durch die Datenverarbeitungseinheit durchgeführte Funktionen ausgeführt (z. B. implementiert) werden kann.
  • Verschiedene Ausführungsformen können Bilddaten von verschiedenen visuellen Sensoren (Kameras) wie Video, Radar, LiDAR, Ultraschall, Wärmebild usw. empfangen und verwenden. Die Ausführungsformen können zum Trainieren eines maschinellen Lernsystems und zur autonomen Steuerung eines Roboters, z. B. eines Robotermanipulators, verwendet werden, um verschiedene Einsteckaufgaben in unterschiedlichen Szenarien zu erfüllen. Es sei angemerkt, dass das neuronale Netzwerk nach dem Training für eine Einsteckaufgabe für eine neue Einsteckaufgabe trainiert werden kann, was die Trainingszeit im Vergleich zum Training von Grund auf reduziert (Transfer-Lernfähigkeiten). Die Ausführungsformen sind insbesondere für die Steuerung und Überwachung der Ausführung von Manipulationsaufgaben, z. B. bei Montagebändern, anwendbar.
  • Gemäß einer Ausführungsform ist das Verfahren computer-implementiert.
  • Es werden hierin zwar spezifische Ausführungsformen veranschaulicht und beschrieben, aber es versteht sich für den Durchschnittsfachmann, dass eine Vielfalt an alternativen und/oder äquivalenten Implementierungen die gezeigten und beschriebenen spezifischen Ausführungsformen ersetzen kann, ohne dass vom Schutzbereich der vorliegenden Erfindung abgewichen wird. Diese Anmeldung soll jegliche Anpassungen oder Variationen der spezifischen hierin besprochenen Ausführungsformen abdecken. Daher wird beabsichtigt, dass diese Erfindung nur durch die Ansprüche und deren Äquivalente beschränkt wird.

Claims (10)

  1. Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe, umfassend: Erfassen, für jedes Ziel einer Abfolge von Zielen, die mindestens ein Zwischenziel der Aufgabe und ein endgültiges Ziel einer Aufgabe umfasst, eines Zielbilddatenelements, welches mindestens ein Zielbild aus einer Perspektive eines Endeffektors des Roboters an einer jeweiligen Zielposition des Roboters umfasst; nacheinander gemäß der Abfolge von Zielen für jedes Ziel in der Reihenfolge, Erfassen, für das Ziel, eines Ursprungsbilddatenelements, das mindestens ein Ursprungsbild aus der Perspektive des Endeffektors des Roboters an einer Ursprungsposition des Roboters, von der aus das Ziel erreicht werden soll, umfasst; Zuführen des Ursprungsbilddatenelements und des Zielbilddatenelements für das Ziel zu einem maschinellen Lernmodell, das zum Ableiten einer Delta-Bewegung zwischen der aktuellen Ursprungsposition und der Zielposition konfiguriert ist; Steuern des Roboters zur Bewegung gemäß der Delta-Bewegung; und Einstellen, es sei denn, das Ziel ist das endgültige Ziel, der Ursprungsposition des nächsten Ziels in der Abfolge von Zielen auf eine Position, die durch die Delta-Bewegung erreicht wird.
  2. Verfahren gemäß Anspruch 1, ferner umfassend das Trainieren des maschinellen Lernmodells, um Delta-Bewegungen aus Paaren von Bilddatenelementen abzuleiten, durch Sammeln eines Satzes primärer Trainingselemente, wobei jedes primäre Trainingselement ein Bilddatenelement umfasst, das mindestens ein Bild aus der Perspektive des Endeffektors an einer jeweiligen Position und einen Bewegungsvektor zum Bewegen des Endeffektors von der Position zu einer gewünschten Position umfasst; Erzeugen von sekundären Trainingselementen durch Auswählen, für jedes sekundäre Trainingselement, von zwei der primären Trainingselemente, wobei die Bilddatenelemente der primären Trainingselemente in das Trainingselement aufgenommen werden und eine Differenz zwischen den Bewegungsvektoren der primären Trainingselemente als Ground-Truth-Bewegungsvektor aufgenommen wird; und Training des maschinellen Lernmodells unter Verwendung der sekundären Trainingselemente auf überwachte Weise.
  3. Verfahren gemäß Anspruch 1 oder 2, wobei das maschinelle Lernmodell ein Encodernetzwerk umfasst, wobei das Verfahren das Zuführen des Ursprungsbilddatenelements und des Zielbildelements jeweils zu dem Encodernetzwerk und das Zuführen von Einbettungen des Ursprungsbilddatenelements und des Zielbildelements zu einem neuronalen Netzwerk des maschinellen Lernmodells, das zum Ableiten der Delta-Bewegung aus den Einbettungen konfiguriert ist, umfasst.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, umfassend das Erfassen des Ursprungsbilddatenelements und des Zielbilddatenelements, sodass diese jeweils zwei Bilder umfassen, wobei die Bilder für dieselbe Position des Endeffektors des Roboters von zwei unterschiedlichen, am Endeffektor angebrachten Kameras aufgenommen werden.
  5. Verfahren gemäß Anspruch 1, umfassend das Steuern des Roboters für eine Aufgabe des Einsteckens eines Objekts in einen Einsatz und das Manipulieren des Objekts beim Einstecken in den Einsatz, wobei das Erfassen des Zielbildelements für mindestens ein Zwischenziel der Aufgabe das Aufnehmen des mindestens einen Zielbildes durch Greifen eines Referenzobjekts, das in den Einsatz passt, durch den Roboter, das Bringen des Roboters in eine Position, sodass das Referenzobjekt in den Einsatz eingesteckt wird, und das Aufnehmen des mindestens einen Zielbildes an der Position umfasst.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei das Erfassen des Zielbildelements für ein weiteres Zwischenziel der Aufgabe oder das endgültige Ziel der Aufgabe das Aufnehmen des mindestens einen Zielbildes durch Greifen des Referenzobjekts, das in den Einsatz passt, durch den Roboter, das Bringen des Roboters in eine Position, sodass das Referenzobjekt in den Einsatz eingesteckt wird, das Drehen des Objekts und das Aufnehmen des mindestens einen Zielbildes umfasst.
  7. Robotersteuerung, die konfiguriert ist zur Durchführung eines Verfahrens einem der Ansprüche 1 bis 6.
  8. Roboter, umfassend eine Robotersteuerung gemäß Anspruch 7 und umfassend einen Endeffektor mit mindestens einer Kamera, die zum Erfassen des mindestens einen Ursprungsbilds konfiguriert ist.
  9. Computerprogramm, das Anweisungen umfasst, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren gemäß einem der Ansprüche 1 bis 6 durchführt.
  10. Computerlesbares Medium, das Anweisungen speichert, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren gemäß einem der Ansprüche 1 bis 6 durchführt.
DE102022202143.6A 2022-03-02 2022-03-02 Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe Granted DE102022202143A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102022202143.6A DE102022202143A1 (de) 2022-03-02 2022-03-02 Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
CN202310212657.3A CN116690555A (zh) 2022-03-02 2023-02-28 用于控制机器人执行任务的设备和方法
US18/185,684 US20230311331A1 (en) 2022-03-02 2023-03-17 Device and method for controlling a robot to perform a task

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022202143.6A DE102022202143A1 (de) 2022-03-02 2022-03-02 Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe

Publications (1)

Publication Number Publication Date
DE102022202143A1 true DE102022202143A1 (de) 2023-09-07

Family

ID=87571989

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022202143.6A Granted DE102022202143A1 (de) 2022-03-02 2022-03-02 Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe

Country Status (3)

Country Link
US (1) US20230311331A1 (de)
CN (1) CN116690555A (de)
DE (1) DE102022202143A1 (de)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69913106T2 (de) 1998-02-18 2004-08-26 Armstrong Healthcare Ltd. Verfahren und gerät zur roboterausrichtung
DE102019002065A1 (de) 2018-03-29 2019-10-02 Fanuc Corporation Maschinelle Lernvorrichtung, Robotersteuervorrichtung und Robotervisionssystem, das eine maschinelle Lernvorrichtung verwendet, und maschinelles Lernverfahren
DE112017007025T5 (de) 2017-02-09 2019-10-24 Mitsubishi Electric Corporation Positionssteuerungseinrichtung und positionssteuerungsverfahren
DE102019122790A1 (de) 2018-08-24 2020-02-27 Nvidia Corp. Robotersteuerungssystem
EP3515671B1 (de) 2017-06-19 2020-05-13 Google LLC Robotische greifvorhersage unter verwendung neuronaler netzwerke und geometriebewusster objektdarstellung
EP2915635B1 (de) 2014-03-07 2020-09-02 Seiko Epson Corporation Roboter, robotersystem, steuerungsvorrichtung und steuerungsverfahren
DE102019106458A1 (de) 2019-03-13 2020-09-17 ese-robotics GmbH Verfahren zur Ansteuerung eines Industrieroboters
DE102020119704A1 (de) 2019-08-01 2021-02-04 Fanuc Corporation Steuervorrichtung einer robotervorrichtung, die die position eines roboters steuert
DE102021109334A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109332A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69913106T2 (de) 1998-02-18 2004-08-26 Armstrong Healthcare Ltd. Verfahren und gerät zur roboterausrichtung
EP2915635B1 (de) 2014-03-07 2020-09-02 Seiko Epson Corporation Roboter, robotersystem, steuerungsvorrichtung und steuerungsverfahren
DE112017007025T5 (de) 2017-02-09 2019-10-24 Mitsubishi Electric Corporation Positionssteuerungseinrichtung und positionssteuerungsverfahren
EP3515671B1 (de) 2017-06-19 2020-05-13 Google LLC Robotische greifvorhersage unter verwendung neuronaler netzwerke und geometriebewusster objektdarstellung
DE102019002065A1 (de) 2018-03-29 2019-10-02 Fanuc Corporation Maschinelle Lernvorrichtung, Robotersteuervorrichtung und Robotervisionssystem, das eine maschinelle Lernvorrichtung verwendet, und maschinelles Lernverfahren
DE102019122790A1 (de) 2018-08-24 2020-02-27 Nvidia Corp. Robotersteuerungssystem
DE102019106458A1 (de) 2019-03-13 2020-09-17 ese-robotics GmbH Verfahren zur Ansteuerung eines Industrieroboters
DE102020119704A1 (de) 2019-08-01 2021-02-04 Fanuc Corporation Steuervorrichtung einer robotervorrichtung, die die position eines roboters steuert
DE102021109334A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109332A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle

Also Published As

Publication number Publication date
CN116690555A (zh) 2023-09-05
US20230311331A1 (en) 2023-10-05

Similar Documents

Publication Publication Date Title
DE102014108287B4 (de) Schnelles Erlernen durch Nachahmung von Kraftdrehmoment-Aufgaben durch Roboter
DE102019216229B4 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102021109332B4 (de) Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle
DE102013203381A1 (de) Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration
DE102021109334B4 (de) Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102020209685B4 (de) Verfahren zum steuern einer robotervorrichtung und robotervorrichtungssteuerung
WO2020225229A1 (de) Maschinelles lernen einer objekterkennung mithilfe einer robotergeführten kamera
DE102021204697B4 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102020207085A1 (de) Verfahren zum steuern eines roboters und robotersteuereinheit
DE102021204961A1 (de) Verfahren zur Steuerung einer Robotervorrichtung
DE102020214633A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102022130652A1 (de) Anlernen eines roboters durch vorführen mit visualservoing
DE112018007729B4 (de) Maschinelle Lernvorrichtung und mit dieser ausgestattetes Robotersystem
DE102021204846A1 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102022202143B4 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102020214300A1 (de) Vorrichtung und verfahren zum trainieren eines maschinellen lernmodells zum erkennen einer objekttopologie eines objekts aus einem bild des objekts
DE102022202142B3 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Ableiten eines Bewegungsvektors für einen Roboter aus Bilddaten
DE102021109333B4 (de) Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102022202143A1 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102022202144A1 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102022202145A1 (de) Roboter und Verfahren zum Steuern eines Roboters
DE102021212859A1 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Erzeugen von Deskriptorbildern zu Bildern von Objekten
DE102022201719A1 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Erzeugen von Deskriptorbildern zu Bildern von Objekten
DE102020214301A1 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen
DE102021211185B4 (de) Vorrichtung und Verfahren zum Steuern eines Roboters

Legal Events

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