DE102022202145A1 - Robot and method for controlling a robot - Google Patents

Robot and method for controlling a robot Download PDF

Info

Publication number
DE102022202145A1
DE102022202145A1 DE102022202145.2A DE102022202145A DE102022202145A1 DE 102022202145 A1 DE102022202145 A1 DE 102022202145A1 DE 102022202145 A DE102022202145 A DE 102022202145A DE 102022202145 A1 DE102022202145 A1 DE 102022202145A1
Authority
DE
Germany
Prior art keywords
camera
image
robot
end effector
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022202145.2A
Other languages
German (de)
Inventor
Oren Spector
Dotan Di Castro
Vladimir TCHUIEV
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022202145.2A priority Critical patent/DE102022202145A1/en
Priority to PCT/EP2023/053646 priority patent/WO2023165807A1/en
Publication of DE102022202145A1 publication Critical patent/DE102022202145A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39271Ann artificial neural network, ffw-nn, feedforward neural network
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39397Map image error directly to robot movement, position with relation to world, base not needed, image based visual servoing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40032Peg and hole insertion, mating and joining, remote center compliance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40532Ann for vision processing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40584Camera, non-contact sensor mounted on wrist, indep from gripper
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40609Camera to monitor end effector as well as object to be handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

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

Abstract

Gemäß diversen Ausführungsformen wird ein Roboter beschrieben, der einen Endeffektor, der einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, mindestens eine erste Kamera und eine zweite Kamera, die auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind, und eine Steuereinheit, die konfiguriert ist, für eine Position des Endeffektors ein erstes Bild von der ersten Kamera und ein zweites Bild von der zweiten Kamera zu empfangen, das erste und das zweite Bild durch ein neuronales Netz zu verarbeiten, wobei das neuronale Netz konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben, und den Roboter derart zu steuern, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert, umfasst.According to various embodiments, a robot is described having an end effector having a gripper with at least a first finger and a second finger, the two fingers being disposed opposite one another with respect to each other such that they define a gripper plane therebetween, at least a first Camera and a second camera attached to the end effector on opposite sides of the gripper plane, and a control unit configured to receive a first image from the first camera and a second image from the second camera for a position of the end effector, the first and processing the second image through a neural network, the neural network being configured to output a motion vector to the end effector for a deployment task, and controlling the robot to move as specified by the motion vector.

Description

Stand der TechnikState of the art

Die vorliegende Offenbarung bezieht sich auf Roboter und Verfahren zum Steuern eines Roboters.The present disclosure relates to robots and methods of controlling a robot.

Eine Montage wie etwa die Montage von elektrischen Verdrahtungen ist eine der am meisten verbreiteten manuellen Arbeitsaufgaben in der Industrie. Beispiele sind die Montage elektrischer Tafeln und die Montage von Hausschaltanlagen. Komplizierte Montageprozesse können üblicherweise als eine Abfolge von zwei Hauptaktivitäten beschrieben werden: Greifen und Einsetzen. Ähnliche Aufgaben treten z. B. bei der Kabelherstellung auf, die üblicherweise das Einsetzen von Kabeln zur Validierung und Verifizierung enthält.Assembly, such as the assembly of electrical wiring, is one of the most common manual labor tasks in industry. Examples are the assembly of electrical panels and the assembly of house switchgear. Complicated assembly processes can usually be described as a sequence of two main activities: grasping and insertion. Similar tasks occur z. B. in cable manufacture, which usually includes the insertion of cables for validation and verification.

Während für Greifaufgaben geeignete Robotersteuerschemata üblicherweise in der Industrie verfügbar sind, ist das Durchführen von Einsetzvorgängen oder „Stift-in-Loch“-Aufgaben durch Roboter üblicherweise nach wie vor lediglich auf eine kleine Teilmenge von Problemen anwendbar, hauptsächliche auf jene, die einfache Formen an festgelegten Orten enthalten und bei denen die Variationen nicht berücksichtigt werden. Außerdem sind bestehende visuelle Techniken langsam, üblicherweise etwa dreimal langsamer als menschliche Bedienpersonen.While robotic control schemes suitable for gripping tasks are commonly available in the industry, robotic performance of insertion operations or "pin-in-hole" tasks is still typically applicable to only a small subset of problems, mainly those involving simple shapes specified locations and where the variations are not taken into account. In addition, existing visual techniques are slow, typically about three times slower than human operators.

Daher sind wirksame Verfahren zum Trainieren einer Steuereinheit für einen Roboter, um Aufgaben wie Einsetzaufgaben durchzuführen, erwünscht.Therefore, efficient methods for training a controller for a robot to perform tasks such as insertion tasks are desired.

Offenbarung der ErfindungDisclosure of Invention

Gemäß diversen Ausführungsformen wird ein Roboter bereitgestellt, der einen Endeffektor, der einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, mindestens eine erste Kamera und eine zweite Kamera, die auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind, und eine Steuereinheit, die konfiguriert ist, für eine Position des Endeffektors ein erstes Bild von der ersten Kamera und ein zweites Bild von der zweiten Kamera zu empfangen, das erste Bild und das zweite Bild durch ein neuronales Netz zu verarbeiten, wobei das neuronale Netz konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben, und den Roboter derart zu steuern, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert, umfasst.According to various embodiments, a robot is provided that has an end effector that has a gripper with at least a first finger and a second finger, the two fingers being arranged opposite to one another such that they define between them a gripping plane, at least a first Camera and a second camera attached to the end effector on opposite sides of the gripper plane, and a controller configured to receive a first image from the first camera and a second image from the second camera for a position of the end effector, the first processing the image and the second image by a neural network, the neural network being configured to output a motion vector for the end effector for an insertion task, and controlling the robot to move as specified by the motion vector.

Das Bestimmen eines Bewegungsvektors auf der Grundlage von zwei Bildern, die von Kameras aufgenommen werden, die auf gegenüberliegenden Seiten der Greiferebene angeordnet sind, stellt sicher, dass das neuronale Netz ausreichende Informationen zum Ableiten eines Bewegungsvektors für eine Einsetzaufgabe aufweist. Selbst dann wenn ein Finger die Sicht auf den Einsetzvorgang, z. B. für eine der Kameras, versperrt, wird die andere Kamera wahrscheinlich eine unversperrte Sicht auf den Einsetzvorgang aufweisen. Es sei erwähnt, dass für eine Einsetzaufgabe insbesondere eine gute Sicht von Bedeutung ist. Ferner ermöglicht das Aufweisen von zwei Kameras, dass das neuronale Netz Tiefeninformationen ableitet.Determining a motion vector based on two images captured by cameras located on opposite sides of the gripper plane ensures that the neural network has sufficient information to derive a motion vector for an insertion task. Even if a finger obscures the view of the insertion process, e.g. For example, if one of the cameras is blocked, the other camera will likely have an unobstructed view of the insertion process. It should be mentioned that a good view is particularly important for a deployment task. Furthermore, having two cameras allows the neural network to derive depth information.

Somit ermöglichen zwei Kameras (die z. B. in Bezug auf die Greiferebene symmetrisch angeordnet sind) das Umgehen des Problems der Mehrdeutigkeit eines einzelnen Bildes und extrahieren Tiefeninformationen, während eine Verdeckung während der gesamten Einsetzvorgangs-Bewegungsbahn vermieden wird (wenn die Sicht einer Kamera verdeckt ist, weist die andere eine freie Sicht auf). Zum Beispiel ist jede Kamera in einem Winkel von 45 Grad in Bezug auf ihre jeweilige Fingeröffnung angeordnet, wobei sich eine gute Sicht auf das Szenario sowie auf den Gegenstand zwischen den Fingern ergibt.Thus, two cameras (e.g. symmetrically placed with respect to the gripper plane) allow to circumvent the problem of single image ambiguity and extract depth information while avoiding occlusion throughout the insertion trajectory (when one camera's view is obscuring is, the other has an unobstructed view). For example, each camera is positioned at a 45 degree angle with respect to its respective finger opening, giving a good view of the scenario as well as the item between the fingers.

Die Greiferebene kann als die Ebene verstanden werden, in der ein ebener Gegenstand orientiert ist, wenn er durch den Greifer ergriffen ist.The gripper plane can be understood as the plane in which a planar object is oriented when gripped by the gripper.

Im Folgenden werden diverse Beispiele gegeben.Various examples are given below.

Beispiel 1 ist ein Roboter wie oben beschrieben.Example 1 is a robot as described above.

Beispiel 2 ist der Roboter aus Beispiel 1, wobei die erste Kamera und die zweite Kamera in Bezug auf die Greiferebene symmetrisch zueinander angeordnet sind.Example 2 is the robot of example 1, wherein the first camera and the second camera are arranged symmetrically to each other with respect to the gripper plane.

Dies verbessert die Chancen, dass mindestens eine der Kameras eine unversperrte Sicht auf den Einsetzvorgang aufweist.This improves the chances that at least one of the cameras will have an unobstructed view of the insertion process.

Beispiel 3 ist der Roboter aus Beispiel 1 oder 2, wobei die Positionen der ersten Kamera und der zweiten Kamera in Bezug auf die Greiferebene gedreht sind.Example 3 is the robot of Example 1 or 2 with the positions of the first camera and the second camera rotated with respect to the gripper plane.

Dies verbessert die Chancen, dass mindestens eine der Kameras eine unversperrte Sicht auf den Einsetzvorgang aufweist, weiter.This further improves the chances that at least one of the cameras will have an unobstructed view of the insertion process.

Beispiel 4 ist der Roboter aus Beispiel 3, wobei die Positionen der ersten Kamera und der zweiten Kamera in Bezug auf die Greiferebene um 30 bis 60 Grad, vorzugsweise um 40 bis 50 Grad, gedreht sind.Example 4 is the robot of example 3, with the positions of the first camera and the second camera rotated with respect to the gripper plane by 30 to 60 degrees, preferably by 40 to 50 degrees.

Winkel in diesem Bereich stellen in üblichen Fällen eine gute Sicht auf die relevanten Komponenten (Spitze der einzusetzenden Gegenstände, Einsatz) bereit.Angles in this range provide a good view of the relevant components (tip of items to be deployed, deployment) in usual cases.

Beispiel 5 ist der Roboter aus einem der Beispiele 1 bis 4, wobei die Steuereinheit konfiguriert ist, das erste Bild und das zweite Bild durch das neuronale Netz zu verarbeiten durch Erzeugen eines Eingangsbildes für das neuronale Netz, das eine erste Anzahl von Kanälen aufweist, die gleich der Anzahl der Kanäle des ersten Bildes ist, die die Bilddaten des ersten Bildes halten, und eine zweite Anzahl von Kanälen aufweist, die gleich der Anzahl der Kanäle des zweiten Bildes ist, die die Bilddaten des ersten Bildes halten, und Zuführen des Eingangsbildes zum neuronalen Netz.Example 5 is the robot of any of Examples 1 to 4, wherein the controller is configured to process the first image and the second image through the neural network by generating an input image for the neural network having a first number of channels that is equal to the number of channels of the first image that hold the image data of the first image and has a second number of channels that is equal to the number of channels of the second image that hold the image data of the first image, and supplying the input image to the neural network.

Somit werden die Bilddaten beider Bilder in einem einzigen Bild kombiniert und das neuronale Netz kann sie auf die Art und Weise eines einzigen Bildes verarbeiten (das eine vergrößerte Anzahl von Kanälen wie z. B. sechs Kanäle für zwei Gruppen von RGB-Kanälen aufweist). Das neuronale Netz kann z. B. ein neuronales Faltungsnetz sein oder umfassen.Thus, the image data of both images are combined into a single image and the neural network can process them in the manner of a single image (having an increased number of channels such as six channels for two groups of RGB channels). The neural network can e.g. B. be or include a neural convolutional network.

Beispiel 6 ist ein Verfahren zum Steuern eines Roboters, das das Empfangen eines ersten Bildes von einer ersten Kamera und eines zweiten Bildes von einer zweiten Kamera für eine Position eines Endeffektors des Roboters, wobei der Endeffektor einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, und wobei die erste Kamera und die zweite Kamera auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind, das Verarbeiten des ersten Bildes und des zweiten Bildes durch ein neuronales Netz, das konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben, und das Steuern des Roboters, derart, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert, umfasst.Example 6 is a method of controlling a robot that includes receiving a first image from a first camera and a second image from a second camera for a position of an end effector of the robot, the end effector having a gripper with at least a first finger and a second finger wherein the two fingers are juxtaposed with respect to each other such that they define a grip plane therebetween, and wherein the first camera and the second camera are attached to the end effector on opposite sides of the grip plane, processing the first image and the second image by a neural network configured to output a motion vector for the end effector for an insertion task and controlling the robot to move as specified by the motion vector.

Beispiel 7 ist das Verfahren aus Beispiel 6, das das Trainieren des neuronalen Netzes, Bewegungsvektoren für eine Einsetzaufgabe aus Eingangsdatenelementen abzuleiten, die Bilddaten umfassen, die von zwei Kameras aufgenommen werden, umfasst.Example 7 is the method of Example 6, which includes training the neural network to derive motion vectors for a typing task from input data items that include image data captured by two cameras.

Beispiel 8 ist ein Computerprogramm, das Anweisungen umfasst, die dann, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren gemäß einem der Beispiele 6 bis 7 durchführt.Example 8 is a computer program that includes instructions that, when executed by a processor, cause the processor to perform a method according to any one of Examples 6-7.

Beispiel 9 ist ein computerlesbares Medium, das Anweisungen speichert, die dann, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren gemäß einem der Beispiele 6 bis 7 durchführt.Example 9 is a computer-readable medium that stores instructions that, when executed by a processor, cause the processor to perform a method according to any one of Examples 6-7.

Es sei erwähnt, dass Ausführungsformen und Beispiele, die im Zusammenhang mit dem Roboter beschrieben sind, auf analoge Weise für das Verfahren zum Steuern eines Roboters gültig sind und umgekehrt.It should be mentioned that embodiments and examples described in connection with the robot are valid in an analogous way for the method for controlling a robot and vice versa.

In den Zeichnungen beziehen sich gleiche Bezugszeichen in den verschiedenen Ansichten im Allgemeinen durchgehend auf dieselben Komponenten. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, stattdessen wird im Allgemeinen der Schwerpunkt auf das Veranschaulichen der Prinzipien der Erfindung gelegt. In der folgenden Beschreibung sind diverse Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben, wobei:

  • 1 einen Roboter zeigt.
  • 2 einen Roboter-Endeffektor in größerer Detailtiefe zeigt.
  • 3 das Trainieren eines Coderiernetzes gemäß einer Ausführungsform veranschaulicht.
  • 4 die Bestimmung einer Deltabewegung aus einem Bilddatenelement und einem Krafteingang zeigt.
  • 5 die Bestimmung einer Deltabewegung aus zwei Bilddatenelementen zeigt.
  • 6 ein Beispiel für eine Mehrschritt-Einsetzaufgabe veranschaulicht.
  • 7 einen Ablaufplan zeigt, der ein Verfahren zum Steuern eines Roboters veranschaulicht.
In the drawings, like reference characters generally refer to the same components throughout the different views. The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. Various aspects are described in the following description with reference to the following drawings, wherein:
  • 1 shows a robot.
  • 2 shows a robotic end effector in more detail.
  • 3 illustrates training a coding network according to one embodiment.
  • 4 shows the determination of a delta motion from an image data element and a force input.
  • 5 shows the determination of a delta motion from two image data elements.
  • 6 illustrates an example of a multi-step insertion task.
  • 7 Figure 12 shows a flow chart illustrating a method for controlling a robot.

Die folgende genaue Beschreibung bezieht sich auf die begleitenden Zeichnungen, die auf veranschaulichende Weise spezifische Einzelheiten und Aspekte dieser Offenbarung zeigen, in denen die Erfindung in die Praxis umgesetzt sein kann. Andere Aspekte können eingesetzt werden und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen. Die diversen Aspekte dieser Offenbarung sind nicht notwendigerweise wechselseitig ausschließend, da einige Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert sein können, um neue Aspekte zu bilden.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 employed, 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 diverse Beispiele in größerer Detailtiefe beschrieben.Various examples are described in more detail below.

1 zeigt einen Roboter 100. 1 shows a robot 100.

Der Roboter 100 enthält einen Roboterarm 101 wie z. B. einen Industrieroboterarm zum Handhaben oder Montieren eines Werkstücks (oder eines oder mehrerer anderer Gegenstände). Der Roboterarm 101 enthält Manipulatoren 102, 103, 104 und eine Basis (oder einen Träger) 105, durch die die Manipulatoren 102, 103, 104 getragen werden. Der Ausdruck „Manipulator“ bezieht sich auf die beweglichen Elemente des Roboterarms 101, deren Betätigung eine physikalische Interaktion mit der Umgebung wie z. B., um eine Aufgabe auszuführen, ermöglicht. Zur Steuerung enthält der Roboter 100 eine (Roboter-) Steuereinheit 106, die konfiguriert ist, die Interaktion mit der Umgebung gemäß einem Steuerprogramm zu implementieren. Das letzte Element 104 (am weitesten vom Träger 105 entfernt) der Manipulatoren 102, 103, 104 wird ebenso als der Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge wie etwa einen Schweißbrenner, ein Greifinstrument, eine Anstreichausrüstung oder dergleichen enthalten.The robot 100 includes a robot arm 101 such as. B. an industrial robotic arm for manipulating or assembling a workpiece (or other item(s)). The robot arm 101 includes manipulators 102, 103, 104 and a base (or support) 105 by which the manipulators 102, 103, 104 are supported. The term "manipulator" refers to the movable elements of the robotic arm 101, the operation of which involves physical interaction with the environment, such as. B. to perform a task allows. For control, the robot 100 contains a (robot) control unit 106, which is configured to implement the interaction with the environment according to a control program. The last element 104 (farthest from the carrier 105) of the manipulators 102, 103, 104 is also referred to as the end effector 104 and may contain one or more tools such as a welding torch, gripping instrument, painting equipment or the like.

Die anderen Manipulatoren 102, 103 (näher am Träger 105) können eine Positionierungsvorrichtung bilden, derart, dass zusammen mit dem Endeffektor 104 der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende bereitgestellt wird. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm bereitstellen kann (möglicherweise mit einem Werkzeug an seinem Ende).The other manipulators 102, 103 (closer to the carrier 105) can form a positioning device such that together with the end effector 104 the robot arm 101 is provided with the end effector 104 at its end. The robotic arm 101 is a mechanical arm that can provide functions similar to a human arm (possibly with a tool at its end).

Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 enthalten, die die Manipulatoren 102, 103, 104 untereinander und mit dem Träger 105 koppeln. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, wovon jedes zugeordneten Manipulatoren eine drehbare Bewegung (d. h. eine Drehbewegung) und/oder eine translatorische Bewegung (d. h. eine Verlagerung) relativ zueinander bereitstellen kann. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktoren ausgelöst werden, die durch die Steuereinheit 106 gesteuert werden.The robot arm 101 can contain joint elements 107 , 108 , 109 which couple the manipulators 102 , 103 , 104 to one another and to the carrier 105 . A joint element 107, 108, 109 may comprise one or more joints, each of which associated manipulators may provide rotatable movement (i.e. rotary movement) and/or translational movement (i.e. displacement) relative to one another. The movement of the manipulators 102, 103, 104 can be triggered by means of actuators that are controlled by the control unit 106.

Der Ausdruck „Aktor“ kann als eine Komponente verstanden werden, die ausgelegt ist, als Antwort darauf, angetrieben zu werden, einen Mechanismus oder Prozess zu beeinflussen. Der Aktor kann Anweisungen, die durch die Steuereinheit 106 ausgegeben werden (die sogenannte Aktivierung) in mechanische Bewegungen implementieren. Der Aktor wie z. B. ein elektromechanischer Umsetzer kann konfiguriert sein, als Antwort auf das Antreiben elektrische Energie in mechanische Energie umzusetzen.The term "actuator" can be understood as a component designed to affect a mechanism or process in response to being driven. The actuator can implement instructions issued by the control unit 106 (the so-called activation) into mechanical movements. The actor such as B. an electromechanical converter may be configured to convert electrical energy into mechanical energy in response to the driving.

Der Ausdruck „Steuereinheit“ kann als irgendeine Art einer Logik implementierenden Einheit verstanden werden, die z. B. eine Schaltung und/oder einen Prozessor, der Software, die in einem Speichermedium gespeichert ist, Firmware oder eine Kombination davon ausführen kann, enthalten kann und die Anweisungen wie z. B. im vorliegenden Beispiel an einen Aktor ausgeben kann. Die Steuereinheit kann z. B. durch Programmcode (z. B. Software) konfiguriert sein, den Betrieb eines Systems wie eines Roboters im vorliegenden Beispiel zu steuern.The term "control unit" can be understood as any kind of logic implementing unit, e.g. B. a circuit and / or a processor that can execute software stored in a storage medium, firmware or a combination thereof, and the instructions such. B. can output to an actuator in the present example. The control unit can e.g. B. be configured by program code (z. B. software) to control the operation of a system such as a robot in the present example.

Im vorliegenden Beispiel enthält die Steuereinheit 106 einen oder mehrere Prozessoren 110 und einen Datenspeicher 111, der Code und Daten speichert, gemäß welchen der Prozessor 110 den Roboterarm 101 steuert. Gemäß diversen Ausführungsformen steuert die Steuereinheit 106 den Roboterarm 101 auf der Grundlage eines Modells 112 zum maschinellen Lernen, das im Datenspeicher 111 gespeichert ist.In the present example, the control unit 106 includes one or more processors 110 and a data store 111 storing code and data according to which the processor 110 operates the robotic arm 101 controls. According to various embodiments, the controller 106 controls the robotic arm 101 based on a machine learning model 112 stored in the data store 111 .

Gemäß diversen Ausführungsformen ist das Modell 112 zum maschinellen Lernen konfiguriert und trainiert zu ermöglichen, dass der Roboter 100 eine Einsetzaufgabe (z. B. eine Stift-in-Loch-Aufgabe) wie z. B. das Einsetzen eines Steckers 113 in eine entsprechende Buchse 114 durchführt. Hierfür nimmt die Steuereinheit 106 mittels der Kameras 117, 119 Bilder des Steckers 113 und der Buchse 114 auf. Der Stecker 113 ist z. B. ein USB-Stecker (Stecker des universalen seriellen Busses) oder kann ebenso ein Netzstecker sein. Es sei erwähnt, dass dann, wenn der Stecker mehrere Stifte aufweist wie ein Netzstecker, jeder Stift als ein einzusetzender Gegenstand betrachtet werden kann (wobei der Einsatz ein entsprechendes Loch ist). Alternativ kann der gesamte Stecker als der einzusetzende Gegenstand betrachtet werden (wobei der Einsatz eine Netzsteckdose ist). Es sei erwähnt, dass (abhängig davon, was als der Gegenstand betrachtet wird) der Gegenstand 113 nicht notwendigerweise vollständig in den Einsatz eingesetzt wird. Wie im Fall des USB-Steckers wird der USB-Stecker als eingesetzt angesehen, wenn die Metallkontaktkomponente 116 in die Buchse 114 eingesetzt ist.According to various embodiments, the machine learning model 112 is configured and trained to enable the robot 100 to perform an insertion task (e.g., a pin-in-hole task), such as B. the insertion of a plug 113 into a corresponding socket 114 is carried out. For this purpose, the control unit 106 takes pictures of the plug 113 and the socket 114 by means of the cameras 117 , 119 . The connector 113 is z. a USB connector (universal serial bus connector) or may be a power connector as well. It should be noted that when the plug has multiple pins, such as a power plug, each pin can be considered an item to be inserted (the insert being a corresponding hole). Alternatively, the entire plug can be considered the object to be inserted (where the insert is a mains socket). It should be noted that (depending on what is considered the item) the item 113 is not necessarily fully deployed in the deployment. As in the case of the USB plug, when the metal contact component 116 is inserted into the socket 114, the USB plug is considered inserted.

Eine Robotersteuerung, um eine Stift-in-Loch-Aufgabe durchzuführen, enthält üblicherweise zwei Hauptphasen: Suchen und Einsetzen. Während des Suchens wird die Buchse 114 identifiziert und lokalisiert, um die wesentlichen Informationen bereitzustellen, die zum Einsetzen des Steckers 113 erforderlich sind.A robot controller to perform a pin-in-hole task typically includes two main phases: seek and insert. During the search, socket 114 is identified and located to provide the essential information required for plug 113 insertion.

Das Suchen eines Einsatzes kann auf Bildgebung oder auf Blindstrategien, die z. B. spiralförmige Wege einsetzen, beruhen. Visuelle Techniken hängen in hohem Maße vom Ort der Kamera 117, 119 und der Platine 118 (wobei die Buchse 114 in der Oberfläche 115 der Platine angeordnet ist) und von Hindernissen ab und sind üblicherweise etwa dreimal langsamer als menschliche Bedienpersonen. Aufgrund der Einschränkungen visueller Verfahren kann die Steuereinheit 106 entweder ausschließlich oder in Kombination mit Bildgebung Kraft-Drehmoment-Rückkopplung und haptische Rückkopplung berücksichtigen.Finding a bet can be based on imaging or on blind strategies, e.g. B. use spiral paths based. Visual techniques are highly dependent on camera 117, 119 and circuit board 118 location (with socket 114 located in surface 115 of the circuit board) and obstacles, and are typically about three times slower than human operators. Due to the limitations of visual methods, the controller 106 may consider force-torque feedback and haptic feedback either solely or in combination with imaging.

Das Konstruieren eines Roboters, der zuverlässig verschiedene Gegenstände (z. B. Stecker, Kraftmaschinenzahnräder) einsetzt, ist eine große Herausforderung beim Entwurf von Produktions-, Prüf- und Heimdienstleistungsrobotern. Das Minimieren der Aktionszeit, das Maximieren der Zuverlässigkeit und das Minimieren des Kontakts zwischen dem ergriffenen Gegenstand und der Zielkomponente sind aufgrund der innewohnenden Unsicherheit bezüglich Erfassung, Steuerung, Empfindlichkeit für ausgeübte Kräfte und Verdeckungen schwierig.Constructing a robot that reliably employs various objects (e.g., connectors, engine gears) is a major challenge in the design of manufacturing, testing, and home service robots. Minimizing action time, maximizing reliability, and minimizing contact between the object being grasped and the target component are difficult due to the inherent uncertainty of detection, control, sensitivity to applied forces, and occlusion.

Gemäß diversen Ausführungsformen wird ein dateneffizienter, sicherer und überwachter Ansatz, um eine Roboterstrategie zu erfassen, bereitgestellt. Er ermöglicht das Lernen einer Steuerungsstrategie, insbesondere für eine Mehrschritt-Einsetzaufgabe, mit wenigen Datenpunkten unter Nutzung von kontrastiven Methodiken und „One-Shot“-Lerntechniken.According to various embodiments, a data-efficient, secure, and supervised approach to capture robotic strategy is provided. It enables learning of a control strategy, particularly for a multi-step insertion task, with few data points using contrastive methodologies and "one-shot" learning techniques.

Gemäß diversen Ausführungsformen umfassen das Trainieren und/oder die Robotersteuerung eines oder mehrere der folgenden Elemente:

  • 1) Die Verwendung von zwei Kameras, um das Problem der Mehrdeutigkeit eines einzelnen Bildes zu vermeiden und Tiefeninformationen zu extrahieren. Dies ermöglicht insbesondere das Beseitigen der Anforderung, die Oberfläche 115 der Buchse zu berühren, wenn der Gegenstand 113 eingesetzt wird.
  • 2) Die Integration von kontrastivem Lernen, um die Menge gekennzeichneter Daten zu verringern.
  • 3) Ein Relationsnetz, das „One-Shot“-Lernen und einen Mehrschritt-Einsetzvorgang ermöglicht.
  • 4) Einen Mehrschritt-Einsetzvorgang unter Verwendung dieses Relationsnetzes.
According to various embodiments, training and/or robot control include one or more of the following:
  • 1) The use of two cameras to avoid the problem of single image ambiguity and extract depth information. In particular, this enables the elimination of the need to touch the surface 115 of the socket when the article 113 is inserted.
  • 2) The integration of contrastive learning to reduce the amount of labeled data.
  • 3) A relational network that allows for "one-shot" learning and a multi-step insertion process.
  • 4) A multi-step insertion process using this relational network.

2 zeigt einen Roboterendeffektor 201 in größerer Detailtiefe. 2 shows a robot end effector 201 in greater detail.

Der Endeffektor 201 entspricht z. B. dem Endeffektor 105 des Roboterarms 101 wie z. B. einem Roboterarm mit sechs Freiheitsgraden (DoF). Gemäß diversen Ausführungsformen weist der Roboter zwei sensorische Eingänge auf, die die Steuereinheit 106 zum Steuern des Roboterarms 101 verwenden kann. Der erste ist eine stereoskopische Wahrnehmung, die durch zwei (siehe obigen Punkt 1) Handgelenkkameras 202 bereitgestellt wird, die z. B. um einen Winkel von 45° geneigt und auf einen Punkt zwischen den Endeffektorfingern (EEF) 203 fokussiert sind.The end effector 201 corresponds to z. B. the end effector 105 of the robot arm 101 such. B. a robotic arm with six degrees of freedom (DoF). According to various embodiments, the robot has two sensory inputs that the control unit 106 can use to control the robot arm 101 . The first is a stereoscopic perception provided by two (see item 1 above) wrist cameras 202 connected e.g. B. tilted at an angle of 45 ° and focused on a point between the end effector fingers (EEF) 203.

Die Bilder 205, 206 sind Beispiele für Bilder, die durch die erste Kamera bzw. die zweite Kamera für eine Position des Endeffektors 201 aufgenommen werden.The images 205, 206 are examples of images recorded by the first camera and the second camera, respectively, for a position of the end effector 201.

Im Allgemeinen ist jede Kamera 202 derart ausgerichtet, dass aufgenommene Bilder z. B. einen Abschnitt (hier einen Stift 207) eines durch den Endeffektor 201 ergriffenen Gegenstands 204, der eingesetzt werden soll, und einen Bereich um diesen zeigen, derart, dass z. B. der Einsatz 208 sichtbar ist. Es sei erwähnt, dass sich hier der Einsatz auf das Loch für den Stift bezieht, jedoch kann er sich ebenso darauf beziehen, die Löcher für die Stifte sowie die Öffnung für den zylindrischen Abschnitt des Steckers zu umfassen. Das Einsetzen eines Gegenstands in einen Einsatz bedeutet somit nicht notwendigerweise, dass der Gegenstand vollständig in den Einsatz eingesetzt wird, sondern lediglich eine oder mehrere Komponenten.In general, each camera 202 is oriented such that captured images e.g. B. a portion (here a pin 207) of a gripped by the end effector 201 object 204 to be used, and show an area around it such that z. B. the insert 208 is visible. It should be noted that the insert here refers to the hole for the pin, but it can also refer to encompassing the holes for the pins as well as the opening for the cylindrical portion of the plug. Insertion of an object into an insert thus does not necessarily mean that the object is completely inserted into the insert, only one or more components.

Unter der Annahme einer Höhe H, einer Breite W und dreier Kanäle für jedes Kamerabild wird ein Bilddatenelement für eine aktuelle (oder ursprüngliche) Position des am Roboter vorgesehenen Arms durch Img ∈ □ H×W×6 bezeichnet (wobei es sechs Kanäle aufweist, da es die Bilder von beiden Kameras 202 enthält). Der zweite sensorische Eingang ist ein Krafteingang, d. h. Messungen von einem Kraftsensor 120, der ein Moment und eine Kraft misst, die durch den Endeffektor 105, 201 erfahren werden, wenn er den Gegenstand 113 auf eine Ebene (z. B. die Oberfläche 115 der Platine 118) drückt. Die Kraftmessung kann durch den Roboter oder durch einen externen Sensor für Kraft und Drehmoment vorgenommen werden. Der Krafteingang umfasst z. B. eine Kraftangabe F □ (fx, fy, fz) ∈ ⌷3 und eine Momentangabe M = (mx, my, mz) ∈ ⌷3.Assuming a height H, a width W, and three channels for each camera image, an image data item for a current (or original) position of the arm provided on the robot is denoted by Img ∈ □ H×W×6 (having six channels since it contains the images from both cameras 202). The second sensory input is a force input, i.e. measurements from a force sensor 120 that measures a moment and a force experienced by the end effector 105, 201 when it places the object 113 on a plane (e.g. the surface 115 of the Board 118) presses. The force measurement can be performed by the robot or by an external force and torque sensor. The force input includes z. B. a force specification F □ (f x , f y , f z ) ∈ ⌷ 3 and a moment specification M = (m x , m y , m z ) ∈ ⌷ 3 .

Für die folgenden Erklärungen wird die Beobachtung des Roboters für eine aktuelle Position durch Obs = (Img; F; M) bezeichnet. Um die Kontaktkräfte genau zu erfassen und reibungslose Bewegungen zu erzeugen, kann eine Hochfrequenzkommunikation (ein Echtzeitdatenaustausch) zwischen den Sensorvorrichtungen (Kameras 202 und Kraftsensor 120) und der Steuereinheit 106 verwendet werden.For the following explanations, the observation of the robot for a current position is denoted by Obs = (Img; F; M). In order to accurately sense the contact forces and create smooth movements, high frequency communication (a real-time data exchange) between the sensor devices (cameras 202 and force sensor 120) and the controller 106 may be used.

Zum Beispiel werden Kraft- und Drehmomentmessungen (Momentmessungen) mit 500 Hz abgetastet und Befehle werden mit 125 Hz an die Aktoren gesendet.For example, force and torque (torque) measurements are sampled at 500 Hz and commands are sent to the actuators at 125 Hz.

Die Endeffektorfinger 203 bilden einen Greifer, dessen Stellung durch L bezeichnet ist. Insbesondere L⌷ [Lpos, Lang], wobei Lpos ⌷ (x0, y0, z0) der Ort des Greifers ist und L a n g ( θ 0 x , θ 0 y , θ 0 z )

Figure DE102022202145A1_0001
seine Stellung ist. Die Aktion des Roboters im Kartesischen Raum ist definiert durch (Δx,Δy,Δz,Δθx,Δθy,Δθz), wobei Δx, Δy und Δz die gewünschten Korrekturen sind, die für die EEF im Kartesischen Raum in Bezug auf den aktuellen Ort benötigt werden. Diese Roboteraktion spezifiziert die Bewegung des Roboters aus einer aktuellen (oder ursprünglichen) Stellung (insbesondere einer aktuellen Position) in eine Zielstellung (insbesondere an eine Zielposition).The end effector fingers 203 form a gripper whose position is denoted by L. In particular, L⌷ [L pos , L ang ], where L pos ⌷ (x 0 , y 0 , z 0 ) is the location of the gripper and L a n G ( θ 0 x , θ 0 y , θ 0 e.g )
Figure DE102022202145A1_0001
his position is. The action of the robot in Cartesian space is defined by (Δx,Δy,Δz,Δθ x ,Δθ y ,Δθ z ), where Δx, Δy and Δz are the desired corrections made for the EEF in Cartesian space with respect to the current location are required. This robot action specifies the movement of the robot from a current (or original) pose (specifically a current position) to a target pose (specifically a target position).

Das Zwei-Kamera-Schema, d. h. das Aufweisen eines Bilddatenelements, das zwei Bilder umfasst, für jede berücksichtigte Roboterposition, ermöglicht das Wiederherstellen des Abstands zwischen zwei Punkten, die in den Bildern gezeigt sind, d. h. es ermöglicht das Vermeiden des Mehrdeutigkeitsproblems der Bildgebung, das entsteht, wenn versucht wird, den Abstand zwischen zwei Punkten in Weltkoordinaten ohne Tiefeninformationen unter Verwendung eines einzigen Bildes wiederherzustellen.The two-camera scheme, i. H. having an image data item comprising two images for each considered robot position allows restoring the distance between two points shown in the images, d. H. it allows avoiding the imaging ambiguity problem that arises when trying to recover the distance between two points in world coordinates without depth information using a single image.

Gemäß diversen Ausführungsformen wird Rückwärtslernen verwendet (z. B. durch die Steuereinheit 106), wobei Bilder der zwei Kameras 202 verwendet werden, um Trainingsdaten (insbesondere Bilder) zu erfassen, nicht lediglich nach dem Berühren der Oberfläche 115, sondern außerdem entlang der Bewegungsbahn. Dies bedeutet, dass die Steuereinheit 106 beim Erfassen eines Trainingsdatenelements den Roboterarm an seiner endgültigen Position (Zielposition) Lfinal, d. h., wenn der Stecker 116 in die Buchse 114 eingesetzt ist, platziert (oder auf gleichartige Weise für jedes Zwischenziel, für das das Modell 112 zum maschinellen Lernen trainiert werden soll). (Es sei erwähnt, dass unter Verwendung der Kameras 202 ein Zielbilddatenelement an dieser Position erfasst werden kann, das gemäß diversen Ausführungsformen verwendet wird, wie unten beschrieben ist.) Daraufhin werden für jedes Trainingsdatenelement zwei Punkte aus einer Wahrscheinlichkeitsverteilung (z. B. einer Normalverteilung) abgetastet: einer ist Thigh, der an einem Zufallsort über der Buchse angeordnet ist, und der zweite ist Tlow, der zufallsweise um die Höhe der Buchse angeordnet ist.According to various embodiments, backward learning is used (e.g. by the control unit 106), using images from the two cameras 202 to acquire training data (particularly images) not only after touching the surface 115, but also along the trajectory. This means that when acquiring a training data item, the control unit 106 places the robot arm at its final position (target position) L final , i.e. when the plug 116 is inserted into the socket 114 (or in a similar way for each intermediate target for which the model 112 to be trained for machine learning). (It should be noted that using cameras 202, a target image data item may be captured at this location, which is used in accordance with various embodiments, as described below.) Then, for each training data item, two points are obtained from a probability distribution (e.g., a normal distribution ) sampled: one is T high , which is randomly located across the socket, and the second is T low , which is randomly located around the height of the socket.

Eine Korrektur für dieses Trainingsdatenelement ist definiert durch:

  • Δcorrection ⌷ Lfinal - Trandom , wobei Trandom eine hoher oder tiefer Punkt (d. h. Thigh oder Tlow) ist. Ein Trainingsdatensatz, mit D bezeichnet, wird auf der Grundlage einer Gruppe von Trainingsaufgaben τ { τ i } i = 1 N τ
    Figure DE102022202145A1_0002
    aufgebaut, wobei es für jede Aufgabe τi ein entsprechendes L final i
    Figure DE102022202145A1_0003
    gibt. Für jede Aufgabe wird eine zufällig ausgewählte Gruppe von Punkten { T τ i , j } j = 1 N τ i
    Figure DE102022202145A1_0004
    erzeugt, wobei Start- und Endpunkte für Aufgaben und die ursprünglichen Zufallspunkte D τ i τ { D τ i , j } j = 1 N τ i
    Figure DE102022202145A1_0005
    □ (wobei j = hoch, tief) und D τ i , j [ L final i , T τ i , j ]
    Figure DE102022202145A1_0006
    erzielt werden. Für jedes Dτi,jwird eine entsprechende Korrektur Δ τ i , j L f i n a l i T τ i , j
    Figure DE102022202145A1_0007
    definiert. Der Algorithmus 1 gibt ein detailliertes Beispiel für Datenerfassung und allgemeines Rückwärtslernen für eine Aufgabe τ an.
    Figure DE102022202145A1_0008
A fix for this training data item is defined by:
  • Δ correction ⌷ L final - T random , where T random is a high or low point (ie, T high or T low ). A training data set, denoted D, is based on a set of training tasks τ { τ i } i = 1 N τ
    Figure DE102022202145A1_0002
    constructed, with a corresponding one for each task τ i L final i
    Figure DE102022202145A1_0003
    gives. For each task a randomly selected group of points { T τ i , j } j = 1 N τ i
    Figure DE102022202145A1_0004
    generated, with start and end points for tasks and the original random points D τ i τ { D τ i , j } j = 1 N τ i
    Figure DE102022202145A1_0005
    □ (where j = high, low) and D τ i , j [ L final i , T τ i , j ]
    Figure DE102022202145A1_0006
    be achieved. For each D τi,j a corresponding correction is made Δ τ i , j L f i n a l i T τ i , j
    Figure DE102022202145A1_0007
    Are defined. Algorithm 1 gives a detailed example of data collection and general backward learning for a task τ.
    Figure DE102022202145A1_0008

Gemäß dem Algorithmus 1 werden Kraftsensordaten gesammelt. Das ist gemäß diversen Ausführungsformen nicht notwendig, insbesondere gemäß jenen, die mit Zielbilddatenelementen arbeiten, wie weiter unten unter Bezugnahme auf 5 beschrieben ist.According to Algorithm 1, force sensor data is collected. This is not necessary according to various embodiments, particularly those working with target image data items, as discussed below with reference to FIG 5 is described.

Gemäß diversen Ausführungsformen umfasst das Modell 112 zum maschinellen Lernen mehrere Komponenten, wobei eines davon ein Codierernetz ist, das die Steuereinheit 106 verwendet, um eine Codierung für jedes Bilddatenelement Img zu bestimmen.According to various embodiments, the machine learning model 112 includes multiple components, one of which is a coder network that the controller 106 uses to determine an encoding for each image data item Img.

3 veranschaulicht das Trainieren eines Codierernetzes 301 gemäß einer Ausführungsform. 3 3 illustrates training a coder network 301 according to one embodiment.

Das Codierernetz 301 ist z. B. ein neuronales Faltungsnetz, das z. B. eine Res-Net18-Architektur aufweist.The encoder network 301 is e.g. B. a neural convolution network z. B. has a Res-Net18 architecture.

Das Codierernetz 301 (das die Funktion φ realisiert) wird unter Verwendung eines kontrastiven Verlustes oder eines Deltastrategieverlustes und/oder eines Relationsdatenverlustes trainiert wie z. B. gemäß dem folgenden Verlust: Verlust = I contrastive + I delta + I relation

Figure DE102022202145A1_0009
The coder network 301 (implementing the function φ) is trained using a contrastive loss or a delta strategy loss and/or a relational data loss, e.g. B. according to the following loss: Loss = I contrastive + I delta + I relation
Figure DE102022202145A1_0009

Diese Verlustkomponenten werden im Folgenden beschrieben.These loss components are described below.

Kontrastives Lernen, d. h. das Trainieren auf der Grundlage von kontrastivem Verlust, ist ein Rahmenwerk von Lernrepräsentationen, die Ähnlichkeits- oder Unähnlichkeitsrandbedingungen in einem Datensatz befolgen, die sich auf positive bzw. negative Kennzeichen abbilden. Ein möglicher Ansatz des kontrastiven Lernens ist Instanzunterscheidung, wobei ein Beispiel und ein Bild ein positives Paar sind, wenn sie Datenaugmentationen derselben Instanz sind, und andernfalls negativ. Eine Schlüsselherausforderung beim kontrastiven Lernen ist die Wahl negativer Proben, da dies die Qualität der zugrundeliegenden gelernten Repräsentation beeinflussen kann.Contrastive learning, i. H. training based on contrastive loss, is a framework of learning representations that obey similarity or dissimilarity constraints in a dataset that map to positive and negative traits, respectively. One possible contrastive learning approach is instance discrimination, where an example and an image are a positive pair if they are data augmentations of the same instance, and negative otherwise. A key challenge in contrastive learning is the choice of negative samples, as this can affect the quality of the underlying learned representation.

Gemäß diversen Ausführungsformen wird das Codierernetz 301 unter Verwendung einer kontrastiven Technik trainiert (z. B. durch die Steuereinheit 106 oder durch eine externe Vorrichtung, derart, dass es später in der Steuereinheit 106 gespeichert wird), derart, dass es relevante Merkmale für die bevorstehende Aufgabe ohne spezifische Kennzeichen lernt. Ein Beispiel ist InfoNCE-Verlust (NCE: „Noise-Contrastive Examination“). Dadurch wird durch das Stapeln zweier Bilder von den zwei Kameras 202 auf ein Bilddatenelement 302 eine Tiefenregistrierung des Steckers 113 und der Buchse 114 erhalten. Diese Tiefeninformationen werden verwendet, um das Bilddatenelement auf diverse verschiedene Weisen zu augmentieren. Aus dem Original (d. h. dem nicht augmentierten Bilddatenelement) und einer oder mehreren Augmentationen, die auf diese Weise erhalten werden, werden Paare von Bilddatenelementen abgetastet, wobei ein Element des Paares dem Codierernetz 301 zugeführt wird und das andere einer weiteren Version 303 des Codierernetzes zugeführt wird. Die andere Version 303 realisiert die Funktion φ', die z. B. dieselben Parameter wie das Codierernetz 301 aufweist und unter Verwendung einer Polyak-Mittelwertbildung gemäß φ' = φ' + (1 - m)φ, wobei m = 0,999, aktualisiert wird (wobei φ, φ' verwendet worden sind, um die Gewichtungen der zwei Codierernetzversionen 301, 302 darzustellen).According to various embodiments, the encoder network 301 is trained using a contrastive technique (e.g. by the control unit 106 or by an external device such that it is later stored in the control unit 106) such that it contains relevant features for the upcoming Task learns without specific identifiers. An example is InfoNCE loss (NCE: “Noise-Contrastive Examination”). As a result, by stacking two images from the two cameras 202 onto an image data element 302, a depth registration of the plug 113 and the socket 114 is obtained. This depth information is used to augment the image data item in a variety of different ways. From the original (i.e. the non-augmented image data element) and one or more augmentations thus obtained, pairs of image data elements are sampled, one element of the pair being fed to the encoder network 301 and the other to a further version 303 of the encoder network . The other version 303 implements the function φ', which e.g. B. having the same parameters as encoder network 301 and updated using Polyak averaging according to φ' = φ' + (1 - m)φ, where m = 0.999 (where φ, φ' have been used to calculate the weights of the two encoder network versions 301, 302).

Die zwei Codierernetzversionen 301, 302 geben jeweils eine Repräsentation (d. h. eine Einbettung) der Größe L für das Eingangsdatenelement 302 (d. h. einen Ausgang 2 x L des Paares) aus. Indem dies für einen Stapel von N Bilddatenelementen durchgeführt wird (d. h. ein Paar von Augmentationen oder eines Originals und einer Augmentation für jedes Bilddatenelement gebildet wird), d. h. zum Trainieren von Eingangsbilddaten der Größe N x 6 x H x W, ergeben sich N Paare von Repräsentationen, die durch die zwei Codierernetzversionen 301, 302 ausgegeben werden (d. h. Repräsentationsausgangsdaten der Größe 2 × N × L). Unter Verwendung dieser N Paare von Repräsentationen wird der kontrastive Verlust des Codierernetzes 301 berechnet, indem aus den Repräsentationen, die in den Paaren enthalten sind, positive Paare und negative Paare gebildet werden. Hier sind zwei Repräsentationen ein positives Paar, wenn sie aus demselben Eingangsdatenelement 302 erzeugt wurden, und sind ein negatives Paar, wenn sie aus verschiedenen Eingangsdatenelementen 302 erzeugt wurden. Dies bedeutet, dass ein positives Paar zwei Augmentationen desselben ursprünglichen Bilddatenelements hält oder ein ursprüngliches Bilddatenelement und eine Augmentation davon hält. Alle anderen Paare sind negative Paare.The two coder network versions 301, 302 each output a representation (i.e. an embedding) of size L for the input data element 302 (i.e. a 2 x L output of the pair). By doing this for a batch of N image data items (i.e. forming a pair of augmentations or an original and an augmentation for each image data item), i. H. for training input image data of size Nx6xHxW, there are N pairs of representations output by the two coder network versions 301, 302 (i.e. representation output data of size 2xNxL). Using these N pairs of representations, the contrastive loss of the encoder network 301 is calculated by forming positive pairs and negative pairs from the representations contained in the pairs. Here, two representations are a positive pair if generated from the same input data item 302 and are a negative pair if generated from different input data items 302 . This means that a positive pair holds two augmentations of the same original image data item, or holds an original image data item and an augmentation thereof. All other pairs are negative pairs.

Zum Bestimmen des kontrastiven Verlustes 304 wird eine Ähnlichkeitsfunktion sim(.) verwendet, die die Ähnlichkeit (oder den Abstand) zwischen zwei Einbettungen misst. Sie kann einen Euklidischen Abstand (im latenten Raum, d. h. dem Raum der Einbettungen) verwenden, jedoch können kompliziertere Funktionen verwendet werden wie z. B. unter Verwendung einer Kernel-Funktion. Der kontrastive Verlust ist daraufhin z. B. gegeben durch die Summe über i, j von l i , j = log exp ( sim ( z i , z j ) / τ ) k = 1 2 N [ k i ] exp ( sim ( z i , z k ) / τ )

Figure DE102022202145A1_0010
wobei die zi die Einbettungen sind. τ ist hier ein Temperaturnormalisierungsfaktor (nicht mit der oben verwendeten Aufgabe τ zu verwechseln).To determine the contrastive loss 304, a similarity function sim(.) that measures the similarity (or distance) between two embeddings is used. It can use a Euclidean distance (in latent space, i.e. the space of embeddings), but more complicated functions can be used such as B. using a kernel function. The contrastive loss is then z. B. given by the sum over i, j of l i , j = log ex ( sim ( e.g i , e.g j ) / τ ) k = 1 2 N [ k i ] ex ( sim ( e.g i , e.g k ) / τ )
Figure DE102022202145A1_0010
where the z i are the embeddings. τ here is a temperature normalization factor (not to be confused with the τ problem used above).

4 zeigt die Bestimmung einer Deltabewegung 405 aus einem Bilddatenelement 401 und einem Krafteingang 402. 4 shows the determination of a delta movement 405 from an image data element 401 and a force input 402.

Die Deltabewegung Δ = (Δx, Δy, 0, Δθx, Δθy, Δθz) ist die Roboteraktion
Δ = (Δx, Δy, Δz, Δθx, Δθy, Δθz) ohne die Bewegung in der z-Richtung, da die Steuereinheit 106 gemäß diversen Ausführungsformen die Bewegung Δz in der z-Richtung unabhängig von anderen Informationen, z. B. unter Verwendung der Höhe des Tischs, auf dem die Buchse 114 angeordnet ist, aus vorher bekanntem Wissen oder von der Tiefenkamera steuert.
The delta motion Δ = (Δx, Δy, 0, Δθ x , Δθ y , Δθ z ) is the robot action
Δ=(Δx, Δy, Δz, Δθ x , Δθ y , Δθ z ) excluding the movement in the z-direction, since according to various embodiments the control unit 106 calculates the movement Δz in the z-direction independently of other information, e.g. B. using the height of the table on which the socket 114 is placed from prior knowledge or from the depth camera.

In diesem Fall erzeugt das Codierernetz 403 (das dem Codierernetz 301 entspricht) eine Einbettung für das Bilddatenelement. Die Einbettung wird zusammen mit dem Krafteingang 402 an ein neuronales Netz 404 weitergegeben, das die Deltabewegung 405 bereitstellt. Das neuronale Netz 404 ist z. B. ein neuronales Faltungsnetz und wird als Deltanetz bezeichnet und dient dazu, eine Deltastrategie (Delta-Steuerungsstrategie) zu implementieren.In this case, encoder mesh 403 (corresponding to encoder mesh 301) creates an embedding for the image data item. The embedding is passed along with the force input 402 to a neural network 404 that provides the delta motion 405 . The neural network 404 is e.g. B. a neural convolutional network and is referred to as a delta network and is used to implement a delta strategy (delta control strategy).

Der Deltaverlust Idelta zum Trainieren des Codierernetzes 403 (sowie des Deltanetzes 404) wird bestimmt durch das Aufweisen von „Ground Truth“-Deltabewegungskennzeichen für Trainingseingangsdatenelemente (die ein Bilddatenelement 401 und einen Krafteingang 402 umfassen, d. h. das, was oben, insbesondere im Algorithmus 1, durch Obs = (Img; F; M) bezeichnet wurde). Der Trainingsdatensatz D, der durch den Algorithmus 1 erzeugt wird, enthält die Trainingseingangsdatenelemente Obs und die „Ground Truth“-Kennzeichen für den Deltaverlust.The delta loss I delta for training the encoder network 403 (as well as the delta network 404) is determined by having "ground truth" delta motion characteristics for training input data items (comprising an image data item 401 and a force input 402, ie what is discussed above, particularly in Algorithm 1 , denoted by Obs = (Img; F; M)). The training data set D generated by the algorithm 1 contains the training input data elements Obs and the ground truth flags for the delta loss.

5 zeigt die Bestimmung einer Deltabewegung 505 aus zwei Bilddatenelementen 501, 502. 5 shows the determination of a delta movement 505 from two image data elements 501, 502.

In diesem Fall erzeugt das Codierernetz 503 (das dem Codierernetz 301 entspricht) eine Einbettung für jedes Bilddatenelement 501, 502. Die Einbettungen werden an ein neuronales Netz 504 weitergegeben, das die Deltabewegung 505 bereitstellt. Das neuronale Netz 504 ist z. B. ein neuronales Faltungsnetz und wird als ein Relationsnetz bezeichnet und dient dazu, eine Relationsstrategie (Relations-Steuerungsstrategie) zu implementieren.In this case, the encoder network 503 (corresponding to the encoder network 301) generates an embedding for each image data element 501, 502. The embeddings are passed to a neural network 504, which provides the delta motion 505. The neural network 504 is e.g. B. a convolutional neural network and is referred to as a relational network and serves to implement a relational strategy (relational control strategy).

Der Relationsverlust Irelation zum Trainieren des Codierernetzes 503 (sowie des Relationsnetzes 504) wird durch das Aufweisen von „Ground Truth“-Deltabewegungs-Kennzeichen für Paare von Bilddatenelementen 501, 502 bestimmt. Das „Ground Truth“-Deltabewegungskennzeichen für ein Paar von Bilddatenelementen 501, 502 kann z. B. erzeugt werden, indem die Differenz zwischen den „Ground Truth“-Deltabewegungskennzeichen (d. h. den Aktionen) herangezogen wird, die für die Bilddatenelemente in dem Datensatz D enthalten sind, der durch den Algorithmus 1 erzeugt worden ist.The relation loss I relation for training the encoder network 503 (as well as the relation network 504) is determined by having ground truth delta motion characteristics for pairs of image data elements 501,502. The ground truth delta motion identifier for a pair of image data items 501, 502 may e.g. B. be generated by taking the difference between the "ground truth" delta motion labels (ie the actions) contained for the image data elements in the data set D, which was generated by the algorithm 1.

Das bedeutet, dass zum Trainieren mit dem Relationsverlust der Datensatz D verwendet wird, um die Deltabewegung zwischen zwei Bildern Imgi und Imgj derselben Einsteckaufgabe zu berechnen, wobei j ≠ k , indem die „Ground Truth“ durch die Differenz Δτk,j = Δτi,j- Δτi,k berechnet wird. Wenn Imgi und Imgj für dieses Training augmentiert werden, werden Augmentationen verwendet, die konsistent sind.This means that for training with the loss of relation, the data set D is used to calculate the delta motion between two images Img i and Img j of the same insertion task, where j ≠ k , by replacing the ground truth by the difference Δ τk,j = Δτi ,j - Δτi ,k is calculated. When Img i and Img j are augmented for this training, augmentations that are consistent are used.

Der Relationsverlust Irelation erleichtert „One-Shot“-Lernen, ermöglicht außerdem Mehrschritt-Einsetzvorgänge und verbessert die Auswertung der erfassten Daten.The relation loss I relation facilitates "one-shot" learning, also enables multi-step insertion processes and improves the interpretation of the collected data.

Wenn sie trainiert sind, implementieren das Codierernetz 403 und das Deltanetz 404, die verwendet werden, wie unter Bezugnahme auf 4 beschrieben ist, um eine Deltabewegung aus einem Bilddatenelement 401 und einem Krafteingang 402 abzuleiten, das, was als Deltastrategie (Delta-Steuerungsstrategie) bezeichnet wird. Ebenso implementieren das Codierernetz 503 und das Relationsnetz 504, die verwendet werden, wie unter Bezugnahme auf 5 beschrieben ist, um eine Deltabewegung aus einem Bilddatenelement 501 (für eine aktuelle Position) und einem Bilddatenelement 502 (für eine Zielposition) abzuleiten, das, was als Relationsstrategie (Relations-Steuerungsstrategie) bezeichnet wird.Once trained, the coder network 403 and delta network 404 used implement as described with reference to FIG 4 is described to derive delta motion from an image data element 401 and a force input 402, what is referred to as a delta strategy (delta control strategy). Likewise, the coder network 503 and relational network 504 used implement as described with reference to FIG 5 is described to derive a delta motion from an image data element 501 (for a current position) and an image data element 502 (for a target position), what is called a relational strategy (relative control strategy).

Die Steuereinheit kann die Deltastrategie oder die Relationsstrategie als eine Residualstrategie πResidual in Kombination mit einer Hauptstrategie πMain verwenden. Somit verwendet die Steuereinheit 106 zur Beeinflussung das Codierernetz 403, 503 für die Deltastrategie oder die Relationsstrategie. Dies kann abhängig vom Anwendungsfall entschieden werden. Zum Beispiel wird für „One-Shot“- oder Mehrschritt-Einsetzaufgaben die Relationsstrategie (und eine Relationsarchitektur gemäß 5) verwendet, da sie bei diesen Aufgaben besser verallgemeinern kann. Für andere Aufgaben wird die Deltastrategie (und die Deltaarchitektur aus 4) verwendet.The control unit can use the delta strategy or the relational strategy as a residual strategy π Residual in combination with a main strategy π Main . Thus, the control unit 106 uses the coder network 403, 503 for the delta strategy or the relation strategy for influencing. This can be decided depending on the use case. For example, for "one-shot" or multi-step insertion tasks, the relational strategy (and a relational architecture according to 5 ) is used because it can generalize better for these tasks. For other tasks, the delta strategy (and delta architecture from 4 ) used.

Der Hauptstrategie folgend, nähert die Steuereinheit 106 den Ort des Lochs an, d. h. sie lokalisiert z. B. die Löcher, Buchsen, Gewinde, usw. in dem Szenario, z. B. aus Bildern, und verwendet z. B. eine PD-Steuereinheit, um einem Weg zu folgen, der aus der Näherung berechnet wird.Following the main strategy, the control unit 106 approximates the location of the hole, ie locates e.g. B. the holes, bushings, threads, etc. in the scenario, z. B. from images, and uses z. B. a PD controller to follow a path calculated from the approximation.

Daraufhin aktiviert sie die Residualstrategie, z. B. bei einem bestimmten R des Steckers 113 von der Oberfläche 115 und führt den tatsächliche Einsetzvorgang gemäß der Residualstrategie durch. Eine Aktion der Residualstrategie ist eine Deltabewegung Δ= (Δx, Δy, 0, Δθx, A0y, A&).It then activates the residual strategy, e.g. B. at a certain R of the connector 113 from the surface 115 and performs the actual insertion process according to the residual strategy. An action of the residual strategy is a delta move Δ= (Δx, Δy, 0, Δθ x , A0 y , A&).

Der Algorithmus 2 gibt ein detailliertes Beispiel für diese Prozedur an.

Figure DE102022202145A1_0011
Algorithm 2 gives a detailed example of this procedure.
Figure DE102022202145A1_0011

Gemäß diversen Ausführungsformen können, um die Belastbarkeit zu verbessern, sowie zur Verallgemeinerung über Farbe und Form, diverse Augmentationen für Trainingsdatenelemente verwendet werden. Die Ordnung sowie die Eigenschaften jeder Augmentation weisen eine große Wirkung auf die Verallgemeinerung auf. Zur visuellen Augmentation (d. h. Augmentation von Trainingsbilddaten) kann dies zum Trainieren auf der Grundlage des Deltaverlustes und des Relationsverlustes Größenänderung, „Random-Crop“, „Colour-Jitter“, Translation, Drehung, Löschen und Zufallsfaltung enthalten. Für den kontrastiven Verlust sind beispielhafte Augmentationen „Random Resized Crop“, starke Translation, starke Drehung und Löschen. Gleichartige Augmentationen können für Trainingsdatenelemente in demselben Stapel verwendet werden. Bezüglich einer Kraft-Augmentation (d. h. einer Augmentation von Trainingskraft-Eingangsdaten) ist die Richtung der Vektoren (F, M) anstelle ihrer Größe üblicherweise der bedeutendere Nutzfaktor. Daher ist gemäß diversen Ausführungsformen der Krafteingang 402 in das Deltanetz die Richtung der Kraft- und Momentvektoren. Diese können zum Trainieren augmentiert werden (z. B. durch „Jittern“).According to various embodiments, various augmentations can be used for training data items to improve resilience, as well as for generalization about color and shape. The order as well as the properties of each augmentation have a large effect on the generalization. For visual augmentation (i.e. augmentation of training image data), this may include resizing, random crop, color jitter, translation, rotation, erasure, and random convolution for training based on delta loss and relation loss. For contrastive loss, example augmentations are random resized crop, heavy translation, heavy rotation, and erasure. Similar augmentations can be used for training data items in the same batch. With respect to force augmentation (i.e. augmentation of exercise force input data), the direction of the vectors (F,M) is usually the more significant benefit, rather than their magnitude. Therefore, according to various embodiments, the force input 402 into the delta mesh is the direction of the force and moment vectors. These can be augmented for training (e.g. by "jittering").

Wie oben genannt ist, kann die Relationsstrategie insbesondere für eine Mehrschrittaufgabe wie z. B. einen Mehrschritt-Einsetzvorgang verwendet werden. Es sei erwähnt, dass es bei Mehrschritt-Einsetzaufgaben wie dem Verriegeln einer Tür üblicherweise schwieriger ist, Trainingsdaten zu erfassen und zu überprüfen, dass jeder Schritt abgeschlossen werden kann.As mentioned above, the relational strategy can be used in particular for a multi-step task such as e.g. B. a multi-step insertion process can be used. It should be noted that for multi-step deployment tasks such as locking a door, it is typically more difficult to collect training data and verify that each step can be completed.

Gemäß diversen Ausführungsformen werden für eine Mehrschrittaufgabe vorab Bilder für jedes Ziel gespeichert, wobei ein oder mehrere Zwischenziele und ein endgültiges Ziel enthalten sind. Daraufhin wird für jedes Ziel, das aktuell erreicht werden soll (abhängig vom aktuellen Schritt, d. h. gemäß einer Abfolge von Zwischenzielen und dem endgültigen Ziel als letztem Element) ein Bilddatenelement für die aktuelle Position aufgenommen (z. B. durch Aufnehmen von Bildern von beiden Kameras 202) und zusammen mit dem Bild (oder den Bildern) für das Ziel in das Codierernetz 503 eingespeist und durch das Relationsnetz 504 wird eine Deltabewegung abgeleitet, wie unter Bezugnahme auf 5 beschrieben worden ist.According to various embodiments, for a multi-step task, images are pre-stored for each goal, including one or more intermediate goals and a final goal. Then, for each destination that is currently to be reached (depending on the current step, i.e. according to a sequence of intermediate destinations and the final destination as the last element), a current position image data item is taken (e.g. by taking pictures from both cameras). 202) and together with the image (or images) for the target is fed into encoder network 503 and delta motion is derived by relational network 504, as with reference to FIG 5 has been described.

6 veranschaulicht ein Beispiel für eine Mehrschritt-Einsetzaufgabe. 6 illustrates an example of a multi-step insertion task.

In dem Beispiel aus 6, einer Aufgabe, eine Tür zu verriegeln, ist die Aufgabe aus drei Schritten zusammengesetzt, beginnend von einer Ausgangsposition 601: Einsetzen des Schlüssels 602, Drehen der Verriegelung 603 und anschließend Zurückdrehen 604. Für jeden Schritt wird mit den zwei Kameras (z. B. 45-Grad-Kameras) 202 ein Bild des Zustands aufgenommen und vorab gespeichert. Die Ausführung der Aufgabe folgt dem Algorithmus 2 mit der Relationsstrategie und einer Ähnlichkeitsfunktion, um zwischen den Schritten umzuschalten. Zum Beispiel wird erachtet, dass ein Zwischenziel erreicht werden soll, wenn die Ähnlichkeit zwischen aufgenommenen Bildern und den vorab gespeicherten Zielbildern für den aktuellen Schritt unter einem Schwellenwert liegt.In the example off 6 , a task of locking a door, the task is composed of three steps, starting from a starting position 601: inserting the key 602, turning the lock 603 and then turning back 604. For each step, the two cameras (e.g. 45 degree cameras) 202 an image of the condition is captured and pre-stored. The execution of the task follows Algorithm 2 with the relational strategy and a similarity function to switch between steps. For example, an intermediate goal is deemed to be achieved if the similarity between captured images and the pre-stored target images for the current step is below a threshold.

Selbst dann, wenn eine reguläre Rückwärtsdatenerfassung (z. B. gemäß dem Algorithmus 1) verwendet wird und die Verriegelungs- und Einsetzzustände selbst beim Training nicht aufgesucht werden (wobei lediglich Zustände darüber aufgesucht werden oder die gesamte Oberfläche berührt wird), kann die Steuereinheit 106 auf diese Weise die Aufgabe erfolgreich durchführen.Even if regular backward data acquisition (e.g. according to Algorithm 1) is used and the lock and deployment states are not visited even during training (only states above are visited or the entire surface is touched), the control unit 106 in this way complete the task successfully.

Zusammenfassend wird gemäß diversen Ausführungsformen ein Verfahren bereitgestellt, wie in 7 veranschaulicht ist.In summary, according to various embodiments, a method is provided as in 7 is illustrated.

7 zeigt einen Ablaufplan 700, der ein Verfahren zum Steuern eines Roboters veranschaulicht. 7 FIG. 7 shows a flow chart 700 illustrating a method for controlling a robot.

In 701 wird für eine Position eines Endeffektors des Roboters ein erstes Bild von einer ersten Kamera empfangen und ein zweites Bild wird von einer zweiten Kamera empfangen, wobei der Endeffektor einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, und wobei die erste Kamera und die zweite Kamera auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind.In 701, for a position of an end effector of the robot, a first image is received from a first camera and a second image is received from a second camera, the end effector having a gripper with at least a first finger and a second finger, the two fingers in are juxtaposed with respect to each other such that they define a gripper plane therebetween, and wherein the first camera and the second camera are attached to the end effector on opposite sides of the gripper plane.

In 702 werden das erste Bild und das zweite Bild durch ein neuronales Netz verarbeitet, das konfiguriert ist (d. h. insbesondere trainiert ist), einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben.In 702, the first image and the second image are processed by a neural network that is configured (i.e., specifically trained) to output a motion vector for the end effector for a insertion task.

In 703 wird der Roboter derart gesteuert, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert.In 703, the robot is controlled to move as specified by the motion vector.

Das Verfahren aus 7 kann durch einen oder mehrere Computer durchgeführt werden, die eine oder mehrere Datenverarbeitungseinheiten enthalten. Der Ausdruck „Datenverarbeitungseinheit“ kann als irgendeine Art einer Einheit verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Zum Beispiel können die Daten oder Signale gemäß mindestens einer (d. h. einer oder mehr als einer) spezifischen Funktion behandelt werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine zusammengesetzte Signalschaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), einen digitalen Signalprozessor (DSP), ein programmierbares Gate-Array (FPGA), eine integrierte Schaltung oder irgendeine Kombination davon enthalten oder daraus gebildet sein. Jegliche andere Art des Implementierens der jeweiligen Funktionen kann ebenfalls als Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es versteht sich, dass einer oder mehrere der hier im Einzelnen beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit durch eine oder mehrere spezifische Funktionen, die durch die Datenverarbeitungseinheit durchgeführt werden, ausgeführt (z. B. implementiert) werden können.The procedure off 7 can be performed by one or more computers containing one or more data processing units. The term "data processing device" can be understood as any type of device that enables the processing of data or signals. For example, the data or signals may be treated according to at least one (ie one or more than one) specific function performed by the data processing unit. A data processing unit can be an analog circuit, digital circuit, composite signal circuit, logic circuit, microprocessor, microcontroller, central processing unit (CPU), graphics processing unit (GPU), digital signal processor (DSP), programmable gate array ( FPGA), an integrated circuit, or any combination thereof. Any other way of implementing the respective functions can also be understood as a data processing unit or logic circuit arrangement. It is understood that one or more of the method steps described in detail herein can be performed (e.g. implemented) by a data processing unit by one or more specific functions performed by the data processing unit.

Diverse Ausführungsformen können Bilddaten von diversen visuellen Sensoren (Kameras) wie etwa Video, Radar, LiDAR, Ultraschall, Wärmebildgebung, usw. empfangen und verwenden. Ausführungsformen können zum Trainieren eines Systems zum maschinellen Lernen und zum autonomen Steuern eines Roboters wie z. B. von Robotermanipulatoren, um diverse Einsetzaufgaben unter verschiedenen Szenarien zu lösen, verwendet werden. Es sei erwähnt, dass das neuronale Netz nach dem Trainieren für eine Einsetzaufgabe für eine neue Einsetzaufgabe trainiert werden kann, was verglichen mit dem Trainieren von Beginn an eine Trainingszeit verringert (Übertragung von Lernfähigkeiten). Ausführungsformen sind insbesondere anwendbar auf die Steuerung und Überwachung der Ausführung von Handhabungsaufgaben wie z. B. in Montagelinien.Various embodiments can receive and use image data from various visual sensors (cameras) such as video, radar, LiDAR, ultrasound, thermal imaging, and so on. Embodiments can be used to train a machine learning system and autonomously control a robot such as a robot. B. by robotic manipulators to solve various insertion tasks under different scenarios. Note that the neural network can be trained for a new insertion task after training for one insertion task, which reduces a training time (transfer of learning skills) compared to training from the beginning. Embodiments are in particular applicable to controlling and monitoring the execution of handling tasks such as B. in assembly lines.

Gemäß einer Ausführungsform ist das Verfahren computer-implementiert.According to one embodiment, the method is computer-implemented.

Obwohl hier spezifische Ausführungsformen veranschaulicht und beschrieben worden sind, wird der Fachmann auf dem Gebiet anerkennen, dass die gezeigten und beschriebenen spezifischen Ausführungsformen durch eine Vielzahl alternativer und/oder äquivalenter Implementierungen ersetzt werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Es ist beabsichtigt, dass diese Anmeldung jegliche Anpassungen oder Abwandlungen der hier diskutierten spezifischen Ausführungsformen abdeckt. Daher ist beabsichtigt, dass diese Erfindung lediglich durch die Ansprüche und deren Äquivalente eingeschränkt ist.Although specific embodiments have been illustrated and described herein, those skilled in the art will appreciate 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 modifications to the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and their equivalents.

Claims (9)

Roboter, der Folgendes umfasst: einen Endeffektor, der einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren; mindestens eine erste Kamera und eine zweite Kamera, die auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind; eine Steuereinheit, die konfiguriert ist zum Empfangen eines ersten Bildes von der ersten Kamera und eines zweiten Bildes von der zweiten Kamera für eine Position des Endeffektors; Verarbeiten des ersten und des zweiten Bildes durch ein neuronales Netz, wobei das neuronale Netz konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben; und Steuern des Roboters, derart, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert.Robot, which includes: an end effector having a gripper with at least a first finger and a second finger, the two fingers being opposed with respect to each other such that they define a gripping plane therebetween; at least a first camera and a second camera attached to the end effector on opposite sides of the gripper plane; a control unit configured to receiving a first image from the first camera and a second image from the second camera for a position of the end effector; processing the first and second images by a neural network, the neural network configured to output a motion vector for the end effector for a insertion task; and Controlling the robot to move as specified by the motion vector. Roboter nach Anspruch 1, wobei die erste Kamera und die zweite Kamera in Bezug auf die Greiferebene symmetrisch zueinander angeordnet sind.robot after claim 1 , wherein the first camera and the second camera are arranged symmetrically to each other with respect to the gripper plane. Roboter nach Anspruch 1 oder 2, wobei die Positionen der ersten Kamera und der zweiten Kamera in Bezug auf die Greiferebene gedreht sind.robot after claim 1 or 2 , wherein the positions of the first camera and the second camera are rotated with respect to the gripper plane. Roboter nach Anspruch 3, wobei die Positionen der ersten Kamera und der zweiten Kamera in Bezug auf die Greiferebene um 30 bis 60 Grad, vorzugsweise um 40 bis 50 Grad, gedreht sind.robot after claim 3 , wherein the positions of the first camera and the second camera are rotated with respect to the gripper plane by 30 to 60 degrees, preferably by 40 to 50 degrees. Roboter nach einem der Ansprüche 1 bis 4, wobei die Steuereinheit konfiguriert ist, das erste Bild und das zweite Bild durch das neuronale Netz zu verarbeiten durch Erzeugen eines Eingangsbildes für das neuronale Netz, das eine erste Anzahl von Kanälen aufweist, die gleich der Anzahl der Kanäle des ersten Bildes ist, die die Bilddaten des ersten Bildes halten, und eine zweite Anzahl von Kanälen aufweist, die gleich der Anzahl der Kanäle des zweiten Bildes ist, die die Bilddaten des ersten Bildes halten, und Zuführen des Eingangsbildes zum neuronalen Netz.robot after one of the Claims 1 until 4 , wherein the control unit is configured to process the first image and the second image by the neural network by generating an input image for the neural network having a first number of channels equal to the number of channels of the first image that the holding image data of the first image and having a second number of channels equal to the number of channels of the second image holding the image data of the first image, and applying the input image to the neural network. Verfahren zum Steuern eines Roboters, das Folgendes umfasst: Empfangen eines ersten Bildes von einer ersten Kamera und eines zweiten Bildes von einer zweiten Kamera für eine Position eines Endeffektors des Roboters, wobei der Endeffektor einen Greifer mit mindestens einem ersten Finger und einem zweiten Finger aufweist, wobei die zwei Finger in Bezug aufeinander gegenüberliegend angeordnet sind, derart, dass sie zwischen sich eine Greiferebene definieren, und wobei die erste Kamera und die zweite Kamera auf gegenüberliegenden Seiten der Greiferebene am Endeffektor befestigt sind; Verarbeiten des ersten und des zweiten Bildes durch ein neuronales Netz, das konfiguriert ist, einen Bewegungsvektor für den Endeffektor für eine Einsetzaufgabe auszugeben; und Steuern des Roboters, derart, dass er sich bewegt, wie durch den Bewegungsvektor spezifiziert.A method of controlling a robot, comprising: receiving a first image from a first camera and a second image from a second camera for a position of an end effector of the robot, the end effector having a gripper with at least a first finger and a second finger, the two fingers being opposed with respect to each other such that they define a gripper plane therebetween, and wherein the first camera and the second camera are attached to the end effector on opposite sides of the gripper plane; processing the first and second images by a neural network configured to output a motion vector for the end effector for a insertion task; and Controlling the robot to move as specified by the motion vector. Verfahren nach Anspruch 6, das das Trainieren des neuronalen Netzes, aus Eingangsdatenelementen, die Bilddaten, die von zwei Kameras aufgenommen werden, umfassen, Bewegungsvektoren für eine Einsetzaufgabe abzuleiten, umfasst.procedure after claim 6 which comprises training the neural network to derive motion vectors for an insertion task from input data items comprising image data captured by two cameras. Computerprogramm, das Anweisungen umfasst, die dann, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 6 bis 7 ausführt.A computer program comprising instructions which, when executed by a processor, cause the processor to perform a method according to any one of Claims 6 until 7 executes Computerlesbares Medium, das Anweisungen speichert, die dann, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 6 bis 7 ausführt.A computer-readable medium storing instructions which, when executed by a processor, cause the processor to perform a method according to any one of Claims 6 until 7 executes
DE102022202145.2A 2022-03-02 2022-03-02 Robot and method for controlling a robot Pending DE102022202145A1 (en)

Priority Applications (2)

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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022202145.2A DE102022202145A1 (en) 2022-03-02 2022-03-02 Robot and method for controlling a robot

Publications (1)

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

Family

ID=85251746

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022202145.2A Pending DE102022202145A1 (en) 2022-03-02 2022-03-02 Robot and method for controlling a robot

Country Status (2)

Country Link
DE (1) DE102022202145A1 (en)
WO (1) WO2023165807A1 (en)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69913106T2 (en) 1998-02-18 2004-08-26 Armstrong Healthcare Ltd. METHOD AND DEVICE FOR ROBOT ALIGNMENT
DE102019002065A1 (en) 2018-03-29 2019-10-02 Fanuc Corporation A machine learning device, a robot control device and a robot vision system using a machine learning device, and a machine learning method
DE112017007025T5 (en) 2017-02-09 2019-10-24 Mitsubishi Electric Corporation POSITION CONTROL DEVICE AND POSITION CONTROL PROCESS
DE102019122790A1 (en) 2018-08-24 2020-02-27 Nvidia Corp. Robot Control System
EP3515671B1 (en) 2017-06-19 2020-05-13 Google LLC Robotic grasping prediction using neural networks and geometry aware object representation
EP2915635B1 (en) 2014-03-07 2020-09-02 Seiko Epson Corporation Robot, robot system, control device, and control method
DE102019106458A1 (en) 2019-03-13 2020-09-17 ese-robotics GmbH Method for controlling an industrial robot
DE102020119704A1 (en) 2019-08-01 2021-02-04 Fanuc Corporation CONTROL DEVICE OF A ROBOTIC DEVICE CONTROLLING THE POSITION OF A ROBOT
DE102021109332A1 (en) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Apparatus and method for controlling a robot to insert an object into an insertion site
DE102021109334A1 (en) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Device and method for training a neural network for controlling a robot for an insertion task

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11148295B2 (en) * 2018-06-17 2021-10-19 Robotics Materials, Inc. Systems, devices, components, and methods for a compact robotic gripper with palm-mounted sensing, grasping, and computing devices and components
WO2020142296A1 (en) * 2019-01-01 2020-07-09 Giant.Ai, Inc. Software compensated robotics
US11171459B2 (en) * 2019-08-09 2021-11-09 The Boeing Company Method and system for alignment of wire contact with wire contact insertion holes of a connector
JP7458741B2 (en) * 2019-10-21 2024-04-01 キヤノン株式会社 Robot control device and its control method and program

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69913106T2 (en) 1998-02-18 2004-08-26 Armstrong Healthcare Ltd. METHOD AND DEVICE FOR ROBOT ALIGNMENT
EP2915635B1 (en) 2014-03-07 2020-09-02 Seiko Epson Corporation Robot, robot system, control device, and control method
DE112017007025T5 (en) 2017-02-09 2019-10-24 Mitsubishi Electric Corporation POSITION CONTROL DEVICE AND POSITION CONTROL PROCESS
EP3515671B1 (en) 2017-06-19 2020-05-13 Google LLC Robotic grasping prediction using neural networks and geometry aware object representation
DE102019002065A1 (en) 2018-03-29 2019-10-02 Fanuc Corporation A machine learning device, a robot control device and a robot vision system using a machine learning device, and a machine learning method
DE102019122790A1 (en) 2018-08-24 2020-02-27 Nvidia Corp. Robot Control System
DE102019106458A1 (en) 2019-03-13 2020-09-17 ese-robotics GmbH Method for controlling an industrial robot
DE102020119704A1 (en) 2019-08-01 2021-02-04 Fanuc Corporation CONTROL DEVICE OF A ROBOTIC DEVICE CONTROLLING THE POSITION OF A ROBOT
DE102021109332A1 (en) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Apparatus and method for controlling a robot to insert an object into an insertion site
DE102021109334A1 (en) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Device and method for training a neural network for controlling a robot for an insertion task

Also Published As

Publication number Publication date
WO2023165807A1 (en) 2023-09-07

Similar Documents

Publication Publication Date Title
DE102018116053B4 (en) Robot system and robot learning method
DE102021109332B4 (en) Apparatus and method for controlling a robot to insert an object into an insertion site
DE102021109334B4 (en) Device and method for training a neural network for controlling a robot for an insertion task
DE102021107532A1 (en) System and method for teaching a robot by means of a demonstration by a human
WO2021069129A1 (en) Device and method for controlling a robot device
DE102021204961B4 (en) Method of controlling a robotic device
WO2020225229A1 (en) Machine learning an object detection process using a robot-guided camera
DE102021103726B4 (en) Measurement parameter optimization method and device and computer control program
DE102021204697B4 (en) Method of controlling a robotic device
DE102020212658A1 (en) Apparatus and method for controlling a robotic device
DE102022130652A1 (en) TRAINING A ROBOT BY DEMONSTRATING USING VISUALSERVOING
DE112018007729B4 (en) Machine learning device and robotic system equipped with same
DE102021204846A1 (en) Method of controlling a robotic device
DE102020200165B4 (en) Robot controller and method for controlling a robot
DE102021109333B4 (en) Device and method for training a neural network for controlling a robot for an insertion task
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
DE102022202143B4 (en) Device and method for controlling a robot to perform a task
DE102022202145A1 (en) Robot and method for controlling a robot
DE102022202142B3 (en) Device and method for training a machine learning model for deriving a motion vector for a robot from image data
DE102022202144A1 (en) Apparatus and method for controlling a robot to perform a task
DE102020214301A1 (en) DEVICE AND METHOD FOR CONTROLLING A ROBOT TO PICK AN OBJECT IN DIFFERENT POSITIONS
DE102021212859A1 (en) Device and method for training a machine learning model for generating descriptor images for images of objects
DE102021109336B4 (en) Device and method for training a neural network for controlling a robot for an insertion task
DE102021201880A1 (en) Device and method for determining the pose of an object
DE102021211185B4 (en) Device and method for controlling a robot

Legal Events

Date Code Title Description
R163 Identified publications notified