DE102022202145A1 - Roboter und Verfahren zum Steuern eines Roboters - Google Patents

Roboter und Verfahren zum Steuern eines Roboters Download PDF

Info

Publication number
DE102022202145A1
DE102022202145A1 DE102022202145.2A DE102022202145A DE102022202145A1 DE 102022202145 A1 DE102022202145 A1 DE 102022202145A1 DE 102022202145 A DE102022202145 A DE 102022202145A DE 102022202145 A1 DE102022202145 A1 DE 102022202145A1
Authority
DE
Germany
Prior art keywords
camera
image
robot
end effector
neural network
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.)
Pending
Application number
DE102022202145.2A
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 DE102022202145.2A priority Critical patent/DE102022202145A1/de
Priority to PCT/EP2023/053646 priority patent/WO2023165807A1/en
Publication of DE102022202145A1 publication Critical patent/DE102022202145A1/de
Pending 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39271Ann artificial neural network, ffw-nn, feedforward neural network
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39397Map image error directly to robot movement, position with relation to world, base not needed, image based visual servoing
    • 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/40532Ann for vision processing
    • 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/40584Camera, non-contact sensor mounted on wrist, indep from gripper
    • 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/40609Camera to monitor end effector as well as object to be handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Manipulator (AREA)

Abstract

Gemäß diversen Ausführungsformen wird ein Roboter beschrieben, der einen Endeffektor, der einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, mindestens eine erste Kamera und eine zweite Kamera, die auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind, und eine Steuereinheit, die konfiguriert ist, für eine Position des Endeffektors ein erstes Bild von der ersten Kamera und ein zweites Bild von der zweiten Kamera zu empfangen, das erste und das zweite Bild durch ein neuronales Netz zu verarbeiten, wobei das neuronale Netz konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben, und den Roboter derart zu steuern, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert, umfasst.

Description

  • Stand der Technik
  • Die vorliegende Offenbarung bezieht sich auf Roboter und Verfahren zum Steuern eines Roboters.
  • Eine Montage wie etwa die Montage von elektrischen Verdrahtungen ist eine der am meisten verbreiteten manuellen Arbeitsaufgaben in der Industrie. Beispiele sind die Montage elektrischer Tafeln und die Montage von Hausschaltanlagen. Komplizierte Montageprozesse können üblicherweise als eine Abfolge von zwei Hauptaktivitäten beschrieben werden: Greifen und Einsetzen. Ähnliche Aufgaben treten z. B. bei der Kabelherstellung auf, die üblicherweise das Einsetzen von Kabeln zur Validierung und Verifizierung enthält.
  • Während für Greifaufgaben geeignete Robotersteuerschemata üblicherweise in der Industrie verfügbar sind, ist das Durchführen von Einsetzvorgängen oder „Stift-in-Loch“-Aufgaben durch Roboter üblicherweise nach wie vor lediglich auf eine kleine Teilmenge von Problemen anwendbar, hauptsächliche auf jene, die einfache Formen an festgelegten Orten enthalten und bei denen die Variationen nicht berücksichtigt werden. Außerdem sind bestehende visuelle Techniken langsam, üblicherweise etwa dreimal langsamer als menschliche Bedienpersonen.
  • Daher sind wirksame Verfahren zum Trainieren einer Steuereinheit für einen Roboter, um Aufgaben wie Einsetzaufgaben durchzuführen, erwünscht.
  • Offenbarung der Erfindung
  • Gemäß diversen Ausführungsformen wird ein Roboter bereitgestellt, der einen Endeffektor, der einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, mindestens eine erste Kamera und eine zweite Kamera, die auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind, und eine Steuereinheit, die konfiguriert ist, für eine Position des Endeffektors ein erstes Bild von der ersten Kamera und ein zweites Bild von der zweiten Kamera zu empfangen, das erste Bild und das zweite Bild durch ein neuronales Netz zu verarbeiten, wobei das neuronale Netz konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben, und den Roboter derart zu steuern, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert, umfasst.
  • Das Bestimmen eines Bewegungsvektors auf der Grundlage von zwei Bildern, die von Kameras aufgenommen werden, die auf gegenüberliegenden Seiten der Greiferebene angeordnet sind, stellt sicher, dass das neuronale Netz ausreichende Informationen zum Ableiten eines Bewegungsvektors für eine Einsetzaufgabe aufweist. Selbst dann wenn ein Finger die Sicht auf den Einsetzvorgang, z. B. für eine der Kameras, versperrt, wird die andere Kamera wahrscheinlich eine unversperrte Sicht auf den Einsetzvorgang aufweisen. Es sei erwähnt, dass für eine Einsetzaufgabe insbesondere eine gute Sicht von Bedeutung ist. Ferner ermöglicht das Aufweisen von zwei Kameras, dass das neuronale Netz Tiefeninformationen ableitet.
  • Somit ermöglichen zwei Kameras (die z. B. in Bezug auf die Greiferebene symmetrisch angeordnet sind) das Umgehen des Problems der Mehrdeutigkeit eines einzelnen Bildes und extrahieren Tiefeninformationen, während eine Verdeckung während der gesamten Einsetzvorgangs-Bewegungsbahn vermieden wird (wenn die Sicht einer Kamera verdeckt ist, weist die andere eine freie Sicht auf). Zum Beispiel ist jede Kamera in einem Winkel von 45 Grad in Bezug auf ihre jeweilige Fingeröffnung angeordnet, wobei sich eine gute Sicht auf das Szenario sowie auf den Gegenstand zwischen den Fingern ergibt.
  • Die Greiferebene kann als die Ebene verstanden werden, in der ein ebener Gegenstand orientiert ist, wenn er durch den Greifer ergriffen ist.
  • Im Folgenden werden diverse Beispiele gegeben.
  • Beispiel 1 ist ein Roboter wie oben beschrieben.
  • Beispiel 2 ist der Roboter aus Beispiel 1, wobei die erste Kamera und die zweite Kamera in Bezug auf die Greiferebene symmetrisch zueinander angeordnet sind.
  • Dies verbessert die Chancen, dass mindestens eine der Kameras eine unversperrte Sicht auf den Einsetzvorgang aufweist.
  • Beispiel 3 ist der Roboter aus Beispiel 1 oder 2, wobei die Positionen der ersten Kamera und der zweiten Kamera in Bezug auf die Greiferebene gedreht sind.
  • Dies verbessert die Chancen, dass mindestens eine der Kameras eine unversperrte Sicht auf den Einsetzvorgang aufweist, weiter.
  • Beispiel 4 ist der Roboter aus Beispiel 3, wobei die Positionen der ersten Kamera und der zweiten Kamera in Bezug auf die Greiferebene um 30 bis 60 Grad, vorzugsweise um 40 bis 50 Grad, gedreht sind.
  • Winkel in diesem Bereich stellen in üblichen Fällen eine gute Sicht auf die relevanten Komponenten (Spitze der einzusetzenden Gegenstände, Einsatz) bereit.
  • Beispiel 5 ist der Roboter aus einem der Beispiele 1 bis 4, wobei die Steuereinheit konfiguriert ist, das erste Bild und das zweite Bild durch das neuronale Netz zu verarbeiten durch Erzeugen eines Eingangsbildes für das neuronale Netz, das eine erste Anzahl von Kanälen aufweist, die gleich der Anzahl der Kanäle des ersten Bildes ist, die die Bilddaten des ersten Bildes halten, und eine zweite Anzahl von Kanälen aufweist, die gleich der Anzahl der Kanäle des zweiten Bildes ist, die die Bilddaten des ersten Bildes halten, und Zuführen des Eingangsbildes zum neuronalen Netz.
  • Somit werden die Bilddaten beider Bilder in einem einzigen Bild kombiniert und das neuronale Netz kann sie auf die Art und Weise eines einzigen Bildes verarbeiten (das eine vergrößerte Anzahl von Kanälen wie z. B. sechs Kanäle für zwei Gruppen von RGB-Kanälen aufweist). Das neuronale Netz kann z. B. ein neuronales Faltungsnetz sein oder umfassen.
  • Beispiel 6 ist ein Verfahren zum Steuern eines Roboters, das das Empfangen eines ersten Bildes von einer ersten Kamera und eines zweiten Bildes von einer zweiten Kamera für eine Position eines Endeffektors des Roboters, wobei der Endeffektor einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, und wobei die erste Kamera und die zweite Kamera auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind, das Verarbeiten des ersten Bildes und des zweiten Bildes durch ein neuronales Netz, das konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben, und das Steuern des Roboters, derart, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert, umfasst.
  • Beispiel 7 ist das Verfahren aus Beispiel 6, das das Trainieren des neuronalen Netzes, Bewegungsvektoren für eine Einsetzaufgabe aus Eingangsdatenelementen abzuleiten, die Bilddaten umfassen, die von zwei Kameras aufgenommen werden, umfasst.
  • Beispiel 8 ist ein Computerprogramm, das Anweisungen umfasst, die dann, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren gemäß einem der Beispiele 6 bis 7 durchführt.
  • Beispiel 9 ist ein computerlesbares Medium, das Anweisungen speichert, die dann, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren gemäß einem der Beispiele 6 bis 7 durchführt.
  • Es sei erwähnt, dass Ausführungsformen und Beispiele, die im Zusammenhang mit dem Roboter beschrieben sind, auf analoge Weise für das Verfahren zum Steuern eines Roboters gültig sind und umgekehrt.
  • In den Zeichnungen beziehen sich gleiche Bezugszeichen in den verschiedenen Ansichten im Allgemeinen durchgehend auf dieselben Komponenten. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, stattdessen wird im Allgemeinen der Schwerpunkt auf das Veranschaulichen der Prinzipien der Erfindung gelegt. In der folgenden Beschreibung sind diverse Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben, wobei:
    • 1 einen Roboter zeigt.
    • 2 einen Roboter-Endeffektor in größerer Detailtiefe zeigt.
    • 3 das Trainieren eines Coderiernetzes gemäß einer Ausführungsform veranschaulicht.
    • 4 die Bestimmung einer Deltabewegung aus einem Bilddatenelement und einem Krafteingang zeigt.
    • 5 die Bestimmung einer Deltabewegung aus zwei Bilddatenelementen zeigt.
    • 6 ein Beispiel für eine Mehrschritt-Einsetzaufgabe veranschaulicht.
    • 7 einen Ablaufplan zeigt, der ein Verfahren zum Steuern eines Roboters veranschaulicht.
  • Die folgende genaue Beschreibung bezieht sich auf die begleitenden Zeichnungen, die auf veranschaulichende Weise spezifische Einzelheiten und Aspekte dieser Offenbarung zeigen, in denen die Erfindung in die Praxis umgesetzt sein kann. Andere Aspekte können eingesetzt werden und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen. Die diversen Aspekte dieser Offenbarung sind nicht notwendigerweise wechselseitig ausschließend, da einige Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert sein können, um neue Aspekte zu bilden.
  • Im Folgenden werden diverse Beispiele in größerer Detailtiefe beschrieben.
  • 1 zeigt einen Roboter 100.
  • Der Roboter 100 enthält einen Roboterarm 101 wie z. B. einen Industrieroboterarm zum Handhaben oder Montieren eines Werkstücks (oder eines oder mehrerer anderer Gegenstände). Der Roboterarm 101 enthält Manipulatoren 102, 103, 104 und eine Basis (oder einen Träger) 105, durch die die Manipulatoren 102, 103, 104 getragen werden. Der Ausdruck „Manipulator“ bezieht sich auf die beweglichen Elemente des Roboterarms 101, deren Betätigung eine physikalische Interaktion mit der Umgebung wie z. B., um eine Aufgabe auszuführen, ermöglicht. Zur Steuerung enthält der Roboter 100 eine (Roboter-) Steuereinheit 106, die konfiguriert ist, die Interaktion mit der Umgebung gemäß einem Steuerprogramm zu implementieren. Das letzte Element 104 (am weitesten vom Träger 105 entfernt) der Manipulatoren 102, 103, 104 wird ebenso als der Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge wie etwa einen Schweißbrenner, ein Greifinstrument, eine Anstreichausrüstung oder dergleichen enthalten.
  • Die anderen Manipulatoren 102, 103 (näher am Träger 105) können eine Positionierungsvorrichtung bilden, derart, 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 bereitstellen kann (möglicherweise mit einem Werkzeug an seinem Ende).
  • Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 enthalten, die die Manipulatoren 102, 103, 104 untereinander und mit dem Träger 105 koppeln. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, wovon jedes zugeordneten Manipulatoren eine drehbare Bewegung (d. h. eine Drehbewegung) und/oder eine translatorische Bewegung (d. h. eine Verlagerung) relativ zueinander bereitstellen kann. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktoren ausgelöst werden, die durch die Steuereinheit 106 gesteuert werden.
  • Der Ausdruck „Aktor“ kann als eine Komponente verstanden werden, die ausgelegt ist, als Antwort darauf, angetrieben zu werden, einen Mechanismus oder Prozess zu beeinflussen. Der Aktor kann Anweisungen, die durch die Steuereinheit 106 ausgegeben werden (die sogenannte Aktivierung) in mechanische Bewegungen implementieren. Der Aktor wie z. B. ein elektromechanischer Umsetzer kann konfiguriert sein, als Antwort auf das Antreiben elektrische Energie in mechanische Energie umzusetzen.
  • Der Ausdruck „Steuereinheit“ kann als irgendeine Art einer Logik implementierenden Einheit verstanden werden, die z. B. eine Schaltung und/oder einen Prozessor, der Software, die in einem Speichermedium gespeichert ist, Firmware oder eine Kombination davon ausführen kann, enthalten kann und die Anweisungen wie z. B. im vorliegenden Beispiel an einen Aktor ausgeben kann. Die Steuereinheit kann z. B. durch Programmcode (z. B. Software) konfiguriert sein, den Betrieb eines Systems wie eines Roboters im vorliegenden Beispiel zu steuern.
  • Im vorliegenden Beispiel enthält die Steuereinheit 106 einen oder mehrere Prozessoren 110 und einen Datenspeicher 111, der Code und Daten speichert, gemäß welchen der Prozessor 110 den Roboterarm 101 steuert. Gemäß diversen Ausführungsformen steuert die Steuereinheit 106 den Roboterarm 101 auf der Grundlage eines Modells 112 zum maschinellen Lernen, das im Datenspeicher 111 gespeichert ist.
  • Gemäß diversen Ausführungsformen ist das Modell 112 zum maschinellen Lernen konfiguriert und trainiert zu ermöglichen, dass der Roboter 100 eine Einsetzaufgabe (z. B. eine Stift-in-Loch-Aufgabe) wie z. B. das Einsetzen eines Steckers 113 in eine entsprechende Buchse 114 durchführt. Hierfür nimmt die Steuereinheit 106 mittels der Kameras 117, 119 Bilder des Steckers 113 und der Buchse 114 auf. Der Stecker 113 ist z. B. ein USB-Stecker (Stecker des universalen seriellen Busses) oder kann ebenso ein Netzstecker sein. Es sei erwähnt, dass dann, wenn der Stecker mehrere Stifte aufweist wie ein Netzstecker, jeder Stift als ein einzusetzender Gegenstand betrachtet werden kann (wobei der Einsatz ein entsprechendes Loch ist). Alternativ kann der gesamte Stecker als der einzusetzende Gegenstand betrachtet werden (wobei der Einsatz eine Netzsteckdose ist). Es sei erwähnt, dass (abhängig davon, was als der Gegenstand betrachtet wird) der Gegenstand 113 nicht notwendigerweise vollständig in den Einsatz eingesetzt wird. Wie im Fall des USB-Steckers wird der USB-Stecker als eingesetzt angesehen, wenn die Metallkontaktkomponente 116 in die Buchse 114 eingesetzt ist.
  • Eine Robotersteuerung, um eine Stift-in-Loch-Aufgabe durchzuführen, enthält üblicherweise zwei Hauptphasen: Suchen und Einsetzen. Während des Suchens wird die Buchse 114 identifiziert und lokalisiert, um die wesentlichen Informationen bereitzustellen, die zum Einsetzen des Steckers 113 erforderlich sind.
  • Das Suchen eines Einsatzes kann auf Bildgebung oder auf Blindstrategien, die z. B. spiralförmige Wege einsetzen, beruhen. Visuelle Techniken hängen in hohem Maße vom Ort der Kamera 117, 119 und der Platine 118 (wobei die Buchse 114 in der Oberfläche 115 der Platine angeordnet ist) und von Hindernissen ab und sind üblicherweise etwa dreimal langsamer als menschliche Bedienpersonen. Aufgrund der Einschränkungen visueller Verfahren kann die Steuereinheit 106 entweder ausschließlich oder in Kombination mit Bildgebung Kraft-Drehmoment-Rückkopplung und haptische Rückkopplung berücksichtigen.
  • Das Konstruieren eines Roboters, der zuverlässig verschiedene Gegenstände (z. B. Stecker, Kraftmaschinenzahnräder) einsetzt, ist eine große Herausforderung beim Entwurf von Produktions-, Prüf- und Heimdienstleistungsrobotern. Das Minimieren der Aktionszeit, das Maximieren der Zuverlässigkeit und das Minimieren des Kontakts zwischen dem ergriffenen Gegenstand und der Zielkomponente sind aufgrund der innewohnenden Unsicherheit bezüglich Erfassung, Steuerung, Empfindlichkeit für ausgeübte Kräfte und Verdeckungen schwierig.
  • Gemäß diversen Ausführungsformen wird ein dateneffizienter, sicherer und überwachter Ansatz, um eine Roboterstrategie zu erfassen, bereitgestellt. Er ermöglicht das Lernen einer Steuerungsstrategie, insbesondere für eine Mehrschritt-Einsetzaufgabe, mit wenigen Datenpunkten unter Nutzung von kontrastiven Methodiken und „One-Shot“-Lerntechniken.
  • Gemäß diversen Ausführungsformen umfassen das Trainieren und/oder die Robotersteuerung eines oder mehrere der folgenden Elemente:
    • 1) Die Verwendung von zwei Kameras, um das Problem der Mehrdeutigkeit eines einzelnen Bildes zu vermeiden und Tiefeninformationen zu extrahieren. Dies ermöglicht insbesondere das Beseitigen der Anforderung, die Oberfläche 115 der Buchse zu berühren, wenn der Gegenstand 113 eingesetzt wird.
    • 2) Die Integration von kontrastivem Lernen, um die Menge gekennzeichneter Daten zu verringern.
    • 3) Ein Relationsnetz, das „One-Shot“-Lernen und einen Mehrschritt-Einsetzvorgang ermöglicht.
    • 4) Einen Mehrschritt-Einsetzvorgang unter Verwendung dieses Relationsnetzes.
  • 2 zeigt einen Roboterendeffektor 201 in größerer Detailtiefe.
  • Der Endeffektor 201 entspricht z. B. dem Endeffektor 105 des Roboterarms 101 wie z. B. einem Roboterarm mit sechs Freiheitsgraden (DoF). Gemäß diversen Ausführungsformen weist der Roboter zwei sensorische Eingänge auf, die die Steuereinheit 106 zum Steuern des Roboterarms 101 verwenden kann. Der erste ist eine stereoskopische Wahrnehmung, die durch zwei (siehe obigen Punkt 1) Handgelenkkameras 202 bereitgestellt wird, die z. B. um einen Winkel von 45° geneigt und auf einen Punkt zwischen den Endeffektorfingern (EEF) 203 fokussiert sind.
  • Die Bilder 205, 206 sind Beispiele für Bilder, die durch die erste Kamera bzw. die zweite Kamera für eine Position des Endeffektors 201 aufgenommen werden.
  • Im Allgemeinen ist jede Kamera 202 derart ausgerichtet, dass aufgenommene Bilder z. B. einen Abschnitt (hier einen Stift 207) eines durch den Endeffektor 201 ergriffenen Gegenstands 204, der eingesetzt werden soll, und einen Bereich um diesen zeigen, derart, dass z. B. der Einsatz 208 sichtbar ist. Es sei erwähnt, dass sich hier der Einsatz auf das Loch für den Stift bezieht, jedoch kann er sich ebenso darauf beziehen, die Löcher für die Stifte sowie die Öffnung für den zylindrischen Abschnitt des Steckers zu umfassen. Das Einsetzen eines Gegenstands in einen Einsatz bedeutet somit nicht notwendigerweise, dass der Gegenstand vollständig in den Einsatz eingesetzt wird, sondern lediglich eine oder mehrere Komponenten.
  • Unter der Annahme einer Höhe H, einer Breite W und dreier Kanäle für jedes Kamerabild wird ein Bilddatenelement für eine aktuelle (oder ursprüngliche) Position des am Roboter vorgesehenen Arms durch Img ∈ □ H×W×6 bezeichnet (wobei es sechs Kanäle aufweist, da es die Bilder von beiden Kameras 202 enthält). Der zweite sensorische Eingang ist ein Krafteingang, d. h. Messungen von einem Kraftsensor 120, der ein Moment und eine Kraft misst, die durch den Endeffektor 105, 201 erfahren werden, wenn er den Gegenstand 113 auf eine Ebene (z. B. die Oberfläche 115 der Platine 118) drückt. Die Kraftmessung kann durch den Roboter oder durch einen externen Sensor für Kraft und Drehmoment vorgenommen werden. Der Krafteingang umfasst z. B. eine Kraftangabe F □ (fx, fy, fz) ∈ ⌷3 und eine Momentangabe M = (mx, my, mz) ∈ ⌷3.
  • Für die folgenden Erklärungen wird die Beobachtung des Roboters für eine aktuelle Position durch Obs = (Img; F; M) bezeichnet. Um die Kontaktkräfte genau zu erfassen und reibungslose Bewegungen zu erzeugen, kann eine Hochfrequenzkommunikation (ein Echtzeitdatenaustausch) zwischen den Sensorvorrichtungen (Kameras 202 und Kraftsensor 120) und der Steuereinheit 106 verwendet werden.
  • Zum Beispiel werden Kraft- und Drehmomentmessungen (Momentmessungen) mit 500 Hz abgetastet und Befehle werden mit 125 Hz an die Aktoren gesendet.
  • Die Endeffektorfinger 203 bilden einen Greifer, dessen Stellung durch L bezeichnet ist. Insbesondere L⌷ [Lpos, Lang], wobei Lpos ⌷ (x0, y0, z0) der Ort des Greifers ist und L a n g ( θ 0 x , θ 0 y , θ 0 z )
    Figure DE102022202145A1_0001
    seine Stellung ist. Die Aktion des Roboters im Kartesischen Raum ist definiert durch (Δx,Δy,Δz,Δθx,Δθy,Δθz), wobei Δx, Δy und Δz die gewünschten Korrekturen sind, die für die EEF im Kartesischen Raum in Bezug auf den aktuellen Ort benötigt werden. Diese Roboteraktion spezifiziert die Bewegung des Roboters aus einer aktuellen (oder ursprünglichen) Stellung (insbesondere einer aktuellen Position) in eine Zielstellung (insbesondere an eine Zielposition).
  • Das Zwei-Kamera-Schema, d. h. das Aufweisen eines Bilddatenelements, das zwei Bilder umfasst, für jede berücksichtigte Roboterposition, ermöglicht das Wiederherstellen des Abstands zwischen zwei Punkten, die in den Bildern gezeigt sind, d. h. es ermöglicht das Vermeiden des Mehrdeutigkeitsproblems der Bildgebung, das entsteht, wenn versucht wird, den Abstand zwischen zwei Punkten in Weltkoordinaten ohne Tiefeninformationen unter Verwendung eines einzigen Bildes wiederherzustellen.
  • Gemäß diversen Ausführungsformen wird Rückwärtslernen verwendet (z. B. durch die Steuereinheit 106), wobei Bilder der zwei Kameras 202 verwendet werden, um Trainingsdaten (insbesondere Bilder) zu erfassen, nicht lediglich nach dem Berühren der Oberfläche 115, sondern außerdem entlang der Bewegungsbahn. Dies bedeutet, dass die Steuereinheit 106 beim Erfassen eines Trainingsdatenelements den Roboterarm an seiner endgültigen Position (Zielposition) Lfinal, d. h., wenn der Stecker 116 in die Buchse 114 eingesetzt ist, platziert (oder auf gleichartige Weise für jedes Zwischenziel, für das das Modell 112 zum maschinellen Lernen trainiert werden soll). (Es sei erwähnt, dass unter Verwendung der Kameras 202 ein Zielbilddatenelement an dieser Position erfasst werden kann, das gemäß diversen Ausführungsformen verwendet wird, wie unten beschrieben ist.) Daraufhin werden für jedes Trainingsdatenelement zwei Punkte aus einer Wahrscheinlichkeitsverteilung (z. B. einer Normalverteilung) abgetastet: einer ist Thigh, der an einem Zufallsort über der Buchse angeordnet ist, und der zweite ist Tlow, der zufallsweise um die Höhe der Buchse angeordnet ist.
  • Eine Korrektur für dieses Trainingsdatenelement ist definiert durch:
    • Δcorrection ⌷ Lfinal - Trandom , wobei Trandom eine hoher oder tiefer Punkt (d. h. Thigh oder Tlow) ist. Ein Trainingsdatensatz, mit D bezeichnet, wird auf der Grundlage einer Gruppe von Trainingsaufgaben τ { τ i } i = 1 N τ
      Figure DE102022202145A1_0002
      aufgebaut, wobei es für jede Aufgabe τi ein entsprechendes L final i
      Figure DE102022202145A1_0003
      gibt. Für jede Aufgabe wird eine zufällig ausgewählte Gruppe von Punkten { T τ i , j } j = 1 N τ i
      Figure DE102022202145A1_0004
      erzeugt, wobei Start- und Endpunkte für Aufgaben und die ursprünglichen Zufallspunkte D τ i τ { D τ i , j } j = 1 N τ i
      Figure DE102022202145A1_0005
      □ (wobei j = hoch, tief) und D τ i , j [ L final i , T τ i , j ]
      Figure DE102022202145A1_0006
      erzielt werden. Für jedes Dτi,jwird eine entsprechende Korrektur Δ τ i , j L f i n a l i T τ i , j
      Figure DE102022202145A1_0007
      definiert. Der Algorithmus 1 gibt ein detailliertes Beispiel für Datenerfassung und allgemeines Rückwärtslernen für eine Aufgabe τ an.
      Figure DE102022202145A1_0008
  • Gemäß dem Algorithmus 1 werden Kraftsensordaten gesammelt. Das ist gemäß diversen Ausführungsformen nicht notwendig, insbesondere gemäß jenen, die mit Zielbilddatenelementen arbeiten, wie weiter unten unter Bezugnahme auf 5 beschrieben ist.
  • Gemäß diversen Ausführungsformen umfasst das Modell 112 zum maschinellen Lernen mehrere Komponenten, wobei eines davon ein Codierernetz ist, das die Steuereinheit 106 verwendet, um eine Codierung für jedes Bilddatenelement Img zu bestimmen.
  • 3 veranschaulicht das Trainieren eines Codierernetzes 301 gemäß einer Ausführungsform.
  • Das Codierernetz 301 ist z. B. ein neuronales Faltungsnetz, das z. B. eine Res-Net18-Architektur aufweist.
  • Das Codierernetz 301 (das die Funktion φ realisiert) wird unter Verwendung eines kontrastiven Verlustes oder eines Deltastrategieverlustes und/oder eines Relationsdatenverlustes trainiert wie z. B. gemäß dem folgenden Verlust: Verlust = I contrastive + I delta + I relation
    Figure DE102022202145A1_0009
  • Diese Verlustkomponenten werden im Folgenden beschrieben.
  • Kontrastives Lernen, d. h. das Trainieren auf der Grundlage von kontrastivem Verlust, ist ein Rahmenwerk von Lernrepräsentationen, die Ähnlichkeits- oder Unähnlichkeitsrandbedingungen in einem Datensatz befolgen, die sich auf positive bzw. negative Kennzeichen abbilden. Ein möglicher Ansatz des kontrastiven Lernens ist Instanzunterscheidung, wobei ein Beispiel und ein Bild ein positives Paar sind, wenn sie Datenaugmentationen derselben Instanz sind, und andernfalls negativ. Eine Schlüsselherausforderung beim kontrastiven Lernen ist die Wahl negativer Proben, da dies die Qualität der zugrundeliegenden gelernten Repräsentation beeinflussen kann.
  • Gemäß diversen Ausführungsformen wird das Codierernetz 301 unter Verwendung einer kontrastiven Technik trainiert (z. B. durch die Steuereinheit 106 oder durch eine externe Vorrichtung, derart, dass es später in der Steuereinheit 106 gespeichert wird), derart, dass es relevante Merkmale für die bevorstehende Aufgabe ohne spezifische Kennzeichen lernt. Ein Beispiel ist InfoNCE-Verlust (NCE: „Noise-Contrastive Examination“). Dadurch wird durch das Stapeln zweier Bilder von den zwei Kameras 202 auf ein Bilddatenelement 302 eine Tiefenregistrierung des Steckers 113 und der Buchse 114 erhalten. Diese Tiefeninformationen werden verwendet, um das Bilddatenelement auf diverse verschiedene Weisen zu augmentieren. Aus dem Original (d. h. dem nicht augmentierten Bilddatenelement) und einer oder mehreren Augmentationen, die auf diese Weise erhalten werden, werden Paare von Bilddatenelementen abgetastet, wobei ein Element des Paares dem Codierernetz 301 zugeführt wird und das andere einer weiteren Version 303 des Codierernetzes zugeführt wird. Die andere Version 303 realisiert die Funktion φ', die z. B. dieselben Parameter wie das Codierernetz 301 aufweist und unter Verwendung einer Polyak-Mittelwertbildung gemäß φ' = φ' + (1 - m)φ, wobei m = 0,999, aktualisiert wird (wobei φ, φ' verwendet worden sind, um die Gewichtungen der zwei Codierernetzversionen 301, 302 darzustellen).
  • Die zwei Codierernetzversionen 301, 302 geben jeweils eine Repräsentation (d. h. eine Einbettung) der Größe L für das Eingangsdatenelement 302 (d. h. einen Ausgang 2 x L des Paares) aus. Indem dies für einen Stapel von N Bilddatenelementen durchgeführt wird (d. h. ein Paar von Augmentationen oder eines Originals und einer Augmentation für jedes Bilddatenelement gebildet wird), d. h. zum Trainieren von Eingangsbilddaten der Größe N x 6 x H x W, ergeben sich N Paare von Repräsentationen, die durch die zwei Codierernetzversionen 301, 302 ausgegeben werden (d. h. Repräsentationsausgangsdaten der Größe 2 × N × L). Unter Verwendung dieser N Paare von Repräsentationen wird der kontrastive Verlust des Codierernetzes 301 berechnet, indem aus den Repräsentationen, die in den Paaren enthalten sind, positive Paare und negative Paare gebildet werden. Hier sind zwei Repräsentationen ein positives Paar, wenn sie aus demselben Eingangsdatenelement 302 erzeugt wurden, und sind ein negatives Paar, wenn sie aus verschiedenen Eingangsdatenelementen 302 erzeugt wurden. Dies bedeutet, dass ein positives Paar zwei Augmentationen desselben ursprünglichen Bilddatenelements hält oder ein ursprüngliches Bilddatenelement und eine Augmentation davon hält. Alle anderen Paare sind negative Paare.
  • Zum Bestimmen des kontrastiven Verlustes 304 wird eine Ähnlichkeitsfunktion sim(.) verwendet, die die Ähnlichkeit (oder den Abstand) zwischen zwei Einbettungen misst. Sie kann einen Euklidischen Abstand (im latenten Raum, d. h. dem Raum der Einbettungen) verwenden, jedoch können kompliziertere Funktionen verwendet werden wie z. B. unter Verwendung einer Kernel-Funktion. Der kontrastive Verlust ist daraufhin z. B. gegeben durch die Summe über i, j von l i , j = log exp ( sim ( z i , z j ) / τ ) k = 1 2 N [ k i ] exp ( sim ( z i , z k ) / τ )
    Figure DE102022202145A1_0010
    wobei die zi die Einbettungen sind. τ ist hier ein Temperaturnormalisierungsfaktor (nicht mit der oben verwendeten Aufgabe τ zu verwechseln).
  • 4 zeigt die Bestimmung einer Deltabewegung 405 aus einem Bilddatenelement 401 und einem Krafteingang 402.
  • Die Deltabewegung Δ = (Δx, Δy, 0, Δθx, Δθy, Δθz) ist die Roboteraktion
    Δ = (Δx, Δy, Δz, Δθx, Δθy, Δθz) ohne die Bewegung in der z-Richtung, da die Steuereinheit 106 gemäß diversen Ausführungsformen die Bewegung Δz in der z-Richtung unabhängig von anderen Informationen, z. B. unter Verwendung der Höhe des Tischs, auf dem die Buchse 114 angeordnet ist, aus vorher bekanntem Wissen oder von der Tiefenkamera steuert.
  • In diesem Fall erzeugt das Codierernetz 403 (das dem Codierernetz 301 entspricht) eine Einbettung für das Bilddatenelement. Die Einbettung wird zusammen mit dem Krafteingang 402 an ein neuronales Netz 404 weitergegeben, das die Deltabewegung 405 bereitstellt. Das neuronale Netz 404 ist z. B. ein neuronales Faltungsnetz und wird als Deltanetz bezeichnet und dient dazu, eine Deltastrategie (Delta-Steuerungsstrategie) zu implementieren.
  • Der Deltaverlust Idelta zum Trainieren des Codierernetzes 403 (sowie des Deltanetzes 404) wird bestimmt durch das Aufweisen von „Ground Truth“-Deltabewegungskennzeichen für Trainingseingangsdatenelemente (die ein Bilddatenelement 401 und einen Krafteingang 402 umfassen, d. h. das, was oben, insbesondere im Algorithmus 1, durch Obs = (Img; F; M) bezeichnet wurde). Der Trainingsdatensatz D, der durch den Algorithmus 1 erzeugt wird, enthält die Trainingseingangsdatenelemente Obs und die „Ground Truth“-Kennzeichen für den Deltaverlust.
  • 5 zeigt die Bestimmung einer Deltabewegung 505 aus zwei Bilddatenelementen 501, 502.
  • In diesem Fall erzeugt das Codierernetz 503 (das dem Codierernetz 301 entspricht) eine Einbettung für jedes Bilddatenelement 501, 502. Die Einbettungen werden an ein neuronales Netz 504 weitergegeben, das die Deltabewegung 505 bereitstellt. Das neuronale Netz 504 ist z. B. ein neuronales Faltungsnetz und wird als ein Relationsnetz bezeichnet und dient dazu, eine Relationsstrategie (Relations-Steuerungsstrategie) zu implementieren.
  • Der Relationsverlust Irelation zum Trainieren des Codierernetzes 503 (sowie des Relationsnetzes 504) wird durch das Aufweisen von „Ground Truth“-Deltabewegungs-Kennzeichen für Paare von Bilddatenelementen 501, 502 bestimmt. Das „Ground Truth“-Deltabewegungskennzeichen für ein Paar von Bilddatenelementen 501, 502 kann z. B. erzeugt werden, indem die Differenz zwischen den „Ground Truth“-Deltabewegungskennzeichen (d. h. den Aktionen) herangezogen wird, die für die Bilddatenelemente in dem Datensatz D enthalten sind, der durch den Algorithmus 1 erzeugt worden ist.
  • Das bedeutet, dass zum Trainieren mit dem Relationsverlust der Datensatz D verwendet wird, um die Deltabewegung zwischen zwei Bildern Imgi und Imgj derselben Einsteckaufgabe zu berechnen, wobei j ≠ k , indem die „Ground Truth“ durch die Differenz Δτk,j = Δτi,j- Δτi,k berechnet wird. Wenn Imgi und Imgj für dieses Training augmentiert werden, werden Augmentationen verwendet, die konsistent sind.
  • Der Relationsverlust Irelation erleichtert „One-Shot“-Lernen, ermöglicht außerdem Mehrschritt-Einsetzvorgänge und verbessert die Auswertung der erfassten Daten.
  • Wenn sie trainiert sind, implementieren das Codierernetz 403 und das Deltanetz 404, die verwendet werden, wie unter Bezugnahme auf 4 beschrieben ist, um eine Deltabewegung aus einem Bilddatenelement 401 und einem Krafteingang 402 abzuleiten, das, was als Deltastrategie (Delta-Steuerungsstrategie) bezeichnet wird. Ebenso implementieren das Codierernetz 503 und das Relationsnetz 504, die verwendet werden, wie unter Bezugnahme auf 5 beschrieben ist, um eine Deltabewegung aus einem Bilddatenelement 501 (für eine aktuelle Position) und einem Bilddatenelement 502 (für eine Zielposition) abzuleiten, das, was als Relationsstrategie (Relations-Steuerungsstrategie) bezeichnet wird.
  • Die Steuereinheit kann die Deltastrategie oder die Relationsstrategie als eine Residualstrategie πResidual in Kombination mit einer Hauptstrategie πMain verwenden. Somit verwendet die Steuereinheit 106 zur Beeinflussung das Codierernetz 403, 503 für die Deltastrategie oder die Relationsstrategie. Dies kann abhängig vom Anwendungsfall entschieden werden. Zum Beispiel wird für „One-Shot“- oder Mehrschritt-Einsetzaufgaben die Relationsstrategie (und eine Relationsarchitektur gemäß 5) verwendet, da sie bei diesen Aufgaben besser verallgemeinern kann. Für andere Aufgaben wird die Deltastrategie (und die Deltaarchitektur aus 4) verwendet.
  • Der Hauptstrategie folgend, nähert die Steuereinheit 106 den Ort des Lochs an, d. h. sie lokalisiert z. B. die Löcher, Buchsen, Gewinde, usw. in dem Szenario, z. B. aus Bildern, und verwendet z. B. eine PD-Steuereinheit, um einem Weg zu folgen, der aus der Näherung berechnet wird.
  • Daraufhin aktiviert sie die Residualstrategie, z. B. bei einem bestimmten R des Steckers 113 von der Oberfläche 115 und führt den tatsächliche Einsetzvorgang gemäß der Residualstrategie durch. Eine Aktion der Residualstrategie ist eine Deltabewegung Δ= (Δx, Δy, 0, Δθx, A0y, A&).
  • Der Algorithmus 2 gibt ein detailliertes Beispiel für diese Prozedur an.
    Figure DE102022202145A1_0011
  • Gemäß diversen Ausführungsformen können, um die Belastbarkeit zu verbessern, sowie zur Verallgemeinerung über Farbe und Form, diverse Augmentationen für Trainingsdatenelemente verwendet werden. Die Ordnung sowie die Eigenschaften jeder Augmentation weisen eine große Wirkung auf die Verallgemeinerung auf. Zur visuellen Augmentation (d. h. Augmentation von Trainingsbilddaten) kann dies zum Trainieren auf der Grundlage des Deltaverlustes und des Relationsverlustes Größenänderung, „Random-Crop“, „Colour-Jitter“, Translation, Drehung, Löschen und Zufallsfaltung enthalten. Für den kontrastiven Verlust sind beispielhafte Augmentationen „Random Resized Crop“, starke Translation, starke Drehung und Löschen. Gleichartige Augmentationen können für Trainingsdatenelemente in demselben Stapel verwendet werden. Bezüglich einer Kraft-Augmentation (d. h. einer Augmentation von Trainingskraft-Eingangsdaten) ist die Richtung der Vektoren (F, M) anstelle ihrer Größe üblicherweise der bedeutendere Nutzfaktor. Daher ist gemäß diversen Ausführungsformen der Krafteingang 402 in das Deltanetz die Richtung der Kraft- und Momentvektoren. Diese können zum Trainieren augmentiert werden (z. B. durch „Jittern“).
  • Wie oben genannt ist, kann die Relationsstrategie insbesondere für eine Mehrschrittaufgabe wie z. B. einen Mehrschritt-Einsetzvorgang verwendet werden. Es sei erwähnt, dass es bei Mehrschritt-Einsetzaufgaben wie dem Verriegeln einer Tür üblicherweise schwieriger ist, Trainingsdaten zu erfassen und zu überprüfen, dass jeder Schritt abgeschlossen werden kann.
  • Gemäß diversen Ausführungsformen werden für eine Mehrschrittaufgabe vorab Bilder für jedes Ziel gespeichert, wobei ein oder mehrere Zwischenziele und ein endgültiges Ziel enthalten sind. Daraufhin wird für jedes Ziel, das aktuell erreicht werden soll (abhängig vom aktuellen Schritt, d. h. gemäß einer Abfolge von Zwischenzielen und dem endgültigen Ziel als letztem Element) ein Bilddatenelement für die aktuelle Position aufgenommen (z. B. durch Aufnehmen von Bildern von beiden Kameras 202) und zusammen mit dem Bild (oder den Bildern) für das Ziel in das Codierernetz 503 eingespeist und durch das Relationsnetz 504 wird eine Deltabewegung abgeleitet, wie unter Bezugnahme auf 5 beschrieben worden ist.
  • 6 veranschaulicht ein Beispiel für eine Mehrschritt-Einsetzaufgabe.
  • In dem Beispiel aus 6, einer Aufgabe, eine Tür zu verriegeln, ist die Aufgabe aus drei Schritten zusammengesetzt, beginnend von einer Ausgangsposition 601: Einsetzen des Schlüssels 602, Drehen der Verriegelung 603 und anschließend Zurückdrehen 604. Für jeden Schritt wird mit den zwei Kameras (z. B. 45-Grad-Kameras) 202 ein Bild des Zustands aufgenommen und vorab gespeichert. Die Ausführung der Aufgabe folgt dem Algorithmus 2 mit der Relationsstrategie und einer Ähnlichkeitsfunktion, um zwischen den Schritten umzuschalten. Zum Beispiel wird erachtet, dass ein Zwischenziel erreicht werden soll, wenn die Ähnlichkeit zwischen aufgenommenen Bildern und den vorab gespeicherten Zielbildern für den aktuellen Schritt unter einem Schwellenwert liegt.
  • Selbst dann, wenn eine reguläre Rückwärtsdatenerfassung (z. B. gemäß dem Algorithmus 1) verwendet wird und die Verriegelungs- und Einsetzzustände selbst beim Training nicht aufgesucht werden (wobei lediglich Zustände darüber aufgesucht werden oder die gesamte Oberfläche berührt wird), kann die Steuereinheit 106 auf diese Weise die Aufgabe erfolgreich durchführen.
  • Zusammenfassend wird gemäß diversen Ausführungsformen ein Verfahren bereitgestellt, wie in 7 veranschaulicht ist.
  • 7 zeigt einen Ablaufplan 700, der ein Verfahren zum Steuern eines Roboters veranschaulicht.
  • In 701 wird für eine Position eines Endeffektors des Roboters ein erstes Bild von einer ersten Kamera empfangen und ein zweites Bild wird von einer zweiten Kamera empfangen, wobei der Endeffektor einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, und wobei die erste Kamera und die zweite Kamera auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind.
  • In 702 werden das erste Bild und das zweite Bild durch ein neuronales Netz verarbeitet, das konfiguriert ist (d. h. insbesondere trainiert ist), einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben.
  • In 703 wird der Roboter derart gesteuert, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert.
  • Das Verfahren aus 7 kann durch einen oder mehrere Computer durchgeführt werden, die eine oder mehrere Datenverarbeitungseinheiten enthalten. Der Ausdruck „Datenverarbeitungseinheit“ kann als irgendeine Art einer Einheit verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Zum Beispiel können die Daten oder Signale gemäß mindestens einer (d. h. einer oder mehr als einer) spezifischen Funktion behandelt werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine zusammengesetzte Signalschaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), einen digitalen Signalprozessor (DSP), ein programmierbares Gate-Array (FPGA), eine integrierte Schaltung oder irgendeine Kombination davon enthalten oder daraus gebildet sein. Jegliche andere Art des Implementierens der jeweiligen Funktionen kann ebenfalls als Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es versteht sich, dass einer oder mehrere der hier im Einzelnen beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit durch eine oder mehrere spezifische Funktionen, die durch die Datenverarbeitungseinheit durchgeführt werden, ausgeführt (z. B. implementiert) werden können.
  • Diverse Ausführungsformen können Bilddaten von diversen visuellen Sensoren (Kameras) wie etwa Video, Radar, LiDAR, Ultraschall, Wärmebildgebung, usw. empfangen und verwenden. Ausführungsformen können zum Trainieren eines Systems zum maschinellen Lernen und zum autonomen Steuern eines Roboters wie z. B. von Robotermanipulatoren, um diverse Einsetzaufgaben unter verschiedenen Szenarien zu lösen, verwendet werden. Es sei erwähnt, dass das neuronale Netz nach dem Trainieren für eine Einsetzaufgabe für eine neue Einsetzaufgabe trainiert werden kann, was verglichen mit dem Trainieren von Beginn an eine Trainingszeit verringert (Übertragung von Lernfähigkeiten). Ausführungsformen sind insbesondere anwendbar auf die Steuerung und Überwachung der Ausführung von Handhabungsaufgaben wie z. B. in Montagelinien.
  • Gemäß einer Ausführungsform ist das Verfahren computer-implementiert.
  • Obwohl hier spezifische Ausführungsformen veranschaulicht und beschrieben worden sind, wird der Fachmann auf dem Gebiet anerkennen, dass die gezeigten und beschriebenen spezifischen Ausführungsformen durch eine Vielzahl alternativer und/oder äquivalenter Implementierungen ersetzt werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Es ist beabsichtigt, dass diese Anmeldung jegliche Anpassungen oder Abwandlungen der hier diskutierten spezifischen Ausführungsformen abdeckt. Daher ist beabsichtigt, dass diese Erfindung lediglich durch die Ansprüche und deren Äquivalente eingeschränkt ist.

Claims (9)

  1. Roboter, der Folgendes umfasst: einen Endeffektor, der einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren; mindestens eine erste Kamera und eine zweite Kamera, die auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind; eine Steuereinheit, die konfiguriert ist zum Empfangen eines ersten Bildes von der ersten Kamera und eines zweiten Bildes von der zweiten Kamera für eine Position des Endeffektors; Verarbeiten des ersten und des zweiten Bildes durch ein neuronales Netz, wobei das neuronale Netz konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben; und Steuern des Roboters, derart, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert.
  2. Roboter nach Anspruch 1, wobei die erste Kamera und die zweite Kamera in Bezug auf die Greiferebene symmetrisch zueinander angeordnet sind.
  3. Roboter nach Anspruch 1 oder 2, wobei die Positionen der ersten Kamera und der zweiten Kamera in Bezug auf die Greiferebene gedreht sind.
  4. Roboter nach Anspruch 3, wobei die Positionen der ersten Kamera und der zweiten Kamera in Bezug auf die Greiferebene um 30 bis 60 Grad, vorzugsweise um 40 bis 50 Grad, gedreht sind.
  5. Roboter nach einem der Ansprüche 1 bis 4, wobei die Steuereinheit konfiguriert ist, das erste Bild und das zweite Bild durch das neuronale Netz zu verarbeiten durch Erzeugen eines Eingangsbildes für das neuronale Netz, das eine erste Anzahl von Kanälen aufweist, die gleich der Anzahl der Kanäle des ersten Bildes ist, die die Bilddaten des ersten Bildes halten, und eine zweite Anzahl von Kanälen aufweist, die gleich der Anzahl der Kanäle des zweiten Bildes ist, die die Bilddaten des ersten Bildes halten, und Zuführen des Eingangsbildes zum neuronalen Netz.
  6. Verfahren zum Steuern eines Roboters, das Folgendes umfasst: Empfangen eines ersten Bildes von einer ersten Kamera und eines zweiten Bildes von einer zweiten Kamera für eine Position eines Endeffektors des Roboters, wobei der Endeffektor einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, und wobei die erste Kamera und die zweite Kamera auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind; Verarbeiten des ersten und des zweiten Bildes durch ein neuronales Netz, das konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben; und Steuern des Roboters, derart, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert.
  7. Verfahren nach Anspruch 6, das das Trainieren des neuronalen Netzes, aus Eingangsdatenelementen, die Bilddaten, die von zwei Kameras aufgenommen werden, umfassen, Bewegungsvektoren für eine Einsetzaufgabe abzuleiten, umfasst.
  8. Computerprogramm, das Anweisungen umfasst, die dann, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 6 bis 7 ausführt.
  9. Computerlesbares Medium, das Anweisungen speichert, die dann, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 6 bis 7 ausführt.
DE102022202145.2A 2022-03-02 2022-03-02 Roboter und Verfahren zum Steuern eines Roboters Pending DE102022202145A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102022202145.2A DE102022202145A1 (de) 2022-03-02 2022-03-02 Roboter und Verfahren zum Steuern eines Roboters
PCT/EP2023/053646 WO2023165807A1 (en) 2022-03-02 2023-02-14 Robot and method for controlling a robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022202145.2A DE102022202145A1 (de) 2022-03-02 2022-03-02 Roboter und Verfahren zum Steuern eines Roboters

Publications (1)

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

Family

ID=85251746

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022202145.2A Pending DE102022202145A1 (de) 2022-03-02 2022-03-02 Roboter und Verfahren zum Steuern eines Roboters

Country Status (2)

Country Link
DE (1) DE102022202145A1 (de)
WO (1) WO2023165807A1 (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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11148295B2 (en) * 2018-06-17 2021-10-19 Robotics Materials, Inc. Systems, devices, components, and methods for a compact robotic gripper with palm-mounted sensing, grasping, and computing devices and components
WO2020142296A1 (en) * 2019-01-01 2020-07-09 Giant.Ai, Inc. Software compensated robotics
US11171459B2 (en) * 2019-08-09 2021-11-09 The Boeing Company Method and system for alignment of wire contact with wire contact insertion holes of a connector
JP7458741B2 (ja) * 2019-10-21 2024-04-01 キヤノン株式会社 ロボット制御装置及びその制御方法及びプログラム

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
WO2023165807A1 (en) 2023-09-07

Similar Documents

Publication Publication Date Title
DE102018116053B4 (de) Robotersystem und Roboterlernverfahren
DE102021109332B4 (de) Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle
DE102021109334B4 (de) Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021107532A1 (de) System und Verfahren zum Anlernen eines Roboters mittels Demonstration durch einen Menschen
WO2021069129A1 (de) Vorrichtung und verfahren zum steuern einer robotervorrichtung
DE102021204961B4 (de) Verfahren zur Steuerung einer Robotervorrichtung
EP3966731A1 (de) Maschinelles lernen einer objekterkennung mithilfe einer robotergeführten kamera
DE102021103726B4 (de) Messparameter-Optimierungsverfahren und -vorrichtung sowie Computersteuerprogramm
DE102021204697B4 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102020212658A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102022130652A1 (de) Anlernen eines roboters durch vorführen mit visualservoing
DE102021204846B4 (de) Verfahren zum Steuern einer Robotervorrichtung
DE112018007729B4 (de) Maschinelle Lernvorrichtung und mit dieser ausgestattetes Robotersystem
DE102020214301A1 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen
DE102020200165B4 (de) Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
DE102021109333B4 (de) Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102020214300A1 (de) Vorrichtung und verfahren zum trainieren eines maschinellen lernmodells zum erkennen einer objekttopologie eines objekts aus einem bild des objekts
DE102022202143B4 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102022202145A1 (de) Roboter und Verfahren zum Steuern eines Roboters
DE102022202142B3 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Ableiten eines Bewegungsvektors für einen Roboter aus Bilddaten
DE102022202144A1 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102021212859A1 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Erzeugen von Deskriptorbildern zu Bildern von Objekten
DE102021109336B4 (de) Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021201880A1 (de) Vorrichtung und Verfahren zum Ermitteln der Pose eines Objekts
DE102021211185B4 (de) Vorrichtung und Verfahren zum Steuern eines Roboters

Legal Events

Date Code Title Description
R163 Identified publications notified