[go: up one dir, main page]

DE102020214301A1 - Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen - Google Patents

Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen Download PDF

Info

Publication number
DE102020214301A1
DE102020214301A1 DE102020214301.3A DE102020214301A DE102020214301A1 DE 102020214301 A1 DE102020214301 A1 DE 102020214301A1 DE 102020214301 A DE102020214301 A DE 102020214301A DE 102020214301 A1 DE102020214301 A1 DE 102020214301A1
Authority
DE
Germany
Prior art keywords
image
reference points
descriptor
positions
vertices
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
DE102020214301.3A
Other languages
English (en)
Inventor
Mathias Buerger
Markus Spies
Andras Gabor Kupcsik
Philipp Christian Schillinger
Marco Todescato
Nicolai Waniek
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 DE102020214301.3A priority Critical patent/DE102020214301A1/de
Priority to US17/453,920 priority patent/US11964400B2/en
Priority to JP2021184781A priority patent/JP2022078979A/ja
Priority to CN202111339958.XA priority patent/CN114494426B/zh
Publication of DE102020214301A1 publication Critical patent/DE102020214301A1/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/1612Programme controls characterised by the hand, wrist, grip 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/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2137Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps
    • G06F18/21375Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps involving differential geometry, e.g. embedding of pattern manifold
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/772Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • 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
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20072Graph-based image processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Multimedia (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Medical Informatics (AREA)
  • Geometry (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Image Analysis (AREA)
  • Manipulator (AREA)

Abstract

Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Steuern eines Roboters zum Aufnehmen eines Objekts in verschiedenen Lagen beschrieben, das aufweist: Festlegen von mehreren Referenzpunkten auf dem Objekt, Abbilden eines ersten Kamerabilds des Objekts in bekannter Lage auf ein erstes Deskriptorbild, Identifizieren der Deskriptoren der Referenzpunkte aus dem ersten Deskriptorbild, Abbilden eines zweiten Kamerabilds des Objekts in unbekannter Lage auf ein zweites Deskriptorbild, Suchen der identifizierten Deskriptoren der Referenzpunkte in dem zweiten Deskriptorbild, Ermitteln der Positionen der Referenzpunkte im dreidimensionalen Raum in der unbekannten Lage aus den gefundenen Positionen und Ermitteln einer Aufnehmpose des Objekts für die unbekannte Lage aus den ermittelten Positionen der Referenzpunkte.

Description

  • Die vorliegende Offenbarung betrifft Vorrichtungen und Verfahren zum Steuern eines Roboters zum Aufnehmen eines Objekts in verschiedenen Lagen.
  • Um eine flexible Herstellung oder Bearbeitung von Objekten durch einen Roboter zu ermöglichen, ist es wünschenswert, dass der Roboter in der Lage ist, ein Objekt ungeachtet der Stellung, mit der das Objekt in den Arbeitsraum des Roboters platziert wird, zu handhaben. Daher sollte der Roboter fähig sein, zu erkennen, in welcher Lage sich das Objekt befindet, zumindest insofern, wie es zum Aufnehmen (z.B. Greifen) des Objekts relevant ist, d.h. er sollte fähig sein, eine Aufnehmpose (z.B. eines Greifpose) des Objekts zu ermitteln, um entsprechend seinen End-Effektor (z.B. mit einem Greifer) korrekt ausrichten zu können und ihn an die korrekte Position bewegen zu können. Entsprechende Steuerungsverfahren für eine Robotervorrichtung zum Aufnehmen eines Objekts in verschiedenen Lagen sind wünschenswert.
  • Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Steuern eines Roboters zum Aufnehmen eines Objekts in verschiedenen Lagen bereitgestellt, das aufweist: Festlegen von mehreren Referenzpunkten auf dem Objekt, sodass die Lage der Referenzpunkte im dreidimensionalen Raum eine Aufnehmpose des Objekts definieren, Empfangen eines ersten Kamerabildes des Objekts in einer bekannten Lage des Objekts, sodass die Positionen der Referenzpunkte im ersten Kamerabild bekannt sind, Abbilden des ersten Kamerabilds auf ein erstes Deskriptorbild mittels eines maschinellen Lernmodells, das trainiert ist, in Kamerabildern sichtbare Objektpunkte unabhängig von ihrer Position in den Kamerabildern Deskriptoren zuzuordnen, Identifizieren der Deskriptoren der Referenzpunkte aus dem ersten Deskriptorbild durch Auslesen des ersten Deskriptorbilds an den bekannten Positionen der Referenzpunkte, Empfangen eines zweiten Kamerabilds des Objekts in einer unbekannten Lage, in der das Objekt aufzunehmen ist, Abbilden des zweiten Kamerabilds auf ein zweites Deskriptorbild mittels des maschinellen Lernmodells, Suchen der identifizierten Deskriptoren der Referenzpunkte in dem zweiten Deskriptorbild, Ermitteln der Positionen der Referenzpunkte im dreidimensionalen Raum in der unbekannten Lage aus den gefundenen Positionen der Deskriptoren der Referenzpunkte im Deskriptorbild, Ermitteln einer Aufnehmpose des Objekts für die unbekannte Lage aus den ermittelten Positionen der Referenzpunkte im dreidimensionalen Raum und Steuern der Robotervorrichtung zum Aufnehmen des Objekts entsprechend der ermittelten Aufnehmpose.
  • Das oben beschriebene Verfahren ermöglicht das sichere Aufnehmen (z.B. Greifen) von einem Objekt für eine beliebige Lage des Objekts. Es reicht ein Kamerabild des Objekts in unbekannter Lage aus, um eine Aufnehmpose des Objekts zu ermitteln. Insbesondere ist nicht eine Anordnung mit mehreren Kameras, die mehrere Perspektiven abdecken, erforderlich. Das maschinelle Lernmodell kann flexibel trainiert werden, sodass es für verschiedene Objekte einsetzbar ist. Es brauchen dann nur für jedes Objekt Referenzpunkte festgelegt werden und die Deskriptoren der Referenzpunkte ermittelt werden.
  • Im Folgenden sind verschiedene Beispiele angegeben.
  • Beispiel 1 ist das Verfahren zum Steuern eines Roboters zum Aufnehmen eines Objekts in verschiedenen Lagen wie oben beschrieben.
  • Beispiel 2 ist das Verfahren des Beispiels 1, wobei die Positionen der Referenzpunkte im dreidimensionalen Raum in der unbekannten Lage aus den gefundenen Positionen der Deskriptoren der Referenzpunkte im zweiten Deskriptorbild ermittelt werden, indem Tiefeninformation für die den Positionen der Referenzpunkte im zweiten Deskriptorbild entsprechenden Positionen der Referenzpunkte im zweiten Kamerabild in den dreidimensionalen Raum projiziert wird.
  • Damit ist die Ermittlung der Aufnehmpose mittels eines einzelnen Kamerabilds und zugehöriger Tiefeninformation (z.B. eines RGBD-Bilds) möglich.
  • Beispiel 3 ist das Verfahren des Beispiels 1 oder 2, wobei die Referenzpunkte mindestens zwei Referenzpunkte aufweisen, die derart festgelegt werden, dass sie entlang eines langgestreckten Teilstücks des Objekts angeordnet sind, und wobei die Aufnehmpose des Objekts für die unbekannte Lage durch Ermitteln einer Achse, die sich durch die Referenzpunkte erstreckt, ermittelt wird.
  • Auf diese Weise kann eine Aufnehmpose ermittelt werden, die das Steuern des Roboters zum Umgreifen des langgestreckten Teilstücks ermöglicht. Beispielsweise wird ein Greifer am Endeffektor des Roboters gesteuert, sodass sich die Greifzangen in einer Ebene senkrecht zu der Achse, die sich durch die Referenzpunkte erstreckt, befinden, und dann der Greifer geschlossen.
  • Beispiel 4 ist das Verfahren eines der Beispiele 1 bis 3, wobei die Referenzpunkte mindestens drei Referenzpunkte aufweisen, die derart festgelegt werden, dass sie sich auf einer ebenen Fläche des Objekts angeordnet sind und wobei die Aufnehmpose des Objekts für die unbekannte Lage durch Ermitteln einer Ebene, die sich durch die Referenzpunkte erstreckt, ermittelt wird.
  • Auf diese Weise kann eine Aufnehmpose ermittelt werden, die das Steuern des Roboters zum Fassen der Fläche (z.B. zum Ansaugen oder Heben) ermöglicht. Beispielsweise wird eine Saugvorrichtung am Endeffektor des Roboters gesteuert, sodass sich die Saugöffnung bzw. der Saugrüssel der Saugvorrichtung senkrecht zu der Ebene, die sich durch die Referenzpunkte erstreckt, befindet, und dann aktiviert.
  • Beispiel 5 ist das Verfahren eines der Beispiele 1 bis 4, wobei das Trainieren des maschinellen Lernmodells aufweist: Erhalten eines 3D-Modells des Objekts, wobei das 3D-Modell ein Gitter von Vertices umfasst, Bestimmen eines Deskriptors für jeden Vertex des Gitters, Erzeugen von Trainingsdatenbildpaaren, wobei jedes Trainingsdatenbildpaar ein das Objekt zeigendes Trainingseingabebild und ein Zielbild umfasst, und wobei das Erzeugen des Zielbildes umfasst Bestimmen der Vertexpositionen von Vertices des Objektmodells des Objekts, die die Vertices in dem Trainingseingabebild aufweisen und Zuweisen, für jede bestimmte Vertexposition in dem Trainingseingabebild, des für den Vertex an der Vertexposition bestimmten Deskriptors zu der Position in dem Zielbild und Trainieren des maschinellen Lernmodells durch überwachtes Lernen unter Verwendung der Trainingsdatenbildpaare als Trainingsdaten.
  • Dieses Trainingsverfahren ermöglicht das Trainieren eines maschinellen Lernmodells (wie etwa eines neuronalen Netzes), um eine genauere Vorhersage (d. h. Deskriptorbestimmung) im Vergleich zur Verwendung von selbstüberwachtem Lernen durchzuführen (d. h. ermöglicht eine größere Vielfalt von Anwendungen des Netzes). Ferner stellt es größere Flexibilität für das Anpassen des maschinellen Lernmodells bereit, sodass es bei verschiedenen Problemen angewendet werden kann und reduziert die Trainingsdatenanforderungen (z. B. die Menge an erforderlichen Trainingsdaten).
  • Beispiel 6 ist das Verfahren des Beispiels 5, wobei das Erzeugen der Trainingsdatenbildpaare Erhalten mehrerer Bilder des Objekts mit unterschiedlichen Stellungen und Erzeugen eines Trainingsdatenbildpaares von jedem erhaltenen Bild durch Erzeugen eines Zielbildes für das erhaltene Bild umfasst.
  • Dies ermöglicht das Trainieren des maschinellen Lernmodells (z. B. eines Roboters mit einer Robotersteuerung, die das maschinelle Lemmodell implementiert), um die Topologie eines Objekts ungeachtet der Stellung des Objekts z. B. im Arbeitsraum des Roboters zu erkennen.
  • Beispiel 7 ist das Verfahren des Beispiels 5 oder 6, umfassend Bestimmen der Vertexpositionen von Vertices des Objektmodells des Objekts, die die Vertices in den Trainingseingabebildern aufweisen, aus den jeweiligen Stellungen, die das Objekt in den Trainingseingabebildern aufweist (z. B. in dem Kamerakoordinatensystem).
  • Dies ermöglicht eine genaue Bestimmung der Vertexpositionen, was im Gegenzug genaue Zielbilder für überwachtes Training ermöglicht.
  • Beispiel 8 ist das Verfahren eines der Beispiele 5 bis 7, wobei die Vertices des 3D-Modells durch Kanten verbunden sind, wobei jede Kante eine Gewicht aufweist, das die Nähe zweier durch die Kante verbundener Vertices im Objekt spezifiziert und wobei das Bestimmen eines Deskriptors für jeden Vertex des Gitters durch Suchen von Deskriptoren für die Vertices, die die Summe, über Paare verbundener Vertices, von Distanzen zwischen den Deskriptoren des Paares von Deskriptoren minimieren, gewichtet durch das Gewicht der Kante zwischen dem Paar von Vertices, erfolgt.
  • Anschaulich werden die Deskriptoren in optimaler Weise ermittelt. Damit wird eine hohe Konsistenz der Deskriptoren erreicht. Außerdem wird eine gute Erklärbarkeit der Deskriptorabbildung erreicht.
  • Beispiel 9 ist eine Robotersteuervorrichtung, die eingerichtet ist, ein Verfahren gemäß einem der Beispiele 1 bis 8 durchzuführen.
  • Beispiel 10 ist ein Computerprogramm, das Anweisungen aufweist, die bei Ausführung durch einen Prozessor bewirken, dass der Prozessor ein Verfahren nach einem der Beispiele 1 bis 8 durchführt.
  • Beispiel 11 ist ein computerlesbares Medium, das Anweisungen speichert, die bei Ausführung durch einen Prozessor bewirken, dass der Prozessor ein Verfahren nach einem der Beispiele 1 bis 8 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, wobei gilt:
    • 1 zeigt einen Roboter.
    • 2 veranschaulicht das Trainieren eines neuronalen Netzes gemäß einer Ausführungsform.
    • 3 zeigt eine beispielhafte Einbettung eines 4-Knoten-Graphen zur Deskriptorbestimmung.
    • 4 veranschaulicht die Definition von Winkeln an Vertices eines 3D-Modells zur Kantengewichtsbestimmung gemäß dem Laplace-Beltrami-Operator.
    • 5 zeigt ein Verfahren zum Trainieren eines maschinellen Lernmodells zum Erkennen einer Objekttopologie eines Objekts aus einem Bild des Objekts gemäß einer Ausführungsform.
    • 6 zeigt ein Verfahren zum Steuern eines Roboters zum Aufnehmen eines Objekts in verschiedenen Lagen.
  • Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die veranschaulichend spezifische Einzelheiten und Aspekte dieser Offenbarung zeigen, in der die Erfindung umgesetzt werden kann. Andere Aspekte können genutzt werden und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da manche Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
  • Im Folgenden werden verschiedene Beispiele ausführlicher beschrieben.
  • 1 zeigt einen Roboter 100.
  • Der Roboter 100 beinhaltet einen Roboterarm 101, zum Beispiel einen Industrieroboterarm zum Handhaben oder Montieren eines Arbeitsstücks (oder eines oder mehrerer anderer Objekte). Der Roboterarm 101 beinhaltet Manipulatoren 102, 103, 104 und eine Basis (oder Stütze) 105, mittels der die Manipulatoren 102, 103, 104 gestützt werden. Der Ausdruck „Manipulator“ bezieht sich auf die bewegbaren Bauteile des Roboterarms 101, deren Betätigung eine physische Interaktion mit der Umgebung ermöglicht, um z. B. eine Aufgabe auszuführen. Zur Steuerung beinhaltet der Roboter 100 eine (Roboter-) Steuereinrichtung 106, die zum Implementieren der Interaktion mit der Umgebung gemäß einem Steuerprogramm ausgelegt ist. Das letzte Bauteil 104 (das am weitesten von der Stütze 105 entfernt ist) der Manipulatoren 102, 103, 104 wird auch als der Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge beinhalten, wie etwa einen Schweißbrenner, ein Greifinstrument, ein Lackiergerät oder dergleichen.
  • Die anderen Manipulatoren 102, 103 (die sich näher an der Stütze 105 befinden) können eine Positionierungsvorrichtung bilden, sodass, zusammen mit dem Endeffektor 104, der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende bereitgestellt ist. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm bereitstellen kann (möglicherweise mit einem Werkzeug an seinem Ende).
  • Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 beinhalten, die die Manipulatoren 102, 103, 104 miteinander und mit der Stütze 105 verbinden. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, die jeweils eine drehbare Bewegung (d. h. Drehbewegung) und/oder translatorische Bewegung (d. h. Verlagerung) für assoziierte Manipulatoren relativ zueinander bereitstellen können. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktoren initiiert werden, die durch die Steuereinrichtung 106 gesteuert werden.
  • Der Ausdruck „Aktor“ kann als eine Komponente verstanden werden, die als Reaktion auf ihren Antrieb zum Bewirken eines Mechanismus oder Prozesses ausgebildet ist. Der Aktor kann durch die Steuereinrichtung 106 erstellte Anweisungen (die sogenannte Aktivierung) in mechanische Bewegungen implementieren. Der Aktor, z. B. ein elektromechanischer Wandler, kann dazu ausgelegt sein, als Reaktion auf seinen Antrieb elektrische Energie in mechanische Energie umzuwandeln.
  • Der Ausdruck „Steuerung“ kann als ein beliebiger Typ von logikimplementierender Entität verstanden werden, die zum Beispiel eine Schaltung und/oder einen Prozessor beinhalten kann, die/der in der Lage ist, in einem Speicherungsmedium gespeicherte Software, Firmware oder eine Kombination davon auszuführen, und die/der Anweisungen, z. B. zu einem Aktor im vorliegenden Beispiel, ausstellen kann. Die Steuerung kann zum Beispiel durch Programmcode (z. B. Software) konfiguriert werden, um den Betrieb eines Systems, eines Roboters im vorliegenden Beispiel, zu steuern.
  • Im vorliegenden Beispiel beinhaltet die Steuereinrichtung 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, der Code und Daten speichert, basierend auf denen der Prozessor 110 den Roboterarm 101 steuert. Gemäß verschiedenen Ausführungsformen steuert die Steuereinrichtung 106 den Roboterarm 101 auf Basis eines maschinellen Lernmodells 112, das im Speicher 111 gespeichert ist.
  • Gemäß verschiedenen Ausführungsformen ist das maschinelle Lernmodell 112 dazu ausgelegt und trainiert, dem Roboter 100 zu ermöglichen, eine Aufnehmpose eines Objekts 113 zu erkennen, das zum Beispiel in einen Arbeitsraum des Roboterarms 101 platziert wird. Dies bedeutet, dass der Roboter 100 erkennt, wie er das Objekt 113 aufnehmen kann, d.h. wie er seinen Endeffektor 104 orientieren muss und wohin er ihn bewegen muss, um das Objekt 113 aufzunehmen (z.B. zu greifen). Die Aufnehmpose wird so verstanden, dass sie für das Aufnehmen ausreichend Informationen enthält, d.h. Information über Orientierung und Position 113 des Objekts, die ausreicht, um daraus zu ermitteln, wie das Objekt 113 gegriffen werden kann. Die Aufnehmpose braucht nicht notwendigerweise die vollständige Orientierungsinformation über das Objekt 113 enthalten, da es bei einem Objekt 113 mit einem rotationssymmetrischen Teil zum Greifen beispielsweise unerheblich sein kann, wie das rotationssymmetrische Teil um seine Rotationsachse rotiert ist.
  • Der Roboter 100 kann zum Beispiel mit einer oder mehreren Kameras 114 ausgestattet sein, die es ihm ermöglichen, Bilder seines Arbeitsraums aufzunehmen. Die Kamera 114 ist zum Beispiel an dem Roboterarm 101 befestigt, sodass der Roboter Bilder des Objekts 113 von verschiedenen Perspektiven aus machen kann, indem er den Roboterarm 101 herumbewegt.
  • Gemäß verschiedenen Ausführungsformen implementiert die Steuereinrichtung 106 ein maschinelles Lernmodell 112 zur Objekterkennung, dessen Ausgabe sie verwendet, um die Aufnehmpose des Objekts 113 zu ermitteln.
  • Ein Beispiel für ein solches maschinelles Lernmodell 112 zur Objekterkennung ist ein dichtes Objektnetz. Ein dichtes Objektnetz bildet ein Bild (z. B. ein durch die Kamera 114 bereitgestelltes RGB-Bild) auf ein beliebiges dimensionales (Dimension D) Deskriptorraumbild ab.
  • Das dichte Objektnetz ist ein neuronales Netz, das unter Verwendung von selbstüberwachtem Lernen trainiert ist, ein Deskriptorraumbild für ein Eingabebild eines Bildes auszugeben. Die Wirksamkeit dieses Ansatzes ist jedoch stark auf die Qualität der gesammelten Trainingsdaten und der beteiligten Sensoren (z. B. die Kameras 114) angewiesen Ferner kann die Interpretation der Netzvorhersage schwierig sein.
  • Gemäß verschiedenen Ausführungsformen wird ein Ansatz zum Erkennen eines Objekts und seiner Stellung verwendet, unter der Annahme, dass ein 3D-Modell (z. B. ein CAD(Computer Aided Design)-Modell) des Objekts bekannt ist, was typischerweise für Industriemontage- oder -bearbeitungsaufgaben der Fall ist. Gemäß verschiedenen Ausführungsformen werden nichtlineare Dimensionalitätsreduktionstechniken verwendet, um optimale Zielbilder zum Trainieren von Eingabebildern für ein neuronales Netz zu berechnen. Anstatt somit selbstüberwachtes Training eines neuronalen Netzes zu verwenden, wird gemäß verschiedenen Ausführungsformen ein überwachtes Training eines neuronalen Netzes verwendet. Es können auch RGBD-Bilder von einem Objekt aufgenommen werden (RGB + Tiefeninformation) und daraus ein 3D-Modell für das Objekt bestimmt werden.
  • Gemäß einer Ausführungsform wird zum Erzeugen von Trainingsdaten zum Trainieren des maschinellen Lernmodells 112 zunächst eine Datensammlung durchgeführt. Insbesondere werden zum Beispiel registrierte RGB(Rot-Grün-Blau)-Bilder gesammelt. Ein registriertes Bild bedeutet hier ein RGB-Bild mit bekannten intrinsischen und extrinsischen Kamerawerten. In einem Szenario in der realen Welt wird eine an einem Roboter befestigte Kamera 114 (z. B. eine an einem Roboterhandgelenk befestigte Kamera) zum Beispiel verwendet, um ein Objekt zu scannen, während sich der Roboter (z. B. Roboterarm 101) herumbewegt. Andere extrinsische Schätztechniken, z. B. ChArUco-Marker, können verwendet werden, d. h. ein Objekt kann an verschiedene Positionen und Stellungen relativ zu einem ChArUco-Board platziert werden und Bilder der Anordnung (von ChArUco-Board und Objekt) werden aufgenommen. In einem simulierten Szenario werden fotorealistisch erzeugte RGB-Bilder unter Verwendung bekannter Objektstellungen verwendet.
  • Nach dem Sammeln der RGB-Bilder werden für überwachtes Training eines neuronalen Netzes Zielbilder für die RGB-Bilder gerendert.
  • Es wird angenommen, dass die Stellung jedes Objekts in Weltkoordinaten in jedem gesammelten RGB-Bild bekannt ist. Dies ist für ein simuliertes Szenario unkompliziert, erfordert aber eine manuelle Abstimmung für ein Szenario in der realen Welt, z. B. Platzieren des Objekts an vordefinierten Positionen. Es können auch RGBD-Bilder verwendet werden, um die Position eines Objekts zu bestimmen.
  • Mit diesen Informationen und unter Verwendung einer Vertexdeskriptorberechnungstechnik, wie zum Beispiel nachstehend beschrieben, für jedes RGB-Bild (d. h. Trainingseingabebild) wird ein Deskriptorbild (d. h. Trainingsausgabebild, auch als Zielbild oder Ground-Truth-Bild bezeichnet) gerendert.
  • Wenn für jedes RGB-Bild ein Zielbild erzeugt wurde, d. h. Paare von RGB-Bildern und Zielbildern gebildet wurden, können diese Paare von Trainingseingabebild und assoziiertem Zielbild als Trainingsdaten zum Trainieren eines neuronalen Netzes verwendet werden, wie in 2 veranschaulicht.
  • 2 veranschaulicht das Trainieren eines neuronalen Netzes 200 gemäß einer Ausführungsform.
  • Das neuronale Netz 200 ist ein voll faltendes Netz (engl. fully convolutional network), das einen h × w × 3-Tensor (Eingabebild) auf einen h × w × D-Tensor (Ausgabebild) abbildet.
  • Es umfasst mehrere Stufen 204 von Faltungsschichten, gefolgt von einer Pooling-Schicht, Upsampling-Schichten 205 und Skip-Verbindungen 206, um die Ausgaben verschiedener Schichten zu kombinieren.
  • Für das Training empfängt das neuronale Netz 200 ein Trainingseingabebild 201 und gibt ein Ausgabebild 202 mit Pixelwerten im Deskriptorraum (z. B. Farbkomponenten gemäß Deskriptorvektorkomponenten) aus. Ein Trainingsverlust wird zwischen dem Ausgabebild 202 und dem mit dem Trainingseingabebild assoziierten Zielbild 203 berechnet. Dies kann für einen Stapel von Trainingseingabebildern stattfinden und der Trainingsverlust kann über die Trainingseingabebilder gemittelt werden und die Gewichte des neuronalen Netzes 200 werden unter Verwendung stochastischen Gradientenabstiegs unter Verwendung des Trainingsverlustes trainiert. Der zwischen dem Ausgabebild 202 und dem Zielbild 203 berechnete Trainingsverlust ist zum Beispiel eine L2-Verlustfunktion (um einen pixelweisen Least-Square-Fehler zwischen dem Zielbild 203 und dem Ausgabebild 202 zu minimieren).
  • Das Trainingseingabebild 201 zeigt ein Objekt und das Zielbild sowie das Ausgabebild beinhalten Vektoren im Deskriptorraum. Die Vektoren im Deskriptorraum können auf Farben abgebildet werden, sodass das Ausgabebild 202 (sowie das Zielbild 203) eine Heatmap des Objekts ähneln.
  • Die Vektoren im Deskriptorraum (auch als (dichte) Deskriptoren bezeichnet) sind d-dimensionale Vektoren (z. B. beträgt d 1, 2 oder 3), die jedem Pixel im jeweiligen Bild (z. B. jedem Pixel des Eingabebildes 201, unter der Annahme, dass das Eingabebild 201 und das Ausgabebild 202 die gleiche Dimension aufweisen) zugewiesen sind. Die dichten Deskriptoren codieren implizit die Oberflächentopologie des im Eingabebild 201 gezeigten Objekts, invariant gegenüber seiner Stellung oder der Kameraposition.
  • Wenn ein 3D-Modell des Objekts gegeben ist, ist es möglich, einen optimalen (im Riemannschen Sinne) und eindeutigen Deskriptorvektor für jeden Vertex des 3D-Modells des Objekts analytisch zu bestimmen. Gemäß verschiedenen Ausführungsformen werden unter Verwendung dieser optimalen Deskriptoren (oder Schätzungen dieser Deskriptoren, die durch eine Optimierung bestimmt werden) Zielbilder für registrierte RGB-Bilder erzeugt, was zu einen voll überwachten Training des neuronalen Netzes 200 führt. Zusätzlich wird der Deskriptorraum ungeachtet der gewählten Deskriptordimension d erläuterbar und optimal.
  • Im Folgenden werden die 3D-Modelle als Riemannsche Mannigfaltigkeiten ℳ eingebettet in ℝ3 angesehen, was das Berechnen von Geodäten (kürzester Pfad zwischen Vertices) hervorruft, während die Geometrie beachtet wird. Eine optimale Oberflächentopologie kann explizit codiert werden, indem das 3D-Modell in einen d-dimensionalen euklidischen Deskriptorraum eingebettet wird, sodass geodätische Distanzen zwischen benachbarten Vertices so gut wie möglich bewahrt werden. Dieser euklidische Raum wird als der Deskriptorraum angesehen, und eine Suche nach der optimalen Abbildung f : ℳ → ℝd wird durchgeführt. Gemäß einer Ausführungsform werden die Laplace-Operator-Berechnung für Gitter und ihre Eigenwertzerlegung zum Bestimmen (oder zumindest Schätzen) der optimalen Einbettung von Vertices im Deskriptorraum verwendet. Anstatt somit Geodätenberechnung und Abbildungsoptimierung zu trennen, werden die Deskriptoren in einem einzigen Framework durch das Berechnen des Laplace-Operators des 3D-Modells extrahiert.
  • Gemäß dem im Folgenden beschriebenen Ansatz wird die Einbettung eines 3D-Objektmodells im euklidischen Raum in den Deskriptorraum bestimmt, um Distanzen (z. B. geodätische Distanzen) zwischen Vertices zu bewahren.
  • Zur Dimensionalitätsreduktion über den Laplace-Operator soll ein Satz von Punkten { x i } i = 1 N , x D
    Figure DE102020214301A1_0001
    Knoten in einen ungerichteten Graphen entsprechen. Wij ≥ 0 soll die Verbindungsstärke oder die Nähe zwischen zwei Knoten xi und xj bezeichnen, z.B. Wi j = exp(- || xi -xj ||2).
  • Das Ziel besteht darin, eine d-dimensionale Einbettung { y i } i = 1 N , y d
    Figure DE102020214301A1_0002
    zu finden (typischerweise gilt d < D), sodass, falls xi und xj nahe liegen, ihre Einbettung dann auch nahe sein sollte: Y * = arg min Y 1 2 j = 1 N i = 1 N ω i j y i y j 2 ,
    Figure DE102020214301A1_0003
    wobei Y = [y1,...,yN]d×N.
  • Das Optimierungsproblem (1) ist äquivalent zu Y * = arg min Y Tr ( Y L Y T ) , L = D A ,
    Figure DE102020214301A1_0004
    wobei LN×N die positiv-semidefinite Laplace-Matrix ist. A ist die Adjazenzmatrix mit Elementen Aij = Aji = wij und Dii = Σj Aij. Es sollte angemerkt werden, dass die optimale Lösung Y* eine beliebige Skalierung und Tendenz aufweisen kann.
  • Um diese Zufälligkeit zu entfernen, kann das gewichtete zweite Moment mit YT DY = I normalisiert werden, was eine Einheitsvarianz in verschiedene Dimensionen erzwingt. Das resultierende Optimierungsproblem wird dann Y * = arg min Y Tr ( Y L Y T ) , s . t . Y D Y T = I
    Figure DE102020214301A1_0005
    unter Verwendung beschränkter Optimierung mit Lagrange-Parametern λ ∈ ℝd J ( Y , λ ) = Tr ( Y L Y T ) T r ( diag ( λ ) ( Y D Y T I ) ) , J ( Y , λ ) Y = 2 L Y T 2 diag ( λ ) D Y T , L Y T = d i a g ( λ ) D Y T ,
    Figure DE102020214301A1_0006
    was ein generalisiertes Eigenwertproblem ist, das durch standardmäßige Bibliotheken der linearen Algebra gelöst werden kann. Da L und D positiv-(semi)definite Matrizen sind, können die Eigenwerte als λ0 = 0 ≤ λ1 ≤ ... . ≤ λN-1. geschrieben werden.
  • Ferner ist der erste Eigenvektor (erste Spalte von YT ) gleich 1 (Vektor mit nur Einsen), was eine triviale Lösung ist, die jeden Vertex auf einen Punkt abbildet. Zusätzlich sind zwei beliebige Eigenvektoren orthogonal zueinander. Die Lösung zu dem Eigenwertproblem ergibt N Eigenwerte und entsprechende Eigenvektoren mit Dimensionalität N. In der Praxis werden jedoch nur die ersten d Eigenvektoren entsprechend den niedrigsten Eigenwerten (außer der trivialen Lösung) verwendet.
  • Somit ist die i-te Spalte von Y die Einbettung des Knotens i in Rd, während jede Zeile die Einbettung jedes Punktes in verschiedenen orthogonalen Dimensionen repräsentiert.
  • 3 zeigt eine beispielhafte Einbettung eines 4-Knoten-Graphen.
  • Die Eigenwerte weisen eine wichtige Bedeutung bezüglich der Optimalität der Einbettung auf Im Fall einer optimalen Einbettung Y* ist die Beschränkung Y*DY*T = I erfüllt, und demzufolge gilt Y * L Y * T = d i a g ( λ ) ,
    Figure DE102020214301A1_0007
    das heißt, die Eigenwerte entsprechen den Einbettungsfehlern in verschiedenen Dimensionen. Zur Einfachheit halber soll d = 1 sein, in welchem Fall jedes x auf Punkt y = 1 abgebildet wird. In diesem Fall wird (5) vereinfacht zu: y ^ T L y ^ = λ 0 , y ^ = [ y 1 , , y N ] T = 1 T .
    Figure DE102020214301A1_0008
  • Da λ0 = 0, das heißt, dass, falls alle Vertices des Objekts auf einen Punkt abgebildet sind, der Einbettungsfehler 0 beträgt, da die Distanz zwischen allen Punkten y 0 beträgt. Dies ist für praktische Zwecke nicht nützlich, und somit werden der erste Eigenwert und Eigenvektor ausgelassen. Das Verwenden von d = 2 entspricht der Abbildung jedes Punktes x auf eine Linie, und λ1 ist der entsprechende Einbettungsfehler, und so weiter. Da die Eigenvektoren orthogonal zueinander sind, wird das Erhöhen von d neue Dimensionen zu der Einbettung hinzufügen, was darauf abzielt, den Fehler in der neuen, orthogonalen Dimension zu minimieren. Der gleiche Effekt kann in (3) gesehen werden: da Tr ( Y L Y T ) = i = 1 d λ i ,
    Figure DE102020214301A1_0009
    kann die ursprüngliche Zielsetzung übersetzt werden, um den Einbettungsfehler in jeder Dimension zu minimieren. Ungeachtet des gewählten d ist somit der resultierende Deskriptorvektor optimal.
  • Im manchen Fällen sind subsequente Eigenwerte identisch, das heißt, λi = λi+1 = λi+2 = ... (siehe das Beispiel von 3, bei dem die Eigenwerte für d=2 und d=3 die gleichen sind). Dies führt einige Informationen bezüglich der Symmetrie, wobei es mehrere orthogonale Dimensionen mit identischem Einbettungsfehler gibt. In der Tat ist in dem 4-Knoten-Graphen-Beispiel von 3, falls der Graph voll verbunden ist, die Einbettung in jede Dimension symmetrisch und sind alle Eigenwerte identisch, mit Ausnahme der trivialen Lösung.
  • Der obige Grapheneinbettungsansatz kann direkt bei Gittern, Punktwolken usw. angewendet werden. Beispielsweise kann der K-Nearest-Neighbour(KNN)-Algorithmus verwendet werden, um lokale Verbindungen zwischen Vertices zu bilden und die Adjazenzmatrix zu erstellen. Dieser Ansatz ist ausreichend, um den Graphen-Laplace-Operator zu erstellen und die Einbettung jedes Vertex zu berechnen. Nichtsdestotrotz baut dieser Ansatz inhärent auf euklidischer Distanzmetrik und Heuristiken auf, die nicht notwendigerweise die zugrundeliegende Riemannsche Geometrie des 3D-Objektmodells beachten. Beispielsweise können manche Kanten durch das Objekt laufen, oder können nicht benachbarte Vertices des Gitters verbinden. Selbst nur einige wenige unkorrekte Einträge in der Adjazenzmatrix können in schlechter Einbettungsleistungsfähigkeit resultieren. Gemäß einer Ausführungsform, wenn mit Modellen gearbeitet wird, wird daher gewährleistet, dass geodätische Distanzen zwischen zwei beliebigen Vertices korrekt sind oder einen minimalen Approximationsfehler aufweisen.
  • Im Allgemeinen können Objektmodelle, wie etwa Gitter, oder Punktwolken als Riemannsche Mannigfaltigkeiten eingebettet in ℝ3 repräsentiert werden. Eine Riemannsche Mannigfaltigkeit M mit einer sich gleichmäßig ändernden Metrik g kann als „lokal euklidisch“ angesehen werden, was die Eigenschaft lokaler Glattheit von Objekten der realen Welt erfasst. Die Generalisierung des Laplace-Operators zu Riemannschen Mannigfaltigkeiten ist der Laplace-Beltrami(LB)-Operator Δ. Ähnlich dem Laplace-Operator in euklidischen Räumen ist der an einer Funktion angewendete LB-Operator die Divergenz des Gradienten der Funktion. Während der Laplace-Operator für Graphen und in euklidischen Räumen leicht zu berechnen ist (entweder aus Adjazenzinformationen oder finiten Differenzen), baut der LB-Operator in Differentialgeometrie auf Exterior Calculus (äußeres Kalkül) auf, und ist im Allgemeinen für eine Mannigfaltigkeit nicht leicht verfügbar.
  • Für bekannte diskrete Mannigfaltigkeiten, wie etwa Gitter, kann der LB-Operator jedoch approximiert werden. Dies bietet einen hocheffizienten und einfachen Berechnungsrahmen, wenn mit Gittern, Punktwolken usw. gearbeitet wird. Da das Riemannsche Äquivalent des Laplace-Operators der Laplace-Beltrami ist, kann der oben beschriebene Einbettungsansatz direkt bei Δ angewendet werden. Die Eigenvektoren Y von Δ werden die optimale d-dimensionale euklidische Einbettung der Vertices des Gitters repräsentieren.
  • Δ kann für Gitter effizient wie folgt berechnet werden. Unter der Annahme, dass ein Gitter mit N Vertices V, Flächen F und Kanten E gegeben ist. In diesem Fall ist die Größe von ΔN × N. Die i-te Zeile von Δbeschreibt die Adjazenzinformationen des i-ten Vertex zu seinen verbindenden Vertices. Es soll φ eine beliebige Funktion an dem Gitter sein. Dann wird das Anwenden des diskreten LB-Operators bei dieser Funktion auf Δφ abgebildet. Das i-te Element dieser Funktion kann durch Folgendes beschrieben werden: ( Δ ϕ ) i = 1 2 i j E ( cot ( θ k i j ) + cot ( θ l j i ) ) ( ϕ j ϕ i ) ,
    Figure DE102020214301A1_0010
  • 4 veranschaulicht die Definition von Winkeln θ k i j
    Figure DE102020214301A1_0011
    und θ l j i .
    Figure DE102020214301A1_0012
  • Die Summe der Cotangens-Ausdrücke cot ( θ k i j ) + cot ( θ l j i )
    Figure DE102020214301A1_0013
    agiert als das Verbindungsgewicht wij. Diese in (7) auftretenden Gewichte, d. h. die Gewichte des LB-Operators, wenn bei dem Gitter angewendet, werden gemäß einer Ausführungsform als die Gewichte zum Bestimmen von D und A der Gleichung (2) verwendet.
  • Es sollte angemerkt werden, dass, da α > π / 2 => cot(α) < 0,, negative Verbindungsgewichte wij auftreten können, besonders dann, falls ein Winkel erheblich größer ist als die anderen (nicht gute Flächen). Um dieses Problem zu überwinden, kann das Verbindungsgewicht durch Kantenumlegung (Edge Flipping) approximiert werden.
  • Der oben beschriebene Deskriptorerzeugungsansatz behandelt jeden Vertex eindeutig. Das heißt, jeder Vertex wird einem eindeutigen Deskriptor zugewiesen. Objekte können jedoch symmetrisch sein, und somit wird das Zuweisen eindeutiger Deskriptoren zu scheinbar identischen Vertices zu unsymmetrischen Einbettungen führen.
  • Um dieses Problem anzusprechen, werden gemäß verschiedenen Ausführungsformen intrinsische Symmetrien von Formen detektiert und symmetrische Einbettungen werden komprimiert, sodass symmetrische Vertices auf denselben Deskriptor abgebildet werden. Es kann gezeigt werden, dass eine Form intrinsische Symmetrie aufweist, falls die Eigenfunktionen des Laplace-Beltrami-Operators im euklidischen Raum symmetrisch erscheinen. Mit anderen Worten werden symmetrische Merkmale eines Gitters, einer Punktwolke usw. detektiert, wenn ihre geodätenbewahrende euklidische Einbettung (Deskriptorraum) euklidische Symmetrie zeigt. Eine kompakte Mannigfaltigkeit weist intrinsische Symmetrie auf, falls ein Homöomorphismus T besteht, der geodätische Distanzen zwischen jedem Vertex der Mannigfaltigkeit bewahrt.
  • Für die Komprimierung der symmetrischen Deskriptoren können sogenannte globale intrinsische symmetrieinvariante Funktionen (GISIFs) verwendet werden. Unter der Annahme eines globalen intrinsischen symmetrischen Homöomorphismus T : ℳ → ℳ, s. t. g(p,q) = g(T(p), T(q)) ∀p,q ∈ ℳ ,, wobei g geodätische Distanz repräsentiert, und einer Funktion an der Mannigfaltigkeit ƒ, falls für jeden Punkt p auf der Mannigfaltigkeit gilt: ƒ T ( p ) = ƒ ( T ( p ) ) = ƒ ( p ) ,
    Figure DE102020214301A1_0014
    dann ist ƒ eine GISIF. Beispielsweise soll auf einem Torus dieser Homöomorphismus eine beliebige Drehung um die z-Achse sein. Dies bedeutet, dass, falls ƒ eine GISIF ist, sie dann gegenüber dieser Drehung invariant sein muss.
  • Ferner kann gezeigt werden, dass im Fall identischer Eigenwerte λi = λi+1 = ... = λi+N, eine derartige GISIF die quadrierte Summe der Eigenvektorkomponenten des Punktes ist, d. h. ƒ ( p ) = i i + N ϕ i ( p ) 2 .
    Figure DE102020214301A1_0015
  • Dies steht im Einklang mit der obigen Analyse identischer Eigenwerte, was die notwendige Bedingung symmetrischer Einbettung ist. Da es in der Praxis aufgrund numerischer Beschränkungen selten identische Eigenwerte gibt, kann dort eine Heuristik verwendet werden, wo Eigenwerte als identisch angesehen werden, falls sie innerhalb derselben ε-Kugel liegen (mit einem kleinen ε), d.h., wenn sie sich um weniger als eine vorbestimmte Schwelle, z. B. 0,1 % oder 0,01 %, unterscheiden. Da symmetrische Dimensionen nur einmal für ein gegebenes Objekt gefunden werden müssen, kann dies manuell durchgeführt werden.
  • Es sollen zum Beispiel die ersten 7 Eigenwerte einer Eigenwertzerlegung für einen Torus Folgendes sein:
    λ0-6 = [0.0,0.0175,0.0175,0.069,0.069,0.1525,0.1525]
  • Eine GISIF-Einbettung in ℝ3 - ohne Berücksichtigung der trivialen Lösung - ist dann gegeben durch ƒ ( p ) = [ ϕ 1 ( p ) 2 + ϕ 2 ( p ) 2 , ϕ 3 ( p ) 2 + ϕ 4 ( p ) 2 , ϕ 5 ( p ) 2 + ϕ 6 ( p ) 2 ] .
    Figure DE102020214301A1_0016
  • Im Fall mehrerer Objekte kann dies als mehrere getrennte verbundene Graphen repräsentiert werden. Die Adjazenzmatrix ist in diesem Fall blockdiagonal. Der symmetrische positiv-definite Laplace-Operator wird erneut orthogonale Eigenvektoren aufweisen. Es gibt zwei Unterschiede im Ergebnis der Eigenwertzerlegung im Vergleich zu den Fall mit einzelner Grapheneinbettung: erstens werden die nicht abnehmenden Eigenwerte die Einbettungsfehler aller Objekte ohne Ordnung sein. Zweitens werden die Eigenvektoren Null-Einträge aufweisen, da die entsprechenden Eigenwerte orthogonal bleiben. Dies bedeutet, dass jede Dimension des Deskriptorraums nur einer Objekteinbettung entsprechen wird. Ferner sind die Dimensionen mit Bezug auf den Einbettungsfehler des entsprechenden Objekts geordnet. Falls somit eine 3-dimensionale Einbettung von zwei Objekten erzeugt werden sollte, wird d=8 verwendet, da es zwei triviale Lösungen entsprechend λ=0 gibt.
  • Dieser unkomplizierte Ansatz handhabt mehrere Objekte unabhängig, während es suboptimale Verfahren geben kann, die dennoch recht gute Einbettungen mit niedrigerem d bereitstellen, die die Korrelation zwischen Objekten ausnutzen.
  • Angesichts der Stellungen von Objekten können die Zielbilder durch Projizieren der Deskriptoren auf die Bildebene erzeugt werden. Als Nichtobjekt (Hintergrund) kann Deskriptorraum-Bildzufallsrauschen oder ein einzelner Deskriptor, der auf den am weitesten entfernten Punkt im Deskriptorraum abgebildet wird, verwendet werden.
  • Um die Robustheit des trainierten Netzes 200 zu verbessern, können Bildaugmentationsverfahren wie etwa Domänenrandomisierung oder Störungen wie Gaußscher Weichzeichner, Cropping oder Dropout angewendet werden.
  • Ist nun das maschinelle Lernmodell 112, z.B. das neuronale Netz 200, zum Abbilden von Kamerabildern eines Objekts 113 auf Deskriptorbilder trainiert, so kann zur Ermitteln einer Aufnehmpose eines Objekts 113 in unbekannter Lage wie folgt vorgegangen werden.
  • Zunächst werden auf dem Objekt mehrere Referenzpunkte pi, i=1, ...,N, auf dem Objekt 113 ausgewählt und Deskriptoren dieser Referenzpunkte ermittelt. Dies kann dadurch erfolgen, dass ein Kamerabild des Objekts 113 aufgenommen wird, Referenzpixel (uj, vj) auf dem Objekt (und damit entsprechend Referenzpunkte des Objekts) ausgewählt werden und das Kamerabild von dem neuronalen Netz 200 auf ein Deskriptorbild abgebildet wird. Dann können die Deskriptoren an den Positionen im Deskriptorbild, die durch die Positionen der Referenzpixel gegeben sind, als Deskriptoren der Referenzpunkte genommen werden, d.h. die Deskriptoren der Referenzpunkte sind di = Id(uj, vj), wobei Id = ƒ(I; θ) das Deskriptorbild ist, wobei ƒ die von dem neuronalen Netz implementierte Abbildung (von Kamerabild auf Deskriptorbild) ist, I das Kamerabild und θ die Gewichte des maschinellen Lernmodells 200.
  • Befindet sich nun das Objekt 113 in einer unbekannten Lage, wird wiederum ein Kamerabild Ineu aufgenommen und mittels des maschinellen Lernmodells ein zugehöriges Deskriptorbild Id neu = ƒ{Ineu; θ) ermittelt. In diesem neuen Deskriptorbild werden nun Deskriptoren gesucht, die möglichst nah an den di Deskriptoren der Referenzbilder liegen, beispielsweise durch ( u i , v i ) * = argmin u i , v i I d n e u ( u i , v i ) d i 2 2 f u ¨ r alle i = 1, , N .
    Figure DE102020214301A1_0017
  • Aus den so ermittelten bzw. geschätzten Positionen (ui, vj)* der Referenzpunkte im Deskriptorbild Id neu (und damit entsprechend im neuen Kamerabild Ineu) werden die Positionen der Referenzpunkte im dreidimensionalen Raum ermittelt. Beispielsweise wird zusammen mit dem Kamerabild Ineu ein Tiefenbild aufgenommen (oder das Kamerabild Ineu hat einen Tiefenkanal, z.B. ist es ein RGBD-Bild), sodass aus (ui, vj)* die dreidimensionale Position des i-ten Referenzpunkts pi ermittelt werden kann (durch Projizieren des Tiefenwerts an der Position (ui, vj)* in das jeweilige Arbeitsbereich-Koordinatensystem).
  • Sind die Positionen im Raum von mehreren Referenzpunkten bekannt, kann daraus eine Aufnehmpose ermittelt werden, wie es in 5 dargestellt ist.
  • Beispielsweise wird die Position von zwei Referenzpunkten p1 und p2 auf dem Objekt 500 im Raum ermittelt und die beiden linear kombiniert, z.B. ihr Mittelwert genommen, um einen Ankerpunkt 504 festzulegen. Um eine Greif-Orientierung zu definieren wird eine erste Achse 501 mit der Richtung p1 und p2 festgelegt und eine zweite Achse 502 durch den Ankerpunkt 504 beliebig festgelegt, z.B. in z-Achsenrichtung der Kamera 114 oder in Richtung einer Achse des Arbeitsbereich-Koordinatensystems. Eine dritte Achse 503 durch den Ankerpunkt 504 kann durch das Vektorprodukt aus dem Richtungsvektor der ersten Achse 501 und dem Richtungsvektor der zweiten Achse 502 berechnet werden. Die drei Achsen 501 bis 503 und der Ankerpunkt 504 definieren eine Aufnehmpose für das Objekt 500. Ein Roboter kann dann so gesteuert werden, dass er den Schaft des Objekts 500, der sich in Richtung der ersten Achse erstreckt, umfasst. Die Referenzpunkte p1 und p2 werden beispielsweise so festgelegt, dass sie sich wie dargestellt entlang des Schafts, also entlang eines zum Greifen geeigneten langgestreckten Teilstücks des Objekts, erstrecken.
  • Analog können drei oder mehr Referenzpunkte auf einer Greiffläche eines Objekts angeordnet werden, sodass aus ihrer Position eine volle 6D-Aufnehmpose des Objekts oder auch die Orientierung einer Greiffläche ermittelt werden kann, an der ein Objekt gegriffen werden kann.
  • Es sollte dabei beachtet werden, dass der Greifer nicht notwendig eine Zangenform haben muss, sondern auch beispielsweise eine Saugvorrichtung aufweisen kann, um das Objekt an einer geeigneten Fläche anzusaugen und damit aufzunehmen. Um die Saugvorrichtung in die richtige Stellung zu bringen kann es beispielsweise in diesem Fall gewünscht sein, eine Aufnehmpose zu ermitteln, die die Orientierung und Position einer Fläche des Objekts, die zum Ansaugen geeignet ist, angibt. Dies kann beispielsweise durch Ermittlung eines Ankerpunkts und eines Ebenen-Normalenvektors im Ankerpunkt erfolgen.
  • Es können auch mehr als drei Referenzpunkte verwendet werden, um eine Aufnehmpose zu ermitteln, z.B. um durch Mittelung Fehler zu reduzieren.
  • Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren wie in 6 veranschaulicht bereitgestellt.
  • 6 zeigt ein Verfahren zum Steuern eines Roboters zum Aufnehmen eines Objekts in verschiedenen Lagen.
  • In 601 werden mehrere Referenzpunkte auf dem Objekt festgelegt, sodass die Lage der Referenzpunkte im dreidimensionalen Raum eine Aufnehmpose des Objekts definieren.
  • In 602 wird ein erstes Kamerabildes des Objekts in einer bekannten Lage des Objekts empfangen, sodass die Positionen der Referenzpunkte im ersten Kamerabild bekannt sind.
  • In 603 wird das erste Kamerabilds mittels eines maschinellen Lernmodells, das trainiert ist, in Kamerabildern sichtbare Objektpunkte unabhängig von ihrer Position in den Kamerabildern Deskriptoren zuzuordnen, auf ein erstes Deskriptorbild abgebildet.
  • In 604 werden die Deskriptoren der Referenzpunkte aus dem ersten Deskriptorbild durch Auslesen des ersten Deskriptorbilds an den bekannten Positionen der Referenzpunkte identifiziert.
  • In 605 wird ein zweites Kamerabild des Objekts in einer unbekannten Lage, in der das Objekt aufzunehmen ist, empfangen.
  • In 606 wird das zweite Kamerabild mittels des maschinellen Lernmodells auf ein zweites Deskriptorbild abgebildet.
  • In 607 werden die identifizierten Deskriptoren der Referenzpunkte in dem zweiten Deskriptorbild gesucht.
  • In 608 werden die Positionen der Referenzpunkte im dreidimensionalen Raum in der unbekannten Lage aus den gefundenen Positionen der Deskriptoren der Referenzpunkte im Deskriptorbild ermittelt.
  • In 609 wird eine Aufnehmpose des Objekts für die unbekannte Lage aus den ermittelten Positionen der Referenzpunkte im dreidimensionalen Raum ermittelt.
  • In 610 wird die Robotervorrichtung zum Aufnehmen des Objekts entsprechend der ermittelten Aufnehmpose gesteuert.
  • Gemäß verschiedenen Ausführungsformen werden mit anderen Worten die Positionen von mehreren Referenzpunkten anhand ihrer Deskriptoren in einem Kamerabild, das das Objekt in einer unbekannten Lage zeigt, identifiziert, und aus ihrer Position im Kamerabild ihre Position im dreidimensionalen Raum bestimmt. Aus der Position im dreidimensionalen Raum der mehreren Referenzpunkte wird dann eine Aufnehmpose (z.B. die Orientierung ein oder mehrerer Achsen zum Greifen des Objekts) bestimmt.
  • Unter „Aufnehmen“ ist beispielsweise das Greifen mit einem Greifer zu verstehen. Es können aber auch andere Arten von Haltemechanismen verwendet werden, z.B. ein Sauger zum Ansaugen des Objekts. Außerdem ist „Aufnehmen“ nicht notwendigerweise so zu verstehen, dass das Objekt allein bewegt wird, es kann z.B. auch eine Komponente an einer größeren Struktur genommen werden und verbogen werden, ohne es von der größeren Struktur zu trennen.
  • Das maschinelle Lernmodell ist beispielsweise ein neuronales Netz. Es können aber auch andere maschinelle Lernmodelle verwendet werden, die entsprechend trainiert werden.
  • Gemäß verschiedenen Ausführungsformen weist das maschinelle Lernmodell Pixeln des Objekts (in der Bildebene des jeweiligen Kamerabilds) Deskriptoren zu. Dies kann als indirektes Codieren der Oberflächentopologie des Objekts angesehen werden. Diese Verbindung zwischen Deskriptoren und der Oberflächentopologie kann durch Rendern explizit vorgenommen werden, um die Deskriptoren auf die Bildebene abzubilden. Es sollte angemerkt werden, dass Deskriptorwerte an Flächen (d. h. Punkten, die keine Vertices sind) des Objektmodells mittels Interpolation bestimmt werden können. Wenn beispielsweise eine Fläche durch 3 Vertices des Objektmodells mit ihren jeweiligen Deskriptorwerten y1, y2, y3 gegeben ist, dann kann an einem beliebigen Punkt der Fläche der Deskriptorwert y als eine gewichtete Summe dieser Werte w1 · y1 + w2 · y2 + w3 · y3 berechnet werden. Mit anderen Worten werden die Deskriptorwerte an den Vertices interpoliert.
  • Zum Erzeugen von Bildpaaren für Trainingsdaten für das maschinelle Lernmodell wird beispielsweise ein Bild des Objekts (z. B. ein RGB-Bild) einschließlich des Objekts (oder mehrerer Objekte) mit bekanntem 3D(z. B. CAD)-Modell und bekannter Stellung (in einem globalen (d. h. Welt-) Koordinatensystem auf ein (dichtes) Deskriptorbild abgebildet, das in dem Sinne optimal ist, dass es durch eine Suche nach Deskriptoren zum Minimieren der Abweichung geometrischer Eigenschaften (insbesondere der Nähe von Punkten des Objekts) zwischen dem Objektmodell und seiner Repräsentation (Einbettung) im Deskriptorraum erzeugt wird. Im praktischen Gebrauch wird die theoretische optimale Lösung zur Minimierung im Allgemeinen nicht gefunden werden, da die Suche auf einen gewissen Suchraum beschränkt ist. Nichtsdestotrotz wird eine Schätzung des Minimums innerhalb der Beschränkungen einer praktischen Anwendung (verfügbare Berechnungsgenauigkeit, maximale Anzahl von Iterationen usw.) bestimmt.
  • Somit werden Deskriptoren für die Vertices gesucht, indem ein Minimierungsprozess der Summe, über Paare verbundener Vertices, von Distanzen zwischen den Deskriptoren des Paares von Vertices durchgeführt wird, gewichtet durch das Gewicht der Kante zwischen dem Paar von Vertices, wobei jeder Deskriptor für einen jeweiligen Vertex der Vertices gesucht wird.
  • Jedes Trainingsdatenbildpaar umfasst ein Trainingseingabebild des Objekts und ein Zielbild, wobei das Zielbild durch Projizieren der in dem Trainingseingabebild sichtbaren Deskriptoren der Vertices auf die Trainingseingabebildebene gemäß der Stellung, die das Objekt in dem Trainingseingabebild aufweist, erzeugt wird.
  • Die Bilder zusammen mit ihren assoziierten Zielbildern werden zum überwachten Trainieren des maschinellen Lernmodells verwendet.
  • Das maschinelle Lernmodell wird somit trainiert, um eindeutige Merkmale eines Objekts (oder mehrerer Objekte) zu erkennen. Diese Informationen können für verschiedene Anwendungen bei der Robotersteuerung mittels Evaluierung des maschinellen Lernmodells in Echtzeit verwendet werden, z. B. Vorhersagen einer Objektgreifstellung zur Montage. Es sollte angemerkt werden, dass der überwachte Trainingsansatz das explizite Codieren von Symmetrieinformationen ermöglicht.
  • Das Verfahren von 6 kann durch einen oder mehrere Computer durchgeführt werden, die eine oder mehrere Datenverarbeitungseinheiten beinhalten. Der Ausdruck „Datenverarbeitungseinheit“ kann als eine beliebige Art von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Beispielsweise können die Daten oder Signale gemäß mindestens einer (d. h. einer oder mehr als einer) spezifischen Funktion bearbeitet werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Mischsignalschaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentralverarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), ein programmierbares Gate-Array (FPGA), eine integrierte Schaltung oder eine beliebige Kombination davon beinhalten oder daraus gebildet werden. Eine beliebige andere Weise zum Implementieren der jeweiligen Funktionen, die nachstehend ausführlicher beschrieben wird, kann auch als eine Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es versteht sich, dass ein oder mehrere der hierin ausführlich beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit über eine oder mehrere spezifische durch die Datenverarbeitungseinheit durchgeführte Funktionen ausgeführt (z. B. implementiert) werden kann.
  • Verschiedene Ausführungsformen können Sensorsignale von verschiedenen Sensoren wie etwa eine (z. B. RGB) Kamera, Video, Radar, LiDAR, Ultraschall, Wärmebildtechnik usw. empfangen und verwenden, um beispielsweise Sensordaten zu erhalten, die ein Objekt zeigen. Ausführungsformen können zum Erzeugen von Trainingsdaten und Trainieren eines maschinellen Lemsystems verwendet werden, z. B. zum autonomen Steuern eines Roboters, z. B. eines Robotermanipulators, um verschiedene Manipulationsaufgaben unter verschiedenen Szenarios zu erzielen. Insbesondere sind Ausführungsformen bei der Steuerung und Überwachung der Ausführung von Manipulationsaufgaben z. B. bei Montagelinien, anwendbar.
  • Obwohl spezifische Ausführungsformen hierin veranschaulicht und beschrieben wurden, sollte ein Durchschnittsfachmann erkennen, dass eine Vielfalt alternativer und/oder äquivalenter Implementierungen für die spezifischen gezeigten und beschriebenen Ausführungsformen ersetzt werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll jegliche Anpassungen oder Variationen der spezifischen hierin besprochenen Ausführungsformen abdecken. Daher wird beabsichtigt, dass diese Erfindung nur durch die Ansprüche und deren Äquivalente beschränkt wird.

Claims (11)

  1. Verfahren zum Steuern eines Roboters zum Aufnehmen eines Objekts in verschiedenen Lagen, aufweisend: Festlegen von mehreren Referenzpunkten auf dem Objekt, sodass die Lage der Referenzpunkte im dreidimensionalen Raum eine Aufnehmpose des Objekts definieren; Empfangen eines ersten Kamerabildes des Objekts in einer bekannten Lage des Objekts, sodass die Positionen der Referenzpunkte im ersten Kamerabild bekannt sind; Abbilden des ersten Kamerabilds auf ein erstes Deskriptorbild mittels eines maschinellen Lernmodells, das trainiert ist, in Kamerabildern sichtbare Objektpunkte unabhängig von ihrer Position in den Kamerabildern Deskriptoren zuzuordnen; Identifizieren der Deskriptoren der Referenzpunkte aus dem ersten Deskriptorbild durch Auslesen des ersten Deskriptorbilds an den bekannten Positionen der Referenzpunkte; Empfangen eines zweiten Kamerabilds des Objekts in einer unbekannten Lage, in der das Objekt aufzunehmen ist; Abbilden des zweiten Kamerabilds auf ein zweites Deskriptorbild mittels des maschinellen Lernmodells; Suchen der identifizierten Deskriptoren der Referenzpunkte in dem zweiten Deskriptorbild; Ermitteln der Positionen der Referenzpunkte im dreidimensionalen Raum in der unbekannten Lage aus den gefundenen Positionen der Deskriptoren der Referenzpunkte im Deskriptorbild; Ermitteln einer Aufnehmpose des Objekts für die unbekannte Lage aus den ermittelten Positionen der Referenzpunkte im dreidimensionalen Raum; und Steuern der Robotervorrichtung zum Aufnehmen des Objekts entsprechend der ermittelten Aufnehmpose.
  2. Verfahren gemäß Anspruch 1, wobei die Positionen der Referenzpunkte im dreidimensionalen Raum in der unbekannten Lage aus den gefundenen Positionen der Deskriptoren der Referenzpunkte im zweiten Deskriptorbild ermittelt werden, indem Tiefeninformation für die den Positionen der Referenzpunkte im zweiten Deskriptorbild entsprechenden Positionen der Referenzpunkte im zweiten Kamerabild in den dreidimensionalen Raum projiziert wird.
  3. Verfahren gemäß Anspruch 1 oder 2, wobei die Referenzpunkte mindestens zwei Referenzpunkte aufweisen, die derart festgelegt werden, dass sie entlang eines langgestreckten Teilstücks des Objekts angeordnet sind, und wobei die Aufnehmpose des Objekts für die unbekannte Lage durch Ermitteln einer Achse, die sich durch die Referenzpunkte erstreckt, ermittelt wird.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, wobei die Referenzpunkte mindestens drei Referenzpunkte aufweisen, die derart festgelegt werden, dass sie sich auf einer ebenen Fläche des Objekts angeordnet sind und wobei die Aufnehmpose des Objekts für die unbekannte Lage durch Ermitteln einer Ebene, die sich durch die Referenzpunkte erstreckt, ermittelt wird.
  5. Verfahren gemäß einem der Ansprüche 1 bis 4, wobei das Trainieren des maschinellen Lernmodells aufweist: Erhalten eines 3D-Modells des Objekts, wobei das 3D-Modell ein Gitter von Vertices umfasst; Bestimmen eines Deskriptors für jeden Vertex des Gitters; Erzeugen von Trainingsdatenbildpaaren, wobei jedes Trainingsdatenbildpaar ein das Objekt zeigendes Trainingseingabebild und ein Zielbild umfasst, und wobei das Erzeugen des Zielbildes umfasst Bestimmen der Vertexpositionen von Vertices des Objektmodells des Objekts, die die Vertices in dem Trainingseingabebild aufweisen; und Zuweisen, für jede bestimmte Vertexposition in dem Trainingseingabebild, des für den Vertex an der Vertexposition bestimmten Deskriptors zu der Position in dem Zielbild; und Trainieren des maschinellen Lernmodells durch überwachtes Lernen unter Verwendung der Trainingsdatenbildpaare als Trainingsdaten.
  6. Verfahren nach Anspruch 5, wobei das Erzeugen der Trainingsdatenbildpaare Erhalten mehrerer Bilder des Objekts in unterschiedlichen Stellungen und Erzeugen eines Trainingsdatenbildpaares aus jedem erhaltenen Bild durch Erzeugen eines Zielbildes für das erhaltene Bild umfasst.
  7. Verfahren nach Anspruch 5 oder 6, umfassend Bestimmen der Vertexpositionen von Vertices des Objektmodells des Objekts, die die Vertices in den Trainingseingabebildern aufweisen, aus den jeweiligen Stellungen, die das Objekt in den Trainingseingabebildern aufweist.
  8. Verfahren nach einem der Ansprüche 5 bis 7, wobei die Vertices des 3D-Modells durch Kanten verbunden sind, wobei jede Kante eine Gewicht aufweist, das die Nähe zweier durch die Kante verbundener Vertices im Objekt spezifiziert und wobei das Bestimmen eines Deskriptors für jeden Vertex des Gitters durch Suchen von Deskriptoren für die Vertices, die die Summe, über Paare verbundener Vertices, von Distanzen zwischen den Deskriptoren des Paares von Vertices minimieren, gewichtet durch das Gewicht der Kante zwischen dem Paar von Vertices, erfolgt.
  9. Robotersteuervorrichtung, die eingerichtet ist, ein Verfahren gemäß einem der Ansprüche 1 bis 8 durchzuführen.
  10. Computerprogramm, das Anweisungen umfasst, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 8 durchführt.
  11. 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 8 durchführt.
DE102020214301.3A 2020-11-13 2020-11-13 Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen Pending DE102020214301A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102020214301.3A DE102020214301A1 (de) 2020-11-13 2020-11-13 Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen
US17/453,920 US11964400B2 (en) 2020-11-13 2021-11-08 Device and method for controlling a robot to pick up an object in various positions
JP2021184781A JP2022078979A (ja) 2020-11-13 2021-11-12 種々の姿勢状況の物体をピックアップするロボットを制御するための装置及び方法
CN202111339958.XA CN114494426B (zh) 2020-11-13 2021-11-12 用于控制机器人来在不同的方位拿起对象的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020214301.3A DE102020214301A1 (de) 2020-11-13 2020-11-13 Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen

Publications (1)

Publication Number Publication Date
DE102020214301A1 true DE102020214301A1 (de) 2022-05-19

Family

ID=81345850

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020214301.3A Pending DE102020214301A1 (de) 2020-11-13 2020-11-13 Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen

Country Status (4)

Country Link
US (1) US11964400B2 (de)
JP (1) JP2022078979A (de)
CN (1) CN114494426B (de)
DE (1) DE102020214301A1 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114986517A (zh) * 2022-07-14 2022-09-02 福州物联网开放实验室有限公司 涂抹采样的机器人控制方法及装置
DE102022206274A1 (de) 2022-06-22 2023-12-28 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts
DE102022213555A1 (de) * 2022-12-13 2024-06-13 Kuka Deutschland Gmbh Objektlagedetektion mit automatisierter Merkmalsextraktion und/oder Merkmalszuordnung
CN119681899A (zh) * 2025-01-21 2025-03-25 广东恒升吉汽车零部件有限公司 一种机械手加工的视觉定位方法及系统
DE102024206920A1 (de) * 2024-07-23 2026-01-29 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Bestimmen einer Greifpose für einen Roboter

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022030242A1 (ja) * 2020-08-03 2022-02-10 ソニーグループ株式会社 情報処理装置、情報処理方法、およびプログラム
FR3118004A1 (fr) * 2020-12-23 2022-06-24 Compagnie Generale Des Etablissements Michelin Système et Procédé de Dévracage des Pneumatiques dans un Arrangement Inconnu
CN116690575A (zh) * 2023-06-30 2023-09-05 之江实验室 一种基于手眼相机的无标定机械臂抓取方法和装置
CN118965002B (zh) * 2024-10-15 2024-12-24 上海建工集团股份有限公司 建筑机械臂架避障的路径规划方法
CN120245008B (zh) * 2025-06-04 2025-09-09 深圳市信润富联数字科技有限公司 对称工件点位的对称校准方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014106210B4 (de) 2014-04-14 2015-12-17 GM Global Technology Operations LLC (n. d. Ges. d. Staates Delaware) Probabilistische Personennachführung unter Verwendung der Mehr- Ansichts-Vereinigung
DE102017108727A1 (de) 2017-04-24 2018-10-25 Roboception Gmbh Verfahren zur Erstellung einer Datenbank mit Greiferposen, Verfahren zum Steuern eines Roboters, computerlesbares Speichermedium und Handhabungssystem
DE102018111407A1 (de) 2017-05-19 2018-11-22 Nvidia Corporation Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE102018113672A1 (de) 2017-06-09 2018-12-13 Lg Electronics Inc. Mobiler Roboter und Steuerverfahren dafür
DE112017002156T5 (de) 2016-04-25 2019-01-10 Lg Electronics Inc. Beweglicher roboter, system für mehrere bewegliche roboter, und kartenlernverfahren für bewegliche roboter
DE212018000178U1 (de) 2017-03-07 2019-10-22 Kuka Deutschland Gmbh Objekterkennungssystem mit einem 2D-Farbbildsensor und einem 3D-Bildsensor
DE102019122790A1 (de) 2018-08-24 2020-02-27 Nvidia Corp. Robotersteuerungssystem
EP3702108A1 (de) 2019-02-27 2020-09-02 GILDEMEISTER Drehmaschinen GmbH Verfahren zum ermitteln einer greifposition zum ergreifen eines werkstücks
US10766149B2 (en) 2018-03-23 2020-09-08 Amazon Technologies, Inc. Optimization-based spring lattice deformation model for soft materials
DE102019206444A1 (de) 2019-05-06 2020-11-12 Kuka Deutschland Gmbh Maschinelles Lernen einer Objekterkennung mithilfe einer robotergeführten Kamera

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2385483B1 (de) * 2010-05-07 2012-11-21 MVTec Software GmbH Erkennung und Haltungsbestimmung von 3D-Objekten in 3D-Szenen mittels Deskriptoren von Punktpaaren und der verallgemeinerten Hough Transformation
EP2447884B1 (de) * 2010-10-28 2014-12-17 CycloMedia Technology B.V. Verfahren zur Detektion und Wiedererkennung eines Objekts in einem Bild sowie Vorrichtung und Computerprogramm dafür
KR101791590B1 (ko) * 2010-11-05 2017-10-30 삼성전자주식회사 물체 자세 인식장치 및 이를 이용한 물체 자세 인식방법
EP2450667B1 (de) * 2010-11-09 2016-11-02 Harman Becker Automotive Systems GmbH Visionssystem und Verfahren zur Analysierung eines Bilds
US9014857B2 (en) * 2012-01-13 2015-04-21 Toyota Motor Engineering & Manufacturing North America, Inc. Methods and computer-program products for generating grasp patterns for use by a robot
WO2014015889A1 (en) * 2012-07-23 2014-01-30 Metaio Gmbh Method of providing image feature descriptors
US20140232748A1 (en) * 2013-02-15 2014-08-21 Samsung Electronics Co., Ltd. Device, method and computer readable recording medium for operating the same
US9280827B2 (en) * 2013-07-03 2016-03-08 Mitsubishi Electric Research Laboratories, Inc. Method for determining object poses using weighted features
US9259844B2 (en) * 2014-02-12 2016-02-16 General Electric Company Vision-guided electromagnetic robotic system
FR3034553B1 (fr) * 2015-03-30 2018-04-13 Thales Procede de determination d'une direction d'un objet a partir d'une image de l'objet
EP3136289A1 (de) * 2015-08-28 2017-03-01 Thomson Licensing Verfahren und vorrichtung zum klassifizieren eines objekts eines bildes und zugehöriges computerprogramm-produkt und computerlesbares medium
EP3185172B1 (de) * 2015-12-24 2020-02-12 Dassault Systèmes 3d-objektpositionierung mit quantisierung der puntpaar-deskriptoren
US9868212B1 (en) * 2016-02-18 2018-01-16 X Development Llc Methods and apparatus for determining the pose of an object based on point cloud data
US9972067B2 (en) * 2016-10-11 2018-05-15 The Boeing Company System and method for upsampling of sparse point cloud for 3D registration
US10761541B2 (en) * 2017-04-21 2020-09-01 X Development Llc Localization with negative mapping
US10467756B2 (en) * 2017-05-14 2019-11-05 International Business Machines Corporation Systems and methods for determining a camera pose of an image
WO2019028075A1 (en) * 2017-08-01 2019-02-07 Enova Technology, Inc. INTELLIGENT ROBOTS
US10769411B2 (en) * 2017-11-15 2020-09-08 Qualcomm Technologies, Inc. Pose estimation and model retrieval for objects in images
EP3724713B1 (de) * 2017-12-15 2025-07-02 Magic Leap, Inc. Verbesserte posenbestimmung für eine anzeigevorrichtung
US20200311855A1 (en) * 2018-05-17 2020-10-01 Nvidia Corporation Object-to-robot pose estimation from a single rgb image
CN109886124B (zh) * 2019-01-23 2021-01-08 浙江大学 一种基于线束描述子图像匹配的无纹理金属零件抓取方法
JP7337617B2 (ja) * 2019-09-17 2023-09-04 株式会社東芝 推定装置、推定方法及びプログラム
US20210122045A1 (en) * 2019-10-24 2021-04-29 Nvidia Corporation In-hand object pose tracking
US11430151B2 (en) * 2019-11-06 2022-08-30 Seiko Epson Corporation Online learning for 3D pose estimation using simplified constellations
DE102020114362A1 (de) * 2020-05-28 2021-12-02 Illinois Tool Works Inc. System zum beladen einer spülmaschine, greifersystem für eine beladeanordnung zum beladen einer spülmaschine sowie spülmaschine
US11436755B2 (en) * 2020-08-09 2022-09-06 Google Llc Real-time pose estimation for unseen objects

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014106210B4 (de) 2014-04-14 2015-12-17 GM Global Technology Operations LLC (n. d. Ges. d. Staates Delaware) Probabilistische Personennachführung unter Verwendung der Mehr- Ansichts-Vereinigung
DE112017002156T5 (de) 2016-04-25 2019-01-10 Lg Electronics Inc. Beweglicher roboter, system für mehrere bewegliche roboter, und kartenlernverfahren für bewegliche roboter
DE212018000178U1 (de) 2017-03-07 2019-10-22 Kuka Deutschland Gmbh Objekterkennungssystem mit einem 2D-Farbbildsensor und einem 3D-Bildsensor
DE102017108727A1 (de) 2017-04-24 2018-10-25 Roboception Gmbh Verfahren zur Erstellung einer Datenbank mit Greiferposen, Verfahren zum Steuern eines Roboters, computerlesbares Speichermedium und Handhabungssystem
DE102018111407A1 (de) 2017-05-19 2018-11-22 Nvidia Corporation Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE102018113672A1 (de) 2017-06-09 2018-12-13 Lg Electronics Inc. Mobiler Roboter und Steuerverfahren dafür
US10766149B2 (en) 2018-03-23 2020-09-08 Amazon Technologies, Inc. Optimization-based spring lattice deformation model for soft materials
DE102019122790A1 (de) 2018-08-24 2020-02-27 Nvidia Corp. Robotersteuerungssystem
EP3702108A1 (de) 2019-02-27 2020-09-02 GILDEMEISTER Drehmaschinen GmbH Verfahren zum ermitteln einer greifposition zum ergreifen eines werkstücks
DE102019206444A1 (de) 2019-05-06 2020-11-12 Kuka Deutschland Gmbh Maschinelles Lernen einer Objekterkennung mithilfe einer robotergeführten Kamera

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022206274A1 (de) 2022-06-22 2023-12-28 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts
DE102022206274B4 (de) 2022-06-22 2024-12-19 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts
US12350847B2 (en) 2022-06-22 2025-07-08 Robert Bosch Gmbh Method for controlling a robot for manipulating, in particular picking up, an object
CN114986517A (zh) * 2022-07-14 2022-09-02 福州物联网开放实验室有限公司 涂抹采样的机器人控制方法及装置
DE102022213555A1 (de) * 2022-12-13 2024-06-13 Kuka Deutschland Gmbh Objektlagedetektion mit automatisierter Merkmalsextraktion und/oder Merkmalszuordnung
DE102024206920A1 (de) * 2024-07-23 2026-01-29 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Bestimmen einer Greifpose für einen Roboter
CN119681899A (zh) * 2025-01-21 2025-03-25 广东恒升吉汽车零部件有限公司 一种机械手加工的视觉定位方法及系统

Also Published As

Publication number Publication date
US11964400B2 (en) 2024-04-23
JP2022078979A (ja) 2022-05-25
CN114494426B (zh) 2025-12-05
CN114494426A (zh) 2022-05-13
US20220152834A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
DE102020214301A1 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen
DE102020208211A1 (de) Vorrichtungen und Verfahren zum Trainieren eines maschinellen Lernmodells zum Erkennen einer Objekttopologie eines Objekts aus einem Bild des Objekts
DE102015111080B4 (de) Robotervorrichtung mit maschinellem Sehen
DE102021107532A1 (de) System und Verfahren zum Anlernen eines Roboters mittels Demonstration durch einen Menschen
DE102021107333A1 (de) 3d-stellungsabschätzung mit einer 2d-kamera
DE102020214300A1 (de) Vorrichtung und verfahren zum trainieren eines maschinellen lernmodells zum erkennen einer objekttopologie eines objekts aus einem bild des objekts
EP4094897B1 (de) Hand-auge-kalibrierung von kamerageführten apparaturen
DE102016212694A1 (de) Verfahren zur Orientierung eines Industrieroboters und Industrieroboter
Lu et al. Markerless camera-to-robot pose estimation via self-supervised sim-to-real transfer
DE102020214633A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102021204846B4 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102022202144B4 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102021107351A1 (de) System zur eigenschaftserkennung durch deep-learning und vektorfeldschätzung
DE102022201719A1 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Erzeugen von Deskriptorbildern zu Bildern von Objekten
DE102023117284A1 (de) Teachen von griffen durch menschliche demonstration
DE102022203410B4 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102021209646B4 (de) Robotervorrichtung, Verfahren zum computerimplementierten Trainieren eines Roboter-Steuerungsmodells und Verfahren zum Steuern einer Robotervorrichtung
DE102022202142B3 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Ableiten eines Bewegungsvektors für einen Roboter aus Bilddaten
DE102022206274B4 (de) Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts
DE102021109036A1 (de) Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte
DE102021201921B4 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts
DE102021107479A1 (de) Erfassung einer dreidimensionalen pose durch mehrere 2d-kameras
DE102022207847A1 (de) Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts
DE102023207208A1 (de) Verfahren zum Trainieren eines maschinellen Lernmodells für die Steuerung eines Roboters zum Manipulieren eines Objekts
DE102021202570A1 (de) Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte

Legal Events

Date Code Title Description
R163 Identified publications notified