DE102022202145A1 - Robot and method for controlling a robot - Google Patents
Robot and method for controlling a robot Download PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39271—Ann artificial neural network, ffw-nn, feedforward neural network
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39397—Map image error directly to robot movement, position with relation to world, base not needed, image based visual servoing
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40032—Peg and hole insertion, mating and joining, remote center compliance
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40532—Ann for vision processing
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40584—Camera, non-contact sensor mounted on wrist, indep from gripper
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40609—Camera to monitor end effector as well as object to be handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/06—Recognition 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.
-
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.
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
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
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
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
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
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,
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
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.
- 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 thearticle 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.
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
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
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
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
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 (
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
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
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
- Δ 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
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
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
Das Codierernetz 301 ist z. B. ein neuronales Faltungsnetz, das z. B. eine Res-Net18-Architektur aufweist.The
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:
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
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
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
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
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
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
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
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
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
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äß
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
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
Der Algorithmus 2 gibt ein detailliertes Beispiel für diese Prozedur an. Algorithm 2 gives a detailed example of this procedure.
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
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
In dem Beispiel aus
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
Zusammenfassend wird gemäß diversen Ausführungsformen ein Verfahren bereitgestellt, wie in
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
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)
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)
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)
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 |
-
2022
- 2022-03-02 DE DE102022202145.2A patent/DE102022202145A1/en active Pending
-
2023
- 2023-02-14 WO PCT/EP2023/053646 patent/WO2023165807A1/en unknown
Patent Citations (10)
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 |