DE102020214301A1 - DEVICE AND METHOD FOR CONTROLLING A ROBOT TO PICK AN OBJECT IN DIFFERENT POSITIONS - Google Patents
DEVICE AND METHOD FOR CONTROLLING A ROBOT TO PICK AN OBJECT IN DIFFERENT POSITIONS Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 238000012549 training Methods 0.000 claims description 65
- 238000010801 machine learning Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 2
- 238000013528 artificial neural network Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 12
- 239000013598 vector Substances 0.000 description 12
- 238000013459 approach Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 239000012636 effector Substances 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 229920000742 Cotton Polymers 0.000 description 4
- 238000011960 computer-aided design Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 3
- 230000036544 posture Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000001931 thermography Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1612—Programme controls characterised by the hand, wrist, grip control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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/1697—Vision controlled systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2137—Feature 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/21375—Feature 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing 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/7715—Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing 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/772—Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing 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/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40584—Camera, non-contact sensor mounted on wrist, indep from gripper
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20072—Graph-based image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
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.According to various embodiments, a method for controlling a robot to pick up an object in different positions is described, comprising: defining a plurality of reference points on the object, mapping a first camera image of the object in a known position onto a first descriptor image, identifying the descriptors of the reference points the first descriptor image, mapping a second camera image of the object in an unknown position onto a second descriptor image, searching for the identified descriptors of the reference points in the second descriptor image, determining the positions of the reference points in three-dimensional space in the unknown position from the positions found and determining a recording pose of the object for the unknown position from the determined positions of the reference points.
Description
Die vorliegende Offenbarung betrifft Vorrichtungen und Verfahren zum Steuern eines Roboters zum Aufnehmen eines Objekts in verschiedenen Lagen.The present disclosure relates to devices and methods for controlling a robot to pick up an object in different positions.
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.In order to enable flexible production or processing of objects by a robot, it is desirable for the robot to be able to handle an object regardless of the posture with which the object is placed in the working space of the robot. Therefore, the robot should be able to recognize in which position the object is, at least insofar as it is relevant to picking up (e.g. grasping) the object, i.e. it should be able to assume a picking up pose (e.g. a grasping pose) of the object determine in order to be able to correctly align its end effector (e.g. with a gripper) and to be able to move it to the correct position. Corresponding control methods for a robotic device for picking up an object in different positions are desirable.
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.According to various embodiments, a method for controlling a robot for recording an object in different positions is provided, comprising: defining a plurality of reference points on the object, so that the position of the reference points in three-dimensional space define a recording pose of the object, receiving a first camera image of the object in a known position of the object, so that the positions of the reference points in the first camera image are known, mapping the first camera image onto a first descriptor image using a machine learning model that is trained to assign descriptors to object points visible in camera images, regardless of their position in the camera images, identifying the descriptors of the reference points from the first descriptor image by reading out the first descriptor image at the known positions of the reference points, receiving a second camera image of the object in an unknown position in which the object is to be recorded, Mapping the second camera image onto a second descriptor image using the machine learning model, searching for the identified descriptors of the reference points in the second descriptor image, determining the positions of the reference points in three-dimensional space in the unknown location from the positions found for the descriptors of the reference points in the descriptor image, determining a recording pose of the object for the unknown position from the determined positions of the reference points in three-dimensional space and controlling the robotic device to pick up the object according to the determined pick-up pose.
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.The method described above enables an object to be reliably picked up (e.g. grasped) for any position of the object. A camera image of the object in an unknown position is sufficient to determine a recording pose of the object. In particular, an arrangement with multiple cameras covering multiple perspectives is not required. The machine learning model can be trained flexibly so that it can be used for different objects. It is then only necessary for reference points to be defined for each object and for the descriptors of the reference points to be determined.
Im Folgenden sind verschiedene Beispiele angegeben.Various examples are given below.
Beispiel 1 ist das Verfahren zum Steuern eines Roboters zum Aufnehmen eines Objekts in verschiedenen Lagen wie oben beschrieben.Example 1 is the method of controlling a robot to pick up an object in different postures as described above.
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.Example 2 is the method of example 1, wherein the positions of the reference points in the three-dimensional space in the unknown location are determined from the found positions of the descriptors of the reference points in the second descriptor image by depth information for the positions of the reference points corresponding to the positions of the reference points in the second descriptor image is projected into three-dimensional space in the second camera image.
Damit ist die Ermittlung der Aufnehmpose mittels eines einzelnen Kamerabilds und zugehöriger Tiefeninformation (z.B. eines RGBD-Bilds) möglich.This makes it possible to determine the recording pose using a single camera image and the associated depth information (e.g. an RGBD image).
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.Example 3 is the method of Example 1 or 2, wherein the reference points include at least two reference points determined to be located along an elongate portion of the object, and the shooting pose of the object for the unknown location is determined by determining an axis, which extends through the reference points is determined.
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.In this way, a pick-up pose can be determined that allows the robot to be controlled to grip the elongated section. For example, a gripper on the end effector of the The robot is controlled so that the gripping tongs are in a plane perpendicular to the axis that extends through the reference points, and then the gripper is closed.
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.Example 4 is the method of any one of Examples 1 to 3, wherein the reference points include at least three reference points set to be located on a flat surface of the object, and the object's shooting pose for the unknown posture is determined by finding a plane , which extends through the reference points, is determined.
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.In this way, a pick-up pose can be determined that allows the robot to be controlled to grasp the surface (e.g. for sucking or lifting). For example, a suction device on the end effector of the robot is controlled so that the suction opening or the suction nozzle of the suction device is perpendicular to the plane that extends through the reference points, and then activated.
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.Example 5 is the method of any one of Examples 1 to 4, wherein training the machine learning model comprises: obtaining a 3D model of the object, the 3D model comprising a grid of vertices, determining a descriptor for each vertex of the grid, generating pairs of training data images, each pair of training data images comprising a training input image showing the object and a target image, and wherein generating the target image comprises determining the vertex positions of vertices of the object model of the object which have the vertices in the training input image and assigning, for each determined vertex position in the training input image, the descriptor determined for the vertex at the vertex position to the position in the target image; and training the machine learning model through supervised learning using the training data image pairs as training data.
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).This training method enables a machine learning model (such as a neural network) to be trained to perform more accurate prediction (i.e. descriptor determination) compared to using self-supervised learning (i.e. allows for a greater variety of applications of the network). Furthermore, it provides greater flexibility for customizing the machine learning model so that it can be applied to different problems and reduces the training data requirements (e.g. the amount of training data required).
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.Example 6 is the method of Example 5, wherein generating the training data image pairs includes obtaining multiple images of the object with different poses and generating a training data image pair from each obtained image by generating a target image for the obtained image.
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.This allows the machine learning model (e.g. a robot with a robot controller that implements the machine learning model) to be trained to understand the topology of an object regardless of the object's pose, e.g. B. to recognize in the workspace of the robot.
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).Example 7 is the method of Example 5 or 6, comprising determining the vertex positions of vertices of the object model of the object that the vertices have in the training input images from the respective poses that the object has in the training input images (e.g., in the camera coordinate system ).
Dies ermöglicht eine genaue Bestimmung der Vertexpositionen, was im Gegenzug genaue Zielbilder für überwachtes Training ermöglicht.This enables accurate determination of vertex positions, which in turn enables accurate target images for supervised training.
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.Example 8 is the method of any of Examples 5 to 7, wherein the vertices of the 3D model are connected by edges, each edge having a weight specifying the proximity of two vertices connected by the edge in the object, and determining a descriptor for each vertex of the trellis by finding descriptors for the vertices that minimize the sum, across pairs of connected vertices, of distances between the descriptors of the pair of descriptors weighted by the weight of the edge between the pair of vertices.
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.The descriptors are clearly determined in an optimal manner. This achieves a high consistency of the descriptors. In addition, a good explainability of the descriptor mapping is achieved.
Beispiel 9 ist eine Robotersteuervorrichtung, die eingerichtet ist, ein Verfahren gemäß einem der Beispiele 1 bis 8 durchzuführen.Example 9 is a robot control device configured to perform a method according to any one of Examples 1 to 8.
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.Example 10 is a computer program comprising instructions that, when executed by a processor, cause the processor to perform a method according to any one of Examples 1-8.
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.Example 11 is a computer-readable medium that stores instructions that, when executed by a processor, cause the processor to perform a method of any of Examples 1-8.
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.
-
1 shows a robot. -
2 12 illustrates training a neural network according to one embodiment. -
3 shows an example embedding of a 4-node graph for descriptor determination. -
4 illustrates the definition of angles at vertices of a 3D model for edge weight determination according to the Laplace-Beltrami operator. -
5 FIG. 10 shows a method for training a machine learning model to recognize an object topology of an object from an image of the object, according to an embodiment. -
6 shows a method for controlling a robot to pick up an object in different positions.
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.The following detailed description refers to the accompanying drawings that show, by way of illustration, specific details and aspects of this disclosure in which the invention may be practiced. Other aspects may be utilized and structural, logical, and electrical changes may be made without departing from the scope of the invention. The various aspects of this disclosure are not necessarily mutually exclusive, as some aspects of this disclosure can be combined with one or more other aspects of this disclosure to form new aspects.
Im Folgenden werden verschiedene Beispiele ausführlicher beschrieben.Various examples are described in more detail below.
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.The
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).The
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.The
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.The term "actuator" can be understood as a component configured to effect a mechanism or process in response to its impetus. The actuator can implement instructions (the so-called activation) created by the
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.The term "controller" may be understood as any type of logic implementing entity, which may include, for example, circuitry and/or a processor capable of executing software, firmware, or a combination thereof stored in a storage medium, and the instructions, e.g. B. to an actuator in the present example, can issue. For example, the controller can be configured by program code (e.g., software) to control the operation of a system, a robot in the present example.
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.In the present example, the
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.According to various embodiments, the
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.For example, the
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.According to various embodiments, the
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.An example of such a
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.The dense object network is a neural network trained using self-supervised learning to output a descriptor space image for an input image of an image. However, the effectiveness of this approach relies heavily on the quality of the training data collected and the sensors involved (e.g., the cameras 114). Furthermore, the interpretation of the network prediction can be difficult.
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.According to various embodiments, an approach for recognizing an object and its pose is used, assuming that a 3D model (e.g., a CAD (Computer Aided Design) model) of the object is known, which is typically used for industrial assembly or processing tasks is the case. According to various embodiments, non-linear dimensionality reduction techniques are used to compute optimal target images for training input images for a neural network. Thus, instead of using self-supervised neural network training, according to various embodiments, supervised neural network training is used. RGBD images of an object can also be recorded (RGB + depth information) and a 3D model for the object can be determined from them.
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.According to one embodiment, data collection is first performed to generate training data for training the
Nach dem Sammeln der RGB-Bilder werden für überwachtes Training eines neuronalen Netzes Zielbilder für die RGB-Bilder gerendert.After collecting the RGB images, target images for the RGB images are rendered for supervised neural network training.
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.It is assumed that the pose of each object in world coordinates in each collected RGB image is known. This is straightforward for a simulated scenario, but requires manual tuning for a real-world scenario, e.g. B. Placing the object at predefined positions. RGBD images can also be used to determine the position of an object.
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.With this information and using a vertex descriptor computation technique, such as described below, for each RGB image (i.e., training input image), a descriptor image (i.e., training output image, also known as a target image or ground truth image) is rendered.
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
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.The
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.It comprises
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).For training, the
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.The
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.The vectors in the descriptor space (also called (dense) descriptors) are d-dimensional vectors (e.g. d is 1, 2 or 3) corresponding to each pixel in the respective image (e.g. each pixel of the
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.Given a 3D model of the object, it is possible to analytically determine an optimal (in the Riemannian sense) and unique descriptor vector for each vertex of the 3D model of the object. According to various embodiments, target images are generated for registered RGB images using these optimal descriptors (or estimates of these descriptors determined by an optimization), resulting in fully supervised
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.In the following, the 3D models are considered as Riemannian manifolds ℳ embedded in ℝ 3 which evokes computing geodesics (shortest path between vertices) while considering the geometry. An optimal surface topology can be explicitly encoded by embedding the 3D model in a d-dimensional Euclidean descriptor space such that geodesic distances between neighboring vertices are preserved as best as possible. This Euclidean space is regarded as the descriptor space and a search for the optimal mapping f : ℳ → ℝ d is performed. According to one embodiment, the Laplacian computation for lattices and its eigenvalue decomposition are used to determine (or at least estimate) the optimal embedding of vertices in the descriptor space. Thus, instead of separating geodesic computation and mapping optimization, the descriptors are extracted in a single framework by computing the Laplacian of the 3D model.
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.According to the approach described below, the embedding of a 3D object model in Euclidean space in the descriptor space is determined to preserve distances (e.g., geodesic distances) between vertices.
Zur Dimensionalitätsreduktion über den Laplace-Operator soll ein Satz von Punkten
Das Ziel besteht darin, eine d-dimensionale Einbettung
Das Optimierungsproblem (1) ist äquivalent zu
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
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.Furthermore, the first eigenvector (first column of Y T ) equals 1 (all ones vector), which is a trivial solution that maps each vertex to a point. In addition, any two are eigenvectors orthogonal to each other. The solution to the eigenvalue problem gives N eigenvalues and corresponding eigenvectors with dimensionality N. In practice, however, only the first d eigenvectors corresponding to the lowest eigenvalues (except for the trivial solution) are used.
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.Thus, the ith column of Y is the embedding of node i in R d , while each row represents the embedding of each point in different orthogonal dimensions.
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
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
Im manchen Fällen sind subsequente Eigenwerte identisch, das heißt, λi = λi+1 = λi+2 = ... (siehe das Beispiel von
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.The graph embedding approach above can be directly applied to grids, point clouds, etc. For example, the K-Nearest Neighbor (KNN) algorithm can be used to form local connections between vertices and construct the adjacency matrix. This approach is sufficient to construct the graph Laplacian and calculate the embedding of each vertex. Nonetheless, this approach inherently builds on Euclidean distance metrics and heuristics that do not necessarily respect the underlying Riemannian geometry of the 3D object model. For example, some edges may pass through the object, or may not connect adjacent vertices of the grid. Even a few incorrect entries in the adjacency matrix can result in poor embedding performance. According to one embodiment, when working with models, it is therefore guaranteed that geodesic distances between any two vertices are correct or have a minimal approximation error.
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.In general, object models such as lattices or point clouds can be represented as Riemannian manifolds embedded in ℝ 3 . A Riemannian manifold M with a smoothly changing metric g can be considered “locally Euclidean”, which captures the property of local smoothness of real-world objects. The generalization of the Laplace operator to Riemannian manifolds is the Laplace-Beltrami (LB) operator Δ. Similar to the Laplacian in Euclidean spaces, the LB operator applied to a function is the divergence of the function's gradient. While the Laplace operator is easy to compute for graphs and in Euclidean spaces (either from adjacency information or finite differences), the LB operator in differential geometry relies on exterior calculus, and is not readily available for a manifold in general .
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.However, for known discrete manifolds, such as lattices, the LB operator can be approximated. This provides a highly efficient and simple calculation framework when working with grids, point clouds, etc. Since the Riemannian equivalent of the Laplace operator is the Laplace Beltrami, the embedding approach described above can be applied directly to Δ. The eigenvectors Y of Δ will represent the optimal d-dimensional Euclidean embedding of the vertices of the lattice.
Δ 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:
Die Summe der Cotangens-Ausdrücke
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.It should be noted that since α > π / 2 => cot(α) < 0,, negative connection weights w ij can occur, especially if one angle is significantly larger than the others (not good faces). To overcome this problem, the connection weight can be approximated by edge flipping.
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.The descriptor generation approach described above treats each vertex uniquely. That is, each vertex is assigned a unique descriptor. However, objects can be symmetric, and thus assigning unique descriptors to seemingly identical vertices will result in non-symmetric embeddings.
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.To address this issue, according to various embodiments, intrinsic symmetries of shapes are detected and symmetric embeddings are compressed such that symmetric vertices map to the same descriptor. A shape can be shown to have intrinsic symmetry if the eigenfunctions of the Laplace-Beltrami operator appear symmetric in Euclidean space. In other words, symmetric features of a grid, point cloud, etc. are detected if their geodesic-preserving Euclidean embedding (descriptor space) shows Euclidean symmetry. A compact manifold exhibits intrinsic symmetry if there exists a homeomorphism T that preserves geodesic distances between each vertex of the manifold.
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:
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.
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.This is consistent with the identical eigenvalue analysis above, which is the necessary condition of symmetric embedding. Since in practice there are rarely identical eigenvalues due to numerical constraints, a heuristic can be used where eigenvalues are considered identical if they lie within the same ε-sphere (with a small ε), i.e. if they differ by less than a predetermined threshold, e.g. 0.1% or 0.01%. Since symmetrical dimensions only need to be found once for a given object, this can be done manually.
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]For example, let the first 7 eigenvalues of an eigenvalue decomposition for a torus be:
λ 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
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.In the case of multiple objects, this can be represented as multiple separate connected graphs. In this case, the adjacency matrix is block diagonal. The symmetric positive-definite Laplacian will again have orthogonal eigenvectors. There are two differences in the result of eigenvalue decomposition compared to the single graph embedding case: first, the non-decreasing eigenvalues will be the embedding errors of all unordered objects. Second, since the corresponding eigenvalues remain orthogonal, the eigenvectors will have zero entries. This means that each dimension of the descriptor space will only correspond to one object embedding. Furthermore, the dimensions are ordered with respect to the embedding error of the corresponding object. Thus, if a 3-dimensional embedding of two objects should be created, d=8 is used since there are two trivial solutions corresponding to λ=0.
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.This straightforward approach handles multiple objects independently, while there may be suboptimal methods that still provide reasonably good lower-d embeddings that exploit correlation between objects.
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.Given the poses of objects, the target images can be generated by projecting the descriptors onto the image plane. Descriptor space image random noise or a single descriptor mapped to the farthest point in descriptor space can be used as the non-object (background).
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.In order to improve the robustness of the trained
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.If the
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.First, several reference points p i , i=1, . . . N, are selected on the
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
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).The positions of the reference points in three-dimensional space are determined from the thus determined or estimated positions (u i , v j )* of the reference points in the descriptor image I d new (and thus correspondingly in the new camera image I new ). For example, a depth image is recorded together with the camera image I new (or the camera image I new has a depth channel, e.g. it is an RGBD image), so that from (u i , v j )* the three-dimensional position of the i-th reference point p i can be determined (by projecting the depth value at the position (u i ,v j )* into the respective workspace coordinate system).
Sind die Positionen im Raum von mehreren Referenzpunkten bekannt, kann daraus eine Aufnehmpose ermittelt werden, wie es in
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.For example, the position of two reference points p 1 and p 2 on the
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.Analogously, three or more reference points can be arranged on a gripping surface of an object, so that a full 6D recording pose of the object or also the orientation of a gripping surface on which an object can be gripped can be determined from their position.
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.It should be noted that the gripper does not necessarily have to be in the form of pliers, but can also have a suction device, for example, in order to suck the object on a suitable surface and thus pick it up. In this case, for example, in order to bring the suction device into the correct position, it may be desirable to determine a pickup pose that indicates the orientation and position of a surface of the object that is suitable for suction. This can be done, for example, by determining an anchor point and a plane normal vector in the anchor point.
Es können auch mehr als drei Referenzpunkte verwendet werden, um eine Aufnehmpose zu ermitteln, z.B. um durch Mittelung Fehler zu reduzieren.More than three reference points can also be used to determine a recording pose, e.g. to reduce errors through averaging.
Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren wie in
In 601 werden mehrere Referenzpunkte auf dem Objekt festgelegt, sodass die Lage der Referenzpunkte im dreidimensionalen Raum eine Aufnehmpose des Objekts definieren.In 601, several reference points are set on the object, so that the position of the reference points in three-dimensional space define a recording pose of the object.
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 602 a first camera image of the object is received in a known position of the object, so that the positions of the reference points in the first camera image are known.
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 603, the first camera image is mapped onto a first descriptor image using a machine learning model that is trained to assign descriptors to object points that are visible in camera images, regardless of their position in the camera images.
In 604 werden die Deskriptoren der Referenzpunkte aus dem ersten Deskriptorbild durch Auslesen des ersten Deskriptorbilds an den bekannten Positionen der Referenzpunkte identifiziert.In 604 the descriptors of the reference points are identified from the first descriptor image by reading out the first descriptor image at the known positions of the reference points.
In 605 wird ein zweites Kamerabild des Objekts in einer unbekannten Lage, in der das Objekt aufzunehmen ist, empfangen.In 605, a second camera image of the object is received in an unknown location in which the object is to be photographed.
In 606 wird das zweite Kamerabild mittels des maschinellen Lernmodells auf ein zweites Deskriptorbild abgebildet.In 606, the second camera image is mapped to a second descriptor image using the machine learning model.
In 607 werden die identifizierten Deskriptoren der Referenzpunkte in dem zweiten Deskriptorbild gesucht.In 607 the identified descriptors of the reference points are searched in the second descriptor image.
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 608 the positions of the reference points in the three-dimensional space in the unknown position are determined from the positions of the descriptors of the reference points in the descriptor image that were found.
In 609 wird eine Aufnehmpose des Objekts für die unbekannte Lage aus den ermittelten Positionen der Referenzpunkte im dreidimensionalen Raum ermittelt.In 609, a recording pose of the object for the unknown position is determined from the determined positions of the reference points in three-dimensional space.
In 610 wird die Robotervorrichtung zum Aufnehmen des Objekts entsprechend der ermittelten Aufnehmpose gesteuert.In 610 the robotic device is controlled to pick up the object according to the determined picking pose.
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.In other words, according to various embodiments, the positions of a plurality of reference points are identified using their descriptors in a camera image that shows the object in an unknown position, and their position in three-dimensional space is determined from their position in the camera image. A recording pose (e.g. the orientation of one or more axes for gripping the object) is then determined from the position in three-dimensional space of the multiple reference points.
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."Picking up" means, for example, gripping with a gripper. However, other types of holding mechanisms can also be used, such as a sucker for sucking the object. Also, "picking up" does not necessarily mean moving the object alone, e.g. it can also take a component on a larger structure and bend it without separating it from the larger structure.
Das maschinelle Lernmodell ist beispielsweise ein neuronales Netz. Es können aber auch andere maschinelle Lernmodelle verwendet werden, die entsprechend trainiert werden.For example, the machine learning model is a neural network. However, other machine learning models can also be used, which are trained accordingly.
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.According to various embodiments, the machine learning model assigns descriptors to pixels of the object (in the image plane of the respective camera image). This can be viewed as indirectly encoding the surface topology of the object. This connection between descriptors and the surface topology can be made explicit by rendering to map the descriptors to the image plane. It should be noted that descriptor values at faces (ie points that are not vertices) of the object model can be determined using interpolation. For example, if a surface is given by 3 vertices of the object model with their respective descriptor values y1, y2, y3, then at any point on the surface the descriptor value y can be given as a weighted sum of these values w 1 y 1 + w 2 y 2 + w 3 · y 3 can be calculated. In other words, the descriptor values are interpolated at the vertices.
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.For example, to generate image pairs for training data for the machine learning model, an image of the object (e.g. an RGB image) including the object (or several objects) with known 3D (e.g. CAD) model and known pose ( in a global (i.e. world) coordinate system, is mapped to a (dense) descriptor image that is optimal in the sense that it is obtained by a search for descriptors to minimize the deviation of geometric properties (especially the proximity of points of the object) between the object model and of its representation (embedding) in the descriptor space. In practical use, the theoretical optimal solution for minimization will in general not be found, since the search is restricted to a certain search space. Nevertheless, an estimate of the minimum within the constraints of a practical application (available calculation accuracy, maximum number of iterations, etc.).
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.Thus, descriptors for the vertices are sought by performing a minimization process of the sum, across pairs of connected vertices, of distances between the descriptors of the pair of vertices, weighted by the weight of the edge between the pair of vertices, each descriptor for a respective vertex of the vertices is searched.
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.Each pair of training data images comprises a training input image of the object and a target image, the target image being formed by projecting the descriptors of the vertices visible in the training input image onto the Training input image plane is generated according to the pose that the object has in the training input image.
Die Bilder zusammen mit ihren assoziierten Zielbildern werden zum überwachten Trainieren des maschinellen Lernmodells verwendet.The images along with their associated target images are used for supervised training of the machine learning model.
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.The machine learning model is thus trained to recognize unique features of an object (or objects). This information can be used for various robot control applications by evaluating the machine learning model in real time, e.g. B. Predicting an object gripping pose for assembly. It should be noted that the supervised training approach allows for explicit coding of symmetry information.
Das Verfahren von
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.Various embodiments may receive and use sensor signals from various sensors such as a (e.g., RGB) camera, video, radar, LiDAR, ultrasound, thermal imaging, etc. to obtain, for example, sensor data showing an object. Embodiments can be used to generate training data and train a machine learning system, e.g. B. for autonomous control of a robot, z. B. a robot manipulator to achieve different manipulation tasks under different scenarios. In particular, embodiments in the control and monitoring of the execution of manipulation tasks z. B. in assembly lines applicable.
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.Although specific embodiments have been illustrated and described herein, one of ordinary skill in the art should recognize that a variety of alternative and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and their equivalents.
Claims (11)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020214301.3A DE102020214301A1 (en) | 2020-11-13 | 2020-11-13 | DEVICE AND METHOD FOR CONTROLLING A ROBOT TO PICK AN OBJECT IN DIFFERENT POSITIONS |
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 |
CN202111339958.XA CN114494426A (en) | 2020-11-13 | 2021-11-12 | Apparatus and method for controlling a robot to pick up an object in different orientations |
JP2021184781A JP2022078979A (en) | 2020-11-13 | 2021-11-12 | Device and method for controlling robot for picking up object in various pose situations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020214301.3A DE102020214301A1 (en) | 2020-11-13 | 2020-11-13 | DEVICE AND METHOD FOR CONTROLLING A ROBOT TO PICK AN OBJECT IN DIFFERENT POSITIONS |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102020214301A1 true DE102020214301A1 (en) | 2022-05-19 |
Family
ID=81345850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102020214301.3A Pending DE102020214301A1 (en) | 2020-11-13 | 2020-11-13 | DEVICE AND METHOD FOR CONTROLLING A ROBOT TO PICK AN OBJECT IN DIFFERENT POSITIONS |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2022078979A (en) |
CN (1) | CN114494426A (en) |
DE (1) | DE102020214301A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022206274A1 (en) | 2022-06-22 | 2023-12-28 | Robert Bosch Gesellschaft mit beschränkter Haftung | Method for controlling a robot for manipulating, in particular picking up, an object |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014106210B4 (en) | 2014-04-14 | 2015-12-17 | GM Global Technology Operations LLC (n. d. Ges. d. Staates Delaware) | Probabilistic person tracking using the Multi-View Association |
DE102017108727A1 (en) | 2017-04-24 | 2018-10-25 | Roboception Gmbh | Method for creating a database with gripper poses, method for controlling a robot, computer-readable storage medium and handling system |
DE102018111407A1 (en) | 2017-05-19 | 2018-11-22 | Nvidia Corporation | METHOD FOR MACHINE LEARNING FOR AUTOMATICALLY MODELING OF EXCESSIVE EXPENDITURE |
DE102018113672A1 (en) | 2017-06-09 | 2018-12-13 | Lg Electronics Inc. | Mobile robot and control method for it |
DE112017002156T5 (en) | 2016-04-25 | 2019-01-10 | Lg Electronics Inc. | MOBILE ROBOT, SYSTEM FOR MULTIPLE MOBILE ROBOTS, AND CARD PROCESSING FOR MOBILE ROBOTS |
DE212018000178U1 (en) | 2017-03-07 | 2019-10-22 | Kuka Deutschland Gmbh | Object recognition system with a 2D color image sensor and a 3D image sensor |
DE102019122790A1 (en) | 2018-08-24 | 2020-02-27 | Nvidia Corp. | Robot Control System |
EP3702108A1 (en) | 2019-02-27 | 2020-09-02 | GILDEMEISTER Drehmaschinen GmbH | Method for determining a gripping position for gripping a workpiece |
US10766149B2 (en) | 2018-03-23 | 2020-09-08 | Amazon Technologies, Inc. | Optimization-based spring lattice deformation model for soft materials |
DE102019206444A1 (en) | 2019-05-06 | 2020-11-12 | Kuka Deutschland Gmbh | Machine learning of object recognition using a robot-guided camera |
-
2020
- 2020-11-13 DE DE102020214301.3A patent/DE102020214301A1/en active Pending
-
2021
- 2021-11-12 JP JP2021184781A patent/JP2022078979A/en active Pending
- 2021-11-12 CN CN202111339958.XA patent/CN114494426A/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014106210B4 (en) | 2014-04-14 | 2015-12-17 | GM Global Technology Operations LLC (n. d. Ges. d. Staates Delaware) | Probabilistic person tracking using the Multi-View Association |
DE112017002156T5 (en) | 2016-04-25 | 2019-01-10 | Lg Electronics Inc. | MOBILE ROBOT, SYSTEM FOR MULTIPLE MOBILE ROBOTS, AND CARD PROCESSING FOR MOBILE ROBOTS |
DE212018000178U1 (en) | 2017-03-07 | 2019-10-22 | Kuka Deutschland Gmbh | Object recognition system with a 2D color image sensor and a 3D image sensor |
DE102017108727A1 (en) | 2017-04-24 | 2018-10-25 | Roboception Gmbh | Method for creating a database with gripper poses, method for controlling a robot, computer-readable storage medium and handling system |
DE102018111407A1 (en) | 2017-05-19 | 2018-11-22 | Nvidia Corporation | METHOD FOR MACHINE LEARNING FOR AUTOMATICALLY MODELING OF EXCESSIVE EXPENDITURE |
DE102018113672A1 (en) | 2017-06-09 | 2018-12-13 | Lg Electronics Inc. | Mobile robot and control method for it |
US10766149B2 (en) | 2018-03-23 | 2020-09-08 | Amazon Technologies, Inc. | Optimization-based spring lattice deformation model for soft materials |
DE102019122790A1 (en) | 2018-08-24 | 2020-02-27 | Nvidia Corp. | Robot Control System |
EP3702108A1 (en) | 2019-02-27 | 2020-09-02 | GILDEMEISTER Drehmaschinen GmbH | Method for determining a gripping position for gripping a workpiece |
DE102019206444A1 (en) | 2019-05-06 | 2020-11-12 | Kuka Deutschland Gmbh | Machine learning of object recognition using a robot-guided camera |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022206274A1 (en) | 2022-06-22 | 2023-12-28 | Robert Bosch Gesellschaft mit beschränkter Haftung | Method for controlling a robot for manipulating, in particular picking up, an object |
Also Published As
Publication number | Publication date |
---|---|
CN114494426A (en) | 2022-05-13 |
JP2022078979A (en) | 2022-05-25 |
US20220152834A1 (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102016212695B4 (en) | industrial robots | |
DE102015111080B4 (en) | Robotic device with machine vision | |
DE112018000332T5 (en) | SEAL VISUAL SLAM WITH PROBABILISTIC SURFEL MAP | |
DE102021107532A1 (en) | System and method for teaching a robot by means of a demonstration by a human | |
DE102015101710A1 (en) | A method of calibrating a moveable gripping member using a remote digital camera | |
DE102021107333A1 (en) | 3D POSITION ASSESSMENT WITH A 2D CAMERA | |
DE102020207085A1 (en) | METHOD OF CONTROLLING A ROBOT AND ROBOT CONTROL UNIT | |
DE102021103726B4 (en) | Measurement parameter optimization method and device and computer control program | |
DE102020214300A1 (en) | DEVICE AND METHOD FOR TRAINING A MACHINE LEARNING MODEL FOR RECOGNIZING AN OBJECT TOPOLOGY OF AN OBJECT FROM AN IMAGE OF THE OBJECT | |
DE102020214231A1 (en) | METHOD OF CONTROLLING A ROBOT DEVICE AND ROBOT CONTROLLER | |
DE102020208211A1 (en) | Devices and methods for training a machine learning model for recognizing an object topology of an object from an image of the object | |
DE102021204961A1 (en) | Method of controlling a robotic device | |
EP4094897B1 (en) | Hand-eye calibration of camera-guided devices | |
DE102020214301A1 (en) | DEVICE AND METHOD FOR CONTROLLING A ROBOT TO PICK AN OBJECT IN DIFFERENT POSITIONS | |
Lu et al. | Markerless camera-to-robot pose estimation via self-supervised sim-to-real transfer | |
DE102021107351A1 (en) | SYSTEM FOR PROPERTY DETECTION THROUGH DEEP LEARNING AND VECTOR FIELD ESTIMATION | |
DE102021202570A1 (en) | DEVICE AND METHOD FOR LOCATING LOCATIONS OF OBJECTS FROM CAMERA IMAGES OF THE OBJECTS | |
DE102021204846B4 (en) | Method of controlling a robotic device | |
DE102021212859A1 (en) | Device and method for training a machine learning model for generating descriptor images for images of objects | |
DE102022201719A1 (en) | Device and method for training a machine learning model for generating descriptor images for images of objects | |
DE102021109036A1 (en) | DEVICE AND METHOD FOR LOCATING LOCATIONS OF OBJECTS FROM CAMERA IMAGES OF THE OBJECTS | |
DE102021107479A1 (en) | CAPTURING A THREE-DIMENSIONAL POSE BY MULTIPLE 2D CAMERAS | |
EP4177013A1 (en) | Control of an industrial robot for a gripping task | |
DE102021201880A1 (en) | Device and method for determining the pose of an object | |
DE102021201921A1 (en) | DEVICE AND METHOD FOR CONTROLLING A ROBOT TO PICK AN OBJECT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R163 | Identified publications notified |