DE102021109332B4 - Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle - Google Patents

Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle Download PDF

Info

Publication number
DE102021109332B4
DE102021109332B4 DE102021109332.5A DE102021109332A DE102021109332B4 DE 102021109332 B4 DE102021109332 B4 DE 102021109332B4 DE 102021109332 A DE102021109332 A DE 102021109332A DE 102021109332 B4 DE102021109332 B4 DE 102021109332B4
Authority
DE
Germany
Prior art keywords
robot
controlling
camera
neural network
force
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.)
Active
Application number
DE102021109332.5A
Other languages
English (en)
Other versions
DE102021109332A1 (de
Inventor
Oren Spector
Dotan Di Castro
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 DE102021109332.5A priority Critical patent/DE102021109332B4/de
Priority to US17/655,194 priority patent/US20220331964A1/en
Priority to CN202210384246.8A priority patent/CN115194755A/zh
Priority to JP2022066335A priority patent/JP2022163719A/ja
Publication of DE102021109332A1 publication Critical patent/DE102021109332A1/de
Application granted granted Critical
Publication of DE102021109332B4 publication Critical patent/DE102021109332B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • 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
    • 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
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/081Touching devices, e.g. pressure-sensitive
    • B25J13/084Tactile sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J18/00Arms
    • 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
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0014Image feed-back for automatic industrial control, e.g. robot with camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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
    • 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/39391Visual servoing, track end effector with camera image feedback
    • 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R43/00Apparatus or processes specially adapted for manufacturing, assembling, maintaining, or repairing of line connectors or current collectors or for joining electric conductors
    • H01R43/26Apparatus or processes specially adapted for manufacturing, assembling, maintaining, or repairing of line connectors or current collectors or for joining electric conductors for engaging or disengaging the two parts of a coupling device

Abstract

Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle, das Folgendes umfasst:Steuern des Roboters zum Halten des Objekts;Empfang einer Schätzung einer Zielposition zum Einsetzen des Objekts in die Einsetzstelle;Steuern des Roboters zum Bewegen an die geschätzte Zielposition; Aufnehmen eines Kamerabilds unter Verwendung einer an dem Roboter montierten Kamera, nachdem der Roboter zum Bewegen an die geschätzte Zielposition gesteuert wurde;Einspeisen des Kamerabilds in ein neuronales Netz, das trainiert ist zum Ableiten, aus Kamerabildern, von Bewegungsvektoren, die Bewegungen von den Positionen, an denen die Kamerabilder aufgenommen werden, spezifizieren, um Objekte in Einsetzstellen einzusetzen; undSteuern des Roboters zum Bewegen gemäß dem durch das neuronale Netz aus dem Kamerabild abgeleiteten Bewegungsvektor.

Description

  • Stand der Technik
  • Die vorliegende Offenbarung betrifft Vorrichtungen und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle.
  • DE 10 2021 103 272 A1 offenbart Vorrichtungen, Systeme und Techniken zur Erleichterung einer Robotikausführung unter Verwendung neuronaler Netze zur Durchführung komplexer, mehrschrittiger Aufgaben in Situationen, für die ein Roboter nicht trainiert wurde. In mindestens einem Ausführungsbeispiel wird ein hierarchisches Modell trainiert, um aus einem Weltzustand einen logischen Zustand abzuleiten und auf der Grundlage dieses logischen Zustands ausführbare Aktionen für einen Roboter zu bestimmen.
  • DE 10 2020 212 461 A1 offenbart eine Oberflächenfeinbearbeitungsvorrichtung umfassend: einen Arm, an dem ein Werkzeug befestigt ist; einen Kraftsensor, der die auf das Werkzeug ausgeübte Kraft erfasst; einen visuellen Sensor, der ein Bild einer ebenen Oberfläche erfasst; eine Speichereinrichtung, die Daten speichert, die einen Zielzustand der ebenen Oberfläche anzeigen; und eine Steuerung, die einen Abtragungsposition-Bestimmungsvorgang durchführt, um unter Verwendung von Bilddaten von wenigstens einer nicht-feinbearbeiteten Oberfläche und den Daten, die den Zielzustand anzeigen, eine Mehrzahl von Abtragungspositionen auf der ebenen Oberfläche des Elements zu bestimmen.
  • DE 10 2020 115 658 A1 offenbart eine Anpassungsunterstützungsvorrichtung umfassend: eine Lernmodellspeichereinheit zum Speichern, mit Kraftzustandsdaten und Positionsdaten in einem Vorgang, wenn Kraftsteuerung des Industrieroboters ausgeführt wird, als eine Zustandsvariable und mit Daten, die ein Bestimmungsergebnis anzeigen, ob ein Ergebnis der Kraftsteuerung, die unter dem Zustand ausgeführt wurde, Erfolg oder Fehlschlag ist, basierend auf vorgegebenen Kriterien als Bestimmungsdaten, eines Lernmodells, das durch maschinelles Lernen erstellt wird.
  • DE 10 2020 115 631 A1 offenbart eine Maschinenlernvorrichtung, die den Zustand eines Werkzeugs anhand einer Kraft bestimmen kann, die vom Werkzeug an einen Roboter angelegt wird, während der Roboter unter Verwendung des Werkzeugs einen Arbeitsvorgang durchführt.
  • DE 10 2020 100 316 A1 offenbart ein Bestimmungsgerät für einen Zustand von Kraft und Moment, die an einen Manipulator angelegt werden, und den Zustand der Position und der Lage bei einer Operation, wenn eine Kraftregelung des Industrieroboters ausgeführt wird, als erhaltene Daten und erstellt eine Evaluierungsfunktion, die die Qualität der Operation des Industrieroboters evaluiert, basierend auf den erhaltenen Daten.
  • DE 11 2019 002 310 B4 offenbart ein Robotersystem zum Durchführen eines Positionssuchprozesses in einer Fügeaufgabe.
  • Zusammenbau, wie etwa Zusammenbau von elektrischer Verdrahtung, ist eine der gängigsten manuellen Arbeiten in der Industrie. Beispiele dafür sind Zusammenbau elektrischer Schalttafeln und Zusammenbau hausinterner Schaltanlagen. Komplizierte Zusammenbauprozesse können typischerweise als eine Abfolge von zwei Hauptaktivitäten beschrieben werden: Greifen und Einsetzen. Ähnliche Aufgaben treten beispielsweise bei Kabelherstellung auf, was typischerweise Kabeleinstecken für Validierung und Verifizierung beinhaltet.
  • Während in der Industrie für Greifaufgaben geeignete Robotersteuerungsschemas typischerweise verfügbar sind, ist Durchführen von Einstecken oder von „Stift-in-Loch“-Aufgaben durch Roboter weiter nur auf kleine Untermengen von Problemen anwendbar, hauptsächlich solche, die einfache Formen an festen Orten involvieren und in denen die Variationen nicht berücksichtigt werden. Darüber hinaus sind existierende visuelle Techniken langsam, typischerweise etwa dreimal langsamer als menschliche Bediener.
  • Daher ist eine Aufgabe der Erfindung, effiziente Verfahren zum Steuern eines Roboters zum Durchführen einer Einsetzaufgabe bereitzustellen.
  • Offenbarung der Erfindung
  • Die Aufgabe der Erfindung wird durch die unabhängigen Ansprüche gelöst.
  • Gemäß verschiedensten Ausführungsformen ist ein Verfahren vorgesehen zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle, das Folgendes umfasst:
    • Steuern des Roboters zum Halten des Objekts, Erzeugen einer Schätzung einer Zielposition zum Einsetzen des Objekts in die Einsetzstelle, Steuern des Roboters zum Bewegen an die geschätzte Zielposition, Aufnehmen eines Kamerabilds unter Verwendung einer an dem Roboter montierten Kamera, nachdem der Roboter zum Bewegen an die geschätzte Zielposition gesteuert wurde, Einspeisen des Kamerabilds in ein neuronales Netz, das trainiert ist zum Ableiten, aus Kamerabildern, von Bewegungsvektoren, die Bewegungen von den Positionen, an denen die Kamerabilder aufgenommen werden, spezifizieren, um Objekte in Einsetzstellen einzusetzen, und Steuern des Roboters zum Bewegen gemäß dem durch das neuronale Netz aus dem Kamerabild abgeleiteten Bewegungsvektor.
  • Der Bewegungsvektor kann beispielsweise ein Vektor der Differenzen zwischen der Pose der aktuellen Position (Position an der ein Kamerabild aufgenommen wird) und der Pose der Einsetzstelle (z. B. im Hinblick auf kartesische Koordinaten für die Position und Winkel für die Orientierung) sein.
  • Verschiedene Ausführungsformen des oben beschriebenen Verfahrens erlauben mittels eines neuronalen Netzes ein Steuern eines Roboters für eine Einsetzaufgabe, für die Trainingsdaten möglicherweise einfach gesammelt werden können und die Verallgemeinern auf Variationen in der Steuerungsumgebung oder dem Steuerungsszenario erlauben, wie etwa einem Fehler beim Greifen (fehlausgerichtetes Greifen) des einzusetzenden Objekts, ein anderer Ort oder eine andere Orientierung als in den gesammelten Trainingsdaten, unterschiedliche Farben, kleine Formabweichungen. Insbesondere kann Gefährdung des Roboters oder dessen Umgebung während Daten gesammelt werden vermieden werden, und Lernen kann Offline durchgeführt werden. Ferner ist der Ansatz des oben beschriebenen Verfahrens auf viele verschiedene Einsetzprobleme skalierbar (einschließlich des Stift-in-Loch- und des Einfädel-Problems). Das Obige wird insbesondere durch Formulieren der Korrektur eines Greiffehlers (oder allgemein die Korrektur einer Position in einer Einsetzaufgabe) als eine Regressionsaufgabe für ein neuronales Netz erreicht, da ein neuronales Netz sehr komplex strukturierte Umweltgegebenheiten erfassen kann, während Datensammeln weiter einfach bleibt.
  • Im Folgenden werden verschiedene Beispiele beschrieben.
  • Beispiel 1 ist ein Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle wie oben beschrieben.
  • Beispiel 2 ist das Verfahren von Beispiel 1, wobei Steuern des Roboters zum Bewegen an die geschätzte Zielposition umfasst: Steuern des Roboters, bis das Objekt eine Ebene, in der sich die Einsetzstelle befindet, berührt, wobei die Positionen, an denen die Kamerabilder aufgenommen werden, Positionen sind, an denen das Objekt die Ebene berührt, und wobei das Kamerabild aufgenommen wird, wenn das Objekt die Ebene berührt.
  • Auf diese Weise wird eine Referenz geschaffen (für die Trainingsdatenelemente und im Betrieb), da sich die Einsetzstelle und der Teil des Objekts, der die Ebene berührt (z. B. die Spitze eines Pins eines Steckers), auf dem gleichen Niveau befinden (z. B. hinsichtlich der z-Koordinate in einem Endeffektor-Koordinatensystem). Diese Referenz vermeidet Mehrdeutigkeiten bei der durch das neuronale Netz durchgeführten Regressionsaufgabe.
  • Beispiel 3 ist das Verfahren von Beispiel 2, ferner umfassend Messen einer Kraft und eines Moments, die auf das Objekt ausgeübt werden, wenn das Objekt die Ebene berührt, und Einspeisen der gemessenen Kraft und des gemessenen Moments in das neuronale Netz zusammen mit dem Kamerabild, wobei das neuronale Netz trainiert ist zum Ableiten der Bewegungsvektoren aus den Kamerabildern und aus Kraft- und Momentmessungen.
  • Berücksichtigen von Kraftmessungen in der Regression liefert zusätzliche Informationen, die Verbessern des Regressionsergebnisses erlauben.
  • Beispiel 4 ist das Verfahren von Beispiel 2 oder 3, wobei Steuern des Roboters zum Bewegen gemäß dem Bewegungsvektor Steuern des Roboters zum Bewegen gemäß dem Bewegungsvektor, während Druck des Objekts auf die Ebene, in welcher sich der Ort befindet, beibehalten wird, bis das Objekt in die Einsetzstelle eingesetzt ist, umfasst.
  • Dies verringert die Freiheitsgrade der Bewegung des Roboters und führt somit zu einer zuverlässigeren Steuerung, bis die Einsetzstelle gefunden ist.
  • Beispiel 5 ist ein Roboter umfassend eine an dem Roboter montierte Kamera, die eingerichtet ist zum Liefern von Kamerabildern, und eine Steuereinheit, ausgelegt zum Implementieren eines neuronalen Netzes und ausgelegt zum Ausführen des Verfahrens nach einem der Beispiele 1 bis 4.
  • Beispiel 6 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 4 durchführt.
  • Beispiel 7 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 4 durchführt.
  • 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, in denen gilt:
    • 1 zeigt einen Roboter.
    • 2 zeigt ein neuronales Netz gemäß einer Ausführungsform.
    • 3 zeigt ein Beispiel für eine Ausgestaltung, in der die Steuereinheit ein Bild mit der robotermontierten Kamera aufnimmt, für Training oder im Betrieb.
    • 4 veranschaulicht Kraft und Moment, die durch ein Objekt erfahren werden.
    • 5 veranschaulicht Betrieb gemäß einer Ausführungsform für Einsetzen eines Elektrosteckers in eine Einsetzstelle.
    • 6 zeigt ein Flussdiagramm zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle gemäß einer Ausführungsform.
  • Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Veranschaulichung spezielle Einzelheiten und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeübt 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 Zusammenbauen eines Werkstü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 bewegbaren Glieder des Roboterarms 101, deren Betätigung eine physische Interaktion mit der Umwelt ermöglicht, um z. B. eine Aufgabe auszuführen. Zur Steuerung beinhaltet der Roboter 100 eine (Roboter-) Steuereinheit 106, die zum Implementieren der Interaktion mit der Umwelt gemäß einem Steuerprogramm ausgelegt ist. Das letzte Glied 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 versehen ist. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm vorsehen 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 vorsehen können. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktoren initiiert werden, die durch die Steuereinheit 106 gesteuert werden.
  • Der Begriff „Aktor“ kann als eine Komponente verstanden werden, die eingerichtet ist, als Reaktion auf deren Ansteuerung, zum Einwirken auf einen Mechanismus oder Prozess. Der Aktor kann durch die Steuereinheit 106 erteilte Anweisungen (die sogenannte Aktivierung) in mechanische Bewegungen umsetzen. Der Aktor, z. B. ein elektromechanischer Wandler, kann dafür ausgelegt sein, als Reaktion auf eine Ansteuerung, elektrische Energie in mechanische Energie umzuwandeln.
  • Der Begriff „Steuereinheit“ kann als eine beliebige Art 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 im vorliegenden Beispiel Anweisungen, z. B. einem Aktor, erteilen kann. Die Steuereinheit 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 beinhaltet die Steuereinheit 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, der Code und Daten speichert, auf deren Grundlage der Prozessor 110 den Roboterarm 101 steuert. Gemäß verschiedenen Ausführungsformen steuert die Steuereinheit 106 den Roboterarm 101 auf der Grundlage eines Maschinenlernmodells 112, das im Speicher 111 gespeichert ist.
  • Gemäß verschiedenen Ausführungsformen ist das Maschinenlernmodell 112 dafür ausgelegt und dafür trainiert, dem Roboter 100 zu erlauben, eine Einsetzaufgabe (z. B. Stift-in-Loch) durchzuführen, beispielsweise Einsetzen eines Steckers 113 in eine entsprechende Buchse 114. Hierfür nimmt die Steuereinheit 106 mithilfe der Kameras 117, 119 Bilder des Steckers 113 und der Buchse 114 auf. Der Stecker 113 ist beispielsweise ein USB-Stecker (USB - Universal Serial Bus). Es sei angemerkt, dass, falls der Stecker wie ein Stromstecker mehrere Stifte aufweist, jeder Stift dann als ein einzusteckendes Objekt angesehen werden kann (wobei die Einsetzstelle ein entsprechendes Loch ist). Alternativ kann der ganze Stecker als das einzusetzende Objekt angesehen werden (wobei die Einsetzstelle eine Steckdose ist). Es sei angemerkt, dass (abhängig davon, was als das Objekt angesehen wird) das Objekt 113 nicht notwendigerweise vollständig in die Einsetzstelle eingesetzt wird. Wie im Falle des USB-Steckers wird der USB-Stecker als eingesetzt betrachtet, wenn der Metallkontaktteil 116 in die Buchse 114 eingesetzt ist.
  • Robotersteuerung zum Durchführen einer Stift-in-Loch-Aufgabe involviert typischerweise zwei Hauptphasen: Suchen und Einsetzen. Während des Suchens wird die Buchse 114 identifiziert und lokalisiert, um die zum Einsetzen des Steckers 113 benötigten essentiellen Informationen bereitzustellen.
  • Suchen einer Einsetzstelle kann auf Visions- oder Blindstrategien basieren, was beispielsweise Spiralpfade involviert. Visuelle Techniken hängen in hohem Maße vom Standort der Kamera 117, 119 und der Platte 118 (in der die Buchse 114 platziert ist) und Hindernissen ab, und sind typischerweise dreimal langsamer als menschliche Bediener. Aufgrund der Limitierungen visueller Verfahren kann die Steuereinheit 106 Kraft-Drehmoment- und Haptik-Rückmeldung berücksichtigen, entweder ausschließlich oder in Kombination mit Vision.
  • Dies erlaubt insbesondere eine Verallgemeinerung, beispielsweise zwischen zylindrischen und kuboiden Stiften.
  • Steuern eines Roboters zum Durchführen einer Einsetzaufgabe kann auch eine Kontaktmodell-basierte Steuerung oder Kontaktmodell-freies Lernen involvieren. Modellbasierte Strategien schätzen den Zustand des Zusammenbaus anhand der gemessenen Kräfte, Drehmomente und der gemessenen Position und korrigieren die Bewegung dementsprechend unter Verwendung von zustandsabhängiger vorprogrammierter konformer Steuerung. Modellfreies Lernen involviert Lernen aus Demonstration (LfD - Learning from Demonstration) oder Lernen aus der Umwelt (LfE - Learning from the Environment). LfD-Algorithmen leiten eine Vorgehensweise aus einer Menge von Beispielen oder Demonstrationen ab, die durch erfahrene Bediener bereitgestellt werden. Die Flexibilität der resultierenden Vorgehensweise wird durch die in der Demonstrationsdatenmenge bereitgestellten Informationen beschränkt.
  • Bestärkungslernen-Ansätze (RL - Reinforcement learning) (z. B. Kombinieren einer vortrainierten Grundvorgehensweise (unter Verwendung von LfD oder einer vordesignten Grundsteuereinheit) und einer erlernten Restvorgehensweise durch Interagieren mit der Umwelt) können damit fertig werden, irgendwelche komplizierte Einsetzprobleme zu lösen und sogar in gewissem Ausmaß zu verallgemeinern. Allerdings bleiben die Flexibilität und die Skalierbarkeit von Online-RL als ein Online-Lernschema begrenzt. In diesem Fall ist es nämlich nichtpraktikabel, den Roboter mit der Umwelt mit der neuesten erlernten Vorgehensweise interagieren zu lassen, um weitere Erkenntnis über die Umwelt zu erfassen und die Vorgehensweise zu verbessern, da Datensammlung teuer (man muss Trajektorien an einem realen Roboter sammeln) und gefährlich (Robotersicherheit und dessen Umgebung) ist. Der Datensammlungsaspekt ist hochwichtig, da Verallgemeinerung beim Maschinenlernen mit der Qualität und Größe der trainierten Daten verknüpft ist.
  • Angesichts des Obigen, gemäß verschiedenen Ausführungsformen, ist ein Regressionsansatz vorgesehen, der auf einen weiten Bereich von Einsetzproblemen anwendbar ist. Experimente zeigen, dass dies ermöglicht, nahezu perfekte Ergebnisse über einen weiten Bereich von Steckern und Stiften mit nur 50-100 gesammelten Datenpunkten (die innerhalb weniger Minuten erlernt werden können) zu erreichen. Diese Datenpunkte können ohne Notwendigkeit einer vorausschauend erlernten Vorgehensweise gesammelt werden und können an irgendeinem abgesetzten Offline-Standort gesammelt werden. Zusätzlich kann es als über Ort und über stark verwandte Szenarien hinweg verallgemeinernd gezeigt werden, wie etwa hinsichtlich verschiedener Größe, verschiedener Formen und Farben als in den gesammelten Daten.
  • Zusammenbauaufgaben involvieren üblicherweise eine Abfolge von zwei Grundaufgaben: Aufnehmen-und-Ablegen (Pick-and-Place) und Stift-in-Loch (Einstecken). Im Folgenden wird Aufnehmen und Ablegen und insbesondere das Trainieren und Steuern für die Fähigkeit zum Greifen eines Objekts nicht beschrieben, da angenommen wird, dass eine entsprechende Steuerung verfügbar ist oder dass der Ort und das Greifen des Objekts (z. B. des Steckers 113) durch den Benutzer vordefiniert ist. Der im Folgenden beschriebene Ansatz kann Ungewissheiten (unerwünschtes fehlausgerichtetes Greifen) beim Greifort und winkel (typischerweise bis zu einem Ausmaß von 10 Grad) handhaben. Eine automatische Transportvorrichtung ist ein praktischer Weg zum Reduzieren von unerwünschtem fehlausgerichtetem Greifen.
  • Zum Erleichtern von Verallgemeinerung (und dafür, auf einen Regressionsansatz anwendbar zu sein) ist die durch die Steuereinheit 106 durchgeführte Steuerungsprozedur zum Steuern des Roboterarms 101 zum Einsetzen des Objekts 113 in die Einsetzstelle 114 in zwei Stufen aufgeteilt. Die erste Stufe (Lokalisierungsstufe) ist ein grober Lokalisierungs- und Planungsteil. Hierfür verwendet die Steuereinheit 106 eine weitere (z. B. horizontale) Kamera 119 zum Lokalisieren der Einsetzstelle 114. Die Lokalisierung ist eine grobe Lokalisierung und deren Fehler hängt von dem Standort und der Art der horizontalen Kamera 119 ab.
  • Die zweite Stufe (Korrekturstufe) ist eine Korrektur der Position gemäß einer Restvorgehensweise. Die Notwendigkeit für eine Korrektur entsteht durch den Umstand, dass Ungewissheiten bei Ort und Orientierung der Einsetzstelle 114 aufgrund von Lokalisierungs-, Greif- und Steuerungsverfolgungsfehlern unvermeidlich sind.
  • Gemäß verschiedenen Ausführungsformen wird ein Maschinenlernmodell 112 in der Form eines neuronalen Netzes trainiert, um einen Bewegungsvektor zum Korrigieren der Position zu liefern. Das bedeutet, dass das neuronale Netz zum Durchführen von Regression trainiert wird. Das neuronale Netz 112 arbeitet auf Bildern, die durch eine robotermontierte Kamera 117 aufgenommen wurden, die mit einem gewissen Winkel (z. B. 45 Grad) auf den Endeffektor 104 gerichtet ist, so dass durch diese aufgenommene Bilder das durch den Endeffektor 104 gehaltene Objekt 113 zeigen. Die Kamera 117 ist beispielsweise eine unter 45 Grad (von dem Roboterhandgelenk, z. B. in Bezug auf eine Endeffektor-z-Achse) befindliche Handgelenkskamera, so dass die Mitte des Bilds zwischen die Finger des Endeffektors 104 zeigt. Dies erlaubt es, Verdeckung zu vermeiden.
  • Ein durch die robotermontierte Kamera 117 aufgenommenes Bild ist eine der Eingaben des neuronalen Netzes 112.
  • 2 zeigt ein neuronales Netz 200 gemäß einer Ausführungsform.
  • Das neuronale Netz 200 führt eine Regressionsaufgabe durch. Es beinhaltet ein erstes Subnetz 201, das eine visuelle Eingabe 202 empfängt, z. B. ein Bild, das durch die robotermontierte Kamera 117 geliefert wird. Das erste Subnetz 201 ist ein Faltungsnetz (z. B. gemäß YOLO-Lite). Dessen Ausgabe wird an ein zweites Subnetz 204 des neuronalen Netzes 200 übergeben. Das zweite Subnetz 204 empfängt eine Krafteingabe 203, d. h. Messungen eines Kraftsensors 120, der ein Moment und eine Kraft misst, die durch das Objekt 113 erfahren werden, wenn es durch den Endeffektor gehalten und durch den Roboter auf eine Ebene (z. B. die Oberfläche 115 der Platte 118) gedrückt wird. Die Kraftmessung kann durch den Roboter oder durch einen externen Kraft- und Drehmomentsensor vorgenommen werden.
  • Die Verwendung von sowohl visueller Eingabe 202 und von Krafteingabe 203 macht den Ansatz für viele verschiedene Arten von Einsetzaufgaben anwendbar.
  • Das zweite Subnetz 204 (das z. B. vollständig verbundene Schichten aufweist) verwendet eine gemeinsam genutzte Repräsentation von visuellen und Kraftinformationen (z. B. erzeugt durch Verkettung der Ausgabe des ersten Subnetzes 201 und der Krafteingabe 203). Dessen Ausgabe ist ein Bewegungsvektor (hier als ΔY bezeichnet), der eine Delta-Aktion repräsentiert, die der Roboter in dem Endeffektor-Koordinatensystem anwenden sollte. Der Bewegungsvektor kann beispielsweise einen Translationsvektor in der x-y-Ebene des Endeffektor-Koordinatensystems umfassen. Es sei angemerkt, dass der Bewegungsvektor nicht nur Translationskomponenten umfassen kann, sondern auch Winkel umfassen kann, die Spezifizieren, wie der Roboterarm 101 gedreht werden sollte, um die Orientierung des Objekts 113 zu korrigieren, um dieses in die Einsetzstelle 114 einzusetzen.
  • Verwendung einer Delta-Aktion als eine Ausgabe, ohne den Ort des Endeffektors (gegenüber dem neuronalen Netz) anzugeben, führt zu einem Schema, bei dem sich das neuronale Netz in Unkenntnis von Ort und Drehung befindet. Drehen der Platte 118 und des Endeffektors 104 um neunzig Grad in der horizontalen Ebene hat keine Auswirkung auf die Eingabedaten und die Ausgabedaten des neuronalen Netzes 200. Dies ermöglicht es, das neuronale Netz 200 einfach zu halten.
  • Falls der Endeffektorort zum Spezifizieren der Korrekturaktion der Korrekturstufe nötig sein sollte, würde Trainieren des neuronalen Netzes 200 nicht auf einen anderen Plattenort verallgemeinert, wohingegen Verwenden des Endeffektor-Koordinatensystems erlaubt, das neuronale Netz gegenüber der Plattendrehung in Unkenntnis zu halten.
  • Um Trainingsdaten für das neuronale Netz 200 zu sammeln (insbesondere, um die richtigen Aktionen herauszufinden, d. h. Bewegungsvektoren, die durch das neuronale Netz 200 ausgegeben werden sollten) werden zuerst Einsetzort und Orientierung bestimmt und gespeichert. Nach sichern des Einsetzortes können Trainingsdaten für das Regressionsmodell gesammelt werden als obs:{Kamerabild, Kraft}
    Aktion im Endeffektor-Koordinatensystem:{Lochvoransichten gesicherter Ort - aktueller Ort}.
  • Dies bedeutet, dass Erzeugen von Trainingsdatenelementen zum Trainieren des neuronalen Netzes 200 umfasst:
    • • Bestimmen des Einsetzstellenorts
    • • Sammeln von Kamerabild, Kraftmessung und aktuellem Ort (für einen Trainingsort)
    • • Bilden eines Trainingsdatenelements als Eingabe (Observation) gegeben durch {Bild, Kraft} und Label (Aktion im Endeffektorraum) gegeben durch {Einsetzstellenort - aktueller Ort}, d. h. die Differenz zwischen Einsetzstellenort und aktuellem Ort
  • Wie oben erwähnt wurde, kann das Label ferner einen oder mehrere Winkel zum Korrigieren der Orientierung umfassen, d. h. die Differenz zwischen der Einsetzstellenorientierung und der aktuellen Orientierung. In diesem Falle wird auch die aktuelle Orientierung gesammelt.
  • Unter Verwendung der auf diese Weise erzeugten Trainingsdatenelemente wird das neuronale Netz 200 unter Verwendung von überwachtem Training trainiert. Das Training kann durch die Steuereinheit 106 durchgeführt werden oder das neuronale Netz 200 kann extern trainiert und in die Steuereinheit 106 geladen werden.
  • Im Betrieb nimmt die Steuereinheit 106, in der Korrekturstufe (d. h. der zweiten Stufe) unter Verwendung der handgelenkmontierten Kamera 107 ein Bild auf, speist es in das trainierte neuronale Netz 200 ein und steuert den Roboter gemäß der Ausgabe des trainierten neuronalen Netzes 200, die ein Bewegungsvektor ist, der spezifiziert, wohin sich von der aktuellen Position (die sich aus der ersten Stufe ergibt) bewegt werden soll und möglicherweise wie die Orientierung des Objekts 113 zum Einsetzen des Objekts 113 in die Einsetzstelle geändert werden soll. Dies bedeutet, dass die Steuereinheit 106 eine durch die Ausgabe des neuronalen Netzes 200 spezifizierte Steuerungsaktion durchführt. Wie oben erläutert wurde, muss die aus der ersten Stufe resultierende Position typischerweise aufgrund von Lokalisierungsgreif- und Steuerungsverfolgungsfehlern korrigiert werden.
  • Gemäß verschiedenen Ausführungsformen werden die durch die Kamera 107 aufgenommenen Bilder (sowohl für Training als auch im Betrieb) aufgenommen, wenn sich die Einsetzstelle (d. h. insbesondere die Öffnung der Einsetzstelle) und die Spitze des Objekts, das in die Einsetzstelle eingesetzt werden soll, in derselben Ebene befinden.
  • 3 zeigt ein Beispiel für eine Ausgestaltung, in der die Steuereinheit 106 ein Bild mit der robotermontierten Kamera 107 aufnimmt, für Training oder im Betrieb.
  • In diesem Beispiel, wie in der Veranschaulichung von 1, ist das Objekt ein USB-Stecker 301 und die Einsetzstelle ist eine USB-Buchse 302 (gezeigt im Querschnitt). Die Steuereinheit 106 nimmt mittels der robotermontierten Kamera 107 ein Foto auf, wenn, die Spitze des Steckers 301 (die zuerst in die Buchse 302 hineingehen soll) die Oberfläche 303 (z. B. die Plattenoberfläche), in der die Einsetzstelle ausgebildet ist, berührt.
  • In dem Beispiel eines Stromsteckers ist die Oberfläche 303 beispielsweise die Oberfläche, in der sich die Löcher für die Stifte befinden (d. h. die untere Oberfläche der Öffnung zum Aufnehmen des Kunststoffgehäuses). Dies setzt voraus, dass die Genauigkeit der ersten Stufe hoch genug ist, so dass die Stifte die Oberfläche berühren (d. h., sich in dieser Öffnung befinden).
  • Verwenden einer Handgelenkkamera zum Evaluieren der Delta-Distanz zu dem benötigten Ort ist kompliziert, wenn, da sich der Pin der Spitze der Buchse und die Öffnung der Einsetzstelle in verschiedenen Ebenen befinden, da die Distanz zwischen dem Stecker 301 und der Buchse 302 parallel zu der Oberfläche 303, gezeigt in einem Kamerabild, für unterschiedliche Distanzen zwischen dem Stecker 301 und der Buchse 302 senkrecht zu der Oberfläche 303 und somit für unterschiedliche tatsächliche Distanzen zwischen Stecker 301 und Buchse 302 aufgrund des Kamerabildwinkels dieselbe sein kann (als wenn man zwei nahe beieinanderliegende Bleistifte mit einem geschlossenen Auge betrachtet und einen Bleistift vor und zurück bewegt). Die Beziehung zwischen einer in einem Kamerabild gezeigten Distanz und tatsächlichen Distanzen wird sogar noch komplizierter, wenn die Handgelenkkamera 107 unter einem Winkel platziert ist, wie es gemäß verschiedenen Ausführungsformen der Fall ist, um Okklusion zu vermeiden. Diese Schwierigkeit kann angegangen werden, indem Kamerabilder nur erhalten werden, wenn der Stecker 301 die Oberfläche 303 berührt. Die Steuereinheit 106 kann mittels des Kraftsensors 120 detektieren, dass der Stecker 301 die Oberfläche 303 berührt: wenn der Kraftsensor eine auf den Stecker 113 ausgeübte Kraft detektiert, die von der Oberfläche 303 der Platte 118 weggerichtet ist, berührt der Stecker 113 die Oberfläche 303 der Platte 118.
  • In dieser speziellen Situation befindet bzw. befinden sich der bzw. die Kontakte, z. B. der Pin oder die Pins, des Steckers und des Buchsenlochs in derselben Ebene, und das neuronale Netz 200 (trainiert unter Verwendung von Kamerabildern, wenn diese Bedingung zutrifft) kann die Distanz zwischen der aktuellen Position des Steckers 301 zu der Buchse 302 aus einem Kamerabild (aufgenommen, wenn diese Bedingung zutrifft) berechnen.
  • Gemäß verschiedenen Ausführungsformen werden die Trainingsdatenbilder (d. h. die für die Trainingsdatenelemente aufgenommenen Kamerabilder) auf eine rückwärtige Lernweise gesammelt. Dies bedeutet, dass der Roboter gesteuert wird, das Objekt 113 zu halten (z. B. Greifer geschlossen), und in eine Position gebracht wird, so dass das Objekt 113 in die Einsetzstelle 114 eingesetzt ist. Aus dieser Position wird der Roboter gesteuert, nach oben zu gehen (d. h. in die z-Richtung des Endeffektor-Koordinatensystems), wobei ein zufälliger Fehler (z. B. 10 mm und 20 Grad, was für die meisten Anwendungen ausreichend ist) ähnlich den Unsicherheiten in dem System (Greif- und Lokalisierungsfehler) hinzugefügt wird. Nach dem Nach-oben-Gehen wird der Roboter gesteuert, nach unten zu gehen, bis der Kraftsensor 102 eine auf das Objekt 113 ausgeübte Kraft fühlt oder ein Ortsfehler (Anomalie) detektiert wird. Dann wird die robotermontierte Kamera 117 gesteuert, ein Bild zu erhalten, und Obs:{Kamerabild, Kraft} und ein Bewegungsvektor (Differenzvektor zwischen Einsetzstellenort und aktuellem Ort in dem Endeffektor-Koordinatensystem) werden als Trainingsdatenelement aufgezeichnet, wie oben erläutert wurde.
  • Gemäß verschiedenen Ausführungsformen wird Datenerweiterung für die Trainingsdaten durchgeführt, um die Verallgemeinerung zu verbessern.
  • Hinsichtlich der gesammelten Trainingsdatenbilder ist es wünschenswert, dass die Korrekturstufe (insbesondere das neuronale Netz 200) in Unkenntnis stark verwandter Szenarien ist, wie etwa unterschiedliche Farben und unterschiedliche Formen von Steckern und Buchsen (z. B. Stromstecker mit unterschiedlichen Gehäusen und Farben). Verallgemeinerung über Formen ist typischerweise schwierig, da die Form die Kameraposition beeinflusst, wenn das Kamerabild aufgenommen wird, da die Stromsteckerstifte länger oder kürzer sein können. Bespiele für Erweiterung von Trainingsdatenbildern (d. h., wie ein oder mehrere zusätzliche Trainingsdatenbilder aus einem aufgezeichneten Trainingsdatenbild erzeugt werden) sind:
    • • zufällige Farbschwankungen von 50% des Trainingsdatenbilds (für Verallgemeinerung über Helligkeit und Farbe)
    • • zufällige Grauwerte von 50% des Trainingsdatenbilds - (für Verallgemeinerung über Farbe)
    • • Zuschneiden des Trainingsdatenbilds (für Verallgemeinerung über Verschiebungen der Kameraposition, die aufgrund von unterschiedlicher Form oder von Greiffehlern bewirkt werden)
    • • Verschieben des Trainingsdatenbilds (für Verallgemeinerung über Verschiebungen der Kameraposition, die aufgrund von unterschiedlichen Formen oder von Greiffehlern bewirkt werden)
    • • Zufallsfaltung (zum Hinzufügen von Gesamtrobustheit)
  • Das Label (Bewegungsvektor) für ein zusätzliches Trainingsdatenbild, erzeugt auf diese Weise aus einem aufgezeichneten Trainingsdatenbild, wird auf dasselbe wie für das aufgezeichnete Trainingsdatenbild eingestellt.
  • Gemäß verschiedenen Ausführungsformen wird Trainingsdatenerweiterung auch für die Kraftmessung vorgenommen. Dies bedeutet, dass aus einem Trainingsdatenelement ein oder mehrere zusätzliche Trainingsdatenelemente erzeugt werden, indem die Kraftinformationen (die als Krafteingabe 203 verwendet werden, wenn das neuronale Netz 200 mit dem Trainingsdatenelement trainiert wird) abgeändert werden. Die Kraftinformationen umfassen beispielsweise eine Kraft, die in der Endeffektor-z-Richtung durch das Objekt 113 erfahren wird, und ein Moment, das durch das Objekt 113 erfahren wird.
  • 4 veranschaulicht Kraft und Moment, die durch ein Objekt 401 erfahren werden.
  • Ähnlich der 3 soll das Objekt 401 in eine Einsetzstelle 402 eingesetzt werden und berührt die Oberfläche 403. Der das Objekt 401 haltende Roboterarm 101 übt in der Richtung der Oberfläche 403 eine Kraft 404 auf das Objekt 401 aus. Das Objekt 401 erfährt eine entsprechende Reaktionskraft 405. Da das Objekt 401 an der Kante der Einsetzstelle 402 ist, verursacht die Kraft 404 darüber hinaus ein Moment 406. Die Reaktionskraft 405 und das Moment 406 werden beispielsweise durch den Sensor 120 gemessen und als Kraftinformationen verwendet (d. h. Krafteingabe 203 für das neuronale Netz 200 im Training und im Betrieb).
  • Die Reaktionskraft 405 und das Moment 406 hängen von der Kraft 404 ab. Diese Abhängigkeit kann zum Überanpassen führen. Man kann sehen, dass die wirklich wertvollen Informationen nicht die Stärke des Paars (F, M) sind, d. h. das Paar aus Reaktionskraft 405 und Moment 406, sondern deren Verhältnis, das die Distanz R zwischen dem Aktionspunkt der Reaktionskraft 405 und der Mitte des Objekts 401 ist.
  • Um Überanpassen von Kraft-Moment zu vermeiden, wird Erweiterung für ein Paar (F, M) in einem Trainingsdatenelement folgendermaßen durchgeführt ( F , M ) ' = α ( F , M )
    Figure DE102021109332B4_0001
    wobei α zufällig aus dem Intervall [0, k] entnommen wird (z. B. gleichmäßig), wobei k eine vorbestimmte Obergrenze ist.
  • (F, M)' wird als Kraftinformationen für ein zusätzliches Trainingsdatenelement verwendet. (F, M), d. h. die Kraftinformationen des ursprünglichen Trainingsdatenelements, wird beispielsweise durch Messung bestimmt.
  • 5 veranschaulicht Betrieb gemäß einer Ausführungsform für Einsetzen eines Elektrosteckers in eine Einsetzstelle.
  • Die Steuereinheit 106 zeichnet mit der horizontalen Kamera 119 zuerst ein Bild auf. Sie führt dann (erste Stufe) eine grobe Lokalisierung der Löcher (z. B. unter Verwendung eines geschlossenen Orb-Algorithmus) aus und plant eine entsprechende Bewegung.
  • Die Steuereinheit 106 führt beispielsweise unter Verwendung einer PD-Regelung den Plan aus, den Ort der Löcher zu erreichen (Bilder 501, 502, 503).
  • Die Stifte sind dann in der Öffnung der Buchse, aber noch nicht in den Löchern (Figur 503), aufgrund von verschiedenen Fehlern, wie oben erläutert wurde. Die Steuereinheit detektiert dies durch Kraftmessung, da der Stecker (und somit der Endeffektor) eine Kraft erfährt.
  • Die Steuereinheit 106 misst die Kraft und nimmt mit der robotermontierten Kamera 117 ein Bild auf, speist diese in das trainierte neuronale Netz 112 ein und steuert den Roboter wie durch die Bewegungsvektorausgabe durch das neuronale Netz 112 spezifiziert. Der Roboter drängt permanent in Richtung der Einsetzebene (Abwärts-z-Richtung im Endeffektor-Koordinatensystem), so dass er schließlich den Stecker in die Buchse drängt, wenn der Roboter die Bewegung gemäß dem Bewegungsvektor abgeschlossen hat (Bild 504).
  • Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren wie in 6 veranschaulicht bereitgestellt.
  • 6 zeigt ein Flussdiagramm 600 für ein Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle gemäß einer Ausführungsform.
  • In 601 wird der Roboter zum Halten des Objekts gesteuert.
  • In 602 wird eine Schätzung einer Zielposition zum Einsetzen des Objekts in die Einsetzstelle erzeugt.
  • In 603 wird der Roboter zum Bewegen an die geschätzte Zielposition gesteuert.
  • In 604 wird ein Kamerabild unter Verwendung einer an dem Roboter montierten Kamera aufgenommen, nachdem der Roboter zum Bewegen an die geschätzte Zielposition gesteuert wurde.
  • In 605 wird das Kamerabild in ein neuronales Netz eingespeist, das trainiert ist zum Ableiten, aus Kamerabildern, von Bewegungsvektoren, die Bewegungen von den Positionen, an denen die Kamerabilder aufgenommen werden, spezifizieren, um Objekte in Einsetzstellen einzusetzen.
  • In 606 wird der Roboter zum Bewegen gemäß dem durch das neuronale Netz aus dem Kamerabild abgeleiteten Bewegungsvektor gesteuert.
  • Gemäß verschiedenen Ausführungsformen wird, mit anderen Worten, eine Einsetzaufgabe als eine Regressionsaufgabe (Bestimmung eines Bewegungsvektors) formuliert, die durch ein neuronales Netz gelöst wird. Der Bewegungsvektor kann Translations- und Rotationskomponenten umfassen, die unter Verwendung einer geeigneten Repräsentation repräsentiert werden können, z. B. ein Koordinatensystem oder ein System von Winkeln.
  • Das Verfahren von 6 kann durch einen oder mehrere Computer durchgeführt werden, die eine oder mehrere Datenverarbeitungseinheiten beinhalten. Der Begriff „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. Eine beliebige andere Weise zum Implementieren der jeweiligen Funktionen kann auch als eine Datenverarbeitungseinheit oder Logikschaltungsanordnung angesehen 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 können.
  • Verschiedene Ausführungsformen können Bilddaten von verschiedenen visuellen Sensoren (Kameras), wie etwa Video, Radar, Lidar, Ultraschall, Thermobildgebung usw. empfangen und verwenden. Ausführungsformen können zum Trainieren eines Maschinenlernsystems und zum Steuern eines Roboters, z. B. zum autonomen Steuern eines Robotermanipulators, verwendet werden, um verschiedene Einsetzaufgaben unter verschiedenen Szenarios zu erzielen. Es sei angemerkt, dass das neuronale Netz nach Training für eine Einsetzaufgabe für eine neue Einsetzaufgabe trainiert werden kann, was im Vergleich zum Trainieren von null auf die Trainingszeit reduziert (Übertragung von Lernfähigkeiten). Insbesondere sind Ausführungsformen bei der Steuerung und Überwachung der Ausführung von Manipulationsaufgaben z. B. bei Montagelinien, anwendbar.
  • Gemäß einer Ausführungsform ist das Verfahren computer-implementiert.

Claims (7)

  1. Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle, das Folgendes umfasst: Steuern des Roboters zum Halten des Objekts; Empfang einer Schätzung einer Zielposition zum Einsetzen des Objekts in die Einsetzstelle; Steuern des Roboters zum Bewegen an die geschätzte Zielposition; Aufnehmen eines Kamerabilds unter Verwendung einer an dem Roboter montierten Kamera, nachdem der Roboter zum Bewegen an die geschätzte Zielposition gesteuert wurde; Einspeisen des Kamerabilds in ein neuronales Netz, das trainiert ist zum Ableiten, aus Kamerabildern, von Bewegungsvektoren, die Bewegungen von den Positionen, an denen die Kamerabilder aufgenommen werden, spezifizieren, um Objekte in Einsetzstellen einzusetzen; und Steuern des Roboters zum Bewegen gemäß dem durch das neuronale Netz aus dem Kamerabild abgeleiteten Bewegungsvektor.
  2. Verfahren nach Anspruch 1, wobei Steuern des Roboters zum Bewegen an die geschätzte Zielposition umfasst: Steuern des Roboters, bis das Objekt eine Ebene, in der sich die Einsetzstelle befindet, berührt, wobei die Positionen, an denen die Kamerabilder aufgenommen werden, Positionen sind, an denen das Objekt die Ebene berührt, und wobei das Kamerabild aufgenommen wird, wenn das Objekt die Ebene berührt.
  3. Verfahren nach Anspruch 2, ferner umfassend Messen einer Kraft und eines Moments, die auf das Objekt ausgeübt werden, wenn das Objekt die Ebene berührt, und Einspeisen der gemessenen Kraft und des gemessenen Moments in das neuronale Netz zusammen mit dem Kamerabild, wobei das neuronale Netz trainiert ist zum Ableiten der Bewegungsvektoren aus den Kamerabildern und aus Kraft- und Momentmessungen.
  4. Verfahren nach Anspruch 2 oder 3, wobei Steuern des Roboters zum Bewegen gemäß dem Bewegungsvektor Steuern des Roboters zum Bewegen gemäß dem Bewegungsvektor, während Druck des Objekts auf die Ebene, in welcher sich der Ort befindet, beibehalten wird, bis das Objekt in die Einsetzstelle eingesetzt ist, umfasst.
  5. Roboter, umfassend eine Kamera, montiert auf dem Roboter, eingerichtet zum Liefern von Kamerabildern; und eine Steuereinheit, ausgelegt zum Implementieren eines neuronalen Netzes und ausgelegt zum Ausführen des Verfahrens nach einem der Ansprüche 1 bis 4.
  6. Computerprogramm, das Anweisungen umfasst, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 4 durchführt.
  7. Computerlesbares Medium, das Anweisungen speichert, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 4 durchführt.
DE102021109332.5A 2021-04-14 2021-04-14 Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle Active DE102021109332B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102021109332.5A DE102021109332B4 (de) 2021-04-14 2021-04-14 Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle
US17/655,194 US20220331964A1 (en) 2021-04-14 2022-03-17 Device and method for controlling a robot to insert an object into an insertion
CN202210384246.8A CN115194755A (zh) 2021-04-14 2022-04-13 用于控制机器人将对象插入到插入部中的设备和方法
JP2022066335A JP2022163719A (ja) 2021-04-14 2022-04-13 対象物を挿入部に挿入するようにロボットを制御するための装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021109332.5A DE102021109332B4 (de) 2021-04-14 2021-04-14 Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle

Publications (2)

Publication Number Publication Date
DE102021109332A1 DE102021109332A1 (de) 2022-10-20
DE102021109332B4 true DE102021109332B4 (de) 2023-07-06

Family

ID=83447238

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021109332.5A Active DE102021109332B4 (de) 2021-04-14 2021-04-14 Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle

Country Status (4)

Country Link
US (1) US20220331964A1 (de)
JP (1) JP2022163719A (de)
CN (1) CN115194755A (de)
DE (1) DE102021109332B4 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022202144A1 (de) 2022-03-02 2023-09-07 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102022202143A1 (de) 2022-03-02 2023-09-07 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102022202145A1 (de) 2022-03-02 2023-09-07 Robert Bosch Gesellschaft mit beschränkter Haftung Roboter und Verfahren zum Steuern eines Roboters

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020100316A1 (de) 2019-01-16 2020-07-16 Fanuc Corporation Bestimmungsgerät
DE102017011361B4 (de) 2016-12-16 2020-08-13 Fanuc Corporation Maschinelle lernvorrichtung, robotersystem und maschinelles lernverfahren zum lernen des betriebs eines roboters und eines laserscanners
DE102020000964A1 (de) 2019-02-22 2020-08-27 Fanuc Corporation Objekterkennungsvorrichtung, Steuervorrichtung und Objekterkennungscomputerprogramm
DE102019203821B3 (de) 2019-03-20 2020-09-10 Kuka Deutschland Gmbh Verfahren und System zum Durchführen einer Roboterapplikation
DE102017117928B4 (de) 2016-08-10 2020-10-01 Fanuc Corporation Robotersteuereinheit für einen Montageroboter
DE102020115658A1 (de) 2019-06-19 2020-12-24 Fanuc Corporation Anpassungsunterstützungsvorrichtung
DE102020115631A1 (de) 2019-06-21 2020-12-24 Fanuc Corporation Maschinenlernvorrichtung, Robotersystem und Maschinenlernverfahren zum Lernen eines Zustands eines Werkzeugs
DE102020212461A1 (de) 2019-10-08 2021-04-08 Fanuc Corporation Oberflächenfeinbearbeitungsvorrichtung
DE102021103272A1 (de) 2020-02-14 2021-08-19 Nvidia Corporation Robotersteuerung unter Verwendung von Deep Learning
DE112019002310B4 (de) 2018-07-19 2022-02-03 International Business Machines Corporation Ausführen einer "peg in hole"-aufgabe mit unbekannter neigung

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112017007025T5 (de) * 2017-02-09 2019-10-24 Mitsubishi Electric Corporation Positionssteuerungseinrichtung und positionssteuerungsverfahren

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017117928B4 (de) 2016-08-10 2020-10-01 Fanuc Corporation Robotersteuereinheit für einen Montageroboter
DE102017011361B4 (de) 2016-12-16 2020-08-13 Fanuc Corporation Maschinelle lernvorrichtung, robotersystem und maschinelles lernverfahren zum lernen des betriebs eines roboters und eines laserscanners
DE112019002310B4 (de) 2018-07-19 2022-02-03 International Business Machines Corporation Ausführen einer "peg in hole"-aufgabe mit unbekannter neigung
DE102020100316A1 (de) 2019-01-16 2020-07-16 Fanuc Corporation Bestimmungsgerät
DE102020000964A1 (de) 2019-02-22 2020-08-27 Fanuc Corporation Objekterkennungsvorrichtung, Steuervorrichtung und Objekterkennungscomputerprogramm
DE102019203821B3 (de) 2019-03-20 2020-09-10 Kuka Deutschland Gmbh Verfahren und System zum Durchführen einer Roboterapplikation
DE102020115658A1 (de) 2019-06-19 2020-12-24 Fanuc Corporation Anpassungsunterstützungsvorrichtung
DE102020115631A1 (de) 2019-06-21 2020-12-24 Fanuc Corporation Maschinenlernvorrichtung, Robotersystem und Maschinenlernverfahren zum Lernen eines Zustands eines Werkzeugs
DE102020212461A1 (de) 2019-10-08 2021-04-08 Fanuc Corporation Oberflächenfeinbearbeitungsvorrichtung
DE102021103272A1 (de) 2020-02-14 2021-08-19 Nvidia Corporation Robotersteuerung unter Verwendung von Deep Learning

Also Published As

Publication number Publication date
US20220331964A1 (en) 2022-10-20
JP2022163719A (ja) 2022-10-26
CN115194755A (zh) 2022-10-18
DE102021109332A1 (de) 2022-10-20

Similar Documents

Publication Publication Date Title
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
DE112019002310B4 (de) Ausführen einer "peg in hole"-aufgabe mit unbekannter neigung
DE102018116053B4 (de) Robotersystem und Roboterlernverfahren
DE102015204641B4 (de) Verfahren und System zur Programmierung eines Roboters
DE2639774C2 (de)
EP3463766A1 (de) Verfahren zur orientierung eines industrieroboters und industrieroboter
DE102010045752A1 (de) Visuelles Wahrnehmungssystem und -verfahren für einen humanoiden Roboter
DE102017128652A1 (de) Robotersystem mit einer mehrzahl von robotern, robotersteuerung und robotersteuerverfahren
DE112016005365T5 (de) Direktes Lehrverfahren eines Roboters
DE102016116404A1 (de) Objektstellungsberechnungssystem
DE102020129967A1 (de) Simulationsvorrichtung und Robotersystem mit erweiterter Realität
DE102019212452A1 (de) Interferenzvermeidungsvorrichtung und Robotersystem
DE102022130652A1 (de) Anlernen eines roboters durch vorführen mit visualservoing
DE102022130318A1 (de) Autonome robuste montageplanung
DE102021109333B4 (de) Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102019205651B3 (de) Verfahren und System zum Ausführen von Roboterapplikationen
DE112018007729B4 (de) Maschinelle Lernvorrichtung und mit dieser ausgestattetes Robotersystem
DE102021109336B4 (de) Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102020200165A1 (de) Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
DE102021201880A1 (de) Vorrichtung und Verfahren zum Ermitteln der Pose eines Objekts
DE102022202143B4 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102022202142B3 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Ableiten eines Bewegungsvektors für einen Roboter aus Bilddaten
DE102022202145A1 (de) Roboter und Verfahren zum Steuern eines Roboters
DE102022202143A1 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe

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
R020 Patent grant now final