[go: up one dir, main page]

DE102023206924B3 - Determining target positions of motion axes of a robot arrangement - Google Patents

Determining target positions of motion axes of a robot arrangement Download PDF

Info

Publication number
DE102023206924B3
DE102023206924B3 DE102023206924.5A DE102023206924A DE102023206924B3 DE 102023206924 B3 DE102023206924 B3 DE 102023206924B3 DE 102023206924 A DE102023206924 A DE 102023206924A DE 102023206924 B3 DE102023206924 B3 DE 102023206924B3
Authority
DE
Germany
Prior art keywords
primitive
geometric
specified
kinematics
controllable
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
DE102023206924.5A
Other languages
German (de)
Inventor
Martin Feustel
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 DE102023206924.5A priority Critical patent/DE102023206924B3/en
Priority to PCT/EP2024/069201 priority patent/WO2025016777A1/en
Application granted granted Critical
Publication of DE102023206924B3 publication Critical patent/DE102023206924B3/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/1656Programme controls characterised by programming, planning systems for manipulators
    • 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/40395Compose movement with primitive movement segments from database
    • 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/40519Motion, trajectory planning

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

Ein Verfahren zum Ermitteln von Soll-Stellungen von Bewegungsachsen einer Roboteranordnung, die wenigstens eine Kinematik (1) mit mehreren Bewegungsachsen (A1-A6) aufweist, weist auf: Ermitteln (S70) einer oder mehrerer Soll-Stellungen der Bewegungsachsen der Kinematik auf Basis a) einer Anbindung wenigstens eines als steuerbares Primitiv vorgegebenen geometrischen Primitivs an die Bewegungsachsen der Kinematik, b) einer ersten geometrischen Zwangsbedingung, welche für wenigstens ein vorgegebenes geometrisches Primitiv vorgegeben ist, und c) einer Identität oder vorgegebenen Verknüpfung dieses Primitivs, für das die erste geometrische Zwangsbedingung vorgegeben ist, mit dem steuerbaren Primitiv. Die Erfindung betrifft außerdem ein Verfahren zum Betreiben der Roboteranordnung, ein Verfahren zum Programmieren eines Prozesses zum Betreiben der Roboteranordnung, ein System und ein Computerprogramm(produkt).A method for determining target positions of movement axes of a robot arrangement which has at least one kinematics (1) with several movement axes (A1-A6), comprises: determining (S70) one or more target positions of the movement axes of the kinematics on the basis of a) a connection of at least one geometric primitive specified as a controllable primitive to the movement axes of the kinematics, b) a first geometric constraint which is specified for at least one specified geometric primitive, and c) an identity or specified link of this primitive, for which the first geometric constraint is specified, with the controllable primitive. The invention also relates to a method for operating the robot arrangement, a method for programming a process for operating the robot arrangement, a system and a computer program (product).

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Ermitteln von Soll-Stellungen von Bewegungsachsen einer Roboteranordnung, die eine oder mehrere Kinematiken mit (jeweils) mehreren Bewegungsachsen aufweist, ein Verfahren zum Betreiben der Roboteranordnung auf Basis der solcherart ermittelten Soll-Stellung(en), ein Verfahren zum Programmieren eines Prozesses zu einem solchen Betreiben der Roboteranordnung sowie ein System bzw. Computerprogramm bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens.The present invention relates to a method for determining target positions of motion axes of a robot arrangement which has one or more kinematics with (each) several motion axes, a method for operating the robot arrangement on the basis of the target position(s) determined in this way, a method for programming a process for such operation of the robot arrangement and a system or computer program or computer program product for carrying out a method described here.

In der Industrie werden von Robotern durchgeführte Prozesse meist unter Verwendung von Roboterbahnen realisiert. Hierfür wird in der Regel die durch den Roboter abzufahrende kartesischen Bahn durch Standardbewegungen des Roboters, wie LIN, CIRC oder Spline beschrieben. Diese Bahn wird mittels weiterer Parameter, z.B. Geschwindigkeit, Beschleunigung oder Überschleifen, so konfiguriert, dass ein am Roboter definiertes 6D-Frame, der sogenannte Tool Center Point (TCP), sich entlang dieser Bahn bewegt. Diese Bahn wird dann in der Steuerung des Roboters in einzelne Soll-Achsstellungen für jeden Zeitpunkt umgerechnet, sodass eine achsspezifische Bewegung für den Roboter entsteht, welche durch den Roboter ausgeführt wird. Analog kann anstelle einer kartesischen Bahn auch eine Bahn im Achs-Raum mittels PTP-Bewegung vorgegeben werden.In industry, processes carried out by robots are usually implemented using robot paths. For this purpose, the Cartesian path to be followed by the robot is usually described by standard robot movements such as LIN, CIRC or spline. This path is configured using additional parameters, e.g. speed, acceleration or blending, so that a 6D frame defined on the robot, the so-called tool center point (TCP), moves along this path. This path is then converted in the robot's control system into individual target axis positions for each point in time, so that an axis-specific movement is created for the robot, which is carried out by the robot. Analogously, instead of a Cartesian path, a path in axis space can also be specified using PTP movement.

Die DE 10 2020 209 511 B3 betrifft ein Verfahren zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm, wobei das Roboterprogramm zur Steuerung eines Roboters mit einem Manipulator, vorzugsweise in einer Roboterzelle, dient, umfassend die Schritte: Erzeugen des Roboterprogramms mittels eines bausteinbasierten grafischen Programmiersystems basierend auf Benutzereingaben; Bereitstellen einer Schnittstelle zum Auswählen eines oder mehrerer kritischer Programmbausteine, wobei optimierbare Programmparameter für die kritischen Programmbausteine festlegbar sind; Durchführen einer Explorationsphase zur Exploration eines Parameterraums in Bezug auf die optimierbaren Programmparameter; Durchführen einer Lernphase zum Erzeugen von Bausteinrepräsentanten für die kritischen Programmbausteine des Roboterprogramms basierend auf den in der Explorationsphase gesammelten Trainingsdaten; Durchführen einer Inferenzphase zur Bestimmung von optimierten Programmparametern für die kritischen Programmbausteine des Roboterprogramms, wobei mittels eines gradientenbasierten Optimierungsverfahrens unter Einsatz der Bausteinrepräsentanten optimierbare Programmparameter der Bausteinrepräsentanten bezüglich einer vorgegebenen Zielfunktion iterativ optimiert werden.The DE 10 2020 209 511 B3 relates to a method for determining optimized program parameters for a robot program, wherein the robot program is used to control a robot with a manipulator, preferably in a robot cell, comprising the steps of: generating the robot program using a block-based graphical programming system based on user inputs; providing an interface for selecting one or more critical program blocks, wherein optimizable program parameters can be specified for the critical program blocks; carrying out an exploration phase for exploring a parameter space with respect to the optimizable program parameters; carrying out a learning phase for generating block representatives for the critical program blocks of the robot program based on the training data collected in the exploration phase; carrying out an inference phase for determining optimized program parameters for the critical program blocks of the robot program, wherein optimizable program parameters of the block representatives are iteratively optimized with respect to a predetermined objective function using a gradient-based optimization method using the block representatives.

Die DE 10 2015 204 641 A1 betrifft ein Verfahren zur Programmierung eines Roboters, wobei mit einer vordefinierten Bewegungsschablone eine auszuführende Roboterbewegung eingerichtet wird, wobei die Bewegungsschablone aus einer mehrere Bewegungsschablonen umfassenden Datenbank selektiert wird, wobei die Bewegungsschablone ein oder mehrere parametrierbare Ausführungsmodule und mindestens ein Lernmodul umfasst, wobei das Ausführungsmodul bzw. die Ausführungsmodule zur Planung und/oder Durchführung der Roboterbewegung oder einer Teilbewegung der Roboterbewegung verwendet wird bzw. werden, wobei das Lernmodul in einem Initialisierungsprozess eine oder mehrere Konfigurationen des Roboters aufzeichnet, und wobei das Lernmodul basierend auf den aufgezeichneten Konfigurationen Parameter für das Ausführungsmodul bzw. die Ausführungsmodule berechnet.The DE 10 2015 204 641 A1 relates to a method for programming a robot, wherein a robot movement to be executed is set up using a predefined movement template, wherein the movement template is selected from a database comprising several movement templates, wherein the movement template comprises one or more parameterizable execution modules and at least one learning module, wherein the execution module or modules is or are used to plan and/or execute the robot movement or a partial movement of the robot movement, wherein the learning module records one or more configurations of the robot in an initialization process, and wherein the learning module calculates parameters for the execution module or modules based on the recorded configurations.

Nach der DE 10 2015 115 229 B4 richtet bei einem Gerät zum Steuern der Positionierung eines Objekts, das einen spezifizierten Punkt hat, ein erster Begrenzer einen Bewegungsbereich des spezifizierten Punkts des Objekts ein und begrenzt eine Bewegung des spezifizierten Punkts des Objekts innerhalb des Bewegungsbereichs, wobei der Bewegungsbereich eine Linie aufweist, die die Position des spezifizierten Punkts des Objekts und eine Zielposition für den spezifizierten Punkt des Objekts verbindet, ein zweiter Begrenzer begrenzt, dass eine Änderung einer spezifizierten Ausrichtung des Objekts einen Winkelunterschied zwischen der spezifizierten Ausrichtung des Objekts und einer Zielausrichtung für die spezifizierte Ausrichtung des Objekts erhöht.After DE 10 2015 115 229 B4 In an apparatus for controlling positioning of an object having a specified point, a first limiter establishes a range of motion of the specified point of the object and limits movement of the specified point of the object within the range of motion, the range of motion comprising a line connecting the position of the specified point of the object and a target position for the specified point of the object, a second limiter limits a change in a specified orientation of the object from increasing an angular difference between the specified orientation of the object and a target orientation for the specified orientation of the object.

Die EP 2 303 521 B1 betrifft Industrieroboter und Bahnplanungsverfahren zum Steuern der Bewegung eines Industrieroboters, an dessen Roboterarm ein Effektor befestigt ist, der vorgesehen ist, Prozesspunkte in einem vorgegebenen Abstand zu einem ersten ausgezeichneten Punkt des Industrieroboters zu bearbeiten.The EP 2 303 521 B1 relates to industrial robots and path planning methods for controlling the movement of an industrial robot, to whose robot arm an effector is attached, which is intended to process points at a predetermined distance from a first designated point of the industrial robot.

Nach der US 2023 / 0 027 130 A1 ist auf einem Computergerät ein kinematisches Modell eines Roboters gespeichert, der einen Gelenkarm und ein an den Arm gekoppeltes Werkzeug aufweist, wobei das kinematische Modell mehrere aktive Gelenke, die mehreren aktuierten Gelenken des Gelenkarms entsprechen, und ein oder mehrere passive Gelenke umfasst, für jedes passive Gelenk eine nominale Gelenkposition und ein entsprechender Toleranzspielraum definiert ist, um einen Toleranzspielraum zu simulieren, der auf eine nominale Position und Ausrichtung des Werkzeugs in Bezug auf ein vom Werkzeug bearbeitetes Objekt anwendbar ist, das Computergerät ein 3D-Modell des Objekts ermittelt, einen Werkzeugpfad des Werkzeugs zum Ausführen einer Aufgabe an dem Objekt ermittelt und eine Trajektorie des Gelenkarms basierend auf dem Werkzeugpfad, dem kinematischen Modell und dem 3D-Modell des Objekts berechnet, und bei der Berechnung die nominale Gelenkposition und die Toleranzmarge jedes passiven Gelenks berücksichtigt werden.After US 2023 / 0 027 130 A1 a kinematic model of a robot having an articulated arm and a tool coupled to the arm is stored on a computing device, the kinematic model comprising a plurality of active joints corresponding to a plurality of actuated joints of the articulated arm and one or more passive joints, for each passive joint a nominal joint position and a corresponding tolerance margin is defined to simulate a tolerance margin applicable to a nominal position and orientation of the tool with respect to an object machined by the tool the computing device determines a 3D model of the object, determines a tool path of the tool for performing a task on the object, and calculates a trajectory of the articulated arm based on the tool path, the kinematic model, and the 3D model of the object, and the calculation takes into account the nominal joint position and the tolerance margin of each passive joint.

Die US 2021 / 0 394 452 A1 offengelegt ein Verfahren zur additiven Herstellung einer Struktur, wobei die Methode das Erzeugen eines Vektorfelds durch ein virtuelles 3D-Modell und das Aufteilen des virtuellen Modells in eine Vielzahl von Schichten umfassen kann, die mit dem Vektorfeld ausgerichtet sind, wobei das Verfahren außerdem das Erzeugen von mindestens einem Werkzeugpfad für mindestens eine der Vielzahl von Schichten und das Veranlassen einer Maschine zur additiven Herstellung umfassen kann, ein Material entlang des mindestens einen Werkzeugpfads anzuordnen.The US 2021 / 0 394 452 A1 discloses a method for additively manufacturing a structure, the method may include generating a vector field through a virtual 3D model and dividing the virtual model into a plurality of layers aligned with the vector field, the method may further include generating at least one tool path for at least one of the plurality of layers and causing an additive manufacturing machine to place a material along the at least one tool path.

Eine Aufgabe einer Ausführung der vorliegenden Erfindung ist es, das Ermitteln von Soll-Stellungen von Bewegungsachsen einer Roboteranordnung und/oder das Betreiben einer Roboteranordnung und/oder Programmieren eines Prozesses zum Betreiben einer Roboteranordnung zu verbessern.An object of an embodiment of the present invention is to improve the determination of target positions of motion axes of a robot arrangement and/or the operation of a robot arrangement and/or programming of a process for operating a robot arrangement.

Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 bzw. 8 bzw. 9 gelöst. Ansprüche 10, 12 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, 8 or 9. Claims 10 and 12 protect a system or computer program or computer program product for carrying out a method described here. The subclaims relate to advantageous developments.

Nach einer Ausführung der vorliegenden Erfindung weist eine Roboteranordnung eine oder mehrere, vorzugsweise separate bzw. voneinander beabstandete, Kinematiken, die in einer Weiterbildung (jeweils) ein Roboterarm aufweisen, insbesondere sein, können, mit (jeweils) mehreren Bewegungsachsen auf, wobei vorzugsweise die bzw. eine oder mehrere der Kinematik(en) bzw. Roboterarm(e jeweils) wenigstens drei, insbesondere wenigstens sechs, in einer Ausführung wenigstens sieben, Bewegungsachsen aufweisen. Für solche Roboteranordnungen ist die vorliegende Erfindung, insbesondere aufgrund der Komplexität, Anwendungsfälle und Randbedingungen besonders vorteilhaft. Eine hier genannte Roboteranordnung ist in einer bevorzugten Ausführung eine reale Roboteranordnung, entsprechend umfasst ein Betreiben einer (solchen) Roboteranordnung im Sinne der vorliegenden Erfindung vorzugsweise ein tatsächliches Ansteuern von Antrieben der (realen) Roboteranordnung. Gleichermaßen kann eine hier genannte Roboteranordnung auch eine virtuelle Roboteranordnung sein, entsprechend ein Betreiben einer (solchen) Roboteranordnung im Sinne der vorliegenden Erfindung ein Simulieren von Bewegungen der (virtuellen) Roboteranordnung umfassen, insbesondere sein.According to one embodiment of the present invention, a robot arrangement has one or more, preferably separate or spaced apart, kinematics, which in a further development (each) have, in particular can be, a robot arm, with (each) several axes of movement, wherein preferably the or one or more of the kinematics or robot arm(s) each have at least three, in particular at least six, in one embodiment at least seven, axes of movement. The present invention is particularly advantageous for such robot arrangements, in particular due to the complexity, applications and boundary conditions. In a preferred embodiment, a robot arrangement mentioned here is a real robot arrangement, accordingly operating (such) a robot arrangement in the sense of the present invention preferably includes actually controlling drives of the (real) robot arrangement. Likewise, a robot arrangement mentioned here can also be a virtual robot arrangement, accordingly operating (such) a robot arrangement in the sense of the present invention can include, in particular be, simulating movements of the (virtual) robot arrangement.

Nach einer Ausführung der vorliegenden Erfindung weist ein Verfahren zum Ermitteln von Soll-Stellungen von Bewegungsachsen der bzw. einer oder mehrerer der Kinematik(en) der Roboteranordnung auf: Ermitteln einer oder mehrerer Soll-Stellungen der Bewegungsachsen der Kinematik(en) auf Basis bzw. basierend auf bzw. in Abhängigkeit von:

  • - einer Anbindung wenigstens eines geometrischen Primitivs an die Bewegungsachsen der Kinematik bzw. wenigstens einer der Kinematiken, wobei dieses Primitiv, vorzugsweise durch einen Programmierer bzw. auf Basis einer Programm(ier)eingabe, als steuerbares Primitiv vorgegeben ist, in einer Ausführung wird;
  • - einer ersten geometrischen Zwangsbedingung, welche für wenigstes ein vorgegebenes geometrisches Primitiv, vorzugsweise durch einen bzw. den Programmierer bzw. auf Basis einer Programm(ier)eingabe, vorgegeben ist, in einer Ausführung wird; und
  • - einer Identität oder vorgegebenen Verknüpfung dieses Primitivs, für das die erste geometrische Zwangsbedingung vorgegeben ist, mit dem steuerbaren Primitiv.
According to one embodiment of the present invention, a method for determining target positions of movement axes of one or more of the kinematics of the robot arrangement comprises: determining one or more target positions of the movement axes of the kinematics on the basis of or based on or depending on:
  • - a connection of at least one geometric primitive to the movement axes of the kinematics or at least one of the kinematics, wherein this primitive is specified as a controllable primitive, preferably by a programmer or on the basis of a programming input, in one embodiment;
  • - a first geometric constraint, which is specified for at least one given geometric primitive, preferably by a programmer or on the basis of a programming input, in an execution; and
  • - an identity or given connection of this primitive, for which the first geometric constraint is given, with the controllable primitive.

Entsprechend weist nach einer Ausführung der vorliegenden Erfindung ein Verfahren zum Programmieren eines Prozesses zum Betreiben der Roboteranordnung die Schritte auf:

  • - Vorgeben der ersten geometrischen Zwangsbedingung, vorzugsweise durch Auswählen aus zur Verfügung bzw. bereitgestellten Zwangsbedingung und/oder Parametrieren einer, vorzugsweise ausgewählten, Zwangsbedingung; und
  • - Vorgeben wenigstens eines geometrischen Primitivs als steuerbares Primitiv, vorzugsweise durch Auswählen aus zur Verfügung bzw. bereitgestellten geometrischen Primitiven und/oder Parametrieren eines, vorzugsweise ausgewählten, geometrischen Primitivs;
sowie gegebenenfalls
  • - Vorgeben der Verknüpfung dieses Primitivs, für das die erste geometrische Zwangsbedingung vorgegeben ist, mit dem steuerbaren Primitiv,
vorzugsweise jeweils durch entsprechende Programm(ier)eingabe(n),
wobei in einer Ausführung diese vorgegebene erste geometrische Zwangsbedingung und diese Vorgabe eines geometrischen Primitivs als steuerbares Primitiv sowie gegebenenfalls diese vorgegebene Verknüpfung zum Ermitteln der Soll-Stellung(en) nach einem hier beschriebenen Verfahren, insbesondere zum Betreiben der Roboteranordnung nach einem hier beschriebenen Verfahren, vorgesehen sind bzw. verwendet werden, insbesondere hierzu abgespeichert sind bzw. werden.Accordingly, according to an embodiment of the present invention, a method for programming a process for operating the robot assembly comprises the steps:
  • - specifying the first geometric constraint, preferably by selecting from available or provided constraints and/or parameterizing a, preferably selected, constraint; and
  • - specifying at least one geometric primitive as a controllable primitive, preferably by selecting from available or provided geometric primitives and/or parameterizing a, preferably selected, geometric primitive;
and, if applicable,
  • - Specifying the connection of this primitive, for which the first geometric constraint is specified, with the controllable primitive,
preferably by appropriate programming input(s),
In one embodiment, this predetermined first geometric constraint and this specification of a geometric primitive as a controllable primitive and, if applicable, this specified link for determining the target position(s) according to a method described here, in particular for operating the robot arrangement according to a method described here, are provided or are used, in particular are or are stored for this purpose.

Nach einer Ausführung der vorliegenden Erfindung weist ein Verfahren zum Betreiben der Roboteranordnung entsprechend die Schritte auf:

  • - Ermitteln einer oder mehrerer Soll-Stellungen der Bewegungsachsen der Kinematik(en) nach einem hier beschriebenen Verfahren; und
  • - Betreiben der Roboteranordnung, insbesondere tatsächliches Kommandieren bzw. (An)Steuern von Antrieben der (realen) Roboteranordnung oder Simulieren von Bewegungen der (virtuellen) Roboteranordnung, auf Basis der ermittelten Soll-Stellung bzw. Soll-Stellungen, insbesondere zum Anfahren bzw. Einnehmen dieser Soll-Stellung(en).
According to one embodiment of the present invention, a method for operating the robot arrangement comprises the steps:
  • - Determining one or more target positions of the motion axes of the kinematics according to a method described here; and
  • - Operating the robot arrangement, in particular actually commanding or controlling drives of the (real) robot arrangement or simulating movements of the (virtual) robot arrangement, on the basis of the determined target position or positions, in particular for approaching or assuming this target position(s).

Dem liegt eine neuartige (Roboter)Prozessbeschreibung zugrunde, die anstelle der bisherigen Praxis, welche bereits von einer spezifischen Kinematik ausgeht und für diese 6D-Frames vorgibt, vorteilhaft zwei Ansätze zusammenführt:

  • - ein Prozess kann besonders gut, insbesondere rasch, einfach, zuverlässig und/oder (auch) durch Nicht-Experten, auf Basis geometrischer Zwangsbedingungen für geometrische Primitive beschrieben bzw. vorgegeben werden. So kann in einem einfachen Beispiel eine (mit einem Laserfokus oder -strahl) abzufahrende Schweißbahn auf einem Werkstück durch entsprechende geometrische Primitive bzw. Zwangsbedingungen vorgegeben werden, vorteilhafterweise unabhängig von einer konkreten Kinematik;
  • - die Umsetzung einer (entsprechenden) Bewegung von robotergeführten Werkzeugen und/oder Werkstücken kann besonders gut durch eine entsprechende Anbindung eines ((als) steuerbar (vorgegeben)en) geometrischen Primitivs an Bewegungsachsen der Kinematik bzw. wenigstens einer der Kinematiken beschrieben bzw. vorgegeben werden. So kann in vorstehendem einfachen Beispiel vorgegeben werden, ob ein Roboter ein Laserwerkzeug an einem ortsfesten Werkstück oder ein Werkstück an einem ortsfesten Laserwerkzeug vorbeiführen oder ein Roboter das Laserwerkzeug und ein anderer Roboter das Werkstück bewegen soll, welcher Robotertyp oder individuelle Roboter hierfür verwendet werden soll oder dergleichen.
This is based on a new (robot) process description, which advantageously combines two approaches instead of the previous practice, which already assumes a specific kinematics and specifies 6D frames for these:
  • - a process can be described or specified particularly well, in particular quickly, easily, reliably and/or (also) by non-experts, on the basis of geometric constraints for geometric primitives. In a simple example, a welding path to be traced (with a laser focus or beam) on a workpiece can be specified by corresponding geometric primitives or constraints, advantageously independently of a specific kinematics;
  • - the implementation of a (corresponding) movement of robot-guided tools and/or workpieces can be particularly well described or specified by a corresponding connection of a ((as) controllable (specified)) geometric primitive to movement axes of the kinematics or at least one of the kinematics. In the above simple example, it can be specified whether a robot should guide a laser tool past a stationary workpiece or a workpiece past a stationary laser tool or whether a robot should move the laser tool and another robot should move the workpiece, which robot type or individual robot should be used for this or the like.

Man erkennt bereits an obigem einfachen Beispiel Vorteile, bei der Ermittlung von Soll-Stellungen zum Betreiben der Roboteranordnung bzw. dem entsprechenden Programmieren eines Prozesses hierzu einerseits den Prozess unabhängig von der bzw. den Kinematik(en) durch geometrische Primitive und geometrische Zwangsbedingungen für diese vorzugegeben und andererseits die Soll-Stellungen auf Basis einer Vorgabe eines solchen Primitivs oder eines hiermit in vorgegebener Weise verknüpften Primitivs als steuerbares Primitiv und dessen Anbindung an die Bewegungsachsen der entsprechenden Kinematik zu ermitteln. So kann beispielsweise bei einer Verwendung einer anderen Kinematik, beispielsweise mit einer anderen Konfiguration, zum Beispiel anderen Achsabständen oder dergleichen, oder einer Modifikation dahingehend, dass ein Roboter anstelle eines Werkstücks ein Werkzeug oder anstelle eines Werkzeugs ein Werkstück führt, dieselbe Schweißbahn realisiert bzw. der entsprechende Prozess einfach (um)programmiert werden.The simple example above already shows the advantages of determining target positions for operating the robot arrangement or programming a process accordingly. On the one hand, the process can be specified independently of the kinematics(s) using geometric primitives and geometric constraints for these, and on the other hand, the target positions can be determined on the basis of a specification of such a primitive or a primitive linked to it in a predetermined manner as a controllable primitive and its connection to the movement axes of the corresponding kinematics. For example, if a different kinematics is used, for example with a different configuration, for example different axis distances or the like, or a modification such that a robot guides a tool instead of a workpiece or a workpiece instead of a tool, the same welding path can be implemented or the corresponding process can simply be (re)programmed.

Eines oder mehrere der hier genannten bzw. erfindungsgemäß verwendeten geometrischen Primitive ist/sind in einer Ausführung (jeweils) ein Punkt oder eine Linie bzw. Gerade oder eine Ebene oder ein zwei- oder dreidimensionales Koordinatensystem oder eine Halbgerade oder eine Strecke oder ein Rechteck oder ein Kreis oder eine Ellipse oder eine Kugel oder einen Zylinder oder einen Kegel oder eine Pyramide oder einen Quader oder dergleichen, wobei vorzugsweise eines oder mehrere der hier genannten bzw. erfindungsgemäß verwendeten geometrischen Primitive ein geometrisches Primitiv im kartesischen Raum ist/sind und/oder zwei oder mehr der hier genannten bzw. erfindungsgemäß verwendeten geometrischen Primitive gleichartig bzw. vom selben Typ sind, rein exemplarisch beide jeweils Linien, und/oder zwei oder mehr der hier genannten bzw. erfindungsgemäß verwendeten geometrischen Primitive ungleichartig bzw. nicht vom selben Typ sind, wiederum rein exemplarisch ein Primitiv ein Zylinder, ein anderes Primitiv eine Ebene und ein weiteres Primitiv eine Linie, beispielsweise eine Berührlinie zwischen dem Zylinder und der Ebene.One or more of the geometric primitives mentioned here or used according to the invention is/are in one embodiment (each) a point or a line or a straight line or a plane or a two- or three-dimensional coordinate system or a half-line or a segment or a rectangle or a circle or an ellipse or a sphere or a cylinder or a cone or a pyramid or a cuboid or the like, wherein preferably one or more of the geometric primitives mentioned here or used according to the invention is/are a geometric primitive in Cartesian space and/or two or more of the geometric primitives mentioned here or used according to the invention are similar or of the same type, purely by way of example both are lines, and/or two or more of the geometric primitives mentioned here or used according to the invention are dissimilar or not of the same type, again purely by way of example one primitive is a cylinder, another primitive is a plane and another primitive is a line, for example a line of contact between the cylinder and the plane.

Eine oder mehrere der hier genannten bzw. erfindungsgemäß verwendeten vorgegebenen geometrischen Zwangsbedingung und/oder Verknüpfungen umfasst/-en, vorzugsweise ist/sind, in einer Ausführung (jeweils) ein Parallelität oder ein Aufeinander-Senkrechtstehen oder ein (vorgegebener, insbesondere minimaler, maximaler oder mittlerer) Abstand oder ein (vorgegebener, insbesondere minimaler, maximaler oder mittlerer) Winkel oder ein Schneiden oder ein Tangieren bzw. nichtschneidendes Berühren oder eine Konzentrizität oder eine Lage in einem, vorzugsweise durch eine Ebene, definierten Halbraum, insbesondere auf einer vorgegebenen Seite dieser Ebene, oder eine, vorzugsweise feste bzw. unveränderliche, Pose und/oder gestattete Abweichung hiervon oder eine, vorzugsweise feste bzw. unveränderliche, Transformation und/oder gestattete Abweichung hiervon oder eine Inklusion in einem oder Exklusion aus einem Primitiv oder dergleichen. Wie insbesondere hieraus klar wird, kann in einer bevorzugten Ausführung eine Verknüpfung eine geometrische Zwangsbedingung bzw. durch eine geometrische Zwangsbedingung vorgegeben sein. Eine besonders vorteilhafte geometrische Zwangsbedingung bzw. Verknüpfung ist ein (räumliches) Zusammenfallen bzw. eine übereinstimmende Position und/oder Orientierung. Dies ist von dem hier verwendeten Begriff „Identität“ bzw. „identisch“ zu unterscheiden: wenn vorliegend von einer Identität von geometrischen Primitiven bzw. davon gesprochen wird, dass geometrische Primitive identisch sind, so handelt es sich um dasselbe bzw. ein einziges geometrisches Primitiv. Beispielsweise kann die erste geometrische Zwangsbedingung für das als steuerbares Primitiv vorgegebenen geometrischen Primitivs vorgegeben sein bzw. werden. Auf der anderen Seite kann beispielsweise ein geometrisches Primitiv als steuerbares Primitiv vorgegeben sein bzw. werden (zum Beispiel der Tool Center Point eines Roboters bzw. einer Kinematik), die erste geometrische Zwangsbedingung für ein anderes geometrisches Primitiv vorgegebenen sein bzw. werden (zum Beispiel einen Punkt auf einer Prozessbahn), und diese beiden geometrischen Primitive über die geometrische Zwangsbedingung, dass sie zusammenfallen (sollen), derart verknüpft sein bzw. werden, dass sie dieselbe Position aufweisen.One or more of the predetermined geometric constraints and/or links mentioned here or used according to the invention comprise/-, preferably is/are, in one embodiment (each) a parallelism or a mutually perpendicular position or a (predetermined, in particular minimum, maximum or average) distance or a (predetermined, in particular minimum, maximum or average) angle or an intersection or a tangent or non-intersecting touching or a concentricity or a position in a half-space, preferably defined by a plane, in particular on a given side of this plane, or a, preferably fixed or unchangeable, pose and/or permitted deviation from this or a, preferably fixed or unchangeable, transformation and/or permitted deviation from this or an inclusion in or exclusion from a primitive or the like. As is particularly clear from this, in a preferred embodiment a connection can be a geometric constraint or be specified by a geometric constraint. A particularly advantageous geometric constraint or connection is a (spatial) coincidence or a matching position and/or orientation. This is to be distinguished from the term "identity" or "identical" used here: if we speak here of an identity of geometric primitives or of geometric primitives being identical, we are talking about the same or a single geometric primitive. For example, the first geometric constraint can be or become specified for the geometric primitive specified as a controllable primitive. On the other hand, for example, a geometric primitive can be or become specified as a controllable primitive (for example the tool center point of a robot or a kinematics), the first geometric constraint can be or become specified for another geometric primitive (for example a point on a process path), and these two geometric primitives can be or become linked via the geometric constraint that they (should) coincide in such a way that they have the same position.

In einer Ausführung sind, vorzugsweise werden, ein oder mehrere der hier genannten bzw. erfindungsgemäß verwendeten geometrischen Primitive, geometrischen Zwangsbedingung und/oder Verknüpfungen, vorzugsweise durch das Vorgeben bzw. Programmieren bzw. aufgrund einer Programm(ier)eingabe, aus Gruppen ausgewählt und gegebenenfalls parametrisiert, die jeweils zwei oder mehr (verschiedene bzw. unterschiedliche) der oben genannten Elemente aufweisen, diese vorzugsweise (zur Auswahl bzw. zum Parametrisieren) zur Verfügung bzw. bereitstellen.In one embodiment, one or more of the geometric primitives, geometric constraints and/or links mentioned here or used according to the invention are, preferably, selected and optionally parameterized from groups, preferably by specifying or programming or on the basis of a programming input, which each have two or more (different or different) of the above-mentioned elements, preferably making these available or providing them (for selection or parameterization).

Solche geometrischen Primitive, geometrischen Zwangsbedingung und Verknüpfungen sind für die Beschreibung bzw. Programmierung von Roboterprozessen besonders geeignet, durch ihre Verwendung und vorzugsweise Bereitstellung bzw. Auswahl können Roboterprozessen besonders einfach, präzise, schnell und/oder zuverlässig beschrieben bzw. programmiert werden.Such geometric primitives, geometric constraints and connections are particularly suitable for the description or programming of robot processes; through their use and preferably provision or selection, robot processes can be described or programmed particularly easily, precisely, quickly and/or reliably.

In einer Ausführung werden die Soll-Stellungen auf Basis wenigstens einer Prozessbahn eines geometrischen Primitivs ermittelt, das mit dem (als) steuerbar(vorgegeben)en Primitiv und/oder dem Primitiv, für das die erste geometrische Zwangsbedingung vorgegeben ist, verknüpft oder identisch ist. In einer Ausführung ist, vorzugsweise wird, die geometrische Form und/oder eine translatorische und/oder rotatorische Geschwindigkeit und/oder eine translatorische und/oder rotatorische Beschleunigung, beispielsweise ein entsprechendes Geschwindigkeits- bzw. Beschleunigungsprofil, der Prozessbahn vorgegeben, vorzugsweise durch das Programmieren bzw. aufgrund einer Benutzerein- bzw. - vorgabe. So kann, wiederum am bereits erläuterten einfachen Beispiel, durch

  • - Vorgabe einer geometrischen Form einer Schweißbahn sowie einer translatorischen Geschwindigkeit bzw. eines Geschwindigkeitsprofils längs der Schweißbahn als Prozessbahn eines Primitivs in Form eines Punkts; und
  • - Vorgabe eines Zusammenfallens dieses Primitivs bzw. Punkts mit einem geometrischen Primitiv in Form eines TCPs, das als steuerbares Primitiv an eine Kinematik angebunden ist, als erste geometrische Zwangsbedingung
die gewünschte Schweißbahn sehr einfach, rasch und zuverlässig programmiert und gegebenenfalls für eine andere Kinematik oder ein Führen des Werkstücks statt des Werkzeugs durch den Roboter (um)programmiert werden.In one embodiment, the target positions are determined on the basis of at least one process path of a geometric primitive that is linked to or identical to the (as) controllable (specified) primitive and/or the primitive for which the first geometric constraint is specified. In one embodiment, the geometric shape and/or a translatory and/or rotary speed and/or a translatory and/or rotary acceleration, for example a corresponding speed or acceleration profile, of the process path is, preferably, specified, preferably by programming or based on a user input or specification. Thus, again using the simple example already explained, by
  • - Specification of a geometric shape of a welding path as well as a translational speed or a speed profile along the welding path as a process path of a primitive in the form of a point; and
  • - Specifying a coincidence of this primitive or point with a geometric primitive in the form of a TCP, which is connected to a kinematics as a controllable primitive, as the first geometric constraint
The desired welding path can be programmed very easily, quickly and reliably and, if necessary, (re)programmed for a different kinematics or for the workpiece to be guided by the robot instead of the tool.

In einer Ausführung wird die Soll-Stellung bzw. werden die Soll-Stellungen auf Basis wenigstens einer vorgegebenen Stopp-Bedingung ermittelt. Diese kann insbesondere das Erreichen eines Endes der Prozessbahn oder ein Überschreiten eines vorgegebenen Limits, insbesondere Zeitlimits, Relationen zwischen geometrischen Primitiven, das Empfangen von Eingangssignalen, das Ausgeben von Ausgangssignalen oder dergleichen umfassen, insbesondere sein.In one embodiment, the target position or target positions are determined on the basis of at least one predetermined stop condition. This can include, in particular, reaching an end of the process path or exceeding a predetermined limit, in particular time limits, relations between geometric primitives, receiving input signals, outputting output signals or the like.

Dadurch können Roboterprozessen besonders einfach, präzise, schnell und/oder zuverlässig programmiert bzw. Roboteranordnungen besonders einfach, präzise, schnell und/oder zuverlässig betrieben werden.This allows robot processes to be programmed particularly easily, precisely, quickly and/or reliably, and robot arrangements to be operated particularly easily, precisely, quickly and/or reliably.

Wie bereits erläutert, bietet die Aufteilung in eine Abbildung des Prozesses durch geometrische Zwangsbedingungen für geometrische Primitive und eine Umsetzung durch entsprechende Anbindung (als) steuerbar (vorgegeben)er Primitive an Kinematiken und die Zusammenführung dieser beiden Aspekte dadurch, dass steuerbare Primitive mit Primitiven, für die geometrische Zwangsbedingungen vorgegeben sind bzw. werden, identisch oder verknüpft sind, große Vorteile sowohl beim Programmieren von Roboterprozessen als auch beim Betreiben von Roboteranordnungen bzw. Ermitteln von Soll-Stellungen von Bewegungsachsen der entsprechenden Roboteranordnung hierzu, insbesondere in Hinblick auf Einfachheit, Zuverlässigkeit und/oder Geschwindigkeit.As already explained, the division into a mapping of the process by geometric constraints for geometric primitives and an implementation by appropriate connection (as) controllable (given) primitives to kinematics and the merging of these two aspects by making controllable primitives identical or similar to primitives for which geometric constraints are or will be given offers offer great advantages both in programming robot processes and in operating robot arrangements or determining target positions of movement axes of the corresponding robot arrangement, particularly with regard to simplicity, reliability and/or speed.

Entsprechend wird die Soll-Stellung bzw. bzw. werden die Soll-Stellungen in einer Weiterbildung auf Basis

  • - wenigstens einer zweiten geometrischen Zwangsbedingung, welche für wenigstens ein vorgegebenes geometrisches Primitiv vorgegeben ist; und
  • - einer Identität oder vorgegebenen Verknüpfung dieses Primitivs mit dem steuerbaren Primitiv und/oder dem Primitiv, für das die erste geometrische Zwangsbedingung vorgegeben ist,

ermittelt. Insbesondere kann also für das Primitiv, für das die erste geometrische Zwangsbedingung vorgegeben ist, wenigstens eine zweite geometrische Zwangsbedingung vorgegeben sein bzw. werden, beispielsweise zusätzlich zu einem vorgegebenen Abstand ein Aufeinander-Senkrechtstehen oder dergleichen. Zusätzlich oder alternativ kann entsprechend für das bzw. ein (als) steuerbar (vorgegeben)es Primitiv wenigstens eine zweite geometrische Zwangsbedingung vorgegeben sein bzw. werden. Auf diese Weise kann in einer Ausführung ein Programmieren von Roboterprozessen, ein Betreiben von Roboteranordnungen und/oder ein Ermitteln von Soll-Stellungen von Bewegungsachsen einer entsprechenden Roboteranordnung hierzu weiter verbessert werden, insbesondere in Hinblick auf Einfachheit, Zuverlässigkeit und/oder Geschwindigkeit.Accordingly, the target position or positions will be determined in a further training based on
  • - at least one second geometric constraint which is specified for at least one given geometric primitive; and
  • - an identity or predetermined connection of this primitive with the controllable primitive and/or the primitive for which the first geometric constraint is given,

determined. In particular, at least one second geometric constraint can be or will be specified for the primitive for which the first geometric constraint is specified, for example, in addition to a specified distance, a perpendicular position or the like. Additionally or alternatively, at least one second geometric constraint can be or will be specified for the or a (predetermined as) controllable primitive. In this way, in one embodiment, programming of robot processes, operation of robot arrangements and/or determination of target positions of movement axes of a corresponding robot arrangement can be further improved for this purpose, in particular with regard to simplicity, reliability and/or speed.

In einer Ausführung ist, in einer Weiterbildung wird, die Anbindung des (als) steuerbar (vorgegeben)en Primitivs an die Bewegungsachsen der Kinematik auf Basis einer vorgegebenen und/oder rekursiven Verkettung dieses steuerbaren Primitivs mit der Roboteranordnung ermittelt.In one embodiment, in a further development, the connection of the (predetermined as) controllable primitive to the motion axes of the kinematics is determined on the basis of a predefined and/or recursive chaining of this controllable primitive with the robot arrangement.

In einer Weiterbildung ist bzw. wird die Anbindung des steuerbaren Primitivs an die Bewegungsachsen der Kinematik auf Basis einer, in einer Ausführung rekursiven, Suche und/oder einer vorgegebenen Auswahlbedingung für Bewegungsachsen ermittelt.In a further development, the connection of the controllable primitive to the motion axes of the kinematics is or will be determined on the basis of a search, in one embodiment recursive, and/or a predefined selection condition for motion axes.

In einer Ausführung umfasst die Auswahlbedingung

  • - dem steuerbaren Primitiv nächste oder entfernteste Bewegungsachsen, insbesondere also dass die Bewegungsachsen, an die das (als) steuerbar (vorgegeben)e Primitiv angebunden ist, diesem Primitiv (kinematisch bzw. strukturell) nächste Bewegungsachsen der Kinematik oder (von) diesem Primitiv (kinematisch bzw. strukturell) entfernteste Bewegungsachsen der Kinematik sind, in einer bevorzugten Weiterbildung, dass sie die Bewegungsachsen der diesem Primitiv (kinematisch bzw. strukturell) nächsten von mehreren Kinematiken der Roboteranordnung oder die Bewegungsachsen der (von) diesem Primitiv (kinematisch bzw. strukturell) entfernteste von mehreren Kinematiken der Roboteranordnung aufweisen, vorzugsweise sind; und/oder
  • - eine Spezifikation eines Bewegungsachsentyps, insbesondere eines Kinematiktyps, oder einer Bewegungsachsenidentifikation, insbesondere einer Kinematikidentifikation.
In one embodiment, the selection condition includes
  • - the movement axes closest to or furthest from the controllable primitive, in particular that the movement axes to which the (predetermined as) controllable primitive is connected are the movement axes of the kinematics closest to this primitive (kinematically or structurally) or the movement axes of the kinematics furthest from this primitive (kinematically or structurally), in a preferred development that they have the movement axes of the kinematics closest to this primitive (kinematically or structurally) of several kinematics of the robot arrangement or the movement axes of the kinematics furthest from this primitive (kinematically or structurally); and/or
  • - a specification of a motion axis type, in particular a kinematics type, or a motion axis identification, in particular a kinematics identification.

In einer besonders bevorzugten Ausführung wird bei der Suche, ausgehend von dem (als) steuerbar (vorgegeben)en Primitiv, jeweils für ein Elternobjekt, an dem ein Kindobjekt hängt, geprüft, ob dieses Elternobjekt eine Kinematik ist bzw. Bewegungsachsen aufweist, die die vorgegebene Auswahlbedingung erfüllt/erfüllen. Die Eltern(objekt)-Kind(objekt)-Beziehung(en) zwischen (als)
steuerbar (vorgebbaren)en Primitiven und Kinematiken bzw. Bewegungsachsen ist/sind in einer Ausführung vorgegeben, beispielsweise durch entsprechende, abgespeicherte (strukturelle) Beschreibungen der Roboteranordnung oder dergleichen. Eine Verkettung eines (als) steuerbar (vorgegeben)en geometrischen Primitivs mit der Roboteranordnung kann insbesondere eine oder mehrere Eltern(objekt)-Kind(objekt)-Beziehungen aufweisen, wobei vorzugsweise ein (als) steuerbar (vorgegeben)es, an die Bewegungsachsen einer Kinematik angebundenes geometrisches Primitiv ein Kind(objekt) einer (ersten) Eltern(objekt)-Kind(objekt)-Beziehung ist und die (Bewegungsachsen der) Kinematik ein Elter(nobjekt) dieser oder einer (weiteren) Eltern(objekt)-Kind(objekt)-Beziehung ist, wobei dazwischen analog eine oder mehrere weitere Eltern(objekt)-Kind(objekt)-Beziehungen vorgesehen sein können, bei denen jeweils ein Elter(nobjekt) einer Eltern(objekt)-Kind(objekt)-Beziehung ein Kind(objekt) einer anderen Eltern(objekt)-Kind(objekt)-Beziehung ist.
In a particularly preferred embodiment, the search, starting from the (predetermined) controllable primitive, checks for each parent object to which a child object is attached whether this parent object is a kinematic or has axes of motion that fulfill(s) the predetermined selection condition. The parent (object)-child (object) relationship(s) between (predetermined)
controllable (predeterminable) primitives and kinematics or axes of motion is/are specified in an embodiment, for example by corresponding, stored (structural) descriptions of the robot arrangement or the like. A chain of a (predetermined as) controllable geometric primitive with the robot arrangement can in particular have one or more parent (object)-child (object) relationships, wherein preferably a (predetermined as) controllable geometric primitive connected to the movement axes of a kinematics is a child (object) of a (first) parent (object)-child (object) relationship and the (movement axes of the) kinematics is a parent (object) of this or a (further) parent (object)-child (object) relationship, wherein in between one or more further parent (object)-child (object) relationships can be provided analogously, in each of which a parent (object) of a parent (object)-child (object) relationship is a child (object) of another parent (object)-child (object) relationship.

Auf diese Weise kann in einer Ausführung ein Programmieren von Roboterprozessen, ein Betreiben von Roboteranordnungen und/oder ein Ermitteln von Soll-Stellungen von Bewegungsachsen einer entsprechenden Roboteranordnung hierzu weiter verbessert werden, insbesondere in Hinblick auf Einfachheit, Zuverlässigkeit und/oder Geschwindigkeit.In this way, in one embodiment, programming of robot processes, operation of robot arrangements and/or determination of target positions of motion axes of a corresponding robot arrangement can be further improved, in particular with regard to simplicity, reliability and/or speed.

In einer Ausführung ist, in einer Weiterbildung wird, wenigstens eines der mit der Roboteranordnung verketteten geometrischen Primitive als nicht durch die Kinematik beweglich vorgegeben. In einer Ausführung sind alle mit der Roboteranordnung verketteten geometrischen Primitive zunächst bzw. defaultmäßig als steuerbar vorgegeben, wobei danach eines oder mehrere dieser Primitive durch das Programmieren bzw. aufgrund einer Programm(ier)eingabe als nicht durch die Kinematik beweglich bzw. als nicht steuerbar vorgegeben werden. Umgekehrt können auch ein oder mehrere der mit der Roboteranordnung verketteten Primitive durch das Programmieren bzw. aufgrund einer Programm(ier)eingabe als steuerbar vorgegeben werden. Die Verkettung von Primitiven und der (Kinematik(en) der) Roboteranordnung ist in einer Ausführung vorgegeben, beispielsweise durch entsprechende, abgespeicherte (strukturelle) Beschreibungen der Roboteranordnung oder dergleichen, und kann insbesondere die oben genannten Eltern(objekt)-Kind(objekt)-Beziehung(en) umfassen.In one embodiment, in a further development, at least one of the geometric primitives linked to the robot arrangement is not specified as movable by the kinematics. In one embodiment, all geometric primitives linked to the robot arrangement are initially or by default specified as controllable, with one or more of these primitives then being specified as not movable by the kinematics or as not controllable by programming or due to a program input. Conversely, one or more of the primitives linked to the robot arrangement can also be specified as controllable by programming or due to a program input. The linking of primitives and the (kinematics of the) robot arrangement is specified in one embodiment, for example by corresponding, stored (structural) descriptions of the robot arrangement or the like, and can in particular include the above-mentioned parent (object)-child (object) relationship(s).

Auf diese Weise kann in einer Ausführung ein Programmieren von Roboterprozessen, ein Betreiben von Roboteranordnungen und/oder ein Ermitteln von Soll-Stellungen von Bewegungsachsen einer entsprechenden Roboteranordnung hierzu weiter verbessert werden, insbesondere in Hinblick auf Einfachheit, Zuverlässigkeit und/oder Geschwindigkeit. Allgemein kann eine hier genannte Programm(ier)eingabe eine Ein- bzw. Vorgabe durch einen Benutzer bzw. Programmierer umfassen bzw. sein.In this way, in one embodiment, programming of robot processes, operation of robot arrangements and/or determination of target positions of movement axes of a corresponding robot arrangement can be further improved, in particular with regard to simplicity, reliability and/or speed. In general, a programming input mentioned here can include or be an input or specification by a user or programmer.

Nach einer Ausführung der vorliegenden Erfindung ist ein System

  • - zum Ermitteln von Soll-Stellungen von Bewegungsachsen der Roboteranordnung, insbesondere zum Betreiben der Roboteranordnung; und/oder
  • - zum Programmieren eines Prozesses zum Betreiben der Roboteranordnung,
hard- und/oder software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet ist.According to one embodiment of the present invention, a system
  • - for determining target positions of movement axes of the robot arrangement, in particular for operating the robot arrangement; and/or
  • - for programming a process for operating the robot arrangement,
hardware and/or software, in particular programming, to carry out a method described here.

Nach einer Ausführung der vorliegenden Erfindung weist ein bzw. das System zum Ermitteln von Soll-Stellungen von Bewegungsachsen der Roboteranordnung, insbesondere zum Betreiben der Roboteranordnung, auf:

  • - Mittel zum Ermitteln einer oder mehrerer Soll-Stellungen der Bewegungsachsen der Kinematik auf Basis
  • - einer Anbindung wenigstens eines als steuerbares Primitiv vorgegebenen geometrischen Primitivs an die Bewegungsachsen der Kinematik;
  • - einer ersten geometrischen Zwangsbedingung, welche für wenigstens ein vorgegebenes geometrisches Primitiv vorgegeben ist; und
  • - einer Identität oder vorgegebenen Verknüpfung dieses Primitivs, für das die erste geometrische Zwangsbedingung vorgegeben ist, mit dem steuerbaren Primitiv;

sowie gegebenenfalls
  • - Mittel zum Betreiben der Roboteranordnung auf Basis der ermittelten Soll-Stellung bzw. Soll-Stellungen.
According to an embodiment of the present invention, a system for determining target positions of movement axes of the robot arrangement, in particular for operating the robot arrangement, comprises:
  • - Means for determining one or more target positions of the motion axes of the kinematics based on
  • - a connection of at least one geometric primitive specified as a controllable primitive to the motion axes of the kinematics;
  • - a first geometric constraint which is specified for at least one given geometric primitive; and
  • - an identity or predetermined connection of this primitive, for which the first geometric constraint is given, with the controllable primitive;

and, if applicable,
  • - Means for operating the robot arrangement on the basis of the determined target position or positions.

Nach einer Ausführung der vorliegenden Erfindung weist ein bzw. das System zum Programmieren eines Prozesses zum Betreiben der Roboteranordnung auf:

  • - Mittel zum Vorgeben wenigstens eines geometrischen Primitivs als steuerbares Primitiv; und
  • - Mittel zum Vorgeben der ersten geometrischen Zwangsbedingung.
According to an embodiment of the present invention, a system for programming a process for operating the robot arrangement comprises:
  • - means for specifying at least one geometric primitive as a controllable primitive; and
  • - Means for specifying the first geometric constraint.

In einer Ausführung weist das System bzw. sein(e) Mittel auf:

  • - Mittel zum Ermitteln der Soll-Stellungen auf Basis wenigstens einer Prozessbahn eines Primitivs, welches mit dem steuerbaren Primitiv und/oder dem Primitiv, für das die erste geometrische Zwangsbedingung vorgegeben ist, verknüpft oder identisch ist; und/oder
  • - Mittel zum Ermitteln der Soll-Stellung bzw. Soll-Stellungen auf Basis wenigstens einer vorgegebenen Stopp-Bedingung; und/oder
  • - Mittel zum Ermitteln der Soll-Stellung bzw. Soll-Stellungen auf Basis
    • - wenigstens einer zweiten geometrischen Zwangsbedingung, welche für wenigstens ein vorgegebenes geometrisches Primitiv vorgegeben ist; und
    • - einer Identität oder vorgegebenen Verknüpfung dieses Primitivs mit dem steuerbaren Primitiv und/oder dem Primitiv, für das die erste geometrische Zwangsbedingung vorgegeben ist; und/oder
  • - Mittel zum Ermitteln der Anbindung des steuerbaren Primitivs an die Bewegungsachsen der Kinematik auf Basis einer vorgegebenen und/oder rekursiven Verkettung des steuerbaren Primitivs mit der Roboteranordnung, insbesondere auf Basis einer, insbesondere rekursiven, Suche und/oder einer vorgegebenen Auswahlbedingung für Bewegungsachsen, welche vorzugsweise umfasst:
    • - dem steuerbaren Primitiv nächste oder entfernteste Bewegungsachsen; und/oder
    • - eine Spezifikation eines Bewegungsachsentyps oder einer Bewegungsachsenidentifikation; und/oder.
  • - Mittel zum Vorgeben wenigstens eines der mit der Roboteranordnung verketteten geometrischen Primitivs als nicht durch die Kinematik beweglich.
In one embodiment, the system or its means comprises:
  • - means for determining the target positions on the basis of at least one process path of a primitive which is linked to or identical with the controllable primitive and/or the primitive for which the first geometric constraint is specified; and/or
  • - means for determining the target position or target positions on the basis of at least one predetermined stop condition; and/or
  • - Means for determining the target position or positions based on
    • - at least one second geometric constraint which is specified for at least one given geometric primitive; and
    • - an identity or predetermined connection of this primitive with the controllable primitive and/or the primitive for which the first geometric constraint is specified; and/or
  • - Means for determining the connection of the controllable primitive to the movement axes of the kinematics on the basis of a predetermined and/or recursive linking of the controllable primitive with the robot arrangement, in particular on the basis of a, in particular recursive, search and/or a predetermined selection condition for movement axes, which preferably comprises:
    • - closest or most distant axes of movement to the controllable primitive; and/or
    • - a specification of a motion axis type or a motion axis identification; and/or.
  • - Means for specifying at least one of the geometric primitives linked to the robot arrangement as not movable by the kinematics.

Entsprechend umfasst in einer Ausführung das Verfahren zum Programmieren eines Prozesses zum Betreiben einer Roboteranordnung

  • - ein Vorgeben der wenigstens einen Prozessbahn eines Primitivs sowie dessen Identität oder Verknüpfung mit dem steuerbaren Primitiv und/oder dem Primitiv, für das die erste geometrische Zwangsbedingung vorgegeben ist; und/oder
  • - ein Vorgeben der wenigstens einen Stopp-Bedingung; und/oder
  • - ein Vorgeben der wenigstens einen zweiten geometrischen Zwangsbedingung für wenigstens ein geometrisches Primitiv sowie die Vorgabe dieses Primitivs, insbesondere seiner Identität oder Verknüpfung mit dem steuerbaren Primitiv und/oder dem Primitiv, für das die erste geometrische Zwangsbedingung vorgegeben ist; und/oder
  • - ein Vorgeben der Verkettung des steuerbaren Primitivs mit der Roboteranordnung, insbesondere der Auswahlbedingung für Bewegungsachsen.
Accordingly, in one embodiment, the method for programming a process for operating a robot assembly comprises
  • - specifying at least one process path of a primitive and its identity or connection with the controllable primitive and/or the primitive for which the first geometric constraint is specified; and/or
  • - specifying at least one stop condition; and/or
  • - specifying the at least one second geometric constraint for at least one geometric primitive and specifying this primitive, in particular its identity or connection with the controllable primitive and/or the primitive for which the first geometric constraint is specified; and/or
  • - specifying the linking of the controllable primitive with the robot arrangement, in particular the selection condition for motion axes.

In einer Ausführung wird bzw. ist die erste geometrische Zwangsbedingung für zwei oder mehr vorgegebene geometrische Primitive vorgegeben, wobei eines dieser wenigstens zwei Primitive, für das die erste geometrische Zwangsbedingung vorgegeben ist, mit dem wenigstens einen als steuerbares Primitiv vorgegebenen geometrischen Primitiv identisch oder (durch die bzw. mittels der (entsprechende(n)) vorgegebenen Verknüpfung) verknüpft ist bzw. wird und in einer Weiterbildung wenigstens ein anderes dieser wenigstens zwei Primitive, für die die erste geometrische Zwangsbedingung vorgegeben ist, mit einem anderen der (jeweils) als steuerbares Primitiv vorgegebenen geometrischen Primitive identisch ist.In one embodiment, the first geometric constraint is or is specified for two or more predetermined geometric primitives, wherein one of these at least two primitives for which the first geometric constraint is specified is identical to the at least one geometric primitive specified as a controllable primitive or is or is linked (by or by means of the (corresponding) predetermined link) and in a further development at least one other of these at least two primitives for which the first geometric constraint is specified is identical to another of the (respectively) predetermined geometric primitives as a controllable primitive.

Zusätzlich oder alternativ wird bzw. ist in einer Ausführung die bzw. wenigstens eine der zweite(n) geometrische(n) Zwangsbedingung(en) für zwei oder mehr vorgegebene geometrische Primitive vorgegeben, wobei eines dieser wenigstens zwei Primitive, für das die(se) zweite geometrische Zwangsbedingung vorgegeben ist, mit dem wenigstens einen als steuerbares Primitiv vorgegebenen geometrischen Primitiv und/oder dem bzw. wenigstens einem der Primitive, für das die erste geometrische Zwangsbedingung vorgegeben ist, identisch oder (durch die bzw. mittels der (entsprechende(n)) vorgegebenen Verknüpfung) verknüpft ist bzw. wird. In einer Weiterbildung ist wenigstens ein anderes dieser wenigstens zwei Primitive, für die die(se) zweite geometrische Zwangsbedingung vorgegeben ist, mit einem anderen der (jeweils) als steuerbares Primitiv vorgegebenen geometrischen Primitive identisch.Additionally or alternatively, in one embodiment, the or at least one of the second geometric constraint(s) is or is specified for two or more predetermined geometric primitives, wherein one of these at least two primitives for which this second geometric constraint(s) is specified is or is identical to the at least one geometric primitive specified as a controllable primitive and/or the or at least one of the primitives for which the first geometric constraint(s) is specified, or is or is linked (by or by means of the (corresponding) predetermined link). In a further development, at least one other of these at least two primitives for which this second geometric constraint(s) is specified is or is identical to another of the geometric primitives specified (in each case) as a controllable primitive.

In einer Ausführung werden bzw. sind wenigstens zwei geometrische Primitiv (jeweils) als steuerbares Primitiv vorgegeben und in einer Weiterbildung in der ersten und/oder der bzw. einer der zweiten geometrischen Zwangsbedingung(en) verwendet bzw. die erste und/oder die bzw. eine der zweiten geometrischen Zwangsbedingung(en jeweils) für diese wenigstens zwei (jeweils) als steuerbares Primitiv vorgegebenen geometrischen Primitive vorgegeben.In one embodiment, at least two geometric primitives (each) are specified as a controllable primitive and, in a further development, are used in the first and/or the or one of the second geometric constraint(s), or the first and/or the or one of the second geometric constraint(s) are specified for these at least two geometric primitives (each) specified as a controllable primitive.

Ein System und/oder 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, insbesondere Programmierumgebung(en), 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 die Soll-Stellung(en) von Bewegungsachsen ermitteln bzw. die Roboteranordnung betreiben kann. Ein System, Mittel bzw. Programm kann insbesondere eine Programmierumgebung zum Programmieren eines Prozesses zum Betreiben einer Roboteranordnung nach einem hier beschriebenen Verfahren umfassen, insbesondere sein. 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 system and/or 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, particularly programming environment(s). 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 determine the target position(s) of movement axes or operate the robot arrangement. A system, means or program can in particular comprise, in particular be, a programming environment for programming a process for operating a robot arrangement according to a method described here. A computer program product can in one embodiment have a, in particular computer-readable and/or non-volatile, storage medium for storing a program or instructions or with a program or instructions stored thereon, into which special. In one embodiment, execution of 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 eines hier beschriebenen 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. Ein hier genanntes Ermitteln kann insbesondere ein Berechnen mithilfe wenigstens eines Computers umfassen, insbesondere sein.In one embodiment, one or more, in particular all, steps of a method described here are fully or partially computer-implemented or one or more, in particular all, steps of the method are carried out fully or partially automatically, in particular by the system or its means. A determination mentioned here can in particular include, in particular be, a calculation using at least one computer.

In einer Ausführung weist das System die Roboteranordnung auf.In one embodiment, the system comprises the robot arrangement.

In einer Ausführung werden eine oder mehrere Soll-Stellungen vorab bzw. offline ermittelt und anschließend die Roboteranordnung auf Basis dieser ermittelten Soll-Stellung(en) betrieben. Gleichermaßen können eine oder mehrere Soll-Stellungen auch während des Betriebs der Roboteranordnung bzw. online ermittelt und die Roboteranordnung auf Basis dieser ermittelten Soll-Stellung(en) weiterbetrieben werden.In one embodiment, one or more target positions are determined in advance or offline and the robot arrangement is then operated on the basis of these determined target positions. Likewise, one or more target positions can also be determined during operation of the robot arrangement or online and the robot arrangement can continue to be operated on the basis of these determined target positions.

Wie aus vorliegender Beschreibung klar wird, werden in einer Ausführung die Stellungen der Bewegungsachsen der Kinematik auf Basis der Anbindung wenigstens eines als steuerbares Primitiv vorgegebenen geometrischen Primitivs an die Bewegungsachsen der Kinematik, der ersten geometrischen Zwangsbedingung, welche für wenigstens ein vorgegebenes geometrisches Primitiv vorgegeben ist, und der Identität oder vorgegebenen Verknüpfung dieses Primitivs, für das die erste geometrische Zwangsbedingung vorgegeben ist, mit dem steuerbaren Primitiv derart ermittelt, dass in der bzw. den Soll-Stellung(en) die erste geometrische Zwangsbedingung erfüllt ist, vorzugsweise durch einen sogenannten „constraint solver“ oder dergleichen und/oder derart, dass in der bzw. den Soll-Stellung(en) auch die zweite(n) geometrische(n) Zwangsbedingung(en) erfüllt ist/sind und/oder dass das bzw. die Primitiv(e), für das bzw. die (jeweils) eine Prozessbahn vorgegeben ist, diese durch Anfahren der Soll-Stellungen abfahren und/oder derart, dass dabei das bzw. die (als) steuerbar (vorgegeben)en Primitiv(e) durch die Bewegungsachsen bewegt werden, an die es bzw. sie angebunden ist/sind, und/oder dass die Soll-Stellungen verändert werden, bis wenigstens eine der vorgegebenen Stopp-Bedingungen erfüllt ist.As is clear from the present description, in one embodiment the positions of the axes of motion of the kinematics are determined on the basis of the connection of at least one geometric primitive specified as a controllable primitive to the axes of motion of the kinematics, the first geometric constraint, which is specified for at least one specified geometric primitive, and the identity or specified connection of this primitive, for which the first geometric constraint is specified, with the controllable primitive in such a way that the first geometric constraint is fulfilled in the target position(s), preferably by a so-called "constraint solver" or the like and/or in such a way that the second geometric constraint(s) is/are also fulfilled in the target position(s) and/or that the primitive(s) for which a process path is specified (respectively) travels along this path by approaching the target positions and/or in such a way that that the primitive(s) (predetermined as) controllable are moved by the movement axes to which it(they) is/are connected and/or that the target positions are changed until at least one of the predefined stop conditions is fulfilled.

In einer Ausführung umfasst ein bzw. das Verfahren zum Ermitteln von Soll-Stellungen von Bewegungsachsen einer Roboteranordnung auch ein hier beschriebenes Verfahren zum Programmieren eines Prozesses zum Betreiben der Roboteranordnung. In einer Ausführung umfasst ein bzw. das Verfahren zum Betreiben einer Roboteranordnung auch ein hier beschriebenes Verfahren zum Programmieren eines Prozesses zum Betreiben der Roboteranordnung.In one embodiment, a method for determining target positions of movement axes of a robot arrangement also includes a method described here for programming a process for operating the robot arrangement. In one embodiment, a method for operating a robot arrangement also includes a method described here for programming a process for operating the robot arrangement.

Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:

  • 1: ein System zum Betreiben einer Roboteranordnung nach einer Ausführung der vorliegenden Erfindung, und
  • 2: ein Verfahren zum Betreiben der Roboteranordnung nach einer Ausführung der vorliegenden Erfindung.
Further advantages and features emerge from the subclaims and the embodiments. This shows, partly schematically:
  • 1 : a system for operating a robot arrangement according to an embodiment of the present invention, and
  • 2 : a method for operating the robot assembly according to an embodiment of the present invention.

1, 2 zeigen ein System bzw. Verfahren zum Betreiben einer Roboteranordnung nach einer Ausführung der vorliegenden Erfindung. 1 , 2 show a system or method for operating a robot assembly according to an embodiment of the present invention.

Die Roboteranordnung weist exemplarisch eine Kinematik in Form eines Roboterarms 1 vom Typ Agilus mit Bewegungsachsen A1, ..., A6 und einen Computer 2 zum Programmieren eines Prozesses sowie zum Steuern des realen Roboterarms 1 oder Simulieren von Bewegungen des virtuellen Roboterarms 1 auf. Natürlich kann das Programm auch mit einem oder mehreren Computern erstellt und der Roboterarm auf Basis des erstellten Programms durch einen oder mehrere andere Computer gesteuert bzw. seine Bewegungen simuliert werden.The robot arrangement has, by way of example, kinematics in the form of a robot arm 1 of the Agilus type with movement axes A1, ..., A6 and a computer 2 for programming a process and for controlling the real robot arm 1 or simulating movements of the virtual robot arm 1. Of course, the program can also be created with one or more computers and the robot arm can be controlled or its movements simulated by one or more other computers on the basis of the created program.

Die Erfindung wird exemplarisch anhand eines Beispielprozesses erläutert, bei dem der Punkt „TCP“ des Werkzeuges „Tool“ sich entlang einer Linie bewegen soll, wobei nur die Translation der Bewegung entscheidend ist. Am Roboter „Agilus“ ist das Werkzeug „Tool“ angebracht, welches den Punkt „TCP“ enthält.The invention is explained using an example process in which the point “TCP” of the tool “Tool” is to move along a line, whereby only the translation of the movement is decisive. The tool “Tool” is attached to the robot “Agilus”, which contains the point “TCP”.

In einem Schritt S10 (vgl. 2) gibt ein Programmierer durch entsprechende Programm(ier)eingaben die oben genannte Verkettung des geometrischen Primitivs „TCP“ mit der Roboteranordnung „Agilus“ vor („TCP“ = Kind von „Tool“, „Tool“ Kind von „Agilus“).In a step S10 (cf. 2 ), a programmer specifies the above-mentioned concatenation of the geometric primitive “TCP” with the robot arrangement “Agilus” by means of appropriate programming inputs (“TCP” = child of “Tool”, “Tool” child of “Agilus”).

In einem Schritt S20 gibt der Programmierer durch entsprechende Programm(ier)eingaben eine Prozessbahn vor, beispielsweise in der Form

  • Position[0] := -0,6 + Time * 0,2
  • Position[1] := 1,2
  • Position[2] := 1,2
  • P1 := CreatePoint(„P1"; Position);
In a step S20, the programmer specifies a process path through appropriate programming inputs, for example in the form
  • Position[0] := -0.6 + Time * 0.2
  • Position[1] := 1,2
  • Position[2] := 1,2
  • P1 := CreatePoint(“P1”; Position);

In einem Schritt S30 gibt der Programmierer durch entsprechende Programm(ier)eingaben eine erste geometrische Zwangsbedingung vor, beispielsweise in der Form

  • Coincident(P1, Tool.TCP)
die ein Zusammenfallen (der (räumlichen) Positionen) des geometrischen Primitivs „P1“, für das die Prozessbahn vorgegeben wurde, mit dem geometrischen Primitiv „TCP“ beschreibt.In a step S30, the programmer specifies a first geometric constraint by means of appropriate programming inputs, for example in the form
  • Coincident(P1, Tool.TCP)
which describes a coincidence (of the (spatial) positions) of the geometric primitive “P1”, for which the process path was specified, with the geometric primitive “TCP”.

In einem Schritt S40 gibt der Programmierer durch entsprechende Programm(ier)eingaben eine Stopp-Bedingung vor, beispielsweise in dem er in einem entsprechenden Feld einer Programmierumgebung (zur Eingabe von Stopp-Bedingungen) einträgt

  • Position[0] > -0,1
In a step S40, the programmer specifies a stop condition by means of appropriate programming inputs, for example by entering in a corresponding field of a programming environment (for entering stop conditions)
  • Position[0] > -0.1

In einem Schritt S50 gibt der Programmierer durch entsprechende Programm(ier)eingaben das geometrischen Primitiv „TCP“ als steuerbares Primitiv vor, beispielsweise in dem er in einem entsprechenden Feld der Programmierumgebung (zur Eingabe von steuerbaren Primitiven) einträgt

  • Tool.TCP
In a step S50, the programmer specifies the geometric primitive “TCP” as a controllable primitive by means of appropriate programming inputs, for example by entering in a corresponding field of the programming environment (for entering controllable primitives)
  • Tool.TCP

In der oben erläuterten exemplarischen Prozessbeschreibung wird also, um die Bewegung des Punktes „TCP“ zu realisieren, zuerst eine Prozessbahn mittels eines beweglichen Punktes „P1“ (= Primitiv) beschrieben, welcher sich - durch Änderung der Werte in „Position[0]“ - über die Zeit („Time“) entlang einer Strecke bewegt. Danach werden die beiden geometrischen Primitive bzw. Punkte mit dem geometrischen Zwangsbedingung „Coincident“ verknüpft, sodass diese ihre Positionen während des Prozesses immer übereinstimmen bzw. sie immer zusammenfallen. Die Stopp-Bedingung zur Beendigung der Prozessbeschreibung wird ausgelöst, sobald der bewegliche Punkt das definierte Ende der Strecke erreicht hat. Zusätzlich ist der Punkt „TCP“ als steuerbares Primitiv vorgegeben bzw. gekennzeichnet, sodass dieser seine Pose mittels einer Kinematik ändern kann.In the exemplary process description explained above, in order to realize the movement of the point "TCP", a process path is first described using a movable point "P1" (= primitive), which moves along a distance over time ("Time") by changing the values in "Position[0]". The two geometric primitives or points are then linked with the geometric constraint "Coincident" so that their positions always match or coincide during the process. The stop condition for ending the process description is triggered as soon as the movable point has reached the defined end of the distance. In addition, the point "TCP" is specified or marked as a controllable primitive so that it can change its pose using kinematics.

Die Roboterbewegung bzw. Soll-Stellungen für den oben beschriebenen Beispielprozess werden wie folgt ermittelt. Zunächst wird, da defaultmäßig oder durch entsprechende Programm(ier)eingaben als Suchmodus bzw. Auswahlbedingung „nächste Kinematik“ vorgegeben ist, in einem Schritt S60 die nächste Kinematik vom steuerbaren Primitiv „TCP“ aus gesucht. Hierzu wird zunächst überprüft, ob das Elternobjekt „Tool“ des Kindobjekts „TCP“ (bereits) eine Kinematik ist. Da dies nicht der Fall ist, wird als nächstes überprüft, ob das Elternobjekt „Agilus“ des Kindobjekts „Tool“ eine Kinematik ist. Da dies der Fall ist, wird die Kinematik „Agilus“ für das Bewegen des (als) steuerbar (vorgegeben)en Primitvs „TCP“ verwendet bzw. Soll-Stellungen seiner Bewegungsachsen ermittelt.The robot movement or target positions for the example process described above are determined as follows. Firstly, since "next kinematics" is specified as the search mode or selection condition by default or through corresponding programming inputs, the next kinematics from the controllable primitive "TCP" is searched for in a step S60. To do this, it is first checked whether the parent object "Tool" of the child object "TCP" is (already) a kinematics. Since this is not the case, the next step is to check whether the parent object "Agilus" of the child object "Tool" is a kinematics. Since this is the case, the kinematics "Agilus" is used to move the (specified as) controllable primitive "TCP" or to determine the target positions of its movement axes.

In einem Schritt S70 werden nun zyklisch die Achswerte bzw. Soll-Stellungen der Bewegungsachsen A1, ..., A6 von Agilus ermittelt. Hierzu wird jeweils die Position des des beweglichen Punktes P1 berechnet und dann die Achswerte von Agilus so berechnet, dass die geometrisches Zwangsbedingung „Coincident“ erfüllt ist, d.h. die Position des geometrischen Primitivs „TCP“ gleich der Position des geometrischen Primitivs „P1“ ist, beispielsweise mit einem sogenannten „constraint solver“ oder dergleichen. Dann werden die so berechneten Achswerte zur Bewegungsliste des Agilus hinzugefügt. Die Stopp-Bedingung wird überprüft und die zyklische Berechnung abgebrochen, falls der x-Wert des Punktes „P1“ größer als -0.1 ist.In a step S70, the axis values or target positions of the movement axes A1, ..., A6 are now determined cyclically by Agilus. To do this, the position of the moving point P1 is calculated and then the axis values are calculated by Agilus so that the geometric constraint "coincident" is fulfilled, i.e. the position of the geometric primitive "TCP" is equal to the position of the geometric primitive "P1", for example with a so-called "constraint solver" or the like. The axis values calculated in this way are then added to the movement list of Agilus. The stop condition is checked and the cyclic calculation is aborted if the x-value of the point "P1" is greater than -0.1.

Die so generierte Bewegungsliste kann in einem Schritt S80 durch Steuern des realen Roboters oder Simulieren der Bewegung des virtuellen Roboters abgefahren werden.The motion list generated in this way can be executed in a step S80 by controlling the real robot or simulating the movement of the virtual robot.

Die Schritte S10-S50 illustrieren ein Verfahren zum Programmieren des Prozesses zum Betreiben der Roboteranordnung nach einer Ausführung der vorliegenden Erfindung, die Schritte S60, S70 oder Schritt S70 ein Verfahren zum Ermitteln von Soll-Stellungen der Bewegungsachsen der Kinematik 1 der Roboteranordnung nach einer Ausführung der vorliegenden Erfindung und die Schritte S60-S80 oder S70, S80 ein Verfahren zum Betreiben der Roboteranordnung nach einer Ausführung der vorliegenden Erfindung.Steps S10-S50 illustrate a method for programming the process for operating the robot arrangement according to an embodiment of the present invention, steps S60, S70 or step S70 illustrate a method for determining target positions of the movement axes of the kinematics 1 of the robot arrangement according to an embodiment of the present invention, and steps S60-S80 or S70, S80 illustrate a method for operating the robot arrangement according to an embodiment of the present invention.

In einem anderen Beispiel eines Prozesses „Sprühen eines Werkstücks“ kann zum Beispiel eine Rotationsachse eines Sprühkopfs immer einen Punkt auf einer Werkstückoberfläche schneiden und ein Austrittspunkt am Sprühkopf auf der Rotationsachse von diesem Schnittpunkt immer einen definierten Abstand besitzen, beispielsweise zwischen 5 und 10 cm. Mittels Prozessbahnen ist es möglich, geometrische Primitive über die Zeit zu verändern, wodurch Prozesse realisiert werden können, in denen geometrische Constraints über einen längeren Zeitraum eingehalten werden müssen. Im genannten Beispiel würde der Punkt auf der Werkstückoberfläche kontinuierlich durch die Prozessbahn verändert. Als Stopp-Bedingung könnte in dem Sprühbeispiel das (Erreichen des) Ende(s) der Prozessbahn sein. Über die Verwendung der steuerbaren Primitive kann definiert werden, welche Primitive sich durch Kinematiken bewegen dürfen, was für die Berechnung der Roboterbewegungen berücksichtigt wird. Gleichzeitig wird die Auflösung der Kinematiken in den steuerbaren Primitiven definiert, beispielsweise durch Auswahl der nächsten Kinematik, die mit dem Primitiv verbunden ist. Hierdurch ist es möglich, dass die Beschreibung von Prozessen unabhängig von Kinematiken wird. Im Sprühbeispiel könnte etwa definiert werden, dass nicht der Sprühkopf sondern der Punkt auf dem Werkstück, welches von einem Roboter gegriffen wird, sich bewegen soll. Dadurch bleibt der Sprühkopf immer an der gleichen Stelle, selbst wenn dieser mit einer Kinematik verbunden ist.In another example of a process "spraying a workpiece", for example, a rotation axis of a spray head can always intersect a point on a workpiece surface and an exit point on the spray head on the rotation axis can always have a defined distance from this intersection point, for example between 5 and 10 cm. Using process paths, it is possible to change geometric primitives over time, which makes it possible to implement processes in which geometric constraints must be adhered to over a longer period of time. In the example mentioned, the point on the workpiece surface would be continuously changed by the process path. The stop condition in the spray example could be (reaching) the end of the process path. Using the controllable primitives, it can be defined which primitives tive can move through kinematics, which is taken into account when calculating the robot movements. At the same time, the resolution of the kinematics is defined in the controllable primitives, for example by selecting the next kinematics that is connected to the primitive. This makes it possible for the description of processes to become independent of kinematics. In the spray example, it could be defined that not the spray head but the point on the workpiece that is gripped by a robot should move. This means that the spray head always stays in the same place, even if it is connected to a kinematics.

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, statt dass erst die komplette Roboterbewegung bzw. eine entsprechende Bewegungsliste berechnet wird, in jedem Zyklustakt die Achswerte für die Roboter berechnet und diese direkt an die Roboter geschickt und dadurch gegebenenfalls vorteilhaft auf Signale von Sensoren direkt reagiert werden.In particular, instead of first calculating the complete robot movement or a corresponding movement list, the axis values for the robots can be calculated in each cycle and sent directly to the robots, thereby advantageously reacting directly to signals from sensors.

Außerdem sei darauf hingewiesen, dass es sich bei den exemplarischen Ausführungen lediglich um Beispiele handelt, die den Schutzbereich, die Anwendungen und den Aufbau in keiner Weise einschränken sollen.Furthermore, it should be noted that the exemplary embodiments are merely examples and are not intended to limit the scope of protection, applications and structure in any way.

Bezugszeichenlistelist of reference symbols

11
Roboterarm Agilus (Kinematik)Agilus robot arm (kinematics)
22
Computercomputer
A1, ..., A6A1, ..., A6
Bewegungsachsenaxes of movement

Claims (12)

Verfahren zum Ermitteln von Soll-Stellungen von Bewegungsachsen einer Roboteranordnung, die wenigstens eine Kinematik (1) mit mehreren Bewegungsachsen (A1-A6) aufweist, wobei das Verfahren aufweist: - Ermitteln (S70) einer oder mehrerer Soll-Stellungen der Bewegungsachsen der Kinematik auf Basis - einer Anbindung wenigstens eines als steuerbares Primitiv vorgegebenen geometrischen Primitivs an die Bewegungsachsen der Kinematik; - einer ersten geometrischen Zwangsbedingung, welche für wenigstens ein vorgegebenes geometrisches Primitiv vorgegeben ist; und - einer Identität oder vorgegebenen Verknüpfung dieses Primitivs, für das die erste geometrische Zwangsbedingung vorgegeben ist, mit dem steuerbaren Primitiv; wobei die Soll-Stellungen auf Basis wenigstens einer Prozessbahn eines geometrischen Primitivs ermittelt werden, welches mit dem steuerbaren Primitiv und/oder dem Primitiv, für das die erste geometrische Zwangsbedingung vorgegeben ist, verknüpft oder identisch ist; und wobei die Soll-Stellung bzw. Soll-Stellungen auf Basis wenigstens einer vorgegebenen Stopp-Bedingung ermittelt wird bzw. werden.Method for determining target positions of movement axes of a robot arrangement which has at least one kinematics (1) with several movement axes (A1-A6), the method comprising: - determining (S70) one or more target positions of the movement axes of the kinematics on the basis of - a connection of at least one geometric primitive specified as a controllable primitive to the movement axes of the kinematics; - a first geometric constraint which is specified for at least one specified geometric primitive; and - an identity or specified link of this primitive, for which the first geometric constraint is specified, with the controllable primitive; wherein the target positions are determined on the basis of at least one process path of a geometric primitive which is linked to or identical with the controllable primitive and/or the primitive for which the first geometric constraint is specified; and wherein the target position or positions is or are determined on the basis of at least one predetermined stop condition. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Soll-Stellung bzw. Soll-Stellungen auf Basis - wenigstens einer zweiten geometrischen Zwangsbedingung, welche für wenigstens ein vorgegebenes geometrisches Primitiv vorgegeben ist; und - einer Identität oder vorgegebenen Verknüpfung dieses Primitivs mit dem steuerbaren Primitiv und/oder dem Primitiv, für das die erste geometrische Zwangsbedingung vorgegeben ist, ermittelt wird bzw. werden.procedure according to claim 1 , characterized in that the target position or target positions are determined on the basis of - at least one second geometric constraint which is specified for at least one predetermined geometric primitive; and - an identity or predetermined connection of this primitive with the controllable primitive and/or the primitive for which the first geometric constraint is specified. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Anbindung des steuerbaren Primitivs an die Bewegungsachsen der Kinematik auf Basis einer vorgegebenen und/oder rekursiven Verkettung des steuerbaren Primitivs mit der Roboteranordnung ermittelt ist.Method according to one of the preceding claims, characterized in that the connection of the controllable primitive to the movement axes of the kinematics is determined on the basis of a predetermined and/or recursive chaining of the controllable primitive with the robot arrangement. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die Anbindung des steuerbaren Primitivs an die Bewegungsachsen der Kinematik auf Basis einer Suche und/oder einer vorgegebenen Auswahlbedingung für Bewegungsachsen ermittelt ist.Method according to the preceding claim, characterized in that the connection of the controllable primitive to the motion axes of the kinematics is determined on the basis of a search and/or a predetermined selection condition for motion axes. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die Anbindung des steuerbaren Primitivs an die Bewegungsachsen der Kinematik auf Basis einer rekursiven Suche ermittelt ist.Method according to the preceding claim, characterized in that the connection of the controllable primitive to the movement axes of the kinematics is determined on the basis of a recursive search. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass die Auswahlbedingung - dem steuerbaren Primitiv nächste oder entfernteste Bewegungsachsen; und/oder - eine Spezifikation eines Bewegungsachsentyps oder einer Bewegungsachsenidentifikation umfasst.procedure according to claim 4 or 5 , characterized in that the selection condition comprises - the closest or most distant motion axes to the controllable primitive; and/or - a specification of a motion axis type or a motion axis identification. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eines der mit der Roboteranordnung verketteten geometrischen Primitive als nicht durch die Kinematik beweglich vorgebbar ist.Method according to one of the preceding claims, characterized in that at least one of the robot arrangement linked geometric primitives cannot be specified as movable by the kinematics. Verfahren zum Betreiben einer Roboteranordnung, die wenigstens eine Kinematik mit mehreren Bewegungsachsen aufweist, wobei das Verfahren die Schritte: - Ermitteln einer oder mehrerer Soll-Stellungen der Bewegungsachsen der Kinematik nach einem Verfahren nach einem der vorhergehenden Ansprüche; und - Betreiben der Roboteranordnung auf Basis der ermittelten Soll-Stellung bzw. Soll-Stellungen; aufweist.Method for operating a robot arrangement which has at least one kinematics with several axes of movement, the method comprising the steps of: - determining one or more target positions of the axes of movement of the kinematics according to a method according to one of the preceding claims; and - operating the robot arrangement on the basis of the determined target position or target positions. Verfahren zum Programmieren eines Prozesses zum Betreiben, nach dem vorhergehenden Anspruch, einer Roboteranordnung, wobei das Verfahren die Schritte: - Vorgeben wenigstens eines geometrischen Primitivs als steuerbares Primitiv; und - Vorgeben der ersten geometrischen Zwangsbedingung; aufweist.Method for programming a process for operating, according to the preceding claim, a robot arrangement, the method comprising the steps of: - specifying at least one geometric primitive as a controllable primitive; and - specifying the first geometric constraint;. System zum Ermitteln von Soll-Stellungen von Bewegungsachsen einer Roboteranordnung, die wenigstens eine Kinematik mit mehreren Bewegungsachsen aufweist, wobei das System zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche 1-7 eingerichtet ist.System for determining target positions of movement axes of a robot arrangement which has at least one kinematics with several movement axes, wherein the system is designed to carry out a method according to one of the preceding Claims 1 - 7 is set up. System nach Anspruch 10, dadurch gekennzeichnet, dass es zum Betreiben nach Anspruch 8 und/oder zum Programmieren nach Anspruch 9 eingerichtet ist.system according to claim 10 , characterized in that it is designed to operate according to claim 8 and/or for programming according to claim 9 is set up. 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 10 oder 11 den oder die Computer oder das System dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 9 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 10 or 11 cause the computer or systems to perform a process according to any of the Claims 1 until 9 to carry out.
DE102023206924.5A 2023-07-20 2023-07-20 Determining target positions of motion axes of a robot arrangement Active DE102023206924B3 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102023206924.5A DE102023206924B3 (en) 2023-07-20 2023-07-20 Determining target positions of motion axes of a robot arrangement
PCT/EP2024/069201 WO2025016777A1 (en) 2023-07-20 2024-07-08 Determination of target positions of movement axes of a robot assembly

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102023206924.5A DE102023206924B3 (en) 2023-07-20 2023-07-20 Determining target positions of motion axes of a robot arrangement

Publications (1)

Publication Number Publication Date
DE102023206924B3 true DE102023206924B3 (en) 2024-10-31

Family

ID=91856214

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023206924.5A Active DE102023206924B3 (en) 2023-07-20 2023-07-20 Determining target positions of motion axes of a robot arrangement

Country Status (2)

Country Link
DE (1) DE102023206924B3 (en)
WO (1) WO2025016777A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2303521B1 (en) 2008-10-06 2012-01-04 KUKA Roboter GmbH Industrial robot and path planning method for controlling the movement of an industrial robot
DE102015204641A1 (en) 2014-06-03 2015-12-03 ArtiMinds Robotics GmbH Method and system for programming a robot
DE102015115229B4 (en) 2014-09-11 2017-03-23 Denso Corporation Positioning controller
DE102020209511B3 (en) 2020-07-28 2021-08-19 ArtiMinds Robotics GmbH Method and system for determining optimized program parameters for a robot program
US20210394452A1 (en) 2020-06-23 2021-12-23 Continuous Composites Inc. Systems and methods for controlling additive manufacturing
US20230027130A1 (en) 2021-07-21 2023-01-26 Omnirobotic Inc Method and server for calculating a trajectory of an articulated arm of a robot

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975856A (en) * 1986-02-18 1990-12-04 Robotics Research Corporation Motion controller for redundant or nonredundant linkages
DE102009007026A1 (en) * 2009-02-02 2010-08-05 Kuka Roboter Gmbh Control and control method for a manipulator

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2303521B1 (en) 2008-10-06 2012-01-04 KUKA Roboter GmbH Industrial robot and path planning method for controlling the movement of an industrial robot
DE102015204641A1 (en) 2014-06-03 2015-12-03 ArtiMinds Robotics GmbH Method and system for programming a robot
DE102015204641B4 (en) * 2014-06-03 2021-03-25 ArtiMinds Robotics GmbH Method and system for programming a robot
DE102015115229B4 (en) 2014-09-11 2017-03-23 Denso Corporation Positioning controller
US20210394452A1 (en) 2020-06-23 2021-12-23 Continuous Composites Inc. Systems and methods for controlling additive manufacturing
DE102020209511B3 (en) 2020-07-28 2021-08-19 ArtiMinds Robotics GmbH Method and system for determining optimized program parameters for a robot program
US20230027130A1 (en) 2021-07-21 2023-01-26 Omnirobotic Inc Method and server for calculating a trajectory of an articulated arm of a robot

Also Published As

Publication number Publication date
WO2025016777A1 (en) 2025-01-23

Similar Documents

Publication Publication Date Title
EP2285537B1 (en) Device and method for the computer-assisted generation of a manipulator track
DE112010000775B4 (en) INDUSTRIAL ROBOT SYSTEM
EP2418555B1 (en) Offline programming method of a NC-powered manipulator
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
DE102015107436B4 (en) Trainable path control
DE102014103738B3 (en) VISUAL TROUBLESHOOTING FOR ROBOTIC TASKS
DE602006000648T2 (en) Offline teaching device for a robot
DE102019205651B3 (en) Method and system for carrying out robot applications
DE102017001131B4 (en) Method and system for operating a robot
DE112014006610B4 (en) Robot control device and robot control method
EP3434424A1 (en) Efficient programming of robots for processing of workpieces with various variants
DE102018107864B4 (en) Offline programming device and method with the function of generating a program for detecting a workpiece position by means of a contact sensor
EP3227061A1 (en) Method for motion simulation of a manipulator
DE112019007579T5 (en) Numerical control device and machine learning device
DE102015009815A1 (en) Method for controlling a mobile redundant robot
DE10393527T5 (en) Systems and methods for displaying complex n-curves for direct control of tool motion
EP3569367A1 (en) Computer-aided detection of a movement of a device
EP3812106B1 (en) Robot assembly, method for operating the robot assembly, computer program and machine readable storage medium
DE102012022190B4 (en) Inverse kinematics
DE112022000487T5 (en) Command generating device and computer program
DE102023206924B3 (en) Determining target positions of motion axes of a robot arrangement
DE102018209870B3 (en) A method and system for transferring an end effector of a robot between an end effector pose and another end effector pose
DE112022007935T5 (en) DEVICE, METHOD AND COMPUTER PROGRAM FOR ADJUSTING THE POSITION OF A ROBOT
DE112022006565T5 (en) Robot control device, numerical control system and numerical control method

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
R020 Patent grant now final