Determination of target positions of movement axes of a robot assembly

EP4747046A1Pending Publication Date: 2026-05-27KUKA DEUT GMBH

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
KUKA DEUT GMBH
Filing Date
2024-07-08
Publication Date
2026-05-27

Smart Images

  • Figure EP2024069201_23012025_PF_FP_ABST
    Figure EP2024069201_23012025_PF_FP_ABST
Patent Text Reader

Abstract

The invention relates to a method for determining target positions of movement axes of a robot assembly which has at least one kinematic system (1) with a plurality of movement axes (A1-A6), said method comprising: determining (S70) one or more target positions of the movement axes of the kinematic system on the basis of a) a connection of at least one geometric primitive, specified as a controllable primitive, to the movement axes of the kinematic system, 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, to the controllable primitive. The invention also relates to a method for operating the robot assembly, a method for programming a process for operating the robot assembly, a system and a computer program (product).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Description

[0002] Determining target positions of motion axes of a robot arrangement

[0003] The present invention relates to a method for determining target positions of movement axes of a robot arrangement which has one or more kinematics with (each) several movement 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.

[0004] In industry, processes performed 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 such as speed, acceleration or smoothing 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 controller into individual target axis positions for each point in time, resulting in an axis-specific movement for the robot, which is then executed by the robot. Analogously, instead of a Cartesian path, a path in axis space can also be specified using PTP movement.

[0005] An object of an embodiment of the present invention is to improve the determination of target positions of movement axes of a robot arrangement and / or the operation of a robot arrangement and / or programming of a process for operating a robot arrangement.

[0006] This object is achieved by a method having the features of claim 1, 9 and 10, respectively. Claims 11 and 12 protect a system, computer program, or computer program product for carrying out a method described here. The subclaims relate to advantageous developments. According to one embodiment of the present invention, a robot arrangement has one or more, preferably separate or spaced-apart, kinematics which, in one 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 within the meaning of the present invention preferably comprises 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 within the meaning of the present invention can comprise, in particular, simulating movements of the (virtual) robot arrangement.

[0007] 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 in dependence on:

[0008] - 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;

[0009] - 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, is implemented in one execution; and

[0010] - an identity or predetermined link between this primitive, for which the first geometric constraint is specified, and the controllable primitive. Accordingly, according to one embodiment of the present invention, a method for programming a process for operating the robot assembly comprises the steps of:

[0011] - specifying the first geometric constraint, preferably by selecting from available or provided constraints and / or parameterizing a preferably selected constraint; and

[0012] - 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 optionally

[0013] - Predetermining the link between this primitive, for which the first geometric constraint is specified, and the controllable primitive, preferably in each case by means of corresponding programming input(s), wherein in one embodiment this predefined first geometric constraint and this specification of a geometric primitive as a controllable primitive and optionally this predefined link are provided or used 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, in particular are or are stored for this purpose.

[0014] According to one embodiment of the present invention, a method for operating the robot assembly comprises the steps of:

[0015] - Determining one or more target positions of the movement axes of the kinematics according to a method described here; and

[0016] - 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(s), in particular for approaching or assuming this target position(s).

[0017] This is based on a novel (robot) process description that advantageously combines two approaches, instead of the previous practice, which already assumes specific kinematics and specifies 6D frames for these processes: - a process can be described or specified particularly well, particularly quickly, easily, reliably, and / or (even) by non-experts, based on geometric constraints for geometric primitives. Thus, in a simple example, a welding path to be traced on a workpiece (with a laser focus or beam) can be specified by corresponding geometric primitives or constraints, advantageously independent of specific kinematics;

[0018] - 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 (specified as) controllable geometric primitive to movement axes of the kinematics or at least one of the kinematics. Thus, 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 one robot should move the laser tool and another robot the workpiece, which robot type or individual robot should be used for this purpose, or the like.

[0019] 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, and on the other hand, the target positions can be determined based on the 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, when using different kinematics, 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 realized.the corresponding process can simply be (re)programmed.

[0020] 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 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 lines, and / or two or more of the geometric primitives mentioned here or used according to the invention are dissimilar orare not of the same type, again purely exemplary, one primitive is a cylinder, another primitive is a plane, and another primitive is a line, for example a contact line between the cylinder and the plane.

[0021] One or more of the predetermined geometric constraints and / or links mentioned here or used according to the invention comprise / comprise, preferably is / are, in one embodiment (in each case) a parallelism or a mutual perpendicularity 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 tangency or non-intersecting contact or a concentricity or a position in a half-space, preferably defined by a plane, in particular on a predetermined side of this plane, or a, preferably fixed or unchangeable, pose and / or permitted deviation therefrom or a, preferably fixed or unchangeable, transformation and / or permitted deviation therefrom or an inclusion in or exclusion from a primitive or the like.As is particularly clear from this, in a preferred embodiment a link can be a geometric constraint or can be specified by a geometric constraint. A particularly advantageous geometric constraint or link 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, then we are talking about the same or a single geometric primitive. For example, the first geometric constraint can be or can be specified for the geometric primitive specified as a controllable primitive. On the other hand, a geometric primitive can be or can be specified as a controllable primitive (e.g. the tool center point of a robot ora kinematics), the first geometric constraint for another geometric primitive is or will be specified (for example a point on a process path), and these two geometric primitives are or will be linked via the geometric constraint that they (should) coincide in such a way that they have the same position.

[0022] 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 based on 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).

[0023] Such geometric primitives, geometric constraints and links 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.

[0024] In one embodiment, the target positions are determined based on at least one process path of a geometric primitive that is linked to or identical to the (predetermined as) controllable primitive and / or the primitive for which the first geometric constraint is specified. In one embodiment, the geometric shape and / or a translational and / or rotational speed and / or a translational and / or rotational 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 - specifying a geometric shape of a welding path and 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

[0025] - By 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, the desired welding path can be programmed very easily, quickly and reliably as the first geometric constraint and, if necessary, can be (re)programmed for a different kinematics or for the workpiece to be guided by the robot instead of the tool.

[0026] In one embodiment, the target position(s) is / are determined based on at least one predefined stop condition. This can include, in particular, reaching the end of the process path or exceeding a predefined limit, in particular time limits, relations between geometric primitives, receiving input signals, outputting output signals, or the like.

[0027] 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.

[0028] As already explained, the division into a mapping of the process by geometric constraints for geometric primitives and an implementation by correspondingly linking (as) controllable (given primitives to kinematics and the merging of these two aspects by making controllable primitives identical or linked to primitives for which geometric constraints are or will be given, offers great advantages both in the programming of robot processes and in the operation of robot arrangements or determining target positions of movement axes of the corresponding robot arrangement for this purpose, in particular with regard to simplicity, reliability and / or speed.

[0029] Accordingly, the target position or the target positions are in a

[0030] Further development based on - at least one second geometric constraint, which is specified for at least one given geometric primitive; and

[0031] - an identity or predetermined connection of this primitive with the controllable primitive and / or the primitive for which the first geometric constraint is specified. In particular, at least one second geometric constraint can be specified for the primitive for which the first geometric constraint is specified, for example, in addition to a predetermined distance, a mutual perpendicularity or the like.

[0032] Additionally or alternatively, at least one second geometric constraint can be specified for the primitive specified as controllable. 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.

[0033] In one embodiment, in a further development, the connection of the (as) controllable primitive to the movement axes of the kinematics is determined on the basis of a predetermined and / or recursive concatenation of this controllable primitive with the robot arrangement.

[0034] 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 and / or a predefined selection condition for motion axes, which is recursive in one embodiment.

[0035] In one embodiment, the selection condition includes

[0036] - 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 of the robot arrangement closest to this primitive (kinematically or structurally) or the movement axes of the kinematics of the robot arrangement furthest from this primitive (kinematically or structurally); and / or

[0037] - a specification of a motion axis type, in particular a kinematics type, or a motion axis identification, in particular a kinematics identification.

[0038] In a particularly preferred embodiment, during the search, starting from the primitive specified as controllable, it is checked 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 specified selection condition. The parent (object)-child (object) relationship(s) between primitives specified as controllable and kinematics or axes of motion is / are specified in one embodiment, for example by corresponding, stored (structural) descriptions of the robot arrangement or the like.A linking of a geometric primitive (specified as) controllable with the robot arrangement can in particular have one or more parent (object)-child (object) relationships, wherein preferably a geometric primitive (specified as) controllable and linked 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 analogously one or more further parent (object)-child (object) relationships can be provided in between, 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.

[0039] In this way, in one embodiment, the programming of robot processes, the operation of robot arrangements and / or the 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 one embodiment, and in a further development, at least one of the geometric primitives linked to the robot arrangement is specified as not being movable by the kinematics. In one embodiment, all of the 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 being movable by the kinematics or as not being controllable by the programming or due to a programming input. Conversely, one or more of the primitives linked to the robot arrangement can also be specified as not being movable by the kinematics or as not being controllable by the programming or due to a programming input.be specified as controllable based on a programming 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).

[0040] In this way, in one embodiment, the programming of robot processes, the operation of robot assemblies, and / or the determination of target positions of motion axes of a corresponding robot assembly can be further improved, particularly 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.

[0041] According to one embodiment of the present invention, a system

[0042] - for determining target positions of movement axes of the robot arrangement, in particular for operating the robot arrangement; and / or

[0043] - for programming a process for operating the robot arrangement, hardware and / or software, in particular programming, for carrying out a method described here.

[0044] 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, comprises:

[0045] - Means for determining 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;

[0046] - a first geometric constraint which is specified for at least one given geometric primitive; and

[0047] - an identity or predetermined connection of this primitive, for which the first geometric constraint is given, with the controllable primitive; and, where appropriate,

[0048] - Means for operating the robot arrangement on the basis of the determined target position(s).

[0049] According to one embodiment of the present invention, a system for programming a process for operating the robot assembly comprises:

[0050] - means for specifying at least one geometric primitive as a controllable primitive; and

[0051] - Means for specifying the first geometric constraint.

[0052] In one embodiment, the system or its means comprises:

[0053] - 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

[0054] - means for determining the target position or target positions based on at least one predetermined stop condition; and / or

[0055] - Means for determining the target position or positions based on

[0056] - at least one second geometric constraint, which is specified for at least one given geometric primitive; and

[0057] - an identity or predetermined connection of this primitive with the controllable primitive and / or the primitive for which the first geometric constraint is given; and / or

[0058] - 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:

[0059] - the nearest or most distant axes of movement to the controllable primitive; and / or

[0060] - a specification of a motion axis type or a motion axis identification; and / or.

[0061] - Means for specifying at least one of the geometric primitives linked to the robot arrangement as not movable by the kinematics.

[0062] Accordingly, in one embodiment, the method for programming a process for operating a robot assembly comprises

[0063] - specifying at least one process path of a primitive and its identity or link with the controllable primitive and / or the primitive for which the first geometric constraint is specified; and / or

[0064] - specifying at least one stop condition; and / or

[0065] - specifying the at least one second geometric constraint for at least one geometric primitive and specifying this primitive, in particular its identity or link with the controllable primitive and / or the primitive for which the first geometric constraint is specified; and / or

[0066] - specifying the linking of the controllable primitive with the robot arrangement, in particular the selection condition for motion axes.

[0067] In one embodiment, the first geometric constraint is or is specified for two or more predefined 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) predefined 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) predefined geometric primitives as a controllable primitive.

[0068] 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 predefined geometric primitives, wherein one of these at least two primitives for which this second geometric constraint is specified 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 is specified, or is or is linked (by or by means of the (corresponding) predefined link). In one development, at least one other of these at least two primitives for which this second geometric constraint is specified is identical to another of the (respectively) predefined geometric primitives as a controllable primitive.

[0069] 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.

[0070] A system and / or means within the meaning of the present invention can be designed in hardware and / or software, in particular at least one, in particular digital, processing unit, in particular a microprocessor unit (CPU), graphics card (GPU) or the like, preferably connected to a memory and / or bus system for data or signals, and / or one or more programs or program modules, in particular programming environment(s). The processing unit can be designed to execute commands implemented as a program stored in a memory system, to detect input signals from a data bus, and / or to output output signals to a data bus. A memory system can have one or more, in particular different, storage media, in particular optical, magnetic, solid-state, and / or other non-volatile media. The program can be designed in such a way that it embodies or implements the methods described here.is capable of executing such a method, 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. In one embodiment, a computer program product can have, in particular be, a storage medium, in particular a computer-readable and / or non-volatile one, for storing a program or instructions or with a program or instructions stored thereon. In one embodiment, 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 orthe computer, to carry out a procedure described here or one or more of its steps, or the program or instructions are configured to do so.

[0071] 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 comprise, in particular be, a calculation using at least one computer.

[0072] In one embodiment, the system comprises the robot arrangement.

[0073] In one embodiment, one or more target positions are determined in advance or offline, and the robot assembly is then operated based on these determined target positions. Similarly, one or more target positions can also be determined during operation of the robot assembly or online, and the robot assembly can continue to operate based on these determined target positions.

[0074] As is clear from the present description, in one embodiment the positions of the movement axes of the kinematics are determined on the basis of the connection of at least one geometric primitive specified as a controllable primitive to the movement axes 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 satisfied 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 satisfied in the target position(s) and / or that the primitive(s) for which the first geometric constraint is specifiedwhich (in each case) a process path is specified, travel along it by approaching the target positions and / or in such a way that the primitive(s) specified as controllable are moved by the movement axes to which it(s) is / are connected, and / or that the target positions are changed until at least one of the specified stop conditions is fulfilled.

[0075] In one embodiment, a method for determining target positions of motion axes of a robot assembly also includes a method described here for programming a process for operating the robot assembly. In one embodiment, a method for operating a robot assembly also includes a method described here for programming a process for operating the robot assembly.

[0076] Further advantages and features emerge from the subclaims and the exemplary embodiments. The following shows, partly schematically:

[0077] Fig. 1: a system for operating a robot assembly according to an embodiment of the present invention; and

[0078] Fig. 2: a method for operating the robot assembly according to an embodiment of the present invention.

[0079] Fig. 1 , 2 show a system and method for operating a robot arrangement according to an embodiment of the present invention.

[0080] 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 as well as for controlling the real robot arm 1 or simulating movements of the virtual robot arm 1. Of course, the program can also be created using one or more computers, and the robot arm can be controlled, or its movements simulated, by one or more other computers based on the created program.

[0081] The invention is explained using an example process in which the point "TCP" of the tool "Tool" is to move along a line, with only the translation of the movement being decisive. The tool "Tool" is attached to the robot "Agilus," which contains the point "TCP."

[0082] In a step S10 (see Fig. 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”).

[0083] In a step S20, the programmer specifies a process path by means of appropriate programming inputs, for example in the form

[0084] Position[0] := -0.6 + Time * 0.2

[0085] Position[1] := 1 ,2

[0086] Position[2] := 1 ,2

[0087] P1 := CreatePoint(“P1”; position);

[0088] In a step S30, the programmer specifies a first geometric constraint by means of appropriate programming inputs, for example in the form

[0089] Coincidental , 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”.

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

[0091] 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)

[0092] Tool.TCP

[0093] 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 terminating the process description is triggered as soon as the movable point reaches 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.

[0094] The robot movement or target positions for the example process described above are determined as follows. First, 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 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 "Agilus" kinematics is used to move the (as) controllable primitive "TCP" and the target positions of its movement axes are determined.

[0095] In step S70, the axis values ​​or target positions of the motion axes A1, ..., A6 are now cyclically determined by Agilus. For this purpose, the position of the movable point P1 is calculated in each case, and then the axis values ​​are calculated by Agilus such that the geometric constraint "coincident" is met, i.e. the position of the geometric primitive "TCP" is equal to the position of the geometric primitive "P1", for example using a so-called "constraint solver" or similar. The axis values ​​calculated in this way are then added to the Agilus motion list. The stop condition is checked, and the cyclic calculation is aborted if the x-value of the point "P1" is greater than -0.1.

[0096] 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.

[0097] 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 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 a method for operating the robot arrangement according to an embodiment of the present invention.

[0098] 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 be 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, thereby implementing 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 spraying example could be (reaching) the end(s) of the process path. By using controllable primitives, it can be defined which primitives are allowed to move using kinematics, which is taken into account when calculating the robot movements.At the same time, the resolution of the kinematics in the controllable primitives is defined, for example, by selecting the nearest kinematics associated with the primitive. This makes it possible to describe processes independently of kinematics. In the spraying example, for example, it could be defined that not the spray head but the point on the workpiece gripped by a robot should move. This ensures that the spray head always remains in the same position, even if it is connected to a kinematics.

[0099] 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 numerous modifications are possible.

[0100] 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, thus advantageously reacting directly to signals from sensors.

[0101] Furthermore, it should be noted that the exemplary embodiments are merely examples and are not intended to limit the scope of protection, applications, or structure in any way. Rather, the preceding description provides the skilled person with a guide for implementing at least one exemplary embodiment. Various modifications, particularly with regard to the function and arrangement of the described components, may be made without departing from the scope of protection as defined by the claims and equivalent combinations of features.

[0102] List of reference symbols

[0103] 1 Agilus robot arm (kinematics)

[0104] 2 computers A1 , .. . , A6 movement axes

Claims

Patent claims 1. A method for determining target positions of movement axes of a robot arrangement having 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 based on - 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 given geometric primitive; and - an identity or given connection of this primitive, for which the first geometric constraint is given, with the controllable primitive.

2. Method according to claim 1, characterized in that 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.

3. Method according to one of the preceding claims, characterized in that the desired position or positions is or are determined on the basis of at least one predetermined stop condition.

4. Method according to one of the preceding claims, 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 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 is or are determined.

5. 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 linking of the controllable primitive with the robot arrangement.

6. 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, in particular recursive, search and / or a predetermined selection condition for movement axes.

7. Method according to the preceding claim, characterized in that the selection condition - the nearest or most distant axes of movement to the controllable primitive; and / or - includes a specification of a motion axis type or a motion axis identification.

8. Method according to one of the preceding claims, characterized in that at least one of the geometric primitives linked to the robot arrangement can be specified as not movable by the kinematics.

9. A method for operating a robot arrangement having at least one kinematics with multiple axes of movement, the method comprising the steps of: - Determining one or more target positions of the movement axes 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(s); 10. A method for programming a process for operating a robot assembly according to the preceding claim, the method comprising the steps of: - specifying at least one geometric primitive as a controllable primitive; and - Specifying the first geometric constraint; 11. System for determining target positions of movement axes of a robot arrangement which has at least one kinematics with several movement axes, in particular for operating the robot arrangement, and / or for programming a process for operating the robot arrangement, wherein the system is set up to carry out a method according to one of the preceding claims and / or wherein the system comprises: - Means for determining one or more target positions of the movement axes of the kinematics based on - 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 given geometric primitive; and - an identity or predetermined connection of this primitive, for which the first geometric constraint is specified, with the controllable primitive; and / or wherein the system comprises: - means for specifying at least one geometric primitive as a controllable primitive; and - Specify the first geometric constraint.

12. A computer program or computer program product, wherein the computer program or computer program product contains instructions, in particular stored on a computer-readable and / or non-volatile storage medium, which, when executed by one or more computers or a system according to claim 11, cause the computer(s) or the system to carry out a method according to one of claims 1 to 10.