Method of controlling industrial robot, and robot system
By allowing users to input deviations, the method refines the model of industrial robots to compensate for joint compliances, addressing the complexity and inaccuracy of existing calibration methods, resulting in improved performance and accuracy.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-24
- Publication Date
- 2026-04-02
AI Technical Summary
Existing methods for calibrating industrial robots to compensate for joint compliances and end effector deflections are complex and require thorough understanding of kinematics, leading to inaccurate compensation if the elastic model is not correctly calibrated.
A method that allows users to provide input indicative of end effector deviations from a path, refining a candidate model to create a modified model that accurately compensates for joint compliances and end effector compliance, using a user-intuitive and efficient approach.
The method provides faster, more accurate calibration of industrial robots, reducing deflections and improving performance in task spaces by allowing users to intuitively adjust the model based on actual deviations, without the need for expensive measurement equipment.
Smart Images

Figure EP2024076748_02042026_PF_FP_ABST
Abstract
Description
[0001] METHOD OF CONTROLLING INDUSTRIAL ROBOT, AND ROBOT SYSTEM
[0002] Technical Field
[0003] The present disclosure generally relates to control of industrial robots. In particular, a method of controlling an industrial robot and a robot system comprising an industrial robot and a control system, are provided.
[0004] Background
[0005] An industrial robot may comprise a plurality of joints and an end effector. In some applications, such as in friction stir welding or friction drilling, the end effector exerts relatively high forces on an external object, such as at least a few hundred Newtons. In applications where the industrial robot exerts such high forces, deflections of the end effector occur due to joint compliances in the joints such that the end effector deviates from a programmed path. The deflections may be translational deflections and / or rotational deflections. In order to predict such deflections, a precise model of the industrial robot is required. Such model may contain a definition of a relationship between the joint compliances of each joint in respective joint spaces and an end effector compliance of the end effector in a task space.
[0006] In order to obtain such model, a precise calibration of the joint compliances may be performed by the user. Prior art calibration solutions are very complex and require a thorough understanding of the kinematics of the industrial robot. In some prior art solutions, the industrial robot is positioned in a set of poses and in each pose, a known external force is applied to the end effector and the deflection of the end effector is measured. One example of such solution can be found in Reference 1. Reference 1: DE BACKER, Jeroen; Deflection model for robotic friction stir welding; Industrial robot: An International Journal; Volume 41, Number 4, 2014; Pages 365-372.
[0007] Reference 2 refers to an online compliance compensation where the deviation is calculated based on measurements taken while a processing task is being performed. The compliance compensation described in Reference 2 does however not include any modification of the elastic model based on an actual deviation of the end effector. Thus, if the elastic model is not correctly calibrated, the computed deviation will be incorrect, and so will the compensation.
[0008] Reference 2: Gonzalez, Monica Katherine; Online compliance error compensation system for industrial manipulators in contact applications; Robotics and Computer-Integrated Manufacturing; Volume 76 (2022).
[0009] Summary
[0010] One object of the invention is to provide an improved method of controlling an industrial robot.
[0011] A further object of the invention is to provide an improved robot system.
[0012] These objects are achieved by the method according to appended claim 1 and the control system according to appended claim 9.
[0013] The invention is based on the realization that by allowing a user to provide an input indicative of a deviation of an end effector from a path in a task space, and by refining a candidate model based on the input, the performance of an industrial robot in the task space can be improved in a user-intuitive and efficient manner.
[0014] According to a first aspect, there is provided a method of controlling an industrial robot including a plurality of joints and an end effector, the method comprising providing, in a control system, a candidate model containing a candidate definition of a relationship between a joint compliance of each joint in a respective joint space and an end effector compliance of the end effector in a task space; controlling, by the control system, the industrial robot to be positioned in a position or to move along a path using the candidate model; receiving, by the control system, an input signal indicative of a deviation of the end effector from the position or the path in the task space; modifying, by the control system and based on the input signal, the candidate model to provide a modified model containing a modified definition of the relationship; and controlling, by the control system, the industrial robot using the modified model.
[0015] The method may comprise controlling, by the control system, the industrial robot to be positioned in a position using the candidate model, and receiving, by the control system, an input signal indicative of a deviation of the end effector from the position in the task space; or controlling, by the control system, the industrial robot to move along a path using the candidate model, and receiving, by the control system, an input signal indicative of a deviation of the end effector from the path in the task space.
[0016] The method provides a new technique to calibrate the industrial robot based on an actual behavior, i.e., the deviation, of the end effector in the task space when being commanded to be positioned in the position or to move along the path. The method is faster, more intuitive and more accurate than existing calibration methods, such as in Reference 1.
[0017] The modification of the candidate model to provide the modified model constitutes a calibration of the industrial robot. By modifying the candidate model to provide the modified model, the relationships between the joint compliances and the end effector compliance are changed.
[0018] Each of the candidate model and the modified model represents a framework for compensating for the effects of elasticity and deformation in the industrial robot. The candidate definition of the candidate model may be defined with formula (A) as: cq=J-1CXJ~T(A) where Cq is a matrix representing the joint compliances of each joint in the respective joint space, J is the velocity Jacobian, and Cx is the end effector compliance of the end effector in the task space. The candidate model may be constituted by the candidate definition or may include additional terms.
[0019] The modified definition of the modified model may be defined with formula (B) as: cq=j-1cxj-T+r1cxuxj-T(B) where Ux is a modification matrix. For example, in case the end effector has six degrees of freedom in the task space, the coefficients of the modification matrix Ux can be defined, e.g., with values from o to 1, based on the input signal to specify compliance changes in the respective degrees of freedom. The modified definition may thus include a sum of the candidate definition in formula (A) and a modification term according to formula (B).
[0020] Instead of trying to find a model for the industrial robot using complex calibration procedures, such as in Reference 1, the method employs a nominal model, i.e., the candidate model, that is improved by the modification based on the input signal. This constitutes a new and advantageous technique to calibrate the joint compliances based on a desired behavior of the end effector in the task space.
[0021] The method enables a human user to be relieved from performing the actual calibration. Instead, the user may only provide an input indicative of the deviation, based on which input the input signal may be generated, e.g., by an input device. By the modification of the candidate model based on the input signal, the control system automatically provides the modified model containing an updated calibration of the relationships between the joint compliances and the end effector compliance. The method is therefore highly intuitive and simple from a user perspective. For example, the input signal may indicate a desired compliance behavior of the end effector in the task space directly along the path. This is very advantageous in applications where medium to high forces are exerted on the end effector, such as during friction stir welding and friction drilling. The input signal may thus originate from a user input to tweak the candidate model, which may be very complex, in a simple and intuitive manner.
[0022] As the candidate model, a prior art elasto-geometric model may be used, such as the model described in Reference 2. The method is however independent of which model is used as the candidate model.
[0023] The method enables the candidate model to be improved without necessarily needing expensive measurement equipment, such as laser trackers. The method further enables an adaptive and accurate improvement of the candidate model. A range of applications of the method is also not restricted to quasi-static trajectories (e.g., at low speeds not exceeding 50 mm / s).
[0024] The modification of the candidate model to provide the modified model should not be confused with an online compensation method. Such online compensation method may be used in addition to the modification of the candidate model. When controlling the industrial robot, the candidate model and the modified model may respectively be used as the primary resource of knowledge in the control system. By modifying the candidate model according to the method, deviations of the end effector from the position or path can be addressed at their root cause.
[0025] The method particularly improves accuracy of the industrial robot when controlled to move along the path with respect to which the input signal indicative of the deviation is provided, or a similar path. Thus, the method may be used to provide an application-specific calibration of the industrial robot.
[0026] The candidate model may be a global model, i.e., used for all tasks by the industrial robot. The modified model may be either global or local. In the latter case, the modified model may only be used in some applications, e.g., including movements along the path. Accordingly, in some examples, a plurality of different modified models may respectively be used for a plurality of different applications.
[0027] The method may be carried out several times to iteratively improve the model. For example, if the method is carried out a first time and a second time, the modified model from the first time may be used as the candidate model the second time and so on. The method thus enables an incremental change of the end effector compliance in the task space, e.g., by a given percentage. If the accuracy of the industrial robot is not satisfactory, instead of carrying out a new calibration, e.g., in accordance with Reference 1, the method enables an efficient incremental improvement of the calibration to improve accuracy.
[0028] The compliance is the inverse to the stiffness. The compliance may be linear or non-linear. Each joint has only one rotational degree of freedom. The end effector has a plurality of degrees of freedom in the task space, such as six degrees of freedom including three translational degrees of freedom and three rotational degrees of freedom. The end effector compliance may be a tool center point, TCP, compliance of the TCP in the task space. Furthermore, in order to control the industrial robot to be positioned in the position, the industrial robot may be controlled such that the TCP is positioned in the position. Correspondingly, in order to control the industrial robot to move along the path, the industrial robot may be controlled such that the TCP moves along the path.
[0029] The task space may be a space in which movements of the end effector are defined when programming the industrial robot, e.g., to move along the path. The task space may for example be an end effector space or an object space. The task space may be stationary. The task space may for example be a Cartesian coordinate space, a cylindrical coordinate space or a spherical coordinate space. In any case, the position and / or the path can be expressed in the task space alone. The task space differs from each joint space. Since the industrial robot is typically programmed by definitions in the task space, and since also the input signal is indicative of the deviation of the end effector in the task space, the intuitiveness of the method is high.
[0030] The industrial robot may be controlled to move along a path while exerting a force of at least 100 N, such as at least 1000 N, on an external object. When the industrial robot is controlled to move along the path, the end effector may for example be controlled to move in one, two or three dimensions. At the same time, the industrial robot may control an orientation of the end effector. The path may include a start position, such as a start teaching point, an end position, such as an end teaching point, and optionally one or more intermediate teaching points. The points may be interconnected by movement segments.
[0031] The input signal may include input data indicative of a deviation in each of one or more coordinates of the task space. For example, in case the task space is a Cartesian coordinate space, the input signal may be indicative of one or more of a translational deviation in a first direction (e.g., an X-axis), a translational deviation in a second direction (e.g., a Y-axis) transverse to the first direction, a translational deviation in a third direction (e.g., a Z-axis) transverse to each of the first and second directions, a rotational displacement around the first direction, a rotational displacement around the second direction and a rotational displacement around the third direction.
[0032] The controlling of the industrial robot using the candidate model may comprise controlling the industrial robot to move along the path. In these cases, the method may further comprise controlling, by the control system, the industrial robot to move along the path using the modified model. When the industrial robot is controlled to move along the path using the modified model, the deviation will be smaller in comparison with when the industrial robot is controlled to move along the path using the candidate model.
[0033] The path may be a first path. In these cases, the method may further comprise controlling, by the control system, the industrial robot to move along a second path, different from the first path, using the modified model. The modified model may thus be used as a generic or global model for different paths.
[0034] Alternatively, the method may be carried out again for the second path. That is, the industrial robot may be controlled to move along the second path using the candidate model and the deviation, based on which the modified model is provided, may be based on a deviation of the end effector from the second path. The control system may then control the industrial robot to move along the second path using the modified model. The calibration may thus optionally be updated for different applications. The second path may differ from the first path in many different ways including by differing in length, by differing in shape, by having a different start position, by having a different end position, by being positioned differently in the task space and / or by being oriented differently in the task space.
[0035] The path may comprise one or several movement segments or sub-paths, where each movement segment can be defined as a movement between two adjacent teaching points for the end effector. In line with this, the method may also be carried out once for each movement segment of a path, to thereby generate a modified model specific for each movement segment.
[0036] The input signal may be provided based on an input from a human user. The input may for example be provided by the user to an input device. The input device may in turn provide the input signal to the control system based on the input from the user.
[0037] The method may further comprise providing, in the control system, a geometric feature of the path in the task space; and associating, by the control system, the modified model with the geometric feature.
[0038] The geometric feature may be associated with a distance to a base of the industrial robot, with a direction of the path or with a shape of the path. For example, for a particular first distance or a first range of distances, a first modified model may be provided and used by the control system when controlling the industrial robot to move along these one or more paths, and for a particular second distance, different from the first distance, or a second range of distances, different from the first range of distances, a second modified model, different from the first modified model, may be provided and used by the control system when controlling the industrial robot to move along these one or more paths. Correspondingly, for a particular first direction or a first range of directions, a first modified model may be provided and used by the control system when controlling the industrial robot to move along these one or more paths, and for a particular second direction, different from the first direction, or a second range of directions, different from the first range of directions, a second modified model, different from the first modified model, may be provided and used by the control system when controlling the industrial robot to move along these one or more paths.
[0039] The method may further comprise controlling, by the control system, the industrial robot to perform a process in accordance with a process parameter while moving along the path. In these cases, the method may further comprise associating, by the control system, the modified model with the process parameter. Examples of process parameters include a rotational speed of the end effector, a force exerted by the end effector on an external object and a temperature of the end effector.
[0040] According to a second aspect, there is provided a robot system comprising an industrial robot including a plurality of joints and an end effector; and a control system including at least one data processing device and at least one memory having at least one computer program stored therein, the at least one computer program comprising program code which, when executed by the at least one data processing device, causes the at least one data processing device to provide a candidate model containing a candidate definition of a relationship between a joint compliance of each joint in a respective joint space and an end effector compliance of the end effector in a task space; control the industrial robot to move along a path using the candidate model; provide an input signal indicative of a deviation of the end effector from the path in the task space; modify, based on the input signal, the candidate model to provide a modified model containing a modified definition of the relationship; and control the industrial robot using the modified model. The at least one computer program may comprise program code which, when executed by the at least one data processing device, causes the at least one data processing device to perform, or command performance of, any operation as described herein, in particular in connection with the first aspect. The robot system and the industrial robot of the second aspect may be of any type as described in connection with the first aspect, and vice versa.
[0041] The controlling of the industrial robot using the candidate model may comprise controlling the industrial robot to move along the path. In these cases, the at least one computer program may comprise program code which, when executed by the at least one data processing device, causes the at least one data processing device to control the industrial robot to move along the path using the modified model.
[0042] The path may be a first path. In these cases, the at least one computer program may comprise program code which, when executed by the at least one data processing device, causes the at least one data processing device to control the industrial robot to move along a second path, different from the first path, using the modified model.
[0043] The robot system may further comprise an input device configured to receive an input indicative of the deviation from a human user; generate, based on the input, the input signal; and communicate the input signal to the control system.
[0044] The at least one computer program may comprise program code which, when executed by the at least one data processing device, causes the at least one data processing device to provide geometric feature data indicative of a geometric feature of the path in the task space; and associate the modified model with the geometric feature data.
[0045] The geometric feature may be associated with a distance to a base of the industrial robot, with a direction of the path or with a shape of the path. The at least one computer program may comprise program code which, when executed by the at least one data processing device, causes the at least one data processing device to control the industrial robot to perform a process in accordance with a process parameter while moving along the path; and associate the modified model with the process parameter.
[0046] Brief Description of the Drawings
[0047] Further details, advantages and aspects of the present disclosure will become apparent from the following description taken in conjunction with the drawings, wherein:
[0048] Fig. 1: schematically represents a robot system comprising an industrial robot including an end effector;
[0049] Fig. 2: schematically represents a deviation of the end effector when being subjected to a force;
[0050] Fig. 3: schematically represents a robot system comprising an industrial robot according to a further example including an end effector;
[0051] Fig. 4: schematically represents a block diagram of components of the robot system in Fig. 3;
[0052] Fig. 5: schematically represents a top view of the industrial robot in Fig. 3 and a path;
[0053] Fig. 6: schematically represents a top view of the industrial robot in Fig. 3 when the end effector is controlled to move along the path using a candidate model;
[0054] Fig. 7: schematically represents a side view of the end effector in Fig. 6;
[0055] Fig. 8: schematically represents an input device according to one example;
[0056] Fig. 9: schematically represents a top view of the industrial robot in Fig. 3 when the end effector is controlled to move along the path using a modified model;
[0057] Fig. 10: schematically represents a side view of the end effector in Fig. 9; Fig. 11: schematically represents a path according to a further example; and
[0058] Fig. 12: is a flowchart outlining general steps of a method.
[0059] Detailed Description
[0060] In the following, a method of controlling an industrial robot and a robot system comprising an industrial robot and a control system, will be described. The same or similar reference numerals will be used to denote the same or similar structural features.
[0061] Fig. 1 schematically represents a robot system 10a. The robot system 10a comprises an industrial robot 12a and a controller 14 for controlling the industrial robot 12a. The controller 14 is one example of a control system.
[0062] The industrial robot 12a comprises a base 16, a first link 18a rotationally connected to the base 16 via a first joint 20a, a second link 18b rotationally connected to the first link 18a via a second joint 20b, a third link 18c rotationally connected to the second link 18b via a third joint 20c, and an end effector 22 attached to the third link 18c. One, several or all of the first to third links i8a-i8c, and one, several or all of the first to third joints 2oa-2oc may also be referred to with reference numerals "18" and "20", respectively. Each link 18 is driven at its joint 20 by an associated electric motor and an associated gearbox (not illustrated).
[0063] Fig. 1 further shows a tool center point, TCP, 24 fixed with respect to the end effector 22 and a stationary end effector space 26a, here a Cartesian space fixed with respect to the base 16. Movements and orientations of the TCP 24 can be programmed in the end effector space 26a. The end effector space 26a is one example of a task space. In Fig. 1, the controller 14 commands the industrial robot 12a to adopt a position 27a. The industrial robot 12a in Fig. 1 is of a relatively simple design for descriptive purposes, here exemplified as a serial planar manipulator movable only in the XY-plane.
[0064] A deflection of the end effector 22 in the end effector space 26a from the position 27a can be expressed with formula (1) as: dX = Jdq (1) where dX is the deflection of the end effector 22 in the end effector space 26a, J is the velocity Jacobian between the joints 20 and the end effector 22, and dq represents the deflections of the joints 20 in their respective joint spaces.
[0065] A relationship between torques in the joints 20 and a wrench (forces and torques) in the end effector 22 can be expressed with formula (2) as: where dr represents the torques in the joints 20 in the respective joint spaces, and dF represents the wrench in the end effector 22 in the end effector space 26a.
[0066] A relationship between the deflection dX of the end effector 22, a task space compliance matrix Cx, and the wrench dF in the end effector 22 can be expressed with formula (3) as:
[0067] A relationship between the deflections dq of the joints 20, a joint compliance matrix Cq, and the torques dr in the joints 20 can be expressed with formula (4) as:
[0068] By inserting formula (2) in formula (3), the following formula (5) is obtained: dX = CxJ~Tdr (5)
[0069] By inserting formula (5) in formula (1), the following formula (A) is obtained: by inspection with formula (4)) = Cq(A)
[0070] Formula (A) contains a candidate definition of a relationship between a joint compliance of each joint 20 in a respective joint space and an end effector compliance of the end effector 22 in the end effector space 26a. Formula (A) constitutes one example of a candidate model of the industrial robot 12a provided in the controller 14. The inventors have realized that in order to calibrate the industrial robot 12a in a very efficient and intuitive manner, the candidate model can be modified to provide a modified model in the controller 14 based on input data indicative of one or more deviations of the end effector 22 from a position or path, i.e., in one or more degrees of freedom, in the end effector space 26a. To this end, the following formula (B) may be used: cq=J-1CXJ-T+J-1CXUXJ-T(B) where Ux is a modification matrix in which incremental changes in the task space 26 can be provided by a human user. This is much easier than defining the joint compliances on a joint-by-joint basis. In formula (B), which constitutes one example of a modified model of the industrial robot 12a provided in the controller 14, the first term represents the candidate model and the second term represents a modification of the model. The modification matrix Ux is here related to the end effector space 26a and maps to the candidate model. The modified model thus contains a modified definition of the relationship between the joint compliance of each joint 20 in the respective joint space and the end effector compliance of the end effector 22 in the end effector space 26a.
[0071] Fig. 2 schematically represents the industrial robot 12a when the end effector
[0072] 22 is being subjected to a known force 28. In Fig. 2, the industrial robot 12a is commanded by the controller 14 to adopt the position 27a that can be expressed with formula (6) as: q = [60 -80 -70] (6) where the first, second and third elements of the matrix denote a rotational position in degrees of the first joint 20a (and hence also the first link 18a) relative to the base 16, the second joint 20b (and hence also the second link 18b) relative to the first link 18a, and the third joint 20c (and hence also the third link 18c) relative to the second link 18b, respectively. The commanded position 27a of the industrial robot 12a is shown with dashed lines, and the actual position of the industrial robot 12a is shown with solid lines. There is thus a deviation between the commanded position 27a of the TCP 24 and the actual position of the TCP 24 due to the force 28. The force 28 in Fig. 2 can be expressed as a wrench with formula (7) as:
[0073] 100 N'
[0074] 50 N (7) 0 Nm. where the first, second and third elements of the matrix denote a component of the force 28 in the X-direction, a component of the force 28 in the Y- direction and a torque in the XY-plane, respectively.
[0075] The following formula (8) is one concrete, specific and non-limiting example of the joint compliance matrix of the candidate model of the industrial robot 12a (hence the index "model"):
[0076] Consequently, the task space compliance matrix can be computed with the following formula (9): x_model J q_modelJ (9)
[0077] Given the force 28 applied to the end effector 22, the corresponding deflections of the end effector 22 in the end effector space 26a can be computed with the following formula (10) and compensated by the controller 14: where F is the force 28.
[0078] Determining a good elastic model of the industrial robot 12a is inherently difficult, e.g., due to its complex and non-linear dependency on applied forces and torques. Let's say that the industrial robot 12a in reality (hence the index "real") has a joint compliance matrix and a corresponding task space compliance matrix as expressed in the following formulas (11) and (12), respectively: x_real J q_realJ (12)
[0079] The real deflections of the end effector 22 in the end effector space 26a can then be computed with the following formula (13): dXreaiCx_real ^3)
[0080] Consequently, when the force 28 is applied to the TCP 24, the deflections of the TCP 24 in the end effector space 26a, computed as in formula (13), differ from the expected ones due to the imperfect joint compliance matrix of the candidate model in formula (8). Therefore, the deflections of the TCP 24 in the end effector space 26a cannot be fully compensated by the controller 14 (due to the imperfect elastic model used by the controller 14) and the user will notice the deflection of the end effector 22 in the end effector space 26a (hence the index "user") expressed in the following formula (14) and shown in Fig. 2:
[0081] ’ 8.5 mm dXuserdXreaidXmodei16.1 mm .0.07 rad
[0082] The user may provide an input indicative of the deviations, corresponding to the matrix in formula (14), to the controller 14, e.g., via an input device. The controller 14 then uses this input to update the erroneous candidate model corresponding to formula (8) by computing the modification matrix Ux in the following formula (15). The modification matrix Ux maybe computed according to a procedure that makes use of the Jacobian, the reported deviations and, optionally, the measured forces (if available), for example by using an iterative identification procedure in which corrective terms needed to match the deviations are identified.
[0083] The candidate model will then be modified to provide a modified model according to formula (B):
[0084] Formula (B) can also be written as formula (16): where Uqis a modification term or a complementary joint compliance matrix. In the present example, Uqwill have values according to formula (17):
[0085] The modified model will then compensate for the initial imperfections in the candidate model such that the deflection of the end effector 22 will be reduced or eliminated in the position 27a shown in Fig. 2 when subjected to the force 28. This may for example be valuable in some friction drilling applications where a static position is used.
[0086] Fig. 3 schematically represents a robot system 10b. Mainly differences with respect to the robot system 10a will be described. The robot system 10b comprises an industrial robot 12b. The industrial robot 12b of this example comprises a first link 18a rotationally connected to the base 16 via a first joint 20a, a second link 18b rotationally connected to the first link 18a via a second joint 20b, a third link 18c rotationally connected to the second link 18b via a third joint 20c, a fourth link i8d rotationally connected to the third link 18c via a fourth joint 2od, a fifth link i8e rotationally connected to the fourth link i8d via a fifth joint 20e, a sixth link i8f rotationally connected to the fifth link i8e via a sixth joint 2of, and the end effector 22 attached to the sixth link i8f. One or both of the robot systems 10a, 10b, one or both of the industrial robots 12a, 12b, one, several or all of the first to sixth links i8a-i8f, and one, several or all of the first to sixth joints 2oa-2of may also be referred to with reference numerals "10", "12", "18" and "20", respectively.
[0087] Each joint 20 has only one rotational degree of freedom. The industrial robot 12b of this example is a serial manipulator having six degrees of freedom. Thus, the industrial robot 12b can position the TCP 24 in a plurality of positions in three dimensions in the end effector space 26a and in each of these positions, the TCP 24 can be oriented in any orientation in the end effector space 26a. Fig. 3 further illustrates forces 28 and torques 30 acting on the end effector 22. The forces 28 and torques 30 constitute a wrench 32. The robot system lob of this example further comprises an input device 34, here including a display 36. The input device 34 is in signal communication with the controller 14. The input device 34 is configured to receive an input 38 from a human user 40 and to send a corresponding input signal 42 containing input data to the controller 14. The input device 34 may for example be embodied as a teach pendant unit, TPU. The robot system 10b of this example further comprises an imaging device 44, such as a camera, in signal communication with the controller 14.
[0088] Fig. 4 schematically represents a block diagram of components of the robot system 10b. The controller 14 of this example comprises a data processing device 46 and a memory 48. The memory 48 has a computer program stored therein. The computer program comprises program code which, when executed by the data processing device 46, causes the data processing device 46 to perform and / or command performance of various operations described herein.
[0089] Fig. 4 illustrates that a first joint compliance 50a of the first joint 20a in a first joint space 52a, a second joint compliance 50b of the second joint 20b in a second joint space 52b, a third joint compliance 50c of the third joint 20c in a third joint space 52c, a fourth joint compliance sod of the fourth joint 2od in a fourth joint space 52d, a fifth joint compliance soe of the fifth joint 20e in a fifth joint space 52e, and a sixth joint compliance sof of the sixth joint 2of in a sixth joint space 52f, are provided in the controller 14, here in the memory 48 thereof. One, several of all of the first to sixth joint compliances soa-sof, and one, several or all of the first to sixth joint spaces 52a-52f may also be referred to with reference numerals "50" and "52", respectively.
[0090] Fig. 4 further illustrates that an end effector compliance 54 of the end effector 22 in the end effector space 26a, the candidate model 56 and the modified model 58 are provided in the controller 14. The controller 14 is configured to modify the candidate model 56 based on the input signal 42, such as based on input data contained therein, to provide the modified model 58 as described herein. Fig. 4 further illustrates that a plurality of paths 6oa-6on, including first to third paths 6oa-6oc, a plurality of geometric feature data 62a-62n, including first to third geometric feature data 62a-62c, and a plurality of process parameters 64a-64n, including first to third process parameters 643-640, are provided in the controller 14. Fig 4. further illustrates that the industrial robot 12b comprises first to sixth electric motors 66a-66f for driving the first to sixth joints 2oa-2of, respectively. The paths 6oa-6on, the geometric feature data 62a-62n, the process parameters 64 -640, and the first to sixth electric motors 66a-66f may also be referred to with reference numerals "60", "62", "64" and "66", respectively.
[0091] Fig. 5 schematically represents a top view of the industrial robot 12b, the first path 60a and a stationary external object 68. The first path 60a is here exemplified as a straight line between a start position 27b and an end position 27c. The start position 27b and the end position 27c may each be a teaching point for the industrial robot 12b. Fig. 5 further shows a stationary object space 26b fixed to the object 68. The object space 26b is a further example of a task space. Thus, the first path 60a may be defined in either one of the end effector space 26a and the object space 26b. The first path 60a is here exemplified as a straight path. The controller 14 may command the industrial robot 12b to move along the first path 60a such that the TCP 24 is aimed to move along the first path 60a with one or more defined orientations. The end effector 22 may exert a force of at least 100 N on the object 68 when moving along the first path 60a, e.g., to perform friction stir welding on the object 68.
[0092] Fig. 5 shows a first zone 70a outside of and enclosing the base 16, a second zone 70b outside of and enclosing the first zone 70b, and a third zone 70c outside of and enclosing the second zone 70c. The first path 60a of this example is positioned in the second zone 70b, at a distance 7od from the base 16, oriented in a direction joe in the end effector space 26a, and has a straight shape 70f, which is correspondingly indicated in the first geometric feature data 62a. The first to third zones joa-joc, the distance yod, the direction yoe and the shape yof constitute examples of geometric features of the first path 6oa, and may also be referred to with reference numeral "70".
[0093] Fig. 6 schematically represents a top view of the end effector 22 of the industrial robot 12b, and Fig. 7 schematically represents a side view of the end effector 22 in Fig. 6. With collective reference to Figs. 6 and 7, the end effector 22 is controlled to perform a process, such as friction stir welding, by moving along the first path 60a to apply a force of at least 100 N on the object 68 using the candidate model 56 and by simultaneously rotating with a rotational speed 64a. Thus, in this example, the rotational speed 64a is a first process parameter 64 associated with the first path 60a. During this process, the end effector 22 may for example be subjected to a traverse force 72, a side force 74, a torque 76 and an axial force 78.
[0094] Due to imperfections in the candidate model 56, there are deviations from the programmed first path 60a due to deflection of the end effector 22, e.g., caused by the traverse force 72, the side force 74, the torque 76 and the axial force 78. Sources for this deflection may include the joint compliances 50 and deflections of the links 18. The deviations are here exemplified as a first deviation 80a (Fig. 6) as a translational deviation from the first path 60a in the X-direction of the end effector space 26a, and a second deviation 80b (Fig. 7) as a rotational deviation around the X-axis of the end effector space 26a from a vertical orientation of the end effector 22 along the first path 60a. One or both of the first and second deviations 80a, 80b may also be referred to with reference numeral "80".
[0095] The first deviation 80a may be manually measured by the user 40, such as by using a ruler. To this end, the marks from the process on the object 68 may be measured. The second deviation 80b may for example be estimated by the user 40 by visually observing the process. Thus, the deviations 80 can be determined in a very cost-efficient manner. The user 40 may provide the input 38 indicative of the deviations 80 to the input device 34. The input 38 may for example be provided in millimeters for translational deviations and in degrees for rotational deviations. The input device 34 in turn sends the input signal 42, based on the input 38, to the controller 14. Alternatively, the deviations 80 may be detected by the imaging device 44. In these cases, the imaging device 44 may provide and send the input signal 42 indicative of the deviations 80 to the controller 14.
[0096] Fig. 8 schematically represents the input device 34 according to one example. The input device 34 here presents an interactive interface on its display 36 such that the user 40 can provide the input 38. The input 38 may include one or more of a first input 38a indicative of a translational deviation 80 of the TCP 24 from the first path 60a in the X-axis of the end effector space 26a, a second input 38b indicative of a translational deviation 80 of the TCP 24 from the first path 60a in the Y-axis of the end effector space 26a, a third input 38c indicative of a translational deviation 80 of the TCP 24 from the first path 60a in the Z-axis of the end effector space 26a, a fourth input 38d indicative of a rotational deviation 80 of the TCP 24 from a target orientation of the TCP 24 around the X-axis of the end effector space 26a along the first path 60a, a fifth input 38e indicative of a rotational deviation 80 of the TCP 24 from a target orientation of the TCP 24 around the Y-axis of the end effector space 26a along the first path 60a, and a sixth input 38f indicative of a rotational deviation 80 of the TCP 24 from a target orientation of the TCP 24 around the Z-axis of the end effector space 26a along the first path 60a. The user 40 may for example be able to set a value between o and 1 for each of the first to sixth inputs 38a-38f, e.g., by using respective sliders on the display 36, to set the coefficients of the modification matrix Ux.
[0097] Since in this example, there was the first deviation 80a in the form of a translational deviation from the first path 60a in the X-direction of the end effector space 26a, and the second deviation 80b in the form of a rotational deviation around the X-axis of the end effector space 26a from a vertical orientation of the end effector 22 along the first path 60a, the user 40 correspondingly provides the first input 38a and the fourth input 38d as the input 38. Based on the input 38, the input device 34 provides and sends a corresponding input signal 42 containing input data indicative of the deviations 80 to the controller 14. Based on the input signal 42, the controller 14 automatically modifies the candidate model 56 to provide the modified model 58 in accordance with the method as described herein. The process may optionally be run multiple times with intermediate inputs 38 from the user 40 and modifications of the candidate model 56 to iteratively improve the model. The modified model 58 may be associated with any of the geometric features 70 of the first path 60a and / or with the rotational speed 64a or other process parameter 64 of the process.
[0098] Fig. 9 schematically represents a top view of the end effector 22 of the industrial robot 12b, and Fig. 10 schematically represents a side view of the end effector 22 in Fig. 9. With collective reference to Figs. 9 and 10, the end effector 22 is controlled to perform the same process as in Figs. 6 and 7, but now the industrial robot 12b is controlled using the modified model 58. As shown in Figs. 9 and 10, the modified model 58 enables the controller 14 to compensate for deflections in the industrial robot 12b such that there are no deviations 80 with respect to the first path 60a. The performance of the process and the accuracy of the industrial robot 12b have thereby been improved in a very efficient and user-intuitive manner. The method enables a very good model for a specific application to be obtained in a fast and intuitive manner. With that said, the modified model 58 may also be used for other applications, such as for paths similar to the first path 60a (e.g., as determined based on the geometric features 70) and / or for processes with similar process parameters.
[0099] Fig. 11 schematically represents the second path 60b. The second path 60b is here exemplified as a curved path from a start position 2yd to an end position 27c, that may each be a teaching point for the industrial robot 12b. The second path 60b of this example is exemplified to differ from the first path 60a in that the second path 60b has a curved shape yof, which is indicated in the second geometric feature data 62b. Alternatively, or in addition, the second path 60b may differ from the first path 60a by being positioned in different zones 70a- 70c, by being positioned at different distances yod from the base 16 and / or by being oriented in different orientations yoe. The modified model 58 provided for the first path 60a may or may not be used also for the second path 6ob. Thus, the modified model 58 may or may not be a global model. If the modified model 58 provided for the first path 60a is considered a local model, the method may be performed to provide a modified model 58 dedicated to the second path 60b.
[0100] Fig. 12 is a flowchart outlining general steps of a method. The method comprises providing S10, in a control system 14, a candidate model 56 containing a candidate definition of a relationship between a joint compliance 50 of each joint 20 in a respective joint space 52 and an end effector compliance 54 of the end effector 22 in a task space 26. The method further comprises controlling S12, by the control system 14, the industrial robot 12 to be positioned in a position 27a or to move along a path 60 using the candidate model 56.
[0101] The method may further comprise providing S14, in the control system 14, a geometric feature 70 of the path 60 in the task space 26. The method may further comprise controlling S16, by the control system 14, the industrial robot 12 to perform a process in accordance with a process parameter 64 while moving along the path 60.
[0102] The method further comprises receiving S18, by the control system 14, an input signal 42 indicative of a deviation 80 of the end effector 22 from the position 27a or the path 60 in the task space 26. The receiving S18 may comprise providing S20 an input device 34, receiving S22, by the input device 34, an input 38 indicative of the deviation 80 from a human user 40, generating S24, by the input device 34, based on the input 38, the input signal 42, and communicating S26, by the input device 34, the input signal 42 to the control system 14.
[0103] The method further comprises modifying S28, by the control system 14 and based on the input signal 42, the candidate model 56 to provide a modified model 58 containing a modified definition of the relationship. The method may further comprise associating S30, by the control system 14, the modified model 58 with the geometric feature 70. The method may further comprise associating S32, by the control system 14, the modified model 58 with the process parameter 64.
[0104] The method further comprises controlling S34, by the control system 14, the industrial robot 12 using the modified model 58. The controlling S34 may comprise controlling S36, by the control system 14, the industrial robot 12 to move along the path 60 using the modified model 58. The path 60 may be a first path 60a. In these cases, the controlling S34 may comprise controlling S38, by the control system 14, the industrial robot 12 to move along a second path 60b, different from the first path 60a, using the modified model 58. While the present disclosure has been described with reference to exemplary embodiments, it will be appreciated that the present invention is not limited to what has been described above. For example, it will be appreciated that the dimensions of the parts may be varied as needed. Accordingly, it is intended that the present invention may be limited only by the scope of the claims appended hereto.
Claims
26CLAIMS1. A method of controlling an industrial robot (12) including a plurality of joints (20) and an end effector (22), the method comprising:- providing (S10), in a control system (14), a candidate model (56) containing a candidate definition of a relationship between a joint compliance (50) of each joint (20) in a respective joint space (52) and an end effector compliance (54) of the end effector (22) in a task space (26);- controlling (S12), by the control system (14), the industrial robot (12) to be positioned in a position (27a) or to move along a path (60) using the candidate model (56);- receiving (S18), by the control system (14), an input signal (42) indicative of a deviation (80) of the end effector (22) from the position (27a) or the path (60) in the task space (26);- modifying (S28), by the control system (14) and based on the input signal (42), the candidate model (56) to provide a modified model (58) containing a modified definition of the relationship; and- controlling (S34), by the control system (14), the industrial robot (12) using the modified model (58).
2. The method according to claim 1, wherein the controlling (S12) of the industrial robot (12) using the candidate model (56) comprises controlling (S12) the industrial robot (12) to move along the path (60).
3. The method according to claim 2, further comprising:- controlling (S36), by the control system (14), the industrial robot (12) to move along the path (60) using the modified model (58).
4. The method according to claim 2 or 3, wherein the path (60) is a first path (60a), and wherein the method further comprises:- controlling (S38), by the control system (14), the industrial robot (12) to move along a second path (60b), different from the first path (60a), using the modified model (58).
5. The method according to according to any of claims 2 to 4, further comprising:- providing (S14), in the control system (14), a geometric feature (70) of the path (60) in the task space (26); and- associating (S30), by the control system (14), the modified model (58) with the geometric feature (70).
6. The method according to claim 5, wherein the geometric feature (70) is associated with a distance (7od) to a base (16) of the industrial robot (12), with a direction (70e) of the path (60) or with a shape (7of) of the path (60).
7. The method according to any of claims 2 to 6, further comprising:- controlling (S16), by the control system (14), the industrial robot (12) to perform a process in accordance with a process parameter (64) while moving along the path (60); and- associating (S32), by the control system (14), the modified model (58) with the process parameter (64).
8. The method according to any of the preceding claims, wherein the input signal (42) is provided based on an input (38) from a human user (40).
9. A robot system (10) comprising:- an industrial robot (12) including a plurality of joints (20) and an end effector (22); and- a control system (14) including at least one data processing device (46) and at least one memory (48) having at least one computer program stored therein, the at least one computer program comprising program code which, when executed by the at least one data processing device (46), causes the at least one data processing device (46) to:- provide (S10) a candidate model (56) containing a candidate definition of a relationship between a joint compliance (50) of each joint (20) in a respective joint space (52) and an end effector compliance (54) of the end effector (22) in a task space (26);- control (S12) the industrial robot (12) to be positioned in a position (27a) or to move along a path (60) using the candidate model (56);- provide (S18) an input signal (42) indicative of a deviation (80) of the end effector (22) from the position (27a) or the path (60) in the task space (26);- modify (S28), based on the input signal (42), the candidate model (56) to provide a modified model (58) containing a modified definition of the relationship; and- control (S34) the industrial robot (12) using the modified model (58).
10. The robot system (10) according to claim 9, wherein the controlling (S12) of the industrial robot (12) using the candidate model (56) comprises controlling (S12) the industrial robot (12) to move along the path (60).
11. The robot system (10) according to claim 10, wherein the at least one computer program comprises program code which, when executed by the at least one data processing device (46), causes the at least one data processing device (46) to:- control (S36) the industrial robot (12) to move along the path (60) using the modified model (58).
12. The robot system (10) according to claim 10 or 11, wherein the path (60) is a first path (60a), and wherein the at least one computer program comprises program code which, when executed by the at least one data processing device (46), causes the at least one data processing device (46) to:- control (S38) the industrial robot (12) to move along a second path (60b), different from the first path (60a), using the modified model (58).
13. The robot system (10) according to any of claims 10 to 12, wherein the at least one computer program comprises program code which, when executed by the at least one data processing device (46), causes the at29 least one data processing device (46) to:- provide (S14) geometric feature data (62) indicative of a geometric feature (70) of the path (60) in the task space (26); and- associate (S30) the modified model (58) with the geometric feature data (62).
14. The robot system (10) according to any of claims 10 to 13, wherein the at least one computer program comprises program code which, when executed by the at least one data processing device (46), causes the at least one data processing device (46) to:- control (S16) the industrial robot (12) to perform a process in accordance with a process parameter (64) while moving along the path (60); and- associate (S32) the modified model (58) with the process parameter (64).
15. The robot system (10) according to any of claims 9 to 14, further comprising an input device (34) configured to:- receive (S22) an input (38) indicative of the deviation (80) from a human user (40);- generate (S24), based on the input (38), the input signal (42); and- communicate (S26) the input signal (42) to the control system (14).
Citation Information
Patent Citations
Robot positioning error graded compensation method
CN108908327A