Method and system for carrying out a robot application
The method and system enhance robot application programming by using geometric conditions and events to trigger actions, addressing inflexibility and complexity in existing path-related switching point methods, resulting in more flexible and efficient robot application execution.
Patent Information
- Application Number
- PCT/EP2024/087508
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-13
- Filing Date
- 2024-12-19
- Publication Date
- 2025-07-17
AI Technical Summary
Existing robot application methods are limited by path-related switching points, making them inflexible and difficult to program effectively.
A method and system that utilize geometric conditions and events to trigger actions in robot applications, allowing for more flexible and easier programming by checking for predefined states or events and initiating application routines based on these conditions.
Enables more flexible and efficient programming of robot applications by allowing actions to be triggered based on geometric conditions and events, improving ease and flexibility in implementing robot applications.
Smart Images

Figure EP2024087508_17072025_PF_FP_ABST
Abstract
Description
Description Method and system for performing a robot application The present invention relates to a method and system for carrying out a robot application and to a computer program or computer program product for carrying out the method. According to internal company practice, it is known to initiate application routines of robot applications to be processed by means of path-related switching points: for example, reaching a path point causes a routine of a robot program to be called or an output of a robot controller to be set, which in turn, for example, (de)activates a robot-guided tool or the like. The object of the present invention is to improve the implementation of robot applications. This object is achieved by a method having the features of claim 1. Claims 12, 13 represent a system or computer program or A computer program product for carrying out a method described herein is protected. The subclaims relate to advantageous developments. According to one embodiment of the present invention, a method for performing a robot application comprises the step: - Operating a robot arrangement to perform the robot application. In one embodiment, the robot arrangement comprises one or more robots, wherein in a further development the robot(s) comprises (each) at least one robot arm and / or a stationary or mobile base, in particular a chassis. In one embodiment, (one or more) of the robots, in particular the robot arm(s), comprises (each) at least three, in particular at least six, in one embodiment at least seven, (movement) axes or translational and / or rotational joints, which are adjustable by, preferably electric motor, drives of the robot. be adjusted to move the robot. The present invention is particularly advantageous for such robots (assemblies), particularly due to their design and operating conditions. According to one embodiment of the present invention, the method comprises the steps: - Checking during this operation of the robot arrangement whether a state, in a further development an event (“event”), exists, in one embodiment whether the state or event has occurred; and - triggering an action that is specified for this state or event if this check shows that this state or event exists or has occurred, whereby the state or event is defined using a predetermined geometric condition for the robot arrangement and this state, event, condition or action is referred to without loss of generality as the first state, event, condition or action, which is not intended to imply any temporal or hierarchical position or order. In a further development, when checking whether a first event has occurred, it is checked whether the first event has occurred within a (first) (observation) period, in one embodiment, whether the first event has occurred since the start of the robot application or the operation of the robot arrangement for carrying out the robot application or since a previous check (as to whether a or the first event has occurred), in a further development the last (carried out) or (immediately) previous check, whereby the first action that is specified for the first event is triggered if this check shows that the first event has occurred within this (first) (observation) period. In one embodiment, the method for one or more further states, in a further development one or more further events, each comprises the following steps: - checking during operation of the robot arrangement for carrying out the robot application whether the respective further state or the respective further event exists, has occurred in an execution, which is defined in each case using a predetermined further geometric condition for the robot arrangement; and Triggering a further action that is specified for this further state or event if this check shows that this further state or event exists or has occurred. In a further development, for the or one or more of these events (in each case) during this check as to whether the respective further event has occurred, it is checked whether the respective further event has occurred within a (further) (observation) period, in one embodiment whether the respective further event has occurred since the start of the robot application or the operation of the robot arrangement for carrying out the robot application or since a previous check (as to whether the respective further event has occurred), in a further development the last (carried out) or (immediately) previous check, wherein the respective further action that is specified for this further event is triggered if this check shows that the respective further event has occurred within this (respective further) (observation) period. In this way, application routines of robot applications to be processed can be programmed and / or triggered particularly advantageously, in particular more easily and / or flexibly, in comparison to path-related switching points. Accordingly, in a particularly preferred embodiment, the robot application comprises a plurality of application routines to be processed, in particular application routines which are to be processed during a regular or error-free or fault-free execution of the robot application and / or for carrying out the robot application or achieving a work result or process success of the robot application or whose processing is provided or planned, in particular necessary, during a regular or error-free or fault-free execution of the robot application and / or for carrying out the robot application or achieving a work result or process success of the robot application. In one embodiment, at least one of these application routines to be processed is initiated, in particular triggered, on the basis of the first action. In a further development, one, preferably another, of the application routines to be processed Application routines are initiated, in particular triggered, on the basis of (one) of the further action(s); in one embodiment of this further development, a further, preferably different, application routine to be processed is initiated, in particular triggered, on the basis of another of the further actions. As a result, these application routines to be processed can be programmed and / or triggered particularly advantageously, in particular more easily and / or flexibly, particularly compared to path-related switching points. In one embodiment, the first state, in a further development the first event, and the or at least one of the further states, in a further development the or at least one of the further event(s), cannot be present at the same time, in a further development cannot occur at the same time, they can in particular be complementary to one another or the first and the further state or event can be defined in such a way that a check as to whether the first state or event is present or has occurred, and whether the further state or event is present or has occurred, always either results in the first state or event being present or having occurred, or, if this check shows that the first state or event is not present or has occurred, the result is that the further state or event is present or has occurred, for example in an “IF-ELSE” manner.in pseudocode "IF first state (THEN) first action ELSE [=further state] further action". In one embodiment, the first state or the first event or its presence or occurrence can advantageously trigger the first action and a kind of reversal of this (presence or occurrence of the) first state or event can trigger a further action, in particular at least partially reverse the first action. For example, a first state or event in the form of a virtual laser (focal) point hitting a workpiece can trigger a first action in the form of supplying energy to a robot-guided laser, and a complementary further state or event in the form of the virtual laser (focal) point no longer hitting the workpiece can trigger a further action in the form of not supplying energy to the laser, which reverses the first action. In one embodiment, the first state, in a further development the first event, and the or at least one of the further states, in a further development the or at least one of the further event(s), at least partially coincide. As a result, in one embodiment, the first state or the first event or its presence or occurrence can advantageously trigger the first action, wherein, if appropriate, due to the at least partial correspondence, the further state or the further state (is present or occurs and) also triggers a further action. By way of example, in the above example, a first state or event in the form of a virtual laser (focal) point striking a workpiece can trigger a first action in the form of supplying energy to a robot-guided laser, and an at least partially matching further state or event in the form of the virtual laser (focal) point striking within a minimum distance can trigger a further action in the form of a distance-specific specification of the laser target power. In one embodiment, the or at least one of the further actions at least partially undoes the first action. As already explained above by way of example, tools can be activated and deactivated again, or the like, by the or the first and the or one or more further states or events. This allows robot applications to be programmed and / or implemented particularly advantageously, in particular more easily and / or flexibly. In one embodiment, the first state, in a further development the first event, is defined by means of a combination of at least two predetermined conditions, wherein one of these conditions has, preferably is, the predetermined first geometric condition for the robot arrangement, and wherein this combination in a further development has at least one logical AND operation and / or at least one logical OR operation and / or at least one logical NOT operation, preferably with the first geometric condition. Additionally or alternatively, in one embodiment, the or at least one of the further states, in a further development the or at least one of the further event(s), is defined by means of a combination of at least two predetermined conditions, wherein one of these conditions has the (respective) predetermined further geometric condition for the robot arrangement, and wherein this combination in a further development has at least one logical AND operation and / or at least one logical OR operation and / or at least one logical NOT operation, preferably with the respective predetermined further geometric condition. This allows robot applications to be programmed and / or implemented in a particularly advantageous manner, in particular more easily and / or flexibly. In one embodiment, the first geometric condition has a predetermined geometric relationship, in one development a distance, between at least one robot-side reference, in one development at least one robot-side geometric primitive, and at least one environment-side or other robot-side reference, in one development at least one environment-side or other robot-side geometric primitive. Additionally or alternatively, in one embodiment, the or at least one of the further geometric conditions has a predetermined geometric relationship, in one development a distance, between at least one robot-side reference, in one development at least one robot-side geometric primitive, and at least one environment-side or other robot-side reference, in one development at least one environment-side or other robot-side geometric primitive. In this way, the condition can be programmed advantageously, in particular more simply and / or flexibly, and / or the actions can be triggered advantageously, in particular more simply and / or flexibly. In one embodiment, the first action comprises specifying a value of an output of a robot controller or a flag and / or executing, preferably calling, a routine or method of a robot program and / or actuating, preferably activating, or not actuating, preferably Deactivation of a device for carrying out the robot application, which in a further development is controlled by the robot arrangement or is separate from the robot arrangement. Additionally or alternatively, in one embodiment, the or at least one of the further action(s) comprises specifying a value of an output of a robot controller or a flag and / or executing, preferably calling, a routine or method of a robot program and / or actuating, preferably activating, or non-actuating, preferably deactivating, a device for carrying out the robot application, which in a further development is controlled by the robot arrangement or is separate from the robot arrangement. The specification of a value of an output or flag can in particular comprise switching to this value (if the output or flag does not (yet) have this value) or maintaining this value (if the output orFlag (already) has this value), so that after this specification the output or flag has this value. Likewise, the execution of a routine or method of a robot program can be a call of the routine or method (if the routine or method is not (yet) executed) or a further execution of the routine or method (if the routine or method is (already) executed). Likewise, the actuation of a device for carrying out the robot application can be an activation of the device (if the device is not (yet) activated) or a further operation of the device (if the device is (already) activated), or the non-actuation of a device for carrying out the robot application can be a deactivation of the device (if the device is not (yet) deactivated) or a further non-operation of the device (if the device is (already) deactivated). This allows robot applications to be programmed and / or implemented particularly advantageously, in particular more easily and / or flexibly. In one embodiment, in a further development, the first state, in a further development the first event, is defined on the basis of a user input, in a further development the method for carrying out the robot application comprises (the step) that the first state or event is defined on the basis of a user input. Additionally or alternatively, in a further development, in one embodiment the or at least one of the further states, in a further development the or at least one of the further event(s), is defined on the basis of a user input, in a further development the method for carrying out the robot application comprises (the step) that the further state or the or at least one of the further states or event(s) is defined on the basis of a user input. Additionally or alternatively, in a further development, in one embodiment the first geometric condition is specified on the basis of a user input, in a further development the method for carrying out the robot application comprises (the step) that the first geometric condition is specified on the basis of a user input. Additionally or alternatively, in a further development, in one embodiment the or at least one of the further geometric condition(s) is specified on the basis of a user input, in a further development the method for carrying out the robot application comprises (the step) that the or at least one of the further geometric condition(s) is specified on the basis of a user input. Additionally or alternatively, in a further development, in one embodiment the first action is specified on the basis of a user input, in a further development the method for carrying out the robot application comprises (the step) that the first action is specified on the basis of a user input. Additionally or alternatively, in a further development, in one embodiment the or at least one of the further action(s) is specified on the basis of a user input, in a further development the method for carrying out the robot application comprises (the step) that the or at least one of the further action(s) is specified on the basis of a user input. Additionally or alternatively, in one embodiment, during operation of the robot arrangement for carrying out the robot application, it is cyclically checked whether the first state, in a further development the first event, is present, in a further development the first state or the first event has occurred, and in a Further training, preferably every time this review shows that the first condition, in a further training the first event, preferably in the first observation period, preferably since the last review, is present, in a further training the first action is triggered. Additionally or alternatively, in one embodiment, during operation of the robot arrangement for carrying out the robot application, it is checked cyclically whether the or at least one of the further states, in a further development the or at least one of the further event(s), is present, has occurred in a further development, and in a further development, preferably each time this check shows that the respective further state, in a further development the respective further state, preferably in the respective further observation period, preferably since the last check, is present, has occurred in a further development, the respective further action is triggered. This allows the robot applications to be programmed and / or implemented in a particularly advantageous manner, in particular more easily and / or flexibly. According to one embodiment of the present invention, a system, in particular hardware and / or software, in particular program technology, is set up to carry out a method described here and / or comprises: - means for operating a robot arrangement for performing the robot application; - means for checking, preferably cyclically, during this operation of the robot arrangement whether a first state, in a further development a first event, exists, in one embodiment the first state, in a further development the first event, has occurred, which is defined by means of a predetermined first geometric condition for the robot arrangement; and - means for triggering a first action specified for the first state or event if this check shows that the first state or event exists or has occurred. In one embodiment, the system or its means comprises: Means for initiating at least one of the plurality of application routines to be executed, which comprises the application routines to be executed by the robot application, based on the first action. Additionally or alternatively, the system or its means in one embodiment for at least one further state, in a further development at least one further event, which is defined by means of a predetermined further geometric condition for the robot arrangement: - means for checking, preferably cyclically, during operation of the robot arrangement for carrying out the robot application, whether the (respective) further state or event exists or has occurred; and - Means for triggering a further action which is specified for this further state or event if this check shows that this further state or event exists or has occurred. In a further training, the system or its means has: - Means for initiating at least one of the plurality of application routines to be processed, which comprises the application routines to be processed by the robot application, on the basis of (at least one of) the further action(s). Additionally or alternatively, the system or its means in one embodiment comprises: - means for defining the first and / or (at least one of) the further state(s) or event(s) based on user input; - Means for specifying the first and / or (at least one of) the further geometric condition(s) and / or action(s) based on a user input. A means within the meaning of the present invention can be designed in hardware and / or software, in particular at least one, preferably data- or signal-connected, especially digital, processing unit, especially microprocessor unit (CPU), graphics card (GPU) or the like, and / or one or more programs or program modules, preferably with a memory and / or bus system. The processing unit can be designed to execute commands implemented as a program stored in a memory system, to acquire input signals from a data bus and / or to transmit output signals to a data bus. A 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 such that it embodies or is capable of carrying out the methods described here, so that the processing unit can carry out the steps of such methods and thus in particular can carry out the robot application or operate the robot arrangement (for this purpose). 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 ora controller, in particular a computer or an arrangement of several computers, 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 one embodiment, one or more, in particular all, steps of the method are fully or partially computer-implemented or one or more, in particular all, steps of the method are fully or partially automated, in particular by the system or its means. In one embodiment, the system comprises the robot assembly and / or (robot assembly) controller and / or device(s) to be (de)activated for carrying out the robot application. In one embodiment, operating a robot arrangement to perform a robot application comprises controlling the robot arrangement and / or moving the robot arrangement, preferably by means of its drives. Further advantages and features emerge from the subclaims and the exemplary embodiments. The following shows, partially schematically: Fig. 1 : a system for performing a robot application according to embodiments of the present invention; and Fig. 2: a method for performing the robot application according to embodiments of the present invention. Fig. 1 , 2 show a system and method for performing a robot application according to various embodiments of the present invention. The robot application comprises, in one embodiment, a gripping of objects 10, 11 from a container 2 by means of a robot arm 30 of a robot arrangement using a determination of gripping positions using a camera 4 and is programmed by a robot program which, among other things, includes the instructions if (distance(gripper.surface, camera.field of view) > 0.001 AND NOT cameraTriggered { ImageTakeO; cameraTriggered := True; DetermineNewGripPositionO; } if (distance(Gripper.Surface, Camera.Field of view) < 0.001 AND cameraTriggered { cameraTriggered := False; } includes. By “(distance(gripper.surface, camera.field of view) > 0.001” a first geometric condition for the robot arrangement is specified, which has a distance between a robot-side reference and an environment-side reference in the form of a predetermined minimum distance of 0.001 mm between a surface of the gripper 31 of the robot 30 and a field of view of the camera 4. By Jf (distance(Gripper.Surface, Camera.Field of view) > 0.001 AND NOT cameraTriggered 1 is determined by means of a logical AND combination of this given first geometric condition and an additional given condition in the form of a switched off flag “cameraTriggered 1 a first state or a first event is defined for the robot arrangement. Similarly, a further geometric condition for the robot arrangement is specified by "(distance(gripper.surface, camera. field of view) < 0.001" and by "if (distance(gripper.surface, camera. field of view) < 0.001 AND cameraTriggered 1 using an AND combination of this predefined further geometric condition and an additional predefined condition in the form of the switched-on flag “cameraTriggered 1 another state or event is defined for the robot arrangement. In this example, the first and further states or events exclude each other. In a step S10, during operation of the robot arrangement for carrying out the robot application, it is checked cyclically for the first and further state or event whether this first or further state or event is present or, in an execution since the last check, has occurred. If this check reveals that the first state or event exists or has occurred (S10: "2"), a first action is triggered (Fig. 2: S20), which is predefined for the first state or event. This first action comprises actuating or activating a device separate from the robot assembly for carrying out the robot application in the form of capturing an image using camera 4 ("TakeImage();"), switching on the "cameraTriggered" flag ("cameraTriggered := True;"), and calling a subroutine of the robot program for determining a gripping position based on this image captured using camera 4 ("DetermineNewGripPosition();"). However, if this review reveals that the further condition or If an event is present or has occurred (S10: “3”), another action is triggered (Fig. 2: S30), which is specified for the further state or event. This further action includes switching off the flag “cameraTriggered” (“cameraTriggered := False;”) and partially undoes the first action. If the check shows that neither the first nor the further state or event exists or has occurred, for example because the gripper surface is at a sufficient distance from the camera field of view, but an image has already been taken and a new gripping position has been determined, none of the actions are triggered, but the check of step S10 is repeated. This example illustrates the triggering of new images by cameras during bin picking. The images should only be taken when the gripper is no longer in the camera's field of view to avoid false detections. Due to cycle time, moving to a separate robot pose in which the gripper is outside the camera's field of view is disadvantageous. To describe the states or events, a further condition (cameraTriggered) is added in addition to the specified first or subsequent geometric condition. This means that the first action is only triggered once, when the gripper first leaves the camera's field of view. This allows for better recognition of possible components and the determination of possible gripping positions more reliably and quickly. The re-entry of the gripper into the camera's field of view can be used to reset the additional condition (cameraTriggered). In a modification indicated by dashed lines in Fig. 1, in which gripper 31, camera 4 and container 2 are not required, analogously to the example already explained, a (non-)energy supply of a robot-guided laser 5, which represents a robot (arrangement)-guided device for carrying out a robot application and is shown by dashed lines in Fig. 1, as a result of a (non-)impact of a virtual laser (focal) point on a workpiece 6 shown by dashed lines in Fig. 1, by a first state or a first event (,,(VirtualLaserPoint, Workpiece) < 0.0001"), a complementary further state or Event (“else”) and a first action specified for the first state or event (“SetDigitalOutputC $OUT
[0035] ', TRUE') and a further action specified for the further state or event ("SetDigitalOutputC $OUT
[0035] ', FALSE"), which undoes the first action, can be programmed: If (distance(VirtualLaserPoint, Workpiece) < 0.0001) SetDigitalOutput(' $OUT
[0035] ', TRUE); else SetDigitalOutputC $OUT
[0035] ', FALSE); This checks whether the distance between the virtual laser point and the workpiece is smaller than a specified value. If this is the case (Fig. 2: S10: "2"), an active, e.g., positive, value of the digital output signal $OUT
[0035] is specified, i.e., the output signal is set to this value or this value is maintained (S20), thereby supplying the laser (beam) with energy. Otherwise (Fig. 2: S10: “3”), a passive value of the digital output signal $OUT
[0035] , for example a negative value or zero, is specified, ie the output signal is set to this value or this value is maintained, whereby the laser (beam) is no longer supplied with energy (the return arrow to step S10 without executing step S20 or S30 in Fig. 2 can be omitted in this modification, as can gripper 31, camera 4 and container 2 in Fig. 1, since one of the two conditions is always present with each new check, cf. “if... else”).This allows for a simple and flexible way of describing or programming the laser point to be activated or be deactivated only when it hits the workpiece and otherwise deactivated or be deactivated. In the situation shown in Fig. 1, for example, if laser 5 moves to the left—independent of the path—laser 5 would be activated by switching on the output signal $OUT
[0035] and deactivated again—again independent of the path—as soon as the virtual laser (focal) point of laser 5 no longer hits the workpiece 6. 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 X" 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 modifications are possible. Furthermore, it should be noted that the exemplary embodiments are merely examples that are not intended to limit the scope, applications, and construction in any way. Rather, the foregoing description provides a guide to the person skilled in the art for the Implementation of at least one exemplary embodiment is given, whereby various changes, in particular with regard to the function and arrangement of the described components, can be made without departing from the scope of protection as it results from the claims and combinations of features equivalent to these. List of reference symbols 2 containers 4 Camera 5 Laser 6 Workpiece 10, 11 Subject 30 robot arm 31 grippers
Claims
Patent claims 1. A method for performing a robot application, the method comprising the steps of: - Operating a robot arrangement to carry out the robot application; - checking during this operation of the robot arrangement whether a first state exists which is defined by means of a predetermined first geometric condition for the robot arrangement; and - Triggering a first action specified for the first state if this check shows that the first state exists.
2. Method according to claim 1, characterized in that the robot application comprises a plurality of application routines to be processed, wherein at least one of these application routines to be processed is initiated on the basis of the first action.
3. Method according to one of the preceding claims, characterized in that for at least one further state which is defined with the aid of a predetermined further geometric condition for the robot arrangement, it is checked during the operation of the robot arrangement for carrying out the robot application whether this further state exists, and a further action which is predetermined for this further state is triggered (S30) if this check shows that this further state exists.
4. Method according to claim 2 and 3, characterized in that at least one of the application routines to be processed is initiated on the basis of the further action.
5. Method according to claim 3 or 4, characterized in that the first and the further state cannot exist simultaneously.
6. Method according to claim 3 or 4, characterized in that the first and the further state at least partially coincide.
7. Method according to one of claims 3-6, characterized in that the further action at least partially reverses the first action.
8. Method according to one of the preceding claims, characterized in that the first and / or further state is defined by means of a combination of at least two predetermined conditions.
9. Method according to one of the preceding claims, characterized in that the first and / or further geometric condition has a predetermined geometric relationship, in particular a distance, between at least one robot-side reference, in particular at least one robot-side geometric primitive, and at least one environment-side or other robot-side reference, in particular at least one environment-side or other robot-side geometric primitive.
10. Method according to one of the preceding claims, characterized in that the first and / or further action comprises specifying a value of an output of a robot controller or a flag and / or executing a routine of a robot program and / or actuating or not actuating a device guided by the robot arrangement or separate from the robot arrangement for carrying out the robot application.
11. Method according to one of the preceding claims, characterized in that the first and / or further state is defined on the basis of a user input and / or the first and / or further geometric condition and / or action is specified on the basis of a user input and / or during operation of the robot arrangement for carrying out the robot application it is cyclically checked whether the first and / or further state is present.
12. System for performing a robot application, which is configured to perform a method according to one of the preceding claims and / or comprises: means for operating a robot arrangement for performing the robot application; - means for checking during this operation of the robot arrangement whether a first state exists which is defined by means of a predetermined first geometric condition for the robot arrangement; and - means for triggering a first action specified for the first state if this check shows that the first state exists.
13. 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 12, cause the computer(s) or the system to carry out a method according to one of claims 1 to 11.
Citation Information
Patent Citations
Method and control system for verifying and updating calibration information for robot control
DE102020119453B4
Industrial robot system and method for controlling an industrial robot
US20200254610A1