Method and system for operating a robot
Patent Information
- Application Number
- EP2023732045
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-06-23
- Filing Date
- 2023-06-09
- Publication Date
- 2025-04-30
AI Technical Summary
Current robot operation methods only roughly account for load limits, leading to potential overloads, especially in varying poses and movements, which can cause mechanical and dynamic stress, and do not effectively prevent unwanted overloads or monitor wear.
A method that determines current load values for each joint of a robot using sensors and compares them to predetermined limit values, allowing for precise adjustment of joint-specific loads, including torque, speed, and power, to prevent overloads and monitor wear, with actions such as speed reduction and evasive movements to manage load situations.
This approach effectively prevents overloads, reduces mechanical stress, and allows for predictive maintenance by accurately monitoring joint loads and wear, improving robot operation and extending its lifespan.
Smart Images

Figure 1.1
Abstract
Description
[0001] Description
[0002] Method and system for operating a robot
[0003] The present invention relates to a method and system for operating a robot and to a computer program or computer program product for carrying out the method.
[0004] Robots have various components, such as kinematic structural bodies, drive motors, gears, brakes, bearings, sensors and the like, each of which has different load limits with regard to different loads and is also loaded differently depending on the current pose and movement of the robot.
[0005] So far, this has only been taken into account very roughly by maximum permissible payloads, which are specified for the most unfavourable poses, for example outstretched or cantilevered robot arms.
[0006] The object of the present invention is to improve the operation of a robot.
[0007] This object is achieved by a method having the features of claim 1. Claims 13, 14 represent a system or computer program or.
[0008] A computer program product for carrying out a method described herein is protected. The subclaims relate to advantageous developments.
[0009] According to one embodiment of the present invention, a robot, which in one embodiment has a robot arm, in one embodiment is a robot arm, has several, preferably at least three, in one embodiment at least six, in one embodiment at least seven, joints, in one embodiment rotary joints, which are adjustable or are adjusted by, preferably electromotive, joint drives in order to effect a movement of the robot.
[0010] According to one embodiment of the present invention, during a movement of the robot caused by its joint drives, for two or more, preferably all, joints, in each case: based on a (measured) value from at least one sensor, in one embodiment on (measured) values from several sensors, a current one-dimensional or multi-dimensional load value is determined for the respective joint or joint-specifically; and based on this current load value and a one-dimensional or multi-dimensional predetermined limit value for the respective joint, in one embodiment based on a difference between the limit value and the load value for the respective joint, a one-dimensional or multi-dimensional load value is determined for the respective joint or joint-specifically.
[0011] In the case of multi-dimensional load values, limit values and load values, components or dimensions of the load values, limit values and load values are assigned to one another in an embodiment, preferably in such a way that the component j of the load value for the joint i is determined based on the corresponding dimension or component j of the load value for the joint i and the corresponding dimension or component j of the limit value for the joint i or in general form:
[0012] B(i,j) = B(L(i,j), G(i,j)), i = 1 ,... Number of joints; j = 1 ,... Dimension or number of components of load size, limit and load values with
[0013] B(i,j): component j of the load value for joint i; L(i,j): component j of the load value for joint i; G(i,j): component j of the limit value for joint i;
[0014] By using multiple components, different loads can be taken into account in one design, for example both torques and speeds or the like.
[0015] The limit value is or will be specified in one embodiment (in each case) based on permissible loads of one or more components of the robot, in particular at least one kinematic structural body, drive motor, bearing, sensor, gear, and / or at least one brake. One embodiment of the present invention is based on the idea of specifying joint- or axis-specific limit values based on permissible loads for various components and comparing the current values with these. In this way, it is possible to determine in which joints or axes loads are currently how far from their permissible maximum values, and to react advantageously to influence the operation of the robot, preferably to avoid unwanted overloads.
[0016] In one embodiment, the load magnitude value and / or stress value for a joint depends (in each case) on a torque at the (respective) joint; in particular, a component of the load value can indicate such a torque. This allows mechanical loads to be advantageously taken into account in one embodiment.
[0017] Additionally or alternatively, the load magnitude value and / or stress value for a joint in one embodiment depends (in each case) on a velocity at the (respective) joint; in particular, a component of the stress value can indicate such a velocity. This allows dynamic loads to be advantageously taken into account in one embodiment.
[0018] In a further development, the load value and / or stress value for a joint (respectively) depends on both a torque and a speed at the (respective) joint. In one embodiment, the load value and / or stress value, in particular a component of the load value or stress value, can depend on, and in particular indicate, a product of torque and (rotational) speed, in particular a power. This allows wear to be advantageously taken into account in one embodiment.
[0019] In one embodiment, as explained above, the multidimensional load value can have a component that depends on, in particular, a torque at the (respective) joint, and / or a component that depends on, in particular, the speed at the (respective) joint, and / or a component that depends on, in particular, the product of the torque at the (respective) joint and the speed at the (respective) joint, and / or a component that depends on, in particular, the product of the torque at the (respective) joint and the speed at the (respective) joint. This allows different loads to be advantageously considered together.
[0020] In one embodiment, a torque or a speed at a joint comprises a torque or a speed between two mutually rotatable members of the joint, in particular a torque or a speed of a joint drive, in particular a motor and / or transmission, of the joint, and / or between two mutually rotatable structural members of the joint.
[0021] In one embodiment, at least one component of the load magnitude values for the joints is measured by the corresponding sensors, for example, torques by torque sensors and / or (rotational) speeds by (rotational) speed sensors. In a further development, the measured values are further processed, for example, by filtering, averaging, smoothing, scaling, or the like. This allows load magnitude or stress values to be determined more precisely in one embodiment.
[0022] In one embodiment, at least one component of the load magnitude values for the joints is determined based on a mathematical model or observer, for example, torques are determined using a model or observer based on measured positions, speeds, temperatures, currents, and / or voltages of drive motors, or the like. This advantageously allows existing sensors to be used in one embodiment and / or allows for the consideration of non-directly measurable load magnitude or stress values.
[0023] Based on the determined load values, according to one embodiment of the present invention, an action of the robot is carried out to reduce one or more components of the load values or with the proviso or in such a way that (by this action) these component(s) are reduced.
[0024] One embodiment of the present invention is therefore based on the idea of performing different actions depending on how far the loads in the individual joints of the robot are from their permissible limits, thereby preferably avoiding unwanted overloading of the robot as much as possible. In this way, the robot can be brought closer to its permissible joint- and component-specific load limits in one embodiment, thereby improving its operation.
[0025] In addition or alternatively to this aspect, by an action of the robot which is determined or specified based on the load values, to reduce load values, according to one embodiment of the present invention, a load situation of the robot is signaled based on the load values, in one embodiment optically and / or acoustically to an operator who cooperates with the robot in one embodiment, and / or via data technology to an application program which, in a further development, in response to this, causes the robot to carry out an application-program-specific (specified) action, in one embodiment an action in which load values temporarily exceed specified limit values.
[0026] This allows a user to react in an application-specific and therefore particularly advantageous manner when loads in individual joints approach or exceed specified limit values, for example by allowing such an exceedance - at least briefly - or by accepting a corresponding short-term overload of the robot in order to achieve a higher-ranking goal of the application program, by switching the robot compliantly in order to avoid overloads caused by joint drives working against the environment, or by other actions.
[0027] In addition or as an alternative to this aspect of signaling a load situation of the robot, and in addition or as an alternative to the aforementioned aspect of reducing load values through an action of the robot that is determined or specified based on the load values, according to one embodiment of the present invention, a load situation of the robot is stored based on the load values and, in a further development, the stored load situation of the robot is used for an analysis, in particular a damage and / or wear analysis, after processing at least one work process, in one embodiment after processing several process cycles of the robot during which the load value values were determined. The idea behind this is to document during operation whether, when and / or for how long and / or how often which components or joints have been operated (how) close to their respective load limits.These limits may have been exceeded. This can be advantageous, particularly for predictive maintenance, to identify robot damage, and / or to plan future work processes.
[0028] In one embodiment, an action of the robot, which is also referred to as the first action without restriction of generality and in particular can have one of the actions described here, in particular a speed reduction, evasive movement or the like, and / or another action, is carried out when a component of the load values, which is also referred to as the first component without restriction of generality, lies in a predetermined range, which is also referred to as the first range without restriction of generality, in one embodiment an action to reduce this (first) component of the load values.
[0029] In a further development of this embodiment, another action of the robot, which is also referred to as a second action without restriction of generality and in particular can have, in particular be, one (other) of the actions described here, in particular a speed reduction, evasive movement or the like, and / or another action, is carried out when the one or first component lies in another predetermined area, which is also referred to as a second area without restriction of generality, in one embodiment another action for reducing the one or first component of the load values.
[0030] In one embodiment, this can advantageously reduce a disturbance of or interference with the working operation(s) of the robot.
[0031] Additionally or alternatively, in a further development of the above embodiment, an action of the robot is carried out when another component of the load values, which is also referred to as the second component without loss of generality, lies in a predetermined range, in one embodiment in the one or first predetermined range or in another predetermined range. This action can in particular comprise, or in particular be, one of the actions described here, in particular a speed reduction, evasive movement or the like, and / or another action. It can be an action to reduce this other or second component. In one embodiment, it is the one or first action, in another embodiment, it is a different action or an action different from the one or first action, which is also referred to as the second action without loss of generality.
[0032] This allows different load scenarios to be handled particularly advantageously.
[0033] In one embodiment, the one or first action and / or the other or second action is or is specified by the application program, to which the load situation of the robot is signaled and which, in response thereto, causes the robot to perform one or this application program-specific action, wherein the action is or is selected from several specified actions in one embodiment on the basis of a user input.
[0034] This means that the robot can react particularly appropriately to load situations depending on the application program, or the user can specify particularly suitable robot reactions to signaled load situations by entering appropriate inputs or configuring the application program or the action(s) by or in the application program, so that particularly advantageous operation of the robot can be achieved in each case. This means that the robot in one design reacts specifically to different loads or load situations and can therefore avoid or reduce overloads more specifically. In particular, the robot can react in different applications or when processing different application programs in a way that is specific to both the application (program) and the load value component, and can therefore avoid or reduce overloads particularly well in one design.reduce, although, as explained elsewhere, application-specific overloads can also be accepted.
[0035] In the above embodiment, in a further development, one or first and the other or second component can both be components of the load value for the same joint. For example, the robot can react differently to either avoid or reduce overloading due to a torque or due to a joint's rotational speed, depending on which component of the corresponding load value is closer to a permissible maximum value.
[0036] In another development of the above embodiment, the one or first and the other or second components can also be components of load values for different joints. For example, the robot can react differently to either avoid or reduce an overload caused by a torque of one joint or an overload caused by a torque or rotational speed of another joint, depending on which component of the corresponding load value is closer to a permissible maximum value.
[0037] In one embodiment, the load value for a joint (in each case) comprises one or more current or instantaneous components. This is particularly advantageous for reducing load values during robot operation through a robot action determined or specified based on these current components, in particular for avoiding localized overloads due to peak loads.
[0038] Additionally or alternatively, the load value for a joint in one embodiment (each) comprises one or more single or multiple time-integrated components. This is particularly advantageous for performing an analysis and / or signaling a load situation of the robot after at least one work process has been completed, in one embodiment after several process cycles have been completed, since this advantageously allows for the cumulative load on the robot to be taken into account.
[0039] Equally, an action by the robot that is determined or specified based on such time-integrated components can reduce load values during robot operation, or current components can be signaled, for example so that a user or application program can intervene during operation, or saved, for example so that maximum values can be used for analysis. A time-integrated component is determined in one embodiment for a specified time interval, in one embodiment since a specified point in time, for example commissioning, maintenance or the like, and / or for a specified period of time, in one embodiment a specified period of time up to a current or instantaneous point in time, for example for the last 1, 5 or 10 seconds or the like.Additionally or alternatively, in one embodiment, during time integration to form a time-integrated component, only current load magnitude values or load magnitude value components are considered that have at least a predetermined minimum value, which in one embodiment is or is specified based on the corresponding limit value or the corresponding limit value component. This allows cumulative loads to be particularly well taken into account in one embodiment, in particular, in addition to or alternatively to an acute overload caused by a momentary peak load, a cumulative overload caused by a corresponding load spectrum can be taken into account.
[0040] In one embodiment, a robot speed specified in a work program, particularly when traveling along a path already specified before the current load magnitude values are determined or by the work program, is reduced in order to reduce at least one component of the load values. In one embodiment, this specified speed is a path speed or the speed of a robot-fixed reference, in particular an end effector and / or TCP.
[0041] By performing a speed reduction or action, a load on the robot or a corresponding component of the load values can be reduced in a simple and / or safe manner.
[0042] In a further development, the robot continues to follow the specified path during this speed reduction, preferably with its robot-fixed reference ("path-true"). Additionally or alternatively, the robot stops (if necessary) during this speed reduction. This advantageously allows the robot to continue following the specified path in one embodiment. Additionally or alternatively, this allows particularly safe robot behavior to be achieved in one embodiment.
[0043] In one embodiment, the robot performs an evasive movement dependent on the load values in addition to or as an alternative to the speed reduction, or in a further development after the aforementioned speed reduction, in order to reduce at least one component of the load values. In one further development, the robot, preferably with its robot-fixed reference, deviates during this evasive movement from a path specified in one embodiment before the determination of the current load values or by the work program.
[0044] By means of such an evasive movement, one design can react particularly advantageously to an (impending) overload, or avoid or reduce it.
[0045] In this case, the speed reduction and evasive movement can be combined particularly advantageously by first decelerating the robot, preferably in a path-consistent manner, if necessary to a standstill. Only if this is not sufficient to sufficiently reduce the load values does the robot perform an evasive movement, in which it deviates from the path.
[0046] In this way, a cascade or successive reaction is carried out in an embodiment in order to sufficiently reduce the load(s).
[0047] In one embodiment, the evasive movement comprises a movement of the robot antiparallel to a projection, in particular transformation, of load values to be reduced into a Cartesian workspace of the robot, and can in particular be such. As explained, the (components of the) load values correspond to loads at the joint level and can thus be transformed from the joint into the Cartesian workspace of the robot in a manner analogous to a known forward transformation. The corresponding projection, in particular transformation, of load value (components) to be reduced by an action, in particular evasive movement, of the robot, or of load value (components) for the reduction of which the action orThe evasive movement carried out in a Cartesian workspace of the robot thus points in the generalized direction of the Cartesian workspace in which the load(s) would increase the most, so that an antiparallel evasive movement, conversely, reduces these load(s) particularly advantageously. The Cartesian workspace of the robot within the meaning of the present invention comprises, in one embodiment, the, in particular one-, two-, or three-dimensional space of a position of a or the robot-fixed reference, in particular an end effector or TCP of the robot, and / or the, in particular one-, two-, or three-dimensional space of an orientation of the robot-fixed reference, wherein, of course, Denavit-Hartenberg descriptions, quaterion descriptions, and the like can also be understood as the Cartesian workspace of the robot within the meaning of the present invention.
[0048] In one embodiment, during the evasive movement, a robot-fixed reference, preferably an end effector or TCP, of the robot continues to be held in a position predetermined by a path(s) specified in one embodiment, the or one of the above-mentioned, in one embodiment a path specified before determining the current load size values or by the work program, wherein in a further development an orientation of the robot-fixed reference specified by this path is abandoned during the evasive movement. Thus, in one embodiment, the robot-fixed reference is held at the specified location during the evasive movement, but rotated in order to avoid an overload situation. In one embodiment, this causes less disruption to a work process.
[0049] In one embodiment, during the evasive movement, a robot-fixed reference, preferably an end effector or TCP, of the robot continues to be held in an orientation predetermined by a path(s) specified in one embodiment, the or one of the above-mentioned, in one embodiment a path specified before determining the current load size values or by the work program, wherein in a further development, a position of the robot-fixed reference specified by this path is abandoned during the evasive movement. Thus, in one embodiment, the robot-fixed reference is held in the specified orientation during the evasive movement, but shifted in order to avoid an overload situation. This advantageously allows the direction of impact of a robot end effector or tool to be maintained, thus advantageously continuing a work process.
[0050] Both designs are combined in a further development in which, in one embodiment, a kinematic redundancy of the robot is utilized and, during the evasive movement, a robot-fixed reference, preferably an end effector or TCP, of the robot continues to be held in a position and orientation predetermined by a path(s) specified in one embodiment, the path(s) specified above, or in one embodiment, a path specified before the current load size values are determined or by the work program. For this purpose, in one embodiment, a work process can be advantageously continued.
[0051] Thus, the following embodiments are claimed as being particularly preferred: a) when traveling along a path predetermined before determining the current load magnitude values, a predetermined speed of the robot (for the travel) is reduced in order to reduce at least one component of the load values, in one embodiment reduced in such a way that the robot continues to follow the predetermined path and / or stops during this speed reduction; b) in one embodiment after this speed reduction or also according to an independent aspect, the robot performs an evasive movement dependent on the load values in order to reduce at least one component of the load values. In one further development, it performs an evasive movement antiparallel to a projection of load values to be reduced into a Cartesian workspace of the robot;b1) during the evasive movement, a robot-fixed reference of the robot continues to be held in a position that is specified by a path that was specified before the current load size values were determined, wherein an orientation of the robot-fixed reference specified by this path is abandoned; or b2) during the evasive movement, a robot-fixed reference of the robot continues to be held in an orientation that is specified by a path that was specified before the current load size values were determined, wherein a position of the robot-fixed reference specified by this path is abandoned; or b3) during the evasive movement, by exploiting a kinematic redundancy of the robot, a robot-fixed reference of the robot continues to be held in a position and orientation that is specified by a path that was specified before the current load size values were determined.
[0052] In one embodiment, preferably after performing the above-mentioned aspect a) and / or b), in particular b1), b2) or b3), an emergency stop of the robot is performed, in which, in one embodiment, the robot's brakes are applied. This allows an advantageous end state to be realized in one embodiment.
[0053] According to one embodiment of the present invention, a system for operating the robot, in particular hardware and / or software, in one embodiment programmatically, is set up to carry out a method described here and / or comprises:
[0054] - means for determining, for two or more, in particular all, joints, a current one- or multi-dimensional load value for the respective joint during a movement of the robot caused by joint drives based on at least one sensor value; and
[0055] - Means for determining, for these two or more, in particular all, joints, a one-dimensional or multi-dimensional load value for the respective joint during the movement of the robot caused by joint drives, based on this current load value and on a predetermined one-dimensional or multi-dimensional limit value for the respective joint; and a) means for causing the robot to carry out an action to reduce one or more components of these load values based on the load values, and / or b) means for signaling and / or storing a load situation of the robot based on the load values.
[0056] In one embodiment, the system or its means comprises:
[0057] - means for reducing a predetermined speed of the robot, in particular when traveling along a path predetermined before determining the current load magnitude values, in order to reduce at least one component of the load values, in particular such that the robot continues to follow the predetermined path and / or stops during the speed reduction; and / or
[0058] - Means for carrying out, in particular after the speed reduction, an evasive movement by or with the robot which is dependent on the load values in order to reduce at least one component of the load values, in particular such that the robot deviates from a path predetermined before the determination of the current load values during the evasive movement and / or such that the evasive movement comprises a movement of the robot antiparallel to a projection of load values to be reduced into a Cartesian workspace of the robot, and / or such that during the evasive movement a robot-fixed reference of the robot continues to be held in a position and / or orientation predetermined by a predetermined path; and / or
[0059] - means for signalling the load situation of the robot to an application program, which in response thereto causes the robot to carry out an application-specific action, in particular an action in which load values temporarily exceed predetermined limit values; and / or
[0060] - Means for analysis based on the stored load situation of the robot after processing at least one work process, in particular several process cycles, of the robot and / or
[0061] - Means for performing an action by the robot when a component of the load values lies in a predetermined range, in particular an action to reduce this component of the load values, and for performing another action by the robot when one component lies in another predetermined range, in particular another action to reduce one component of the load values; and / or for performing an action by the robot when another component of the load values lies in a predetermined range, in particular the one predetermined range or another predetermined range, in particular an action to reduce the other component and / or other action.
[0062] 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. The processing unit can be designed to execute instructions implemented as a program stored in a memory system, to detect input signals from a data bus, and / or to 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 the methods described here oris capable of executing, so that the processing unit can carry out the steps of such methods and thus in particular can operate the robot. In one embodiment, a computer program product can have, in particular be, a storage medium, in particular a computer-readable and / or non-volatile one, for storing a program or instructions or with a program or instructions stored thereon. In one embodiment, execution of this program or these instructions by a system or a controller, in particular a computer or an arrangement of several computers, causes the system or the controller, in particular the computer(s), to carry out a method described here or one or more of its steps, or the program or the instructions are configured to do so.
[0063] In one embodiment, one or more, in particular all, steps of the method are carried out completely or partially automatically, in particular by the system or its means.
[0064] In one embodiment, the system comprises the robot and / or the application program.
[0065] The present invention is particularly suitable for robot operation in which the robot cooperates with at least one human during movement caused by joint drives, since unforeseen stresses can often occur in this case, for example, because a human exerts unexpected forces on the robot. Further advantages and features emerge from the subclaims and the exemplary embodiments. The following shows, partially schematically:
[0066] Fig. 1 : a system for operating a robot according to an embodiment of the present invention; and
[0067] Fig. 2: a method for operating the robot according to an embodiment of the present invention.
[0068] Fig. 1 shows a system for operating a robot 1 having multiple joints, of which a carousel joint 11, a wrist joint 15, and a swing-arm joint 12, as well as a swing-arm joint drive 12.1 and a sensor arrangement 12.2 with a torque sensor and a speed sensor, are identified by reference numerals. n1, ..., n6 indicate the speeds of the joints or drives, reference numeral 2 denotes a controller, and reference numeral 17 denotes an end effector of the robot.
[0069] Fig. 2 illustrates a method performed by the controller 2 or the system for operating the robot 1 according to an embodiment of the present invention.
[0070] In a step S10, while the robot 1 travels a predetermined path, a current one- or multi-dimensional load magnitude value is determined for each of the joints based on sensor values obtained from sensor arrays, of which a sensor array 12.2 is indicated as an example in Fig. 1. For example, for each of the joints i = 1, ..., 7, a current torque Ti, a current speed Ni, and a current power Pi are determined as a three-dimensional load magnitude value [Ti, Ni, Pi].
[0071] In a step S20, a three-dimensional load value [BTi, BNi, BPi] is determined for the respective joint i based on these load magnitude values and a predefined three-dimensional limit value [TMi, NMi, PM]. This can in particular be the difference between the current values and limit values. Additionally or alternatively, time integrals can also be used. In a step S30, a load situation of the robot is signaled and / or stored based on these load values before the method or controller 2 returns to step S10. An application program can react to this signal in a specific manner. Additionally or alternatively, a damage case can then be analyzed based on the stored load values.
[0072] Alternatively, additionally or in parallel, an action is carried out by the robot based on the load values to reduce one or more components of these load values.
[0073] For this purpose, a check is carried out in step S40 to determine whether one of the load values lies within a predetermined range, for example, whether one of the components of [BT i, BNi, BPi] normalized to 1 is at least 0.9, i.e., whether at least 90% of a permissible load, for example, a permissible torque for this joint, a permissible speed for this joint, or a permissible power for this joint, is reached for the respective joint. If this is not the case (S40: "N"), the method or controller 2 returns to step S10.
[0074] Otherwise (S40: “Y”), in a step S50 the speed specified for traveling along the path is reduced in accordance with the path, if necessary until the robot stops on the specified path.
[0075] If this is sufficient for none of the load values to meet the criterion (S60: “Y”), the method or control 2 returns to step S10.
[0076] Otherwise (S60: “N”), the robot 1 performs an evasive movement in a step S70.
[0077] If this is sufficient so that none of the load values meet the criterion (S80: "Y"), the process or controller 2 also returns to step S10. Otherwise (S80: "N"), an emergency stop of the robot is performed in step S90.
[0078] When returning to step S10, the reduced speed is increased again to the specified speed if necessary (step S55) and / or the system is returned to the specified path by reversing the evasive movement (step S75).
[0079] It can be seen that acute overloads of individual components at the axis or joint level can be advantageously avoided here, which can arise, for example, if the robot is pulled while traveling along the path, thus unexpectedly exceeding permissible torques or speeds in individual joints.
[0080] For a more compact illustration, steps S30 and S40-S90 are shown together in Fig. 2, although step S30 or one or more of steps S40-S90 can, of course, be omitted. Likewise, the application program can implement one or more of steps S40-S90 in step S30.
[0081] Aspects of the present invention are explained below, without being limited to the above-described embodiment of Fig. 1, 2, in particular its details:
[0082] Using stored diagrams of the load capacity of the loaded robot components provided by the manufacturer, a comparison is performed between joint-specific load limits and the current state of the robot in several calculation cycles. This allows the current load situation to be continuously determined in real time and allows for signaling to be implemented that can be used to react to unwanted overload situations before the robot automatically shuts down.
[0083] Examples of robot components whose load limits can be used to specify the limit values include motors, gears, brakes, torque sensors, bearings and structural components or joint bodies.
[0084] Monitoring the load situation can generate warnings or signals in a user program so that the overload situation can be prevented, or so that the overload situation is deliberately entered into, thereby deliberately shortening the service life of the robot. Additionally or alternatively, entries can be made in a log file in which the overload is recorded for later review.
[0085] With the help of knowledge of the load situation, it is advantageously possible to push the robot to its mechanical limits, which cannot be specified in a generally understandable way in the written documentation for the robot.
[0086] The axle- or joint-specific configuration or storage of the limit values or nominal “maximum ratings” can be carried out in vector form, as can the processing of the load size values or load value.
[0087] Advantageously, unexpected load situations can be taken into account, such as those that can occur particularly in human-robot collaboration / cooperation applications, for example when a human pulls on the robot while it executes a predetermined trajectory movement.
[0088] The load values can in particular have the following components: a) acute or momentary loads. In one embodiment, this acute situation is signaled to the application with priority and / or is digitally documented in a preferably persistent file; b) integral load: Even if the robot is operated just below its load limit for a longer period of time, its service life decreases. Therefore, in one embodiment, the invention also offers an indication of the components that are subject to the greatest wear during continuous operation, preferably without triggering an acute situation. For this purpose, load integrals are created for all joints and made available to the user for evaluation. In particular, this can be implemented as follows: For each joint, a percentage limit is defined and stored in relation to a stored static upper limit, above which the joint is to be monitored, for example 90% of the maximum permissible load.From this limit, the current load contributes to the formation of an integral. The contribution can also be nonlinear, for example, as follows: Let M be the current torque of a joint, and Mx the limit value stored for this. In one implementation, a time integral is then calculated using the term (|M|-80%*Mx). 2 which only contributes to the integral if the absolute value of M is also greater than 90%. So B = f [(|M|-0.9-Mx) 2• (|M|>Mx-0.9?)] This integral becomes larger over the course of operation and is a measure of the accumulated wear. If B is normalized with t by calculating B / t, i.e. dividing the load integral by the acquisition time, a stress factor S is obtained for this component, which the user can work with particularly advantageously. Both variables (B and S) are provided in a version within the controller for each joint for the application developer. This gives the user a quantitative expression for the mechanical stress to which they subject their robot. B and S are preferably vectors of the variables to be considered. If B(tx) of a past time (which existed x seconds ago) is subtracted from the current B(t), then this results in a picture of the load situation in the time tx to t.This allows you to effectively mask out long-ago stress periods, and (B(t)-B(tx)) / x provides a useful measure of the robot's stress situation in the last x seconds. Using these tools, you can easily determine at which points in a program sequence the movements might be "softened" to extend the robot's lifespan.
[0089] Acute overload situations are signaled immediately upon detection in the application via a callback call to a function that the user or programmer can define to achieve a custom behavior, or via an interrupt. The application can then react to them quickly and individually.
[0090] One advantageous aspect is the provision of the load situation in the form of a data structure that can be read by the user program: all current vectors with the percentage of the current loads per axis or joint. From these vectors, it is directly possible to determine which values are critical at the axis or joint level, for example, torque, speed, or power. From these axis or joint values, vectors can also be forward-transformed into Cartesian space, which allows the user or application programmer to easily identify which countermeasures should ideally be taken in the event of an impending load situation in order to Cartesianly avoid the overload situation. The load magnitude vector points in the Cartesian direction in which the load would increase most sharply.For example, the Cartesian forward-transformed vector for the torque load situation points in the direction in which the current axis or joint load would increase even further. Its magnitude can be calculated as a percentage of the maximum load. If the robot's end effector were pulled in this direction, the load would increase further. Conversely, the situation can be alleviated by pushing the end effector in the opposite direction. Using vectors of this type, the application developer can design their application so that the robot independently avoids overload situations in permissible situations. The vector with the percentage utilization values for the speed points Cartesian in the direction in which the robot would have to move further and faster for the axes or joints subject to the highest load to reach their limits even further.Deceleration in the opposite direction, on the other hand, would optimally ease the situation. Here, too, application developers have a good means of protecting the robot from overload situations. The load situations discussed here can arise unexpectedly, particularly due to externally applied forces, such as a person unexpectedly pulling on the robot or something similar. The load vectors then indicate precisely at the axis or joint level which axis or joint is how far from the nominal limit, and the Cartesian transformation of the vectors indicates in which direction the force is assumed with respect to the end effector or TCP, or that relief occurs in the opposite direction. The application developer can thus modify the trajectory online to protect the robot.
[0091] If an impending overload situation is detected, at least one of the following countermeasures is preferably carried out: a) Emergency stop: The robot interrupts its work and switches to emergency stop, with braking. b) Path-compliant overload avoidance: The controller is programmatically set so that it automatically reduces the speed and attempts to prevent the overload situation without deviating from the programmed path. If the overload cannot be avoided in this way, the robot will eventually stop without initially triggering an emergency stop. If the situation is resolved (for example through support from external human interaction or mechanical relief, or program-controlled actions), the robot will continue its work while adhering to the limit values. It can also reach the target speed again in this case. Speed is preferably used as the controlled variable to avoid an overload situation.If the overload situation is not resolved despite the system being at a standstill, further action can be taken without having to trigger an emergency stop. Only if all configured measures are unsuccessful will the robot be put into emergency stop by the lower-level safety system. c) Overload avoidance through direct avoidance: The controller is programmatically set so that it automatically avoids the load and attempts to avoid the overload situation. The robot then independently avoids the load in the direction opposite to the load, which is given by the vectors calculated above. This mode can also be used when the system is at a standstill and is ideally combined with mode b) "Path-true overload avoidance". The robot then attempts to travel according to the path for as long as possible, stopping if necessary, and if that doesn't help, avoids the load.Here, after braking along the path to a standstill, the robot finally yields in the exact direction of the load. It thus breaks away at the last moment to avoid overloading. d) Path-accurate avoidance into defined redundancies: The controller is programmatically configured to automatically avoid the load and thus attempt to avoid the overload situation. e) User-specific behavior: The controller can be programmatically configured to signal to the user program that the robot is (potentially) overloaded, and the application can implement its own treatment strategy. This method offers maximum flexibility, whereby brief overload situations are deliberately accepted if necessary, even if this means the robot has to be repaired more quickly. This can still be the most cost-effective solution.This can be particularly advantageous in rehabilitation, for example, when the robot is guiding a patient's limb, and the patient experiences spasticity during therapy and pulls on the robot with great force. In one version, the robot would then simply follow the patient without being harmed and without creating an emergency situation. The user program can perform an evasive movement without overloading the patient because the application-specific implementation of the evasive strategy is precisely tailored to this setting and therefore knows the case. f) The controller logs overload situations in an internal log file that the manufacturer can read. Case c. above can therefore also be recognized and documented by the manufacturer, who can then protect themselves from unjustified claims for repairs or the like.
[0092] Although exemplary embodiments have been explained in the preceding description, it should be noted that numerous modifications are possible. 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, whereby various modifications, particularly 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 equivalent combinations of features.
[0093] List of reference symbols
[0094] 1 robot
[0095] 2 Control 11, 12, 15 Joint
[0096] 12.1 Articulated drive
[0097] 12.2 Sensor arrangement
[0098] 17 End effector ni,...,n6Speed
Claims
Patent claims 1. Method for operating a robot (1) having several joints (11, 12, 15), wherein during a movement of the robot effected by joint drives (12.1), for two or more, in particular all, joints: - based on at least one sensor value, a current one- or multi-dimensional load value for the respective joint is determined (S10); and - based on this current load value and a one- or multi-dimensional predefined limit value for the respective joint, a one- or multi-dimensional load value for the respective joint is determined (S20); wherein, based on the load values, an action of the robot is carried out to reduce one or more components of these load values and / or, based on the load values, a load situation of the robot is signaled and / or stored.
2. Method according to claim 1, characterized in that a predetermined speed of the robot, in particular when traversing a path predetermined before determining the current load values, is reduced in order to reduce at least one component of the load values.
3. Method according to the preceding claim, characterized in that the robot continues to follow the predetermined path and / or stops when the speed is reduced.
4. Method according to one of the preceding claims, characterized in that the robot, in particular after the speed reduction, performs an evasive movement dependent on the load values in order to reduce at least one component of the load values, in particular to deviate from a path specified before the current load values were determined.
5. Method according to the preceding claim, characterized in that the evasive movement is a movement of the robot antiparallel to a The method includes the projection of load values to be reduced into a Cartesian workspace of the robot. A method according to claim 4 or 5, characterized in that during the evasive movement, a robot-fixed reference of the robot is maintained in a position and / or orientation defined by a path specified prior to the determination of the current load values. A method according to any of the preceding claims, characterized in that the robot's load situation is signaled to an application program, which in response causes the robot to perform an application-program-specific action. A method according to any of the preceding claims, characterized in that an action of the robot is performed when a component of the load values lies within a predetermined range, in particular an action to reduce this component of the load values, and that - a different action is performed by the robot if one component is located in a different predefined area, in particular a different action to reduce the load values of that one component; and / or - an action of the robot is performed when another component of the load values lies within a predetermined range, in particular one predetermined range or another predetermined range, in particular an action to reduce the other component and / or another action. Method according to the two preceding claims, characterized in that at least one of the actions is predetermined by the application program, in particular is selected from several predetermined actions based on user input. Method according to one of the preceding claims, characterized in that the stored load situation of the robot is used for an analysis according to The robot is used to process at least one work process, in particular several process cycles. A method according to one of the preceding claims, characterized in that the load value and / or stress value for a joint depends on a torque and / or a velocity at the joint and / or has at least one current and / or at least one time-integrated component. A method according to one of the preceding claims, characterized in that the robot cooperates with at least one person during the movement effected by joint drives. A system for operating a robot (1) having several joints (11, 12, 15), wherein the system is configured and / or has the following features for carrying out a method according to one of the preceding claims: - Means for determining, for two or more, in particular all, joints, a current one- or multi-dimensional load value for the respective joint during a movement of the robot caused by joint drives, based on at least one sensor value; and - Means for determining, for these two or more, in particular all, joints, a one- or multi-dimensional load value for the respective joint during the movement of the robot caused by joint drives, based on this current load value and a one- or multi-dimensional predefined limit value for the respective joint; as well as Means to cause the robot to perform an action to reduce one or more components of the load values based on those values, and / or means to signal and / or store a load situation of the robot based on the load values. A computer program or computer program product, wherein the computer program or computer program product contains instructions, in particular those 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 13 cause the computer(s) or the system to perform a method according to any one of claims 1 to 12.