Nothing Special   »   [go: up one dir, main page]

DE102023210548B3 - controlling a robot - Google Patents

controlling a robot Download PDF

Info

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
Application number
DE102023210548.9A
Other languages
German (de)
Inventor
Niels Dehio
Christian Scheurer
Juan David Munoz Osorio
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KUKA Deutschland GmbH
Original Assignee
KUKA Deutschland GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KUKA Deutschland GmbH filed Critical KUKA Deutschland GmbH
Priority to DE102023210548.9A priority Critical patent/DE102023210548B3/en
Application granted granted Critical
Publication of DE102023210548B3 publication Critical patent/DE102023210548B3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40362Elbow high or low, avoid obstacle collision with redundancy control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40367Redundant manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40369Generate all possible arm postures associated with end effector position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40391Human to robot skill transfer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40496Hierarchical, 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).

Figure DE102023210548B3_0000
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).
Figure DE102023210548B3_0000

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 DE 10 2022 203 406 A1 betrifft ein Verfahren zum Erstellen eines Programms zur Durchführung einer Roboterapplikation, die mehrere Aktionen eines ersten Roboters umfasst, wobei das Verfahren die Schritte umfasst: Erfassen von Programmiereingaben zum Programmieren dieser Aktionen des ersten Roboters; und Erstellen des Programms auf Basis dieser erfassten Programmiereingaben; wobei zum Erstellen des Programms für unterschiedliche Roboter, insbesondere durch einen Kontext, Eingabenamen einheitlich vorgegeben sind und die Programmiereingaben auf Basis von dem durch die jeweilige Programmiereingabe verwendeten dieser Eingabenamen und dem für diesen verwendeten Eingabenamen durch die jeweilige Programmiereingabe bestimmten Inhalt interpretiert werden, insbesondere mittels JSON-LD; und/oder wenigstens eine der Programmiereingaben wenigstens eine Angabe eines Koordinatenraums, eine Angabe eines Regelverfahrens des ersten Roboters, eine Angabe einer Bahn des ersten Roboters, eine Angabe einer Pose des ersten Roboters, eine Angabe einer Werkzeugaktion des ersten Roboters, und/oder eine Angabe einer Sensorart und/oder -aktion des ersten Roboters umfasst.The DE 10 2022 203 406 A1 relates to a method for creating a program for carrying out a robot application that includes multiple actions of a first robot, the method comprising the steps of: capturing programming inputs for programming these actions of the first robot; and creating the program on the basis of these captured programming inputs; wherein, in order to create the program for different robots, in particular by means of a context, input names are uniformly specified and the programming inputs are interpreted on the basis of the input name used by the respective programming input and the input name used for this content determined by the respective programming input, in particular by means of JSON-LD; and/or at least one of the programming inputs comprises at least one indication of a coordinate space, one indication of a control method of the first robot, one indication of a path of the first robot, one indication of a pose of the first robot, one indication of a tool action of the first robot, and/or one indication of a sensor type and/or action of the first robot.

Die DE 10 2018 208 088 A1 betrifft ein Verfahren zum Steuern eines Roboters, wobei eine Folgebewegung auf Basis einer extern auf den Roboter aufgeprägten Führungskraft ermittelt wird, wobei eine Abweichung zwischen einer Richtung einer Soll-Bewegung und einer Richtung der ermittelten Folgebewegung bei Annäherung an eine vorgegebene Achsstellungs-, Achsgeschwindigkeits- und/oder Achsbeschleunigungsbegrenzung vergrößert wird.The DE 10 2018 208 088 A1 relates to a method for controlling a robot, wherein a follow-up movement is determined on the basis of a guide force externally applied to the robot, wherein a deviation between a direction of a desired movement and a direction of the determined follow-up movement is increased when approaching a predetermined axis position, axis speed and/or axis acceleration limit.

Die DE 10 2019 220 619 B3 betrifft ein Verfahren zum Bewegen einer roboterfesten Referenz, insbesondere eines Endeffektors, eines Roboters, insbesondere mehrachsigen Roboterarms, auf Basis einer Anzahl, insbesondere Abfolge, vorgegebener diskreter zulässiger Posen der Referenz, wobei das Verfahren den, insbesondere mehrfach wiederholten, Schritt umfasst: Ausüben von Antriebskräften auf den Roboter durch dessen Antriebe zum Bewegen der Referenz zum Folgen einer auf den Roboter ausgeübten Handführkraft auf Basis einer Differenz zwischen einer aktuellen Pose der Referenz und einer ihr nächsten, ersten Pose der zulässigen Posen derart, dass die Antriebskräfte bei einer Abweichung zwischen der aktuellen Pose und der ersten Pose eine von der Differenz abhängige Rückführkraft auf die Referenz bewirken, wobei die Rückführkraft einer von der Differenz abhängigen Rückstellkraft von der aktuellen Pose zu der ersten Pose entspricht, deren Komponente in Richtung einer Verbindung zwischen der ersten Pose und einer ihr benachbarten zweiten Pose der zulässigen Posen ausgeblendet ist, so dass die Komponente einer von den Antriebskräften an der Referenz bewirkten Gesamtkraft in Richtung der Verbindung von der Differenz unabhängig ist; und/oder wenigstens ein Anteil der Antriebskräfte von Geschwindigkeiten der Antriebe und/oder einer Geschwindigkeit der Referenz, insbesondere linear, abhängig ist.The DE 10 2019 220 619 B3 relates to a method for moving a robot-fixed reference, in particular an end effector, of a robot, in particular a multi-axis robot arm, on the basis of a number, in particular a sequence, of predetermined discrete permissible poses of the reference, the method comprising the step, in particular repeated several times: exerting drive forces on the robot by its drives for moving the reference to follow a manual guide force exerted on the robot on the basis of a difference between a current pose of the reference and a first pose of the permissible poses closest to it, such that the drive forces, in the event of a deviation between the current pose and the first pose, cause a return force on the reference that is dependent on the difference, the return force corresponding to a return force dependent on the difference from the current pose to the first pose, the component of which in the direction of a connection between the first pose and a second pose of the permissible poses adjacent to it is masked out, so that the component of a total force caused by the drive forces on the reference in the direction of the connection is independent of the difference; and/or at least a portion of the drive forces is dependent on speeds of the drives and/or a speed of the reference, in particular linearly.

Die DE 10 2018 116 053 A1 betrifft ein Robotersystem, das einen Roboter umfasst, der mindestens einen Sensor enthält, der eine aufgebrachte externe Kraft erfasst, und eine Steuerung, die den Roboter steuert, wobei die Steuerung einen Betriebsmodus des Roboters beim Durchführen des Lead-through-Lernens gemäß einer Position und einem Muster der externen Kraft, die durch den Sensor erfasst wird, ändert.The DE 10 2018 116 053 A1 relates to a robot system comprising a robot including at least one sensor that detects an applied external force and a controller that controls the robot, wherein the controller changes an operation mode of the robot when performing lead-through learning according to a position and a pattern of the external force detected by the sensor.

Die DE 10 2019 205 651 B3 betrifft ein Verfahren zum Ausführen einer Applikation mithilfe eines Roboters, insbesondere einer Applikation mit geplantem Umgebungskontakt des Roboters mit seiner Umgebung, wobei ein mittels Reinforcement Learning trainierter Agent einem Regler des Roboters eine Soll-Größe vorgibt und der Regler Antriebe des Roboters auf Basis dieser Soll-Größe und eines kinematischen, insbesondere dynamischen, Modells des Roboters kommandiert. Zusätzlich oder alternativ werden mehrere gleichartige Regler auf Basis der gleichen Lernapplikation mit unterschiedlichen Randbedingungen mittels Reinforcement Learning trainiert, ein künstliches neuronales Netz mithilfe der trainierten Regler mittels Supervised Learning trainiert, und der Roboter mithilfe des trainierten neuronalen Netzes geregelt, um die vorgegebene Applikation auszuführen. Zusätzlich oder alternativ wird ein Agent auf Basis der gleichen Lernapplikation mit unterschiedlichen Randbedingungen mittels Reinforcement Learning trainiert und der Roboter mithilfe des trainierten neuronalen Netzes geregelt, um die vorgegebene Applikation auszuführen.The DE 10 2019 205 651 B3 relates to a method for executing an application using a robot, in particular an application with planned environmental contact of the robot with its environment, wherein an agent trained using reinforcement learning specifies a target value to a controller of the robot and the controller commands drives of the robot based on this target value and a kinematic, in particular dynamic, model of the robot. Additionally or alternatively, several similar controllers are trained using reinforcement learning on the basis of the same learning application with different boundary conditions, an artificial neural network is trained using the trained controllers using supervised learning, and the robot is controlled using the trained neural network in order to execute the specified application. Additionally or alternatively, an agent is trained using reinforcement learning on the basis of the same learning application with different boundary conditions and the robot is controlled using the trained neural network in order to execute the specified application.

Die DE 10 2016 212 958 A1 betrifft ein Verfahren zum Steuern eines redundanten Manipulators, wobei der Manipulator mehrere Bewegungsachsen aufweist und das Verfahren die folgenden Schritte umfasst: Bestimmen einer primären Aufgabe zum Steuern des Manipulators, wobei die primäre Aufgabe das Abfahren einer Bewegungsbahn des Manipulators, umfasst; Bestimmen zumindest einer sekundären Aufgabe zum Steuern des Manipulators, wobei die sekundäre Aufgabe eine Reduzierung der effektiven Masse und/oder der effektiven Trägheit umfasst; Berechnen von n Alternativen möglicher Achswinkeln der Bewegungsachsen des Manipulators zur Erfüllung der primären Aufgabe, und Berechnen der Achswinkelgeschwindigkeiten für die n Alternativen; und Steuern des Manipulators unter Berücksichtigung der n Alternativen und der sekundären Aufgabe.The DE 10 2016 212 958 A1 relates to a method for controlling a redundant manipulator, wherein the manipulator has several axes of movement and the method comprises the following steps: determining a primary task for controlling the manipulator, wherein the primary task comprises traversing a movement path of the manipulator; determining at least one secondary task task for controlling the manipulator, wherein the secondary task comprises a reduction of the effective mass and/or the effective inertia; calculating n alternatives of possible axis angles of the axes of motion of the manipulator to fulfill the primary task, and calculating the axis angular velocities for the n alternatives; and controlling the manipulator taking into account the n alternatives and the secondary task.

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.
According to an embodiment of the present invention, a method for controlling the robot comprises the steps:
  • - 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 die Soll-Achs-Bewegung basierend auch auf einer mittels dieser weiteren Datenverarbeitung(en) ermittelten Soll-Bewegung(en) dieser weiteren Referenz(en) ermittelt wird, in einer Ausführung dqs/dt = dqs/dt(dx1/dt, dx2/dt, dx3/dt (, ...));
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 the target axis movement is also determined based on a target movement(s) of these further reference(s) determined by means of this further data processing(s), in one embodiment dq s /dt = dq s /dt(dx 1 /dt, dx 2 /dt, dx 3 /dt (, ...));
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.
In one embodiment, at least one of the data processing operations determines the target movement of the corresponding reference, in particular the first data processing operation determines the target movement of the first reference and/or the second data processing operation determines the target movement of the second reference and/or the (respective) further data processing operation determines the target movement of the (respective) further reference, (respectively)
  • - 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 d q s l d t = J 1 # d x 1 / d t + ( 1 J 1 # J 1 ) J 2 # d x 2 / d t

Figure DE102023210548B3_0001
d q s / d t = J 1 # d x 1 / d t + ( 1 J 1 # J 1 ) J 2 # [ d x 2 / d t + ( 1 J 2 # J 2 ) J 3 # d x 3 / d t ]
Figure DE102023210548B3_0002
mit der jeweiligen Pseudoinversen Ji# der jeweiligen Jacobimatrix Ji = ∂(dxi/dt)/ ∂(dq/dt) und dem jeweiligen Nullraumoperator Ni = (1 - Ji #·Ji). Sofern die nachrangigste Soll-Bewegung eine Soll-Bewegung im Achs- bzw.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 projection of the (respective) other target movement(s) into a null space of the (respective) one, (higher) prioritized target movement, in one embodiment in the form d q s l d t = J 1 # d x 1 / d t + ( 1 J 1 # J 1 ) J 2 # d x 2 / d t
Figure DE102023210548B3_0001
d q s / d t = J 1 # d x 1 / d t + ( 1 J 1 # J 1 ) J 2 # [ d x 2 / d t + ( 1 J 2 # J 2 ) J 3 # d x 3 / d t ]
Figure DE102023210548B3_0002
with the respective pseudoinverse Ji # of the respective Jacobian matrix J i = ∂(dx i /dt)/ ∂(dq/dt) and the respective null space operator N i = (1 - J i # ·J i ). If the most subordinate desired movement is a desired movement in the axis or

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: d q s / d t = w 1 J 1 # d x 1 / d t + w 2 J 2 # d x 2 / d t ( + w 3 J 3 # d x 3 / d t ( + ) )

Figure DE102023210548B3_0003
In one embodiment, the prioritization or one or more of the prioritizations is done via a weighting, for example in the form: d q s / d t = w 1 J 1 # d x 1 / d t + w 2 J 2 # d x 2 / d t ( + w 3 J 3 # d x 3 / d t ( + ) )
Figure DE102023210548B3_0003

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.
In one version, when demonstrating training movements of the robot
  • - 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.
In one version, the robot’s training movements are specified for this
  • - 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;
auf. Dadurch kann vorteilhaft auf sich ändernde Randbedingungen reagiert werden.In one embodiment, one or more of the prioritizations mentioned here are specified by a user or automatically by an algorithm and/or varied over time, in particular time-dependent priorities are specified by the user or automatically by an algorithm. Accordingly, in one embodiment, the method comprises the step
  • - 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;
This allows for a favorable response to changing boundary conditions.

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.
According to one embodiment of the present invention, a system for controlling a robot, in particular hardware and/or software, in particular program technology, is set up to carry out a method described here and/or has:
  • - 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 einer Steuerung 20 zum Steuern eines Roboters 10.
  • 1 zeigt ein Verfahren nach einer Ausführung der vorliegenden Erfindung zum Steuern des Roboters 10 mittels der Steuerung 20.
Further advantages and features emerge from the subclaims and the embodiments. This shows, partly schematically:
  • 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 a controller 20 for controlling a robot 10.
  • 1 shows a method according to an embodiment of the present invention for controlling the robot 10 by means of the controller 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 data processing 21, 22 of the controller 20 are trained. To do this, a human user (not shown) demonstrates target movements of the robot 10, for example by exerting forces on the compliantly controlled robot and thereby moving it. Likewise, he can also remotely control the robot 10 using a remote control, for example a joystick, a 3D space mouse, a tablet or the like (not shown) or move a tracked demonstrator (not shown) instead of the robot 10.

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 TCP 11 and a second robot-fixed reference in the form of the elbow 12 are determined and saved. Additionally or alternatively, an assigned value of a path parameter, for example a process time or distance traveled, and/or an assigned value of an environmental parameter, for example a current pose of one or more obstacles 30, can be determined and saved.

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: 21 :  d x 11 / d t = f 1 ( x 11,   τ ,   y 30 ) ;

Figure DE102023210548B3_0004
22 :  d x 12 / d t = f 2 ( x 12,   τ ,   y 30 ) .
Figure DE102023210548B3_0005
The data processing units 21, 22 learn to determine a target movement of the TCPs 11 or elbow 12 on the basis of the stored poses of the TCPs 11 or elbow 12, the stored values of the path parameters and/or the stored poses of the obstacles 30, for example in the form: 21 :  d x 11 / d t = f 1 ( x 11,   τ ,   y 30 ) ;
Figure DE102023210548B3_0004
22 :  d x 12 / d t = f 2 ( x 12,   τ ,   y 30 ) .
Figure DE102023210548B3_0005

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 obstacles 30 to have different poses or execute different movements when demonstrating similar or identical target movements of the robot.

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: d q s / d t = J 11 # d x 11 / d t + ( 1 J 11 # J 11 ) J 12 # d x 12 / d t .

Figure DE102023210548B3_0006
In a step S20, a target axis movement of the robot 10 is determined based on a target movement dx 11 /dt of the first reference determined by means of the first data processing 21 and a target movement dx 12 /dt of the second reference determined by means of the second data processing 22, for example in the form: d q s / d t = J 11 # d x 11 / d t + ( 1 J 11 # J 11 ) J 12 # d x 12 / d t .
Figure DE102023210548B3_0006

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 controller 20 controls the robot to execute this determined target axis movement dq s /dt. This results in new poses of the TCPs 11 or elbow 12, a new value of the path parameter and, if necessary, new poses of the obstacles 30, on the basis of which, as described above, the data processing 21, 22 again determine a target movement dx 11 /dt or dx 12 /dt of the respective robot-fixed reference 11 or 12 and the controller 20 again determines a target axis movement dq s /dt based on this (see step S20) and controls the robot 10 to execute this new determined target axis movement (see step S30).

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 data processing units 21, 22.

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)

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; wobei das Bereitstellen der wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitungen - ein Demonstrieren von Trainings-Bewegungen des Roboters durch einen menschlichen Benutzer und/oder - ein Vorgeben von Trainings-Bewegungen des Roboters durch einen automatischen Bewegungsplaner umfasst und ein maschinelles Lernen auf Basis der Trainings Bewegungen des Roboters umfasst.Method for controlling a robot, comprising the steps: - providing (S10) a first data processing based at least partially on machine learning to determine a target movement of a first robot-fixed reference; - providing (S10) a second data processing based at least partially on machine learning to determine 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; wherein the provision of the data processing based at least partially on machine learning comprises - demonstrating training movements of the robot by a human user and/or - specifying training movements of the robot by an automatic motion planner and comprises machine learning based on the training movements of the robot. Verfahren nach Anspruch 1, gekennzeichnet durch den Schritt: - Bereitstellen wenigstens einer weiteren wenigstens teilweise auf maschinellem Lernen basierenden Datenverarbeitung zur Ermittlung einer Soll-Bewegung einer weiteren roboterfesten Referenz; wobei die Soll-Achs-Bewegung basierend auch auf einer mittels dieser weiteren Datenverarbeitung ermittelten Soll-Bewegung dieser weiteren Referenz ermittelt wird; 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.procedure according to claim 1 , characterized by the step: - 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; wherein the target axis movement is also determined based 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. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine der Datenverarbeitungen die Soll-Bewegung der entsprechenden Referenz auf Basis einer aktuellen Pose dieser Referenz und/oder eines aktuellen Wertes wenigstens eines Bahnparameters und/oder eines aktuellen Wertes wenigstens eines Umweltparameters und/oder eines aktuellen Wertes wenigstens eines Prozessparameters ermittelt.Method according to one of the preceding claims, characterized in that at least one of the data processing operations determines the desired movement of the corresponding reference on the basis of a current pose of this reference 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. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass wenigstens ein Bahnparameter eine Prozesszeit und/oder abgefahrene Strecke umfasst und/oder wenigstens ein Umweltparameter von einer Pose wenigstens eines Hindernisses abhängt und/oder ein Wert wenigstens eines Umweltparameters und/oder wenigstens eines Prozessparameters sensorisch erfasst wird.Method according to the preceding claim, characterized in that at least one path parameter comprises a process time and/or distance traveled and/or at least one environmental parameter depends on a pose of at least one obstacle and/or a value of at least one environmental parameter and/or at least one process parameter is detected by sensors. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine der ermittelten Soll-Bewegungen einer roboterfesten Referenz gegenüber wenigstens einer andere der ermittelten Soll-Bewegungen einer roboterfesten Referenz mittels einer Projektion der anderen Soll-Bewegung in einen Nullraum der einen Soll-Bewegung oder einer Gewichtung oder einer Kaskade von Quadratischen Programmen oder eines Saturation-in-the-Nullspace-Algorithmus priorisiert wird.Method according to one of the preceding claims, characterized in that at least one of the determined target movements of a robot-fixed reference is compared with at least one other of the determined target movements of a robot-fixed reference by means of a projection of the other target Movement into a null space that is prioritized by a target movement or a weighting or a cascade of quadratic programs or a saturation-in-the-nullspace algorithm. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Demonstrieren von Soll-Bewegungen des Roboters durch einen menschlichen Benutzer ein Ausüben von Kräften auf den nachgiebig gesteuerten Roboter durch den Benutzer und/oder ein Bewegen eines getrackten Demonstrators durch den Benutzer und/oder ein Fernsteuern des Roboters durch den Benutzer umfasst und/oder mithilfe einer Virtual-Reality-Applikation oder Augmented-Reality-Applikation durchgeführt wird.Method according to one of the preceding claims, characterized in that a demonstration of desired movements of the robot by a human user comprises an exertion of forces on the compliantly controlled robot by the user and/or a movement of a tracked demonstrator by the user and/or a remote control of the robot by the user and/or is carried out with the aid of a virtual reality application or augmented reality application. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Roboter bezüglich der mittels der ersten Datenverarbeitungen ermittelten Soll-Bewegung der ersten Referenz und/oder bezüglich der mittels der zweiten Datenverarbeitungen ermittelten Soll-Bewegung der zweiten Referenz redundant ist.Method according to one of the preceding claims, characterized in that the robot is redundant with respect to the desired movement of the first reference determined by means of the first data processing and/or with respect to the desired movement of the second reference determined by means of the second data processing. System zum Steuern eines Roboters, das zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet ist.System for controlling a robot, which is arranged to carry out a method according to one of the preceding claims. Computerprogramm oder Computerprogrammprodukt, wobei das Computerprogramm oder Computerprogrammprodukt Anweisungen enthält, die bei der Ausführung durch einen oder mehrere Computer oder ein System nach Anspruch 8 den oder die Computer oder das System dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 7 durchzuführen.Computer program or computer program product, the computer program or computer program product containing instructions which, when executed by one or more computers or a system, claim 8 cause the computer or systems to perform a process according to any of the Claims 1 until 7 to carry out.
DE102023210548.9A 2023-10-25 2023-10-25 controlling a robot Active DE102023210548B3 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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