DE102023210548B3 - controlling a robot - Google Patents
controlling a robot Download PDFInfo
- Publication number
- DE102023210548B3 DE102023210548B3 DE102023210548.9A DE102023210548A DE102023210548B3 DE 102023210548 B3 DE102023210548 B3 DE 102023210548B3 DE 102023210548 A DE102023210548 A DE 102023210548A DE 102023210548 B3 DE102023210548 B3 DE 102023210548B3
- Authority
- DE
- Germany
- Prior art keywords
- robot
- movement
- target
- determined
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 194
- 238000012545 processing Methods 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000010801 machine learning Methods 0.000 claims abstract description 26
- 238000004590 computer program Methods 0.000 claims abstract description 10
- 238000012549 training Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 18
- 230000007613 environmental effect Effects 0.000 claims description 14
- 230000003190 augmentative effect Effects 0.000 claims description 2
- 238000011161 development Methods 0.000 description 15
- 230000018109 developmental process Effects 0.000 description 15
- 238000012913 prioritisation Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000009616 inductively coupled plasma Methods 0.000 description 3
- 230000002787 reinforcement Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 235000010384 tocopherol Nutrition 0.000 description 3
- 235000019731 tricalcium phosphate Nutrition 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000036962 time dependent Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001136792 Alle Species 0.000 description 1
- 101100480812 Mus musculus Tcp11 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- 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/40362—Elbow high or low, avoid obstacle collision with redundancy control
-
- 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/40367—Redundant manipulator
-
- 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/40369—Generate all possible arm postures associated with end effector position
-
- 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/40391—Human to robot skill transfer
-
- 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/40496—Hierarchical, learning, recognition level controls adaptation, servo level
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zum Steuern eines Roboters, aufweisend die Schritte: Bereitstellen (S10) einer ersten wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung zur Ermittlung einer Soll-Bewegung einer ersten roboterfesten Referenz; Bereitstellen (S10) einer zweiten wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung zur Ermittlung einer Soll-Bewegung einer zweiten roboterfesten Referenz; Ermitteln (S20) einer Soll-Achs-Bewegung des Roboters basierend auf einer mittels der ersten Datenverarbeitung ermittelten Soll-Bewegung der ersten Referenz und einer mittels der zweiten Datenverarbeitung ermittelten Soll-Bewegung der zweiten Referenz, wobei bei diesem Ermitteln der Soll-Achs-Bewegung die ermittelte Soll-Bewegung der ersten Referenz gegenüber der ermittelten Soll-Bewegung der zweiten Referenz priorisiert wird; und Steuern (S30) des Roboters auf Basis der ermittelten Soll-Achs-Bewegung. Die Erfindung betrifft außerdem ein System bzw. Computerprogramm(produkt). The invention relates to a method for controlling a robot, comprising the steps: providing (S10) a first data processing based at least partially on machine learning for determining a target movement of a first robot-fixed reference; providing (S10) a second data processing based at least partially on machine learning for determining a target movement of a second robot-fixed reference; determining (S20) a target axis movement of the robot based on a target movement of the first reference determined by means of the first data processing and a target movement of the second reference determined by means of the second data processing, wherein in this determination of the target axis movement the determined target movement of the first reference is prioritized over the determined target movement of the second reference; and controlling (S30) the robot on the basis of the determined target axis movement. The invention also relates to a system or computer program (product).
Description
Die vorliegende Erfindung betrifft ein Verfahren und ein System zum Steuern eines Roboters sowie ein Computerprogramm bzw. Computerprogrammprodukt zur Durchführung des Verfahrens.The present invention relates to a method and a system for controlling a robot as well as a computer program or computer program product for carrying out the method.
Die
Die
Die
Die
Die
Die
Aufgabe der vorliegenden Erfindung ist es, das Steuern eines Roboters zu verbessern.The object of the present invention is to improve the control of a robot.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 8, 9 stellen ein System bzw. Computerprogramm bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.This object is achieved by a method having the features of claim 1. Claims 8, 9 protect a system or computer program or computer program product for carrying out a method described here. The subclaims relate to advantageous further developments.
Nach einer Ausführung der vorliegenden Erfindung weist ein Roboter wenigstens einen Roboterarm und/oder zwei oder mehr Roboterbeine und/oder eine verfahrbare Basis auf, er kann insbesondere hieraus bestehen und/oder ein mobiler und/oder humanoider Roboter sein. In einer Ausführung weist der Roboter, in einer Weiterbildung sein Roboterarm und/oder seine verfahrbare Basis, insbesondere jeweils oder zusammen, wenigstens drei, vorzugsweise wenigstens sechs, in einer Weiterbildung wenigstens sieben, Bewegungsachsen bzw. Bewegungsfreiheitsgrade bzw. Gelenke auf, die vorliegend als Achsen des Roboters bezeichnet werden. In einer Ausführung sind eine oder mehrere dieser Achsen rotatorische Bewegungsachsen bzw. -freiheitsgrade bzw. Drehgelenke und/oder eine oder mehrere dieser Achsen translatorische Bewegungsachsen bzw. -freiheitsgrade bzw. Lineargelenke. Die verfahrbare Basis kann insbesondere durch eine Kulisse, insbesondere eine oder mehrere Schiene(n), geführt und so entlang einer oder mehrerer Achsen verfahrbar sein, die dann entsprechende (translatorische Bewegungs)Achsen des Roboters bzw. seiner Basis darstellen. Gleichermaßen kann die Basis auf frei bzw. ungebunden verfahrbar sein, wobei dann horizontale Bewegungen und eine Rotation um eine vertikale Gierachse entsprechende (Bewegungs)Achsen des Roboters bzw. seiner Basis darstellen. In einer Ausführung werden eine oder mehrere der Achsen des Roboters durch Antriebe, vorzugsweise elektromotorische Antriebe, des Roboters bewegt bzw. verstellt. Eine Bewegung des Roboters in einer oder mehreren seiner Achsen bzw. eine Verstellung einer oder mehreren der Achsen des Roboters bzw. eine Bewegung des Roboters durch bzw. infolge einer Verstellung (in) einer oder mehreren seiner Achsen wird vorliegend als Achs-Bewegung des Roboters bezeichnet und in üblicher Weise mit dq/dt bezeichnet (q ∈ ℜf mit der Anzahl f der Achsen des Roboters). Entsprechend ist eine Achs-Bewegung des Roboters im Sinne der vorliegenden Erfindung insbesondere eine Veränderung seiner Achs- bzw. Gelenkkoordinaten.According to one embodiment of the present invention, a robot has at least one robot arm and/or two or more robot legs and/or a movable base; it can in particular consist of these and/or be a mobile and/or humanoid robot. In one embodiment, the robot, in a further development its robot arm and/or its movable base, in particular each or together, has at least three, preferably at least six, in a further development at least seven, axes of movement or degrees of freedom of movement or joints, which are referred to here as axes of the robot. In one embodiment, one or more of these axes are rotational axes of movement or degrees of freedom or rotary joints and/or one or more of these axes are translational axes of movement or degrees of freedom or linear joints. The movable base can in particular be guided by a guide, in particular one or more rails, and thus be movable along one or more axes, which then represent corresponding (translational movement) axes of the robot or its base. Likewise, the base can be freely or unboundly movable, in which case horizontal movements and a rotation about a vertical yaw axis represent corresponding (movement) axes of the robot or its base. In one embodiment, one or more of the axes of the robot are moved or adjusted by drives, preferably electric motor drives, of the robot. A movement of the robot in one or more of its axes or an adjustment of one or more of the axes of the robot or a movement of the robot through or as a result of an adjustment (in) one or more of its axes is referred to here as the axis movement of the robot and is usually referred to as dq/dt (q ∈ ℜ f with the number f of axes of the robot). Accordingly, an axis movement of the robot in the sense of the present invention is in particular a change in its axis or joint coordinates.
Nach einer Ausführung der vorliegenden Erfindung weist ein Verfahren zum Steuern des Roboters die Schritte auf:
- - Bereitstellen einer ersten wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung zur Ermittlung einer Soll-Bewegung einer ersten roboterfesten Referenz, in einer Ausführung dx1/dt (mit x1 ∈ ℜn1; n1 ∈ {1, 2, ...,6});
- - Bereitstellen einer zweiten wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung zur Ermittlung einer Soll-Bewegung einer zweiten roboterfesten Referenz, in einer Ausführung dx2/dt (mit x2 ∈ ℜn2; n2 ∈ {1, 2, ...,6});
- - Ermitteln einer Soll-Achs-Bewegung des Roboters basierend auf einer mittels der ersten Datenverarbeitung ermittelten Soll-Bewegung der ersten Referenz und einer mittels der zweiten Datenverarbeitung ermittelten Soll-Bewegung der zweiten Referenz, in einer Ausführung dqs/dt = dqs/dt(dx1/dt, dx2/dt); wobei bei diesem Ermitteln der Soll-Achs-Bewegung die ermittelte Soll-Bewegung der ersten Referenz gegenüber der ermittelten Soll-Bewegung der zweiten Referenz (höher) priorisiert wird; und
- - Steuern des Roboters auf Basis der (solcherart) ermittelten Soll-Achs-Bewegung.
- - Providing a first data processing based at least partially on machine learning for determining a target movement of a first robot-fixed reference, in an embodiment dx 1 /dt (with x 1 ∈ ℜ n1 ; n1 ∈ {1, 2, ...,6});
- - Providing a second data processing based at least partially on machine learning for determining a target movement of a second robot-fixed reference, in an embodiment dx 2 /dt (with x 2 ∈ ℜ n2 ; n2 ∈ {1, 2, ...,6});
- - Determining a target axis movement of the robot based on a target movement of the first reference determined by means of the first data processing and a target movement of the second reference determined by means of the second data processing, in one embodiment dq s /dt = dq s /dt(dx 1 /dt, dx 2 /dt); wherein in this determination of the target axis movement, the determined target movement of the first reference is given (higher) priority over the determined target movement of the second reference; and
- - Controlling the robot based on the (thus) determined target axis movement.
Durch die Ermittlung von Soll-Bewegungen roboterfester Referenzen mittels wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitungen können gewünschte Soll-Bewegungen sehr einfach, rasch, präzise und/oder zuverlässig vorgegeben werden, insbesondere auch durch unerfahrene(re) Benutzer. Durch die Aufteilung in bzw. Vorgabe einzelner Soll-Bewegungen von wenigstens zwei roboterfeste(n) Referenzen in Kombination mit einer (Höher)Priorisierung einer dieser Soll-Bewegungen gegenüber der bzw. den anderen Soll-Bewegungen können vorteilhaft Redundanzen genutzt bzw. aufgelöst und/oder maschinelles Lernen besonders vorteilhaft verwendet, insbesondere die Soll-Achs-Bewegung besonders effizient und/oder zuverlässig ermittelt werden.By determining target movements of robot-fixed references using data processing based at least partially on machine learning, desired target movements can be specified very easily, quickly, precisely and/or reliably, especially by less experienced users. By dividing into or specifying individual target movements of at least two robot-fixed references in combination with a (higher) prioritization of one of these target movements compared to the other target movements, redundancies can be advantageously used or resolved and/or machine learning can be used particularly advantageously, in particular the target axis movement can be determined particularly efficiently and/or reliably.
In einer Ausführung weist das Verfahren den bzw. zwei oder mehr der Schritt(e) auf:
- - Bereitstellen (je) einer weiteren wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung zur Ermittlung einer Soll-Bewegung (je) einer weiteren roboterfesten Referenz, in einer Ausführung dxi/dt (mit xi ∈ ℜni; ni ∈ {1, 2, ...,6});
wobei bei diesem Ermitteln der Soll-Achs-Bewegung die ermittelten Soll-Bewegungen der ersten und zweiten Referenz gegenüber dieser ermittelten Soll-Bewegung dieser wenigstens einen weiteren Referenz (höher) priorisiert werden, in einer Ausführung bei ermittelten Soll-Bewegungen von zwei oder mehr weiteren Referenzen die Soll-Bewegungen der ersten und zweiten Referenz gegenüber diesen ermittelten Soll-Bewegungen dieser weiteren Referenzen (höher) priorisiert werden und zusätzlich für eine vorgegebene, in einer Weiterbildung feste oder variierende, Reihen- bzw. Rangfolge der weiteren Referenzen die ermittelte Soll-Bewegung der jeweils ranghöchsten bzw. in der Reihenfolge vordersten bzw. obersten weiteren Referenz gegenüber den ermittelten Soll-Bewegung der restlichen weiteren Referenzen (höher) priorisiert wird.In one embodiment, the method comprises the step(s) or two or more of:
- - Providing (each) a further data processing based at least partially on machine learning for determining a target movement (each) of a further robot-fixed reference, in an embodiment dx i /dt (with x i ∈ ℜ ni ; ni ∈ {1, 2, ...,6});
wherein, in this determination of the target axis movement, the determined target movements of the first and second reference are given (higher) priority over this determined target movement of this at least one further reference, in one embodiment, when target movements of two or more further references are determined, the target movements of the first and second reference are given (higher) priority over these determined target movements of these further references, and additionally, for a predetermined, in a further development fixed or varying, sequence or ranking of the further references, the determined target movement of the respective highest-ranking or foremost or uppermost further reference is given (higher) priority over the determined target movements of the remaining further references.
Durch die Aufteilung in bzw. Vorgabe einzelner Soll-Bewegungen von mehr als zwei roboterfeste(n) Referenzen in Kombination mit einer entsprechenden, insbesondere hierarchischen oder gewichteten, Priorisierung dieser Soll-Bewegungen können besonders vorteilhaft Redundanzen genutzt bzw. aufgelöst und/oder maschinelles Lernen besonders vorteilhaft verwendet, insbesondere die Soll-Achs-Bewegung besonders effizient und/oder zuverlässig ermittelt werden.By dividing into or specifying individual target movements of more than two robot-fixed references in combination with a corresponding, in particular hierarchical or weighted, prioritization of these target movements, redundancies can be used or resolved particularly advantageously and/or machine learning can be used particularly advantageously, in particular the target axis movement can be determined particularly efficiently and/or reliably.
Die erste roboterfeste Referenz ist in einer bevorzugten Ausführung eine roboterendflanschfeste Referenz, vorzugsweise ein Tool Center Point (TCP) des Roboters. Dadurch können mit dem Roboter gewünschte TCP-Bewegungen besonders vorteilhaft ausgeführt werden. Die zweite roboterfeste Referenz kann beispielsweise eine ellbogenfeste Referenz eines Roboterarms, eine basisfeste Referenz einer verfahrbare Basis des Roboters oder dergleichen sein. Eine ermittelte Soll-Bewegung einer oder mehrerer der Referenzen, vorzugsweise der ersten und/oder der zweiten und/oder der bzw. einer oder mehrerer der weiteren Referenz(en), beschreibt bzw. gibt in einer Ausführung (jeweils) eine ein-, zwei- oder dreidimensionale translatorische Bewegung bzw., insbesondere zeitliche, Änderung einer ein-, zwei- oder dreidimensionalen Position und/oder eine ein-, zwei- oder dreidimensionale rotatorische Bewegung bzw., insbesondere zeitliche, Änderung einer ein-, zwei- oder dreidimensionalen Orientierung der (jeweiligen) Referenz (an), vorzugsweise im kartesischen bzw. Anschauungs- bzw. Arbeitsraum des Roboters. Dadurch können besonders vorteilhaft Redundanzen genutzt bzw. aufgelöst und/oder maschinelles Lernen besonders vorteilhaft verwendet, insbesondere die Soll-Achs-Bewegung besonders effizient und/oder zuverlässig ermittelt werden. Wird eine Soll-Bewegung einer Referenz k in fachüblicher Weise mit dxk/dt bezeichnet, so wird entsprechend nach einer Ausführung der vorliegenden Erfindung eine Soll-Achs-Bewegung dqs/dt des Roboters basierend auf mittels den Datenverarbeitungen ermittelten Soll-Bewegungen der Referenzen dxk/dt, k = 1, 2(, 3, ...) ermittelt (dqs/dt = dqs/dt(dx1/dt, dx2/dt(, dx3/dt(, ...))), wobei diese Soll-Bewegungen der Referenzen jeweils mittels einer der Datenverarbeitungen ermittelt und in vorgegebener Reihen- bzw. Rangfolge gegenüber der bzw. den jeweils rangniedrigeren bzw. in der Reihenfolge nachfolgenden Referenz(en) (höher) priorisiert werden.In a preferred embodiment, the first robot-fixed reference is a reference fixed to the robot end flange, preferably a tool center point (TCP) of the robot. This allows the robot to carry out desired TCP movements particularly advantageously. The second robot-fixed reference can, for example, be an elbow-fixed reference of a robot arm, a base-fixed reference of a movable base of the robot or the like. A determined target movement of one or more of the references, preferably the first and/or the second and/or the one or more of the further reference(s), describes or specifies in one embodiment (each) a one-, two- or three-dimensional translational movement or, in particular, a temporal change in a one-, two- or three-dimensional position and/or a one-, two- or three-dimensional rotational movement or, in particular, a temporal change in a one-, two- or three-dimensional orientation of the (respective) reference, preferably in the Cartesian or visual or work space of the robot. As a result, redundancies can be used or resolved particularly advantageously and/or machine learning can be used particularly advantageously, in particular the target axis movement can be determined particularly efficiently and/or reliably. If a target movement of a reference k is referred to as dx k /dt in the usual way, then according to an embodiment of the present invention a target axis movement dq s /dt of the robot is determined based on the target movements of the references dx k /dt, k = 1, 2(, 3, ...) determined by means of the data processing (dq s /dt = dq s /dt(dx 1 /dt, dx 2 /dt(, dx 3 /dt(, ...))), whereby these target movements of the references are each determined by means of one of the data processing operations and are given (higher) priority in a predetermined sequence or ranking compared to the lower-ranking or subsequent reference(s).
In einer Ausführung beschreibt bzw. gibt eine ermittelte Soll-Bewegung einer Referenz, gegenüber der die ermittelte(n) Soll-Bewegung der anderen Referenz(en) (höher) priorisiert werden, eine, insbesondere zeitliche, Änderung der Achs- bzw. Gelenkkoordinaten des Roboters (an) (dqlast/dt). Dadurch können insbesondere gewünschte Zielkonfigurationen soweit möglich angefahren werden. In einer Weiterbildung ermittelt dann die entsprechende der Datenverarbeitungen diese Soll-Bewegung auf Basis der aktuellen Achs- bzw. Gelenkkoordinaten und/oder eines aktuellen Wertes wenigstens eines Bahnparameters und/oder eines aktuellen Wertes wenigstens eines Umweltparameters und/oder eines aktuellen Wertes wenigstens eines Prozessparameters. Zur kompakte(re)n Darstellung dieser Ausführung, in der auch eine nachrangigste Soll-Bewegung direkt im Achs- bzw. Gelenkkoordinatenraum definiert bzw. durch die entsprechende Datenverarbeitung ermittelt wird, wird somit auch der Roboter als Ganzes bzw. die Gesamtheit seiner Achsen verallgemeinernd als eine roboterfesten Referenz im Sinne der vorliegenden Erfindung bezeichnet, wobei vorzugsweise eine oder mehrere der hier genannten roboterfesten Referenzen, in einer Ausführung wenigstens die erste und in einer Weiterbildung auch die zweite roboterfeste Referenz und/oder die bzw. eine oder mehrere der weiteren roboterfesten Referenz(en), (jeweils) eine bezüglich eines bestimmten Glieds des Roboters ortsfeste Referenz, insbesondere ein (Bezugs)Punkt, ein Koordinatensystem oder dergleichen, umfasst, vorzugsweise ist.In one embodiment, a determined target movement of a reference, compared to which the determined target movement(s) of the other reference(s) are (higher) prioritized, describes or indicates a change, in particular a temporal change, in the axis or joint coordinates of the robot (dq last /dt). This makes it possible to approach desired target configurations as far as possible. In a further development, the corresponding data processing then determines this target movement on the basis of the current axis or joint coordinates and/or a current value of at least one path parameter and/or a current value of at least one environmental parameter and/or a current value of at least one process parameter. For a more compact representation of this embodiment, in which even a most subordinate target movement is defined directly in the axis or joint coordinate space or determined by the corresponding data processing, the robot as a whole or the entirety of its axes is generally referred to as a robot-fixed reference in the sense of the present invention, wherein preferably one or more of the robot-fixed references mentioned here, in one embodiment at least the first and in a further development also the second robot-fixed reference and/or the or one or more of the further robot-fixed reference(s), (each) comprises a reference that is fixed in place with respect to a specific member of the robot, in particular a (reference) point, a coordinate system or the like, is preferably.
In einer Ausführung ermittelt wenigstens eine der Datenverarbeitungen die Soll-Bewegung der entsprechenden Referenz, insbesondere also die erste Datenverarbeitung die Soll-Bewegung der ersten Referenz und/oder die zweite Datenverarbeitung die Soll-Bewegung der zweiten Referenz und/oder die (jeweilige) weitere Datenverarbeitung die Soll-Bewegung der (jeweiligen) weiteren Referenz, (jeweils)
- - auf Basis einer aktuellen Pose dieser Referenz, insbesondere also die erste Datenverarbeitung die Soll-Bewegung der ersten Referenz auf Basis einer aktuellen Pose der ersten Referenz und/oder die zweite Datenverarbeitung die Soll-Bewegung der zweiten Referenz auf Basis einer aktuellen Pose der zweiten Referenz und/oder die (jeweilige) weitere Datenverarbeitung die Soll-Bewegung der (jeweiligen) weiteren Referenz auf Basis einer aktuellen Pose der (jeweiligen) weiteren Referenz; und/oder
- - auf Basis eines aktuellen Wertes wenigstens eines Bahnparameters; und/oder
- - auf Basis eines aktuellen Wertes wenigstens eines Umweltparameters; und/oder
- - auf Basis eines aktuellen Wertes wenigstens eines Prozessparameters, wobei in einer Weiterbildung dieser bzw. wenigstens einer dieser Bahnparameter (jeweils) eine Prozesszeit, insbesondere einen (aktuellen) Zeitstempel, und/oder abgefahrene Strecke umfasst und/oder dieser bzw. wenigstens einer dieser Umweltparameter (jeweils) von einer, insbesondere ein-, zwei- oder mehrdimensionalen und/oder variablen, Pose eines oder mehrerer Hindernisse(s), insbesondere relativ zum Roboter, abhängt, diese Pose insbesondere angeben kann und/oder dieser bzw. wenigstens einer dieser Prozessparameter (jeweils) von einem Zustand eines mithilfe des Roboters durchgeführten Prozesses abhängt, diesen Zustand insbesondere angeben kann. In einer Ausführung wird der Wert des bzw. wenigstens eines der Umweltparameter(s) und/oder der Wert des bzw. wenigstens eines der Prozessparameter(s) sensorisch erfasst, vorzugsweise mithilfe wenigstens einer Kamera und/oder wenigstens eines Ultraschallsensors und/oder wenigstens eines Radarsensors und/oder wenigstens eines Lidarsensors und/oder wenigstens eines Kraft- und/oder Momentensensors oder dergleichen. Eine Pose im Sinne der vorliegenden Erfindung umfasst in einer Ausführung eine ein-, zwei- oder dreidimensionalen Position und/oder eine ein-, zwei- oder dreidimensionale Orientierung, vorzugsweise im kartesischen bzw. Anschauungs- bzw. Arbeitsraum des Roboters. Bezeichnet τ einen (aktuellen Wert eines) Bahnparameter(s), insbesondere eine Prozesszeit und/oder abgefahrene Strecke, und y einen (aktuellen Wert eines) Umweltparameter(s) und/oder Prozessparameter(s), insbesondere eine Pose eines oder mehrerer Hindernisse(s), so wird in einer Ausführung mittels der wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung i die Soll-Bewegung der jeweiligen Referenz i entsprechend gemäß dxi/dt = fi(xi, τ, y) oder dxi/dt = fi(xi, τ) oder dxi/dt = fi(xi, y) oder dxi/dt = fi(xi) oder dxi/dt = fi(τ, y) oder dxi/dt = fi(τ) oder dxi/dt = fi(y) ermittelt. Natürlich kann die Soll-Bewegung einer oder mehrerer der Referenzen auch noch von weiteren Parametern abhängen. Dabei können zwei oder mehr der Datenverarbeitungen jeweils alle auf Basis des (aktuellen Werts des)selben Bahnparameters und/oder des (aktuellen Werts des)selben Umwelt- bzw. Prozessparameters ermitteln und/oder verschiedene Datenverarbeitungen verschiedene Arten von Eingangsparametern verwenden. So kann es, rein exemplarisch, vorteilhaft sein, eine Pose eines Hindernisses bei der Ermittlung der Soll-Bewegung(en) der zweiten und gegebenenfalls weiteren Referenz(en) zu berücksichtigen, nicht aber bei der Ermittlung der Soll-Bewegung der ersten Referenz, so dass ein Ausweichen gegenüber diesem Hindernis nur durch Soll-Bewegung der entsprechenden Referenz(en) realisiert wird, während die Ermittlung der Soll-Bewegung der ersten Referenz rasch(er) und/oder einfach(er) durchgeführt werden kann. In einer Ausführung umfasst das Verfahren ein Ermitteln einer aktuellen Pose der jeweiligen Referenz und/oder eines aktuellen Wertes des (jeweiligen) Bahnparameters und/oder eines aktuellen Wertes des (jeweiligen) Umwelt- bzw. Prozessparameters, insbesondere mittels eines oder mehrerer roboterseitigen und/oder eines oder mehrerer vom Roboter beabstandeten bzw. umgebungsseitigen Sensoren.
- - based on a current pose of this reference, in particular the first data processing the target movement of the first reference based on a current pose of the first reference and/or the second data processing the target movement of the second reference based on a current pose of the second reference and/or the (respective) further data processing the target movement of the (respective) further reference based on a current pose of the (respective) further reference; and/or
- - based on a current value of at least one orbit parameter; and/or
- - based on a current value of at least one environmental parameter; and/or
- - based on a current value of at least one process parameter, wherein in a further development this or at least one of these path parameters (each) comprises a process time, in particular a (current) time stamp, and/or distance traveled and/or this or at least one of these environmental parameters (each) depends on a pose of one or more obstacles, in particular relative to the robot, in particular one-, two- or multi-dimensional and/or variable, and/or can indicate this pose and/or this or at least one of these process parameters (each) depends on a state of a process carried out with the aid of the robot, in particular can indicate this state. In one embodiment, the value of the or at least one of the environmental parameters and/or the value of the or at least one of the process parameters is recorded by sensors, preferably with the aid of at least one camera and/or at least one ultrasonic sensor and/or at least one radar sensor and/or at least one lidar sensor and/or at least one force and/or torque sensor or the like. A pose in the sense of the present invention comprises, in one embodiment, a one-, two- or three-dimensional position and/or a one-, two- or three-dimensional orientation, preferably in the Cartesian or visual or working space of the robot. If τ denotes a (current value of a) path parameter(s), in particular a process time and/or distance traveled, and y denotes a (current value of an) environmental parameter(s) and/or process parameter(s), in particular a pose of one or more obstacles, then in one embodiment the target movement of the respective reference i is determined by means of the data processing i based at least partially on machine learning according to dx i /dt = f i (x i , τ, y) or dx i /dt = f i (x i , τ) or dx i /dt = f i (x i , y) or dx i /dt = f i (x i ) or dx i /dt = f i (τ, y) or dx i /dt = f i (τ) or dx i /dt = f i (y). Of course, the target movement of one or more of the references can also depend on further parameters. In this case, two or more of the data processing operations can all be determined on the basis of the (current value of) the same path parameter and/or the (current value of) the same environmental or process parameter and/or different data processing operations can use different types of input parameters. For example, it can be advantageous to take a pose of an obstacle into account when determining the target movement(s) of the second and possibly further reference(s), but not when determining the target movement of the first reference, so that avoiding this obstacle is only achieved by the target movement of the corresponding reference(s), while determining the target movement of the first reference can be carried out more quickly and/or more easily. In one embodiment, the method comprises determining a current pose of the respective reference and/or a current value of the (respective) path parameter and/or a current value of the (respective) environmental or process parameter, in particular by means of one or more robot-side sensors and/or one or more sensors spaced apart from the robot or on the environment.
In einer Ausführung werden eine oder mehrere der (höher) priorisierten ermittelten Soll-Bewegungen von roboterfesten Referenzen gegenüber einer oder mehreren anderen der ermittelten Soll-Bewegungen von roboterfesten Referenzen (jeweils) mittels einer Projektion der (jeweiligen) anderen Soll-Bewegung(en) in einen Nullraum der (jeweiligen) einen, (höher) priorisierten Soll-Bewegung priorisiert, in einer Ausführung in der Form
Gelenkkoordinatenraum ist, kann die entsprechende Jacobimatrix bzw. Pseudoinverse die Einheitsmatrix sein.joint coordinate space, the corresponding Jacobian matrix or pseudoinverse can be the identity matrix.
In einer Ausführung erfolgt die bzw. eine oder mehrere der Priorisierungen über eine Gewichtung, beispielsweise in der Form:
Die Priorisierungs-Gewichte w1, w2, ... können konstant sein oder auch über die Zeit hinweg variiert werden. Sofern die nachrangigste Soll-Bewegung eine Soll-Bewegung im Achs- bzw. Gelenkkoordinatenraum ist, kann die entsprechende Jacobimatrix bzw. Pseudoinverse die Einheitsmatrix sein (...+ wast·dqlast/dt).The prioritization weights w 1 , w 2 , ... can be constant or can also be varied over time. If the most subordinate target movement is a target movement in the axis or joint coordinate space, the corresponding Jacobian matrix or pseudoinverse can be the identity matrix (...+ w ast· dq last /dt).
In einer Ausführung werden eine oder mehrere der (höher) priorisierten ermittelten Soll-Bewegungen von roboterfesten Referenzen gegenüber einer oder mehreren anderen der ermittelten Soll-Bewegungen von roboterfesten Referenzen (jeweils) mittels einer Kaskade von Quadratischen Programmen priorisiert, in einer Weiterbildung unter Berücksichtigung von Bewegungsrestriktionen, insbesondere Hardware-Limits und/oder virtuellen Limits, insbesondere für Safety-Räume oder dergleichen.In one embodiment, one or more of the (higher) prioritized determined target movements of robot-fixed references are prioritized over one or more other of the determined target movements of robot-fixed references (each) by means of a cascade of quadratic programs, in a further development taking into account movement restrictions, in particular hardware limits and/or virtual limits, in particular for safety spaces or the like.
In einer Ausführung werden eine oder mehrere der (höher) priorisierten ermittelten Soll-Bewegungen von roboterfesten Referenzen gegenüber einer oder mehreren anderen der ermittelten Soll-Bewegungen von roboterfesten Referenzen (jeweils) mittels eines Saturation-in-the-Nullspace-Algorithmus („SNS-Agorithmus“) priorisiert, in einer Weiterbildung unter Berücksichtigung von Bewegungsrestriktionen, insbesondere Hardware-Limits und/oder virtuellen Limits, insbesondere für Safety-Räume oder dergleichen.In one embodiment, one or more of the (higher) prioritized determined target movements of robot-fixed references are prioritized over one or more other of the determined target movements of robot-fixed references (each) by means of a saturation-in-the-nullspace algorithm (“SNS algorithm”), in a further development taking into account movement restrictions, in particular hardware limits and/or virtual limits, in particular for safety spaces or the like.
Durch die vorgenannten Priorisierungen kann die Soll-Achs-Bewegung jeweils besonders vorteilhaft, insbesondere einfach, rasch und/oder robust, ermittelt werden, ohne dass die vorliegende Erfindung hierauf beschränkt ist.By means of the aforementioned prioritizations, the target axis movement can be determined in a particularly advantageous manner, in particular simply, quickly and/or robustly, without the present invention being limited thereto.
In einer Ausführung umfasst das Bereitstellen der wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitungen ein Trainieren der Datenverarbeitungen, in einer Weiterbildung ein Demonstrieren von Trainings-Bewegungen des Roboters durch einen menschlichen Benutzer und ein maschinelles Lernen auf Basis dieser Trainings-Bewegungen des Roboters, insbesondere ein maschinelles Lernen eines Ermittelns einer Soll-Bewegung der jeweiligen Referenz und/oder ein Trainieren der jeweiligen Datenverarbeitung auf Basis dieser Trainings-Bewegungen des Roboters.In one embodiment, the provision of the data processing based at least partially on machine learning comprises training the data processing, in a further development a demonstration of training movements of the robot by a human user and machine learning based on these training movements of the robot, in particular machine learning of determining a target movement of the respective reference and/or training the respective data processing based on these training movements of the robot.
In einer Weiterbildung umfasst das Demonstrieren von Trainings-Bewegungen des Roboters durch einen menschlichen Benutzer ein Ausüben von Kräften auf den nachgiebig gesteuerten Roboter durch den Benutzer („Handführen“) und/oder ein Bewegen eines getrackten Demonstrators durch den Benutzer und/oder ein Fernsteuern des Roboters durch den Benutzer. Zusätzlich oder alternativ wird in einer Weiterbildung das Demonstrieren mithilfe einer Virtual-Reality-Applikation oder Augmented-Reality-Applikation durchgeführt.In a further training, the demonstration of training movements of the robot by a human user includes the user exerting forces on the compliantly controlled robot ("hand guiding") and/or the user moving a tracked demonstrator and/or the user remotely controlling the robot. Additionally or alternatively, in a further training, the demonstration is carried out using a virtual reality application or augmented reality application.
Dadurch können Trainings-Bewegungen des Roboters sehr einfach, rasch, präzise und/oder zuverlässig vorgegeben werden, insbesondere auch durch unerfahrene(re) Benutzer.This allows the robot's training movements to be specified very easily, quickly, precisely and/or reliably, especially by inexperienced users.
In einer Ausführung werden bei dem Demonstrieren von Trainings-Bewegungen des Roboters
- - aktuelle Werte von einem oder mehreren Eingangsparametern der (jeweiligen) Datenverarbeitung(en), beispielsweise aktuellen Posen einer oder mehrerer der Referenzen und/oder aktuelle Werte wenigstens eines Bahnparameters und/oder aktuelle Werte wenigstens eines Umweltparameters und/oder aktuelle Werte wenigstens eines Prozessparameters; und
- - aktuelle Bewegungen der (jeweiligen) roboterfesten Referenz(en) ermittelt und ein Ermitteln der (jeweiligen) Soll-Bewegung(en) der (jeweiligen) roboterfesten Referenz(en) mittels der (jeweiligen) Datenverarbeitung(en) derart maschinell gelernt, dass diese Eingangsparameter möglichst gut auf diese Bewegungen der (jeweiligen) roboterfesten Referenz(en) abgebildet werden. Beim Demonstrieren von Trainings-Bewegungen werden in einer Ausführung zunächst Daten im Achs- bzw. Gelenkkoordinatenraum erfasst und mittels Vorwärtskinematik in den Arbeitsraum bzw. einen oder mehrere Task-Space(s) projiziert.
- - current values of one or more input parameters of the (respective) data processing(s), for example current poses of one or more of the references and/or current values of at least one trajectory parameter and/or current values of at least one environmental parameter and/or current values of at least one process parameter; and
- - current movements of the (respective) robot-fixed reference(s) are determined and the (respective) target movement(s) of the (respective) robot-fixed reference(s) are determined by machine learning using the (respective) data processing(s) in such a way that these input parameters are mapped as well as possible to these movements of the (respective) robot-fixed reference(s). When demonstrating training movements, in one embodiment, data is first collected in the axis or joint coordinates space and projected into the workspace or one or more task spaces using forward kinematics.
In einer Ausführung entscheidet ein Algorithmus automatisch oder ein Benutzer, vorzugsweise mittels Eingabe, wieviele und/oder welche Soll-Bewegungen bzw. roboterfeste Referenzen bzw. Task-spaces mit welcher Priorisierung relevant sind bzw. verwendet werden.In one embodiment, an algorithm automatically or a user, preferably by means of input, decides how many and/or which target movements or robot-fixed references or task spaces with which prioritization are relevant or are to be used.
Zusätzlich oder alternativ umfasst in einer Ausführung das Bereitstellen der wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitungen insbesondere ein Trainieren der Datenverarbeitungen, ein Vorgeben von Trainings-Bewegungen des Roboters durch einen automatischen Bewegungsplaner, in einer Weiterbildung Bahnplaner, und ein maschinelles Lernen auf Basis dieser Trainings-Bewegungen des Roboters.Additionally or alternatively, in one embodiment, the provision of the data processing based at least partially on machine learning comprises in particular training the data processing, specifying training movements of the robot by an automatic motion planner, in a further development path planner, and machine learning based on these training movements of the robot.
Dadurch können besonders vorteilhafte Trainings-Bewegungen des Roboters vorgegeben werden.This makes it possible to specify particularly advantageous training movements for the robot.
In einer Ausführung werden für diese vorgegeben Trainings-Bewegungen des Roboters
- - Werte von einem oder mehreren Eingangsparametern der (jeweiligen) Datenverarbeitung(en), beispielsweise Posen einer oder mehrerer der Referenzen und/oder Werte wenigstens eines Bahnparameters und/oder Werte wenigstens eines Umweltparameters und/oder Werte wenigstens eines Prozessparameters; und
- - Bewegungen der (jeweiligen) roboterfesten Referenz(en) ermittelt und ein Ermitteln der (jeweiligen) Soll-Bewegung(en) der (jeweiligen) roboterfesten Referenz(en) mittels der (jeweiligen) Datenverarbeitung(en) derart maschinell gelernt, dass diese Eingangsparameter möglichst gut auf diese Bewegungen der (jeweiligen) roboterfesten Referenz(en) abgebildet werden.
- - values of one or more input parameters of the (respective) data processing(s), for example poses of one or more of the references and/or values of at least one trajectory parameter and/or values of at least one environmental parameter and/or values of at least one process parameter; and
- - Movements of the (respective) robot-fixed reference(s) are determined and a determination of the (respective) target movement(s) of the (respective) robot-fixed reference(s) is machine-learned by means of the (respective) data processing(s) in such a way that these input parameters are mapped as well as possible to these movements of the (respective) robot-fixed reference(s).
Somit werden in einer Ausführung eine oder mehrere der Abbildungen bzw. Modelle dxi/dt = fi(xi, τ, y) oder dxi/dt = fi(xi, τ) oder dxi/dt = fi(xi, y) oder dxi/dt = fi(xi) oder dxi/dt = fi(τ, y) oder dxi/dt = fi(τ) oder dxi/dt = fi(y) mittels Demonstrieren von Trainings-Bewegungen des Roboters durch einen menschlichen Benutzer und/oder ein Vorgeben von Trainings-Bewegungen des Roboters durch einen automatischen Bewegungsplaner maschinell gelernt.Thus, in one embodiment, one or more of the mappings or models dx i /dt = f i (x i , τ, y) or dx i /dt = f i (x i , τ) or dx i /dt = f i (x i , y) or dx i /dt = f i (x i ) or dx i /dt = f i (τ, y) or dx i /dt = f i (τ) or dx i /dt = f i (y) are machine learned by demonstrating training movements of the robot by a human user and/or specifying training movements of the robot by an automatic motion planner.
In einer Ausführung ist der Roboter bezüglich der mittels der ersten Datenverarbeitungen ermittelten Soll-Bewegung der ersten Referenz redundant bzw. können verschiedene Achs-Bewegungen des Roboters dieselbe Soll-Bewegung der ersten Referenz bewirken. Zusätzlich oder alternativ ist der Roboter in einer Ausführung bezüglich der mittels der zweiten Datenverarbeitungen ermittelten Soll-Bewegung der zweiten Referenz redundant bzw. können verschiedene Achs-Bewegungen des Roboters dieselbe Soll-Bewegung der zweiten Referenz bewirken. Zusätzlich oder alternativ ist der Roboter in einer Ausführung bezüglich der mittels der bzw. einer der weiteren Datenverarbeitungen ermittelten Soll-Bewegung der (jeweiligen) weiteren Referenz (jeweils) redundant bzw. können verschiedene Achs-Bewegungen des Roboters dieselbe Soll-Bewegung der (jeweiligen) weiteren Referenz bewirken. Solche Redundanzen können durch die erfindungsgemäße Priorisierung beim Ermitteln der Soll-Achs-Bewegung besonders vorteilhaft genutzt bzw. aufgelöst werden.In one embodiment, the robot is redundant with respect to the target movement of the first reference determined by means of the first data processing, or different axis movements of the robot can cause the same target movement of the first reference. In addition or alternatively, in one embodiment, the robot is redundant with respect to the target movement of the second reference determined by means of the second data processing, or different axis movements of the robot can cause the same target movement of the second reference. In addition or alternatively, in one embodiment, the robot is (respectively) redundant with respect to the target movement of the (respective) further reference determined by means of the or one of the further data processing, or different axis movements of the robot can cause the same target movement of the (respective) further reference. Such redundancies can be used or resolved particularly advantageously by the inventive prioritization when determining the target axis movement.
In einer Ausführung werden eine oder mehrere der hier genannten Priorisierungen durch einen Benutzer oder automatisch durch einen Algorithmus vorgegeben und/oder über die Zeit hinweg variiert, insbesondere also zeit-abhängigen Prioritäten durch den Benutzer oder automatisch durch einen Algorithmus festgelegt. Entsprechend weist das Verfahren in einer Ausführung den Schritt
- - Variieren der bzw. einer oder mehrerer der Priorisierungen (über die Zeit (hinweg) bzw. während des Steuerns des Roboters); und/oder
- - Vorgeben der bzw. einer oder mehrerer der Priorisierungen, in einer Weiterbildung der zeit-abhängigen Prioritäten;
- - Varying the prioritization or one or more of the prioritizations (over time or during control of the robot); and/or
- - Specifying one or more of the prioritizations in a further development of the time-dependent priorities;
In einer Ausführung ist das maschinelle Lernen einer oder mehrerer der Datenverarbeitung(en) derart beschränkt, dass das resultierende, vorzugsweise nicht-lineare, dynamische System im Task-Space dxu/dt = f(X) einen, vorzugsweise globalen oder lokalen, Attraktor X* aufweist, insbesondere derart, dass ausgehend von einem beliebigen Zustand X (bei globaler/-m Stabilität bzw. Attraktor) bzw. ausgehend von einem Zustand in lokaler Nähe von X* (bei lokaler/-m Stabilität bzw. Attraktor) das gelernte System immer garantiert zum Attraktor-Zustand X* konvergiert. Solche Beschränkungen zum Lernen eines stabilen Dynamischen Systems dxu/dt = f(X) können insbesondere auf der Lyapunov Stabilitäts-Theorie basieren.In one embodiment, the machine learning of one or more of the data processing operations is limited in such a way that the resulting, preferably non-linear, dynamic system in the task space dx u /dt = f(X) has a, preferably global or local, attractor X*, in particular in such a way that starting from an arbitrary state X (with global stability or attractor) or starting from a State in the local vicinity of X* (with local stability or attractor) the learned system is always guaranteed to converge to the attractor state X*. Such restrictions for learning a stable dynamic system dx u /dt = f(X) can be based in particular on the Lyapunov stability theory.
Nach einer Ausführung der vorliegenden Erfindung ist ein System zum Steuern eines Roboters, insbesondere hard- und/oder software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet und/oder weist auf:
- - Mittel zum Bereitstellen einer ersten wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung zur Ermittlung einer Soll-Bewegung einer ersten roboterfesten Referenz, wobei das Mittel in einer Weiterbildung die erste Datenverarbeitung umfassen, insbesondere sein, kann;
- - Mittel zum Bereitstellen einer zweiten wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung zur Ermittlung einer Soll-Bewegung einer zweiten roboterfesten Referenz, wobei das Mittel in einer Weiterbildung die zweite Datenverarbeitung umfassen, insbesondere sein, kann;
- - Mittel zum Ermitteln einer Soll-Achs-Bewegung des Roboters basierend auf einer mittels der ersten Datenverarbeitung ermittelten Soll-Bewegung der ersten Referenz und einer mittels der zweiten Datenverarbeitung ermittelten Soll-Bewegung der zweiten Referenz; wobei bei diesem Ermitteln der Soll-Achs-Bewegung die ermittelte Soll-Bewegung der ersten Referenz gegenüber der ermittelten Soll-Bewegung der zweiten Referenz priorisiert wird; und
- - Mittel zum Steuern des Roboters auf Basis der ermittelten Soll-Achs-Bewegung.
- - means for providing a first data processing based at least partially on machine learning for determining a target movement of a first robot-fixed reference, wherein the means in a further development can comprise, in particular be, the first data processing;
- - means for providing a second data processing based at least partially on machine learning for determining a target movement of a second robot-fixed reference, wherein the means in a further development can comprise, in particular be, the second data processing;
- - means for determining a target axis movement of the robot based on a target movement of the first reference determined by means of the first data processing and a target movement of the second reference determined by means of the second data processing; wherein, in this determination of the target axis movement, the determined target movement of the first reference is prioritized over the determined target movement of the second reference; and
- - Means for controlling the robot based on the determined target axis movement.
In einer Ausführung weist das System Mittel zum Bereitstellen wenigstens einer weiteren wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung zur Ermittlung einer Soll-Bewegung einer weiteren roboterfesten Referenz auf, das in einer Weiterbildung die weitere Datenverarbeitung umfassen, insbesondere sein, kann, wobei das Mittel zum Ermitteln einer Soll-Achs-Bewegung dazu eingerichtet ist, die Soll-Achs-Bewegung basierend auch auf einer mittels dieser weiteren Datenverarbeitung ermittelten Soll-Bewegung dieser weiteren Referenz zu ermitteln, wobei bei diesem Ermitteln der Soll-Achs-Bewegung die ermittelten Soll-Bewegungen der ersten und zweiten Referenz gegenüber dieser ermittelten Soll-Bewegung dieser weiteren Referenz priorisiert werden.In one embodiment, the system has means for providing at least one further data processing based at least partially on machine learning for determining a target movement of a further robot-fixed reference, which in a further development can comprise, in particular be, the further data processing, wherein the means for determining a target axis movement is set up to determine the target axis movement based also on a target movement of this further reference determined by means of this further data processing, wherein in this determination of the target axis movement the determined target movements of the first and second reference are prioritized over this determined target movement of this further reference.
Ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere wenigstens eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit die Schritte solcher Verfahren ausführen kann und damit insbesondere den Roboter steuern kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere computerlesbares und/oder nicht-flüchtiges, Speichermedium zum Speichern eines Programms bzw. von Anweisungen bzw. mit einem darauf gespeicherten Programm bzw. mit darauf gespeicherten Anweisungen aufweisen, insbesondere sein. In einer Ausführung veranlasst ein Ausführen dieses Programms bzw. dieser Anweisungen durch ein System bzw. eine Steuerung, insbesondere einen Computer oder eine Anordnung von mehreren Computern, das System bzw. die Steuerung, insbesondere den bzw. die Computer, dazu, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen, bzw. sind das Programm bzw. die Anweisungen hierzu eingerichtet.A means in the sense of the present invention can be designed in terms of hardware and/or software, in particular at least one, preferably data- or signal-connected, particularly digital, processing unit, particularly microprocessor unit (CPU), graphics card (GPU) or the like, and/or one or more programs or program modules. The processing unit can be designed to process commands that are implemented as a program stored in a storage system, to detect input signals from a data bus and/or to output output signals to a data bus. A storage system can have one or more, particularly different, storage media, particularly optical, magnetic, solid-state and/or other non-volatile media. The program can be designed in such a way that it embodies or is capable of carrying out the methods described here, so that the processing unit can carry out the steps of such methods and thus in particular can control the robot. In one embodiment, a computer program product can have, in particular be, a storage medium, in particular a computer-readable and/or non-volatile one, for storing a program or instructions or with a program or instructions stored thereon. In one embodiment, executing this program or these instructions by a system or a controller, in particular a computer or an arrangement of several computers, causes the system or the controller, in particular the computer(s), to carry out a method described here or one or more of its steps, or the program or the instructions are set up for this purpose.
In einer Ausführung sind ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise computerimplementiert bzw. werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.In one embodiment, one or more, in particular all, steps of the method are fully or partially computer-implemented or one or more, in particular all, steps of the method are fully or partially automated, in particular by the system or its means.
In einer Ausführung weist das System den Roboter auf.In one embodiment, the system comprises the robot.
Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
-
1 : ein Verfahren nach einer Ausführung der vorliegenden Erfindung; und -
2 : ein System nach einer Ausführung der vorliegenden Erfindung. -
2 zeigt ein System nach einer Ausführung der vorliegenden Erfindung mit einerSteuerung 20 zum Steuern eines Roboters 10. -
1 zeigt ein Verfahren nach einer Ausführung der vorliegenden Erfindung zum Steuern des Roboters 10 mittels derSteuerung 20.
-
1 : a method according to an embodiment of the present invention; and -
2 : a system according to an embodiment of the present invention. -
2 shows a system according to an embodiment of the present invention with acontroller 20 for controlling arobot 10. -
1 shows a method according to an embodiment of the present invention for controlling therobot 10 by means of thecontroller 20.
In einem Schritt S10 werden mehrere auf maschinellem Lernen basierende Datenverarbeitungen 21, 22 der Steuerung 20 trainiert. Hierzu demonstriert ein menschlicher Benutzer (nicht dargestellt) Soll-Bewegungen des Roboters 10, beispielsweise, indem er Kräfte auf den nachgiebig gesteuerten Roboter ausübt und diesen dadurch bewegt. Gleichermaßen kann er den Roboter 10 auch mittels einer Fernsteuerung, zum Beispiel einem Joystick, einer 3D-Spacemouse, einem Tablett oder dergleichen (nicht dargestellt) fernsteuern oder anstelle des Roboters 10 einen getrackten Demonstrator (nicht dargestellt) bewegen.In a step S10, several machine learning-based
Bei diesen Soll-Bewegungen werden jeweils aktuelle Posen einer ersten roboterfesten Referenz in Form des TCPs 11 und einer zweiten roboterfesten Referenz in Form des Ellbogens 12 ermittelt und abgespeichert. Zusätzlich oder alternativ kann jeweils ein zugeordneter Wert eines Bahnparameters, beispielsweise einer Prozesszeit oder abgefahrenen Strecke, und/oder ein zugeordneter Wert eines Umweltparameters, beispielsweise eine aktuelle Pose von einem oder mehreren Hindernissen 30 ermittelt und abgespeichert werden.During these target movements, current poses of a first robot-fixed reference in the form of the
Die Datenverarbeitungen 21, 22 lernen maschinell ein Ermitteln einer Soll-Bewegung der TCPs 11 bzw. Ellbogens 12 auf Basis der abgespeicherten Posen der TCPs 11 bzw. Ellbogens 12, den abgespeicherten Werten des Bahnparameters und/oder den abgespeicherten Posen der Hindernisse 30, beispielsweise in der Form:
Vorzugsweise werden nacheinander mehrere (nur) leicht voneinander abweichende bzw. ähnliche Soll-Bewegungen demonstriert, wobei besonders vorteilhaft bei Demonstrationen ähnlicher oder gleicher Soll-Bewegungen des Roboters vorzugsweise die Hindernisse 30 unterschiedliche Posen aufweisen bzw. Bewegungen ausführen.Preferably, several target movements that are (only) slightly different from one another or similar are demonstrated one after the other, whereby it is particularly advantageous for the
In einem Schritt S20 wird basierend auf einer mittels der ersten Datenverarbeitung 21 ermittelten Soll-Bewegung dx11/dt der ersten Referenz und einer mittels der zweiten Datenverarbeitung 22 ermittelten Soll-Bewegung dx12/dt der zweiten Referenz einer Soll-Achs-Bewegung des Roboters 10 ermittelt, beispielsweise in der Form:
Durch diese Projektion der Soll-Bewegung dx12/dt in den Nullraum der Soll-Bewegung dx11/dt bei diesem Ermitteln der Soll-Achs-Bewegung dqs/dt wird die ermittelte Soll-Bewegung der ersten Referenz gegenüber der ermittelten Soll-Bewegung der zweiten Referenz priorisiert.Through this projection of the target movement dx 12 /dt into the zero space of the target movement dx 11 /dt when determining the target axis movement dq s /dt, the determined target movement of the first reference is prioritized over the determined target movement of the second reference.
Die Steuerung 20 steuert in einem Schritt S30 den Roboter zum Ausführen dieser ermittelten Soll-Achs-Bewegung dqs/dt. Dadurch ergeben sich neue Posen der TCPs 11 bzw. Ellbogens 12, ein neuer Wert des Bahnparameters und gegebenenfalls neue Posen der Hindernisse 30, auf deren Basis, wie vorstehend beschrieben, die Datenverarbeitungen 21, 22 erneut eine Soll-Bewegung dx11/dt bzw. dx12/dt der jeweiligen roboterfesten Referenz 11 bzw. 12 ermitteln und die Steuerung 20 basierend hierauf erneut eine Soll-Achs-Bewegung dqs/dt ermittelt (vgl. Schritt S20) und den Roboter 10 zum Ausführen dieser neuen ermittelten Soll-Achs-Bewegung steuert (vgl. Schritt S30).In a step S30, the
In der vorliegenden Offenbarung impliziert „weist ein X auf“ allgemein keine abschließende Aufzählung, sondern ist eine Kurzform von „weist wenigstens ein X auf“ und umfasst auch „weist zwei oder mehr X auf“ sowie „weist außer X auch Y auf“. Obwohl in der vorhergehenden Beschreibung exemplarische Ausführungen erläutert wurden, sei darauf hingewiesen, dass eine Vielzahl von Abwandlungen möglich ist.In the present disclosure, "has an X" generally does not imply an exhaustive list, but is a shortened form of "has at least one X" and also includes "has two or more Xs" and "has Y in addition to X." Although exemplary embodiments have been explained in the foregoing description, it should be noted that a variety of variations are possible.
So können insbesondere zusätzlich oder alternativ zu einem Demonstrieren von Soll-Bewegungen des Roboters durch einen menschlichen Benutzer Soll-Bewegungen des Roboters durch einen automatischen Bewegungsplaner der Steuerung vorgegeben und zum Trainieren der Datenverarbeitungen 21, 22 verwendet werden.In particular, in addition to or as an alternative to a demonstration of target movements of the robot by a human user, target movements of the robot can be specified by an automatic motion planner of the controller and used to train the
Bezugszeichenlistelist of reference symbols
- 1010
- Roboter(arm)robot (arm)
- 1111
- erste roboterfeste Referenzfirst robot-proof reference
- 1212
- zweite roboterfeste Referenzsecond robot-proof reference
- 2020
- Steuerungsteering
- 2121
- erste Datenverarbeitungfirst data processing
- 2222
- zweite Datenverarbeitungsecond data processing
- 3030
- Hindernisobstacle
- q1,..., q7q1,..., q7
- Gelenkwinkeljoint angle
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102023210548.9A DE102023210548B3 (en) | 2023-10-25 | 2023-10-25 | controlling a robot |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102023210548.9A DE102023210548B3 (en) | 2023-10-25 | 2023-10-25 | controlling a robot |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102023210548B3 true DE102023210548B3 (en) | 2025-01-09 |
Family
ID=92494531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102023210548.9A Active DE102023210548B3 (en) | 2023-10-25 | 2023-10-25 | controlling a robot |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102023210548B3 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016212958A1 (en) | 2016-07-15 | 2018-01-18 | Kuka Roboter Gmbh | Redundancy resolution for a redundant manipulator |
DE102018116053A1 (en) | 2017-07-12 | 2019-01-17 | Fanuc Corporation | Robot system and robot learning method |
DE102018208088A1 (en) | 2018-05-23 | 2019-11-28 | Kuka Deutschland Gmbh | Method and control for controlling a robot |
DE102019205651B3 (en) | 2019-04-18 | 2020-08-20 | Kuka Deutschland Gmbh | Method and system for carrying out robot applications |
DE102019220619B3 (en) | 2019-12-30 | 2021-01-28 | Kuka Deutschland Gmbh | Moving a robot-fixed reference |
DE102022203406A1 (en) | 2022-04-06 | 2023-10-12 | Kuka Deutschland Gmbh | Carrying out a robot application and creating a program for it |
-
2023
- 2023-10-25 DE DE102023210548.9A patent/DE102023210548B3/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016212958A1 (en) | 2016-07-15 | 2018-01-18 | Kuka Roboter Gmbh | Redundancy resolution for a redundant manipulator |
DE102018116053A1 (en) | 2017-07-12 | 2019-01-17 | Fanuc Corporation | Robot system and robot learning method |
DE102018208088A1 (en) | 2018-05-23 | 2019-11-28 | Kuka Deutschland Gmbh | Method and control for controlling a robot |
DE102019205651B3 (en) | 2019-04-18 | 2020-08-20 | Kuka Deutschland Gmbh | Method and system for carrying out robot applications |
DE102019220619B3 (en) | 2019-12-30 | 2021-01-28 | Kuka Deutschland Gmbh | Moving a robot-fixed reference |
DE102022203406A1 (en) | 2022-04-06 | 2023-10-12 | Kuka Deutschland Gmbh | Carrying out a robot application and creating a program for it |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102014103738B3 (en) | VISUAL TROUBLESHOOTING FOR ROBOTIC TASKS | |
DE102014108287B4 (en) | Quick learning by imitating power torque tasks by robots | |
EP2563553B1 (en) | Method and control means for controlling a robot | |
EP1447770B1 (en) | Method and apparatus for visualization of computer-based information | |
DE102015010124B4 (en) | A robot program generating device that generates a robot program for reducing bumps of the joints of the robot | |
EP2546711B2 (en) | Method for programming a robot | |
EP2285537B1 (en) | Device and method for the computer-assisted generation of a manipulator track | |
DE102019205651B3 (en) | Method and system for carrying out robot applications | |
WO2017008898A1 (en) | Ascertaining an input command for a robot, said input command being entered by manually exerting a force onto the robot | |
EP3725472A1 (en) | Method for determining a trajectory of a robot | |
DE102009018403A1 (en) | Method for controlling a welding robot, for welding with a welding tong and a force detecting device for detecting reaction forces on the welding tong, comprises determining a sum of reaction forces on the welding tong | |
EP3974125B1 (en) | Method and device for controlling a robot | |
EP3408061A1 (en) | Method and system for the path planning of a redundant robot | |
DE102021204697B4 (en) | Method of controlling a robotic device | |
DE102014118001A1 (en) | Method for simulating the motion of a manipulator | |
DE102017001131A1 (en) | Method and system for operating a robot | |
DE102020212658A1 (en) | Apparatus and method for controlling a robotic device | |
DE102018004673A1 (en) | Robot system displaying a speed | |
EP3569367A1 (en) | Computer-aided detection of a movement of a device | |
EP4084937B1 (en) | Moving a reference fixed on a robot | |
DE102015209773B3 (en) | A method for continuously synchronizing a pose of a manipulator and an input device | |
DE102023210548B3 (en) | controlling a robot | |
WO2019086339A1 (en) | Method and control means for controlling a robot assembly | |
DE102018207921B3 (en) | Controlling a robot | |
WO2019057490A1 (en) | Method for localising a mobile robot |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division |