Determining target position of motion axis of robotic device
By combining geometric primitives and controllable primitives, the complexity of determining the target position of the robot's motion axis and programming the operation process is solved, achieving simple, fast, and reliable programming and operation.
Patent Information
- Application Number
- CN202480047098.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-20
- Filing Date
- 2024-07-08
- Publication Date
- 2026-02-13
AI Technical Summary
In the existing technology, the determination of the target position of the motion axis of the robot device and the programming of the operation process are complex and difficult to achieve quickly, simply and reliably.
By using geometric primitives and geometric constraints, and combining the connection between controllable primitives and kinematic mechanisms, the target position of the robot's motion axis is determined. The process is described using geometric primitives and associated with controllable primitives, and programming is performed independently of the kinematic mechanisms.
It enables simple, precise, and rapid programming and operation of robot processes, improves the reliability and speed of programming, and adapts to modifications and adjustments of different kinematic mechanisms.
Smart Images

Figure CN121532271A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The invention relates to a method for determining target positions of axes of movement of a robot device having one or more kinematic mechanisms, which have a plurality of axes of movement, respectively; to a method for operating a robot device on the basis of target positions thus determined, to a method for programming a process for such an operation of a robot device, and to a system or computer program or computer program product for carrying out the methods described herein. BACKGROUND
[0002] In industry, processes performed by robots are usually implemented in the case of application of robot trajectories. For this purpose, the Cartesian trajectory to be driven through by the robot is generally described by means of standard movements of the robot, such as LIN, CIRC or splines. This trajectory is configured by further parameters, for example velocity, acceleration or overlap, such that a 6D coordinate system defined on the robot, the so-called tool center point (TCP), is moved along this trajectory. This trajectory is then converted in the controller of the robot into individual target axis positions for each point in time, resulting in robot movements specific to the axes which are performed by the robot. Similarly, instead of a Cartesian trajectory, it is also possible to set a trajectory in axis space by means of PTP movements. SUMMARY
[0003] It is an object of embodiments of the invention to improve the determination of target positions of axes of movement of a robot device and / or the operation of a robot device and / or the programming of a process for operating a robot device.
[0004] This object of the invention is achieved by the method having the features of claim 1, 9 or 10. Claims 11, 12 protect a system or computer program or computer program product for carrying out the methods described herein. The dependent claims relate to advantageous refinements.
[0005] According to an embodiment of the application, the robot device has one or more, preferably independent or spaced apart from each other, kinematic mechanisms; in an extension, the kinematic mechanisms (each) can have, in particular be, a robot arm, the robot arm (each) having a plurality of axes of movement, wherein preferably one or more kinematic mechanisms or robot arms (each) have at least three, in particular at least six, in an embodiment at least seven axes of movement. The application is in particular advantageous for such robot devices, in particular due to their complexity, application situation and boundary conditions. In a preferred embodiment, the robot device described herein is a real robot device; accordingly, operating (such) a robot device in the sense of the application preferably comprises an actual manipulation of the drives of the (real) robot device. Likewise, the robot device described herein can also be a virtual robot device; accordingly, operating (such) a robot device in the sense of the application comprises, in particular simulates, the movement of the (virtual) robot device.
[0006] According to an embodiment of the application, the method for determining one or more target positions of an axis of movement of a kinematic mechanism of a robot device comprises: - connecting at least one geometric primitive to the kinematic mechanism or to the axis of movement of the at least one kinematic mechanism, wherein the primitive is preferably set, in an embodiment is to be set, by a programmer or based on program (programming) input to be a controllable primitive; - a first geometric constraint condition, which is set, in an embodiment is to be set, for at least one geometric primitive, which is preferably set by a programmer or based on program (programming) input; and - the identity or the set association of the primitive setting the first geometric constraint condition with the controllable primitive; one or more target positions of an axis of movement of the kinematic mechanism.
[0007] Accordingly, according to an embodiment of the application, the method for programming a process for operating a robot device comprises the following steps: - setting a first geometric constraint condition, preferably by selecting from available or provided constraint conditions and / or parameterizing the preferably selected constraint condition; and - setting at least one geometric primitive as a controllable primitive, preferably by selecting from available or provided geometric primitives and / or parameterizing the preferably selected geometric primitive; and, if necessary - setting an association of the primitive setting the first geometric constraint condition with the controllable primitive, are preferably set by respective programmatic (programmed) inputs, wherein, in an embodiment, the set first geometric constraints, the setting of a geometric primitive as a controllable primitive, and, if necessary, the set associations are provided or used for determining target positions according to the methods described herein, in particular for operating a robot device according to the methods described herein, in particular are stored or to be stored for this purpose.
[0008] According to an embodiment of the present application, the method for operating a robot device accordingly comprises the following steps: - determining one or more target positions of kinematic axes of the kinematic mechanism according to the methods described herein; and - operating the robot device based on the determined one or more target positions, in particular actually commanding or (steering) controlling the drives of the (real) robot device or simulating the movement of the (virtual) robot device, in particular in order to approach or reach the target position.
[0009] This is based on a novel (robotic) process description which advantageously combines the two approaches, replacing the existing practice of triggering and setting 6D-coordinate systems for specific kinematic mechanisms: - the process can be particularly well, in particular quickly, simply, reliably and / or (also) by non-experts, described or set based on geometric constraints of geometric primitives. Thus, in a simple example, a welding path on a workpiece to be (with a laser focus or a laser beam) driven over can be set by a respective geometric primitive or constraint, preferably independently of the specific kinematic mechanism; - the conversion of the (respective) movement of the robot-guided tool and / or workpiece can be particularly well described or set by a respective connection of the (set as) controllable geometric primitive to the kinematic mechanism or at least one kinematic mechanism. Thus, in the simple example described above, it can be set whether the robot is to move the laser tool next to the stationary workpiece or the workpiece next to the stationary laser tool; or whether one robot is to move the laser tool and another robot is to move the workpiece; which type of robot or which individual robot is to be used for this purpose; etc.
[0010] From the simple example described above, the following advantages can already be seen: On the one hand, in order to determine a target position for operating a robot device or a corresponding process programming, a process can be set by means of geometric primitives and geometric constraints for these geometric primitives and independently of the kinematic mechanism(s); on the other hand, a target position is determined on the basis of setting such a primitive or a primitive associated therewith in a setting manner as a controllable primitive and connecting it to a movement axis of a corresponding kinematic mechanism. Thus, for example, the same welding path can be implemented when using another kinematic mechanism, for example, with a different configuration (for example, a different wheelbase), or a modification is made such that the robot guides a tool instead of a workpiece or guides a workpiece instead of a tool, or the corresponding process can simply be (re)programmed.
[0011] In one embodiment, the one or more geometric primitives described herein or used in accordance with the application are (respectively) a point, a line or straight line, a plane, a two- or three-dimensional coordinate system, a ray (Halbgerade), a line segment, a rectangle or a circle or an ellipse or a sphere, a cylinder or a cone or a pyramid or a cuboid, etc., wherein preferably the one or more geometric primitives described herein or used in accordance with the application are geometric primitives in Cartesian space, and / or the two or more geometric primitives described herein or used in accordance with the application are of the same kind or of the same type (purely exemplarily, both are lines), and / or the two or more geometric primitives described herein or used in accordance with the application are of different kinds or of different types (purely exemplarily, one primitive is a cylinder, another primitive is a plane, and a further primitive is a line, for example a contact line between the cylinder and the plane).
[0012] In an embodiment, one or more of the geometric constraints and / or associations described herein or used in accordance with the present application comprise, respectively, include, preferably: parallelism, or perpendicularity to each other, or a distance, in particular a minimum distance, a maximum distance, or an average distance, or an angle, in particular a minimum angle, a maximum angle, or an average angle, or an intersection, or a tangency, or a non-intersecting contact, or concentricity, or a position (Lage) in a half-space, preferably defined by a plane, in particular on a specified side of the plane, or a preferably fixed or immutable pose and / or an allowed deviation thereof, or a preferably fixed or immutable transformation and / or an allowed deviation thereof, or inclusion within or exclusion from a primitive, and the like. In particular, it can thus be clearly seen that, in a preferred embodiment, the associations can be or be set by geometric constraints. On the other hand, for example, one geometric primitive can be designated as a controllable geometric primitive (e.g. a tool center point of a robot or kinematic mechanism), a first geometric constraint can be designated for another geometric primitive (e.g. a point on a process path), and the two geometric primitives can be associated by their geometric constraint that they shall coincide, such that they have the same position. A particularly advantageous geometric constraint or association is a (spatially) coinciding or identical position and / or orientation. This is to be distinguished from the term "identity" or "identical" used herein: when referring to the identity of a geometric primitive or geometric primitives being identical, it refers to the same or unique geometric primitive. For example, a first geometric constraint can be set for a geometric primitive designated as a controllable geometric primitive. On the other hand, for example, one geometric primitive can be designated as a controllable geometric primitive (e.g. a tool center point of a robot or kinematic mechanism), a first geometric constraint can be set for another geometric primitive (e.g. a point on a process trajectory), and the two geometric primitives can be associated by their geometric constraint that they shall coincide, such that they have the same position.
[0013] In an embodiment, one or more of the geometric primitives, geometric constraints and / or associations described herein or used in accordance with the present application are preferably selected and parameterized, if necessary, from respective groups, each of which comprises two or more (different or distinct) of the above-mentioned elements, and preferably provides these elements (for selection or parameterization), by setting or programming or based on programmatic (programming) input.
[0014] Such geometric primitives, geometric constraints and associations are particularly suitable for describing or programming a robot process, through the use and preferably the provision or selection of which a robot process can be described or programmed particularly simply, precisely, quickly and / or reliably.
[0015] In an embodiment, the target position is determined based on at least one process trajectory of a geometric primitive which is identical or associated with the controllable primitive and / or the primitive for which the first geometric constraint condition is set. In an embodiment, the geometric shape and / or the translational and / or rotational velocity and / or translational and / or rotational acceleration of the process trajectory, e.g. the respective velocity or acceleration profile, is pre-set, preferably by programming or based on a user input or user setting. Thus, again with the simple example already set out, by - setting the geometric shape of the welding path and the translational velocity or velocity profile along the welding path as the process trajectory of the primitive in the form of a point; and - setting the coincidence of the primitive or point with the geometric primitive in the form of the TCP which is connected to the kinematic mechanism as the controllable primitive as the first geometric constraint condition, The desired welding path can be programmed very simply, quickly and reliably, and the guidance of the workpiece instead of the tool for another kinematic mechanism or robot can be (re)programmed if necessary.
[0016] In an embodiment, the one or more target positions are determined based on at least one set stop condition. This can in particular include, in particular be: reaching an end point of the process trajectory, or exceeding a set limit, in particular a time limit, a relationship between geometric primitives, receiving an input signal, emitting an output signal, etc.
[0017] Thereby, the robot process can be programmed in particular simply, precisely, quickly and / or reliably, or the robot device can be operated in particular simply, precisely, quickly and / or reliably.
[0018] As already set out before, the process is split into two aspects, namely the description of the process by the geometric constraint conditions of the geometric primitives and the conversion of the process by the respective connection of the controllable primitives to the kinematic mechanism which is set as controllable, and these two aspects are combined by making the controllable primitives identical or associated with the primitives for which the geometric constraint conditions have been set or are to be set, which provides great advantages in terms of simplicity, reliability and / or speed, both in terms of robot process programming and in terms of robot device operation or determining the target positions of the movement axes of the respective robot device for this purpose.
[0019] Correspondingly, in an extension, the target position is determined based on - at least one second geometric constraint condition which is set for at least one set geometric primitive; and - the identity or the set association of the primitive with the controllable primitive and / or the primitive for which the first geometric constraint condition is set, one or more target positions. Thus, in particular, for a primitive for which a first geometric constraint condition has been set, at least one second geometric constraint condition can also be set, for example a mutual perpendicular relationship in addition to the set distance, etc. Additionally or alternatively, a corresponding controllable primitive can also be set with at least one second geometric constraint condition. In this way, in an embodiment, the programming of a robotic process, the operation of a robotic device and / or the determination of target positions for the movement axes of a corresponding robotic device for this purpose can be further improved, in particular in terms of simplicity, reliability and / or speed.
[0020] The connection of a controllable primitive to a movement axis of a kinematic mechanism is determined in an embodiment, in an extended version based on the controllable primitive and the set and / or recursive link of a robotic device.
[0021] In an extended version, the connection of a controllable primitive to a movement axis of a kinematic mechanism is determined based on a search, in an embodiment a recursive search and / or a set movement axis selection condition.
[0022] In an embodiment, the selection condition comprises: - the movement axis closest to or furthest from the controllable primitive, in particular the movement axis connected to the controllable primitive is the movement axis closest to the primitive in the kinematic mechanism (kinematically or structurally) or the movement axis furthest from the primitive in the kinematic mechanism (kinematically or structurally), in a preferred extended version they comprise, preferably are, the movement axes closest to the primitive in the plurality of kinematic mechanisms of the robotic device (kinematically or structurally) or the movement axes furthest from the primitive in the plurality of kinematic mechanisms of the robotic device (kinematically or structurally); and / or - the movement axis type, in particular the specification of the kinematic mechanism type, or the movement axis identifier, in particular the kinematic mechanism identifier.
[0023] In a particularly preferred embodiment, in the search process, starting from the (set) controllable graphic element, for each parent object (Elternobjekt) to which a child object (Kindobjekt) is attached, it is checked whether the parent object is a kinematic mechanism or has a kinematic axis that meets the set selection condition. In an embodiment, the parent-child relationship between the (set) controllable graphic element and the kinematic mechanism or kinematic axis is predefined, for example by means of a corresponding, stored (structural) description of the robot device, etc. The link of the (set) controllable geometric element to the robot device can in particular comprise one or more parent-child relationships, wherein preferably the (set) controllable geometric element that is connected to the kinematic axis of the kinematic mechanism is the child of a (first) parent-child relationship, while the kinematic mechanism (kinematic axis) is the parent of this or another parent-child relationship, wherein between these one or more further parent-child relationships can be similarly provided, wherein the (parent) of each parent-child relationship is the child of another parent-child relationship.
[0024] In this way, in an embodiment, the programming of the robot process, the operation of the robot device and / or the determination of the target positions of the kinematic axes of the respective robot device for this purpose can be further improved, in particular in terms of simplicity, reliability and / or speed.
[0025] At least one geometric element linked to the robot device is set, in an embodiment, in an extended version will be set, to be immovable by the kinematic mechanism. In an embodiment, all geometric elements linked to the robot device are initially or by default set to be controllable, after which one or more of these elements are set to be immovable by the kinematic mechanism or set to be uncontrollable by programming or based on program (programming) input. Conversely, one or more elements linked to the robot device can also be set to be controllable by programming or based on program (programming) input. In an embodiment, the link of the element to the kinematic mechanism of the robot device is set, for example by means of a corresponding, stored (structural) description of the robot device, etc., and can in particular comprise the aforementioned parent-child relationships.
[0026] In this way, in an embodiment, the programming of the robot process, the operation of the robot device and / or the determination of the target positions of the kinematic axes of the respective robot device for this purpose can be further improved, in particular in terms of simplicity, reliability and / or speed. In general, the program (programming) inputs described herein can comprise or can be inputs or settings of a user or programmer.
[0027] According to an embodiment of the application, a system - for determining target positions of kinematic axes of a robot device, in particular for operating the robot device; and / or - for programming a process of operating the robot device, in particular designed in hardware and / or software technology, in particular programming technology, for carrying out the methods described herein.
[0028] According to an embodiment of the application, a system for determining target positions of kinematic axes of a robot device, in particular for operating the robot device, comprises: - means for determining one or more target positions of kinematic axes of a kinematic mechanism based on: - connecting at least one geometric primitive set as a controllable primitive to a kinematic axis of the kinematic mechanism; - a first geometric constraint condition set for at least one set geometric primitive; and - an identity or a set association of this primitive set with the controllable primitive; and optionally - means for operating the robot device based on the determined target positions.
[0029] According to an embodiment of the application, a system for programming a process of operating the robot device comprises: - means for setting at least one geometric primitive as a controllable primitive; and - means for setting a first geometric constraint condition.
[0030] In an embodiment, the system or means thereof comprises: - means for determining target positions based on a process trajectory of at least one primitive associated or identical to the controllable primitive and / or the primitive set with the first geometric constraint condition; and / or - means for determining one or more target positions based on at least one set stop condition; and / or - means for determining one or more target positions based on: - at least one second geometric constraint condition set for at least one set geometric primitive; and - an identity or a set association of this primitive with the controllable primitive and / or the primitive set with the first geometric constraint condition; and / or - a device for determining the connection of a controllable graphic element to a kinematic axis of a kinematic mechanism based on a controllable graphic element and a set and / or a recursive link of a robot device, in particular based on a search, in particular a recursive search and / or a set selection condition for a motion axis, the device preferably comprising: - a distance controllable graphic element closest or farthest motion axis; and / or - a specification of the type of motion axis or a motion axis identifier; and / or - a device for setting at least one geometric element linked to the robot device as immovable by the kinematic mechanism.
[0031] Correspondingly, in an embodiment, the method for programming a process for operating a robot device comprises: - setting at least one process trajectory of a graphic element and its identity or association with a controllable graphic element and / or a graphic element set with a first geometric constraint condition; and / or - setting at least one stop condition; and / or - setting at least one second geometric constraint condition for at least one geometric graphic element and setting the graphic element, in particular setting its identity or association with a controllable graphic element and / or a graphic element set with a first geometric constraint condition; and / or - setting a link of a controllable graphic element to a robot device, in particular a selection condition for a motion axis.
[0032] In an embodiment, a first geometric constraint condition is set for two or more set geometric graphic elements, wherein one of the at least two graphic elements set with the first geometric constraint condition is identical to or (by or by means of a (respective) set association) associated with at least one geometric graphic element set as a controllable graphic element, and in an extension at least one other of the at least two graphic elements set with the first geometric constraint condition is identical to another geometric graphic element set (respectively) as a controllable graphic element.
[0033] Additionally or alternatively, in an embodiment, at least one second geometric constraint condition is set for two or more set geometric graphic elements, wherein one of the at least two graphic elements set with the second geometric constraint condition is identical to or (by or by means of a (respective) set association) associated with at least one geometric graphic element set as a controllable graphic element and / or at least one graphic element set with a first geometric constraint condition. In an extension at least one other of the at least two graphic elements set with the second geometric constraint condition is identical to another geometric graphic element set (respectively) as a controllable graphic element.
[0034] In one embodiment, at least two geometric primitives are (respectively) set as controllable primitives and, in an extension, are used in one of the first and / or second geometric constraints, or one of the first and / or second geometric constraints is (respectively) set for at least two geometric primitives (respectively) set as controllable primitives.
[0035] The system and / or the apparatus in the sense of the present application can be realized in hardware technology and / or software technology, in particular with at least one processing unit, in particular a digital processing unit, in particular a microprocessor unit (CPU), a graphics card (GPU), etc., preferably in data connection or signal connection with a storage system and / or a bus system, and / or one or more programs or program modules, in particular a programming environment. The processing unit can be configured for this purpose to execute instructions of a program realized as stored in the storage system, to pick up input signals from a data bus and / or to send output signals to the data bus. The storage 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 to be able to embody or execute the method described herein, so that the processing unit is able to carry out the steps of such a method and thereby, in particular, to determine a target position of a motion axis or to operate a robotic apparatus. In particular, the system, the apparatus or the program can comprise, in particular can be, a programming environment for programming a process of operating a robotic apparatus according to the method described herein. In one embodiment, the computer program product can have, in particular can be, a computer-readable, non-volatile storage medium for storing a program or instructions or a storage medium having a program or instructions stored thereon. In one embodiment, the execution of the program or the instructions by a system or a controller, in particular a computer or a plurality of computer arrays, causes the system or the controller, in particular the computer or the computers, to execute the method described herein or one or more steps thereof, or the program or the instructions are designed for this purpose.
[0036] In one embodiment, one or more, in particular all, steps of the method described herein are fully or partially realized by a computer or are fully or partially executed automatically, in particular by the system or an apparatus thereof. The determination described herein can in particular comprise, in particular be, a calculation by means of at least one computer.
[0037] In one embodiment, the system has the robotic apparatus.
[0038] In one embodiment, one or more target positions are determined beforehand or offline, and the robotic apparatus is subsequently operated on the basis of the determined target positions. Likewise, one or more target positions can also be determined during the operation of the robotic apparatus or online, and the operation of the robotic apparatus is continued on the basis of the determined target positions.
[0039] As is apparent from the description, in one embodiment, based on the connection of at least one geometry primitive set as a controllable geometry primitive to a movement axis of a kinematic mechanism, a first geometry constraint condition set for the at least one set geometry primitive, and the identity or set correlation of the geometry primitive set with the first geometry constraint condition and the controllable geometry primitive, the axis position of the movement axis of the kinematic mechanism is determined such that the first geometry constraint condition is fulfilled in one or more target positions, preferably by a so-called "constraint solver" or the like, and / or such that a second geometry constraint condition is also fulfilled in one or more target positions, and / or such that one or more geometry primitives set with a process trajectory are driven through these process trajectories by approaching these target positions, and / or such that the geometry primitive set as controllable is moved by the movement axis connected thereto, and / or such that the target positions are changed until at least one set stop condition is fulfilled.
[0040] In one embodiment, the method for determining target positions of movement axes of a robot device also comprises the method for programming a process for operating a robot device described herein. In one embodiment, the method for operating a robot device also comprises the method for programming a process for operating a robot device described herein. BRIEF DESCRIPTION OF DRAWINGS
[0041] Further advantages and features are given by the dependent claims and embodiments. To this end, it is shown schematically that:
[0042] Figure 1 for a system for operating a robot device according to an embodiment of the application; and
[0043] Figure 2 for a method for operating a robot device according to an embodiment of the application. DETAILED DESCRIPTION
[0044] Figure 1 、 Figure 2 It is shown that a system or a method for operating a robot device according to an embodiment of the application.
[0045] The robot device has exemplarily a kinematic mechanism in the form of a robot arm 1 of the type Agilus with movement axes A1,..., A6, and a computer 2 for programming a process and for controlling the movement of the real robot arm 1 or of a simulated virtual robot arm 1. Of course, the program can also be created by one or more computers and the robot arm or the movement thereof simulated is controlled by one or more other computers based on the created program.
[0046] The present application is illustrated by an exemplary process, in which a point "TCP" of a tool "Tool" shall be moved along a line, wherein only the translatory movement is decisive. The tool "Tool" is mounted on a robot "Agilus", which contains the point "TCP".
[0047] In step S10 (see Figure 2 ) the programmer inputs by means of the respective program (programming) that the geometric primitive "TCP" is linked to the robot device "Agilus" ("TCP" = child object of "Tool", "Tool" = child object of "Agilus").
[0048] In step S20 the programmer inputs by means of the respective program (programming) that a process trajectory is set, for example: Position [0] := -0.6 + Time 0.2 Position [1] := 1.2 Position [2] := 1.2 P1 := Create Point ("P1"; Position).
[0049] In step S30 the programmer inputs by means of the respective program (programming) that a first geometric constraint is set, for example: Coincident (P1, Tool.TCP) which describes that the geometric primitive "P1", which is set by the process trajectory, coincides with the (spatial) position of the geometric primitive "TCP".
[0050] In step S40 the programmer inputs by means of the respective program (programming) that a stop condition is set, for example by inputting in the respective field of the programming environment (for inputting the stop condition) Position [0] > -0.1.
[0051] In step S50 the programmer inputs by means of the respective program (programming) that the geometric primitive "TCP" is set as a controllable primitive, for example by inputting in the respective field of the programming environment (for inputting the controllable primitive) Tool.TCP.
[0052] That is, in the above exemplary process description, in order to realize the movement of the point "TCP", first a process trajectory is described by means of a movable point "P1" ("primitive") which moves along a line segment by changing the value in "Position[0]" over time ("Time"). Afterwards, the two geometric primitives or points are associated by means of the geometric constraint "Coincident" so that their positions coincide or overlap at all times during the process. As soon as the movable point reaches the defined end point of the line segment, a stop condition for ending the process description is triggered. In addition, the point "TCP" is set or marked as a controllable primitive, which enables it to change its pose by means of a kinematic mechanism.
[0053] The robot movement or target position of the above exemplary process is determined as follows. First, since the search pattern or selection condition is set to "next kinematic mechanism" by default or by corresponding program (programming) input, the nearest kinematic mechanism is searched from the controllable primitive "TCP" in step S60. For this purpose, first it is checked whether the parent object "Tool" of the sub-object "TCP" is (already) a kinematic mechanism. Since this is not the case, it is next checked whether the parent object "Agilus" of the sub-object "Tool" is a kinematic mechanism. Since this is the case, the kinematic mechanism "Agilus" is used to move (set) the controllable primitive "TCP" or to determine the target position of its movement axis.
[0054] In step S70, the axis values or target positions of the movement axes A1,..., A6 of Agilus are now determined in a loop. For this purpose, the position of the movable point P1 is calculated each time, and then the axis values of Agilus are calculated in order to satisfy the geometric constraint "Coincident", 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 the like. Subsequently, the thus calculated axis values are added to the movement list of Aggreus. The stop condition is checked, and if the x value of the point "P1" is greater than -0.1, the loop calculation is terminated (abgebrochen).
[0055] The movement list thus generated can be followed in step S80 by controlling the movement of a real robot or a simulated virtual robot.
[0056] Steps S10-S50 set forth a method for programming a process for operating a robot device according to an embodiment of the present invention, steps S60, S70 or steps S70 set forth a method for determining a target position of a movement axis of a kinematic mechanism 1 of a robot device according to an embodiment of the present invention, and steps S60-S80 or S70, S80 set forth a method for operating a robot device according to an embodiment of the present invention.
[0057] In another process example "spraying a workpiece", it can be specified, for example, that the rotation axis of the spray head always intersects a point on the surface of the workpiece and that the exit point of the spray head always has a defined distance, for example between 5 and 10 cm, from the intersection point on the rotation axis. By means of the process trajectory, the geometric primitives can be changed over time, so that processes can be implemented which require compliance with geometric constraints over a longer period of time. In the example described, the point on the surface of the workpiece will change continuously by means of the process trajectory. In the spraying example, the stop condition can be the end of the process trajectory. By using controllable primitives, it can be defined which primitives can be moved by kinematic mechanisms, which will be taken into account when calculating the robot movements. At the same time, the triggering of the kinematic mechanisms is defined in the controllable primitives, for example by selecting the nearest kinematic mechanism connected to the primitive. In this way, the process description can be made independent of the kinematic mechanisms. In the spraying example, it can be defined, for example, that not the spray head is moved, but that the point on the workpiece which is gripped by the robot should be moved. In this way, the spray head always remains in the same position, even if the spray head is connected to a kinematic mechanism.
[0058] In the present disclosure, "having one X" generally does not mean an exhaustive enumeration, but is a shortening of "having at least one X", also including "having two or more X" and "having Y in addition to X". Although exemplary embodiments are set forth in the foregoing description, it should be noted that many modifications can be made.
[0059] Thus, in particular, instead of first calculating the complete robot movement or the corresponding movement list, the axis values of the robot are calculated in each loop cycle and these axis values are sent directly to the robot, so that a direct reaction to the sensor signals is advantageously possible at the necessary time.
[0060] It should also be noted that the exemplary embodiments are merely examples, which should not limit the scope of protection, application and construction in any way. On the contrary, the foregoing description enables a person skilled in the art to implement the teaching of converting at least one exemplary embodiment, wherein various changes can be made, in particular with regard to the function and arrangement of the components described, without departing from the scope of protection of the present invention, for example according to the claims and equivalent combinations of features thereof. List of reference signs 1 robot arm Agilus (kinematic mechanism) 2 computer A1,..., A6 movement axes.
Claims
1. A method for determining the target position of the motion axes of a robot device, the robot device having at least one kinematic mechanism (1) having a plurality of motion axes (A1-A6), wherein the method comprises: based on - At least one geometric primitive set as a controllable primitive is connected to the motion axis of the kinematic mechanism; - A first geometric constraint condition, which is set for at least one set geometric primitive; and - The identity or association between the primitive with the first geometric constraint and the controllable primitive is defined. Determine one or more target positions of the motion axis of the kinematic mechanism (S70).
2. The method according to claim 1, characterized in that, The target location is determined based on at least one process trajectory of a geometrical element that is associated with or the same as the controllable element and / or an element with the first geometrical constraint.
3. The method according to any one of the preceding claims, characterized in that, One or more of the target locations are determined based on at least one set stopping condition.
4. The method according to any one of the preceding claims, characterized in that, based on - At least one second geometric constraint condition is set for at least one set geometric primitive; as well as - The identity or established association between this graphic element and the controllable graphic element and / or the graphic element with the first geometric constraint condition. Determine one or more of the target locations.
5. The method according to any one of the preceding claims, characterized in that, The connection between the controllable primitive and the kinematic mechanism's motion axis is determined based on the established and / or recursive links between the controllable primitive and the robotic device.
6. The method according to the preceding claims, characterized in that, The connection between the controllable primitive and the motion axis of the kinematic mechanism is determined based on search, particularly recursive search, and / or by setting selection criteria for the motion axis.
7. The method according to the preceding claims, characterized in that, The selection criteria include: - The motion axis that is closest to or furthest from the controllable primitive; and / or - The specification or identifier of the motion axis type.
8. The method according to any one of the preceding claims, characterized in that, At least one geometric primitive linked to the robotic device is configured to be non-movable by the kinematic mechanism.
9. A method for operating a robotic device, the robotic device having at least one kinematic mechanism having a plurality of motion axes, wherein the method comprises the following steps: - Determine one or more target positions of the motion axis of the kinematic mechanism according to the method of any one of the preceding claims; as well as - Operate the robotic device based on one or more determined target locations.
10. A method for programming a process of operating a robotic device according to the preceding claims, wherein the method comprises the following steps: - Designate at least one geometric primitive as a controllable primitive; as well as - Set the first geometric constraints.
11. A system for determining the target position of the motion axes of a robotic device, the robotic device having at least one kinematic mechanism with multiple motion axes, particularly for operating the robotic device and / or for programming the process of operating the robotic device, wherein the system is designed to perform the method according to any one of the preceding claims, and / or wherein the system comprises: - A means for determining one or more target positions of the motion axes of the kinematic mechanism based on the following: - At least one geometric primitive set as a controllable primitive is connected to the motion axis of the kinematic mechanism; - A first geometric constraint condition, which is set for at least one set geometric primitive; as well as - The identity or association between the primitive with the first geometric constraint and the controllable primitive; And / or said system includes: - A device for setting at least one geometric primitive as a controllable primitive; as well as - Set the first geometric constraint condition.
12. A computer program or computer program product, wherein, The computer program or computer program product includes, in particular, instructions stored on a computer-readable and / or non-volatile storage medium, which, when executed by one or more computers or the system according to claim 11, cause the one or more computers or the system according to claim 11 to perform the method according to any one of claims 1 to 10.