Method Of Calibrating A Tool Of An Industrial Robot, Control System And Industrial Robot

20220105640 · 2022-04-07

    Inventors

    Cpc classification

    International classification

    Abstract

    A method of calibrating a tool of an industrial robot, the method including positioning a tool center point of the tool in relation to a reference target in at least one calibration position of the robot; for each calibration position, recording a joint position of at least one joint of the robot; calculating tool data based on the at least one joint position in each calibration position and based on a kinematic model of the robot, the tool data including a definition of the tool center point; determining an error of the calculated tool data; and modifying at least one kinematic parameter of the robot based on the error to reduce the error. A control system for calibrating a tool of an industrial robot and an industrial robot including the control system, are also provided.

    Claims

    1. A method of calibrating a tool of an industrial robot, the method comprising the steps of: positioning a tool center point of the tool in relation to a reference target in at least one calibration position of the robot; for each calibration position, recording a joint position of at least one joint of the robot; calculating tool data based on the at least one joint position in each calibration position and based on a kinematic model of the robot, the tool data including a definition of the tool center point; determining an error of the calculated tool data; and modifying at least one kinematic parameter of the robot based on the error to reduce the error.

    2. The method according to claim 1, wherein the determination of the error of the calculated tool data includes determining an error of the calculated tool center point.

    3. The method according to claim 1, wherein the tool data further comprises a definition of an orientation of the tool.

    4. The method according to claim 1, further comprising controlling the robot to execute a movement using the at least one modified kinematic parameter.

    5. The method according to claim 1, wherein the positioning of the tool center point in relation to a reference target is made in a plurality of different calibration positions of the robot.

    6. The method according to claim 1, further comprising modifying the kinematic model based on the at least one modified kinematic parameter.

    7. The method according to claim 1, wherein the at least one kinematic parameter comprises at least one joint position.

    8. The method according to claim 1, wherein the modification of the at least one kinematic parameter includes an optimization of the at least one kinematic parameter to reduce the error.

    9. The method according to claim 1, wherein the modification of the at least one kinematic parameter comprises: performing optimization of joint position modifications of the at least one recorded joint position to satisfy an objective function of minimizing the error of the tool center point, and to output at least one optimized joint position; and using the at least one optimized joint position as the modified at least one kinematic parameter.

    10. The method according to claim 1, wherein the reference target is single point.

    11. The method according to claim 1, wherein the reference target has a definable geometric shape.

    12. The method according to claim 1, wherein the error is determined as the average distance in at least one direction of the calculated tool center point to the reference target in the at least one calibration position.

    13. The method according to claim 1, wherein the error is determined as the maximum distance in at least one direction of the calculated tool center point to the reference target among the at least one calibration position.

    14. A control system for calibrating a tool of an industrial robot, the control system comprising a data processing device and a memory having a computer program stored thereon, the computer program comprising program code which, when executed by the data processing device, causes the data processing device to perform the steps of: for each of at least one calibration position of the robot, where a tool center point of the tool is positioned in relation to a reference target, recording a joint position of at least one joint of the robot; calculating tool data based on the at least one joint position in each calibration position and based on a kinematic model of the robot, the tool data including a definition of the tool center point; determining an error of the calculated tool data; and modifying at least one kinematic parameter of the robot based on the error to reduce the error.

    15. An industrial robot comprising a control system having a data processing device and a memory with a computer program stored thereon, the computer program including program code which, when executed by the data processing device, causes the data processing device to perform the steps of: for each of at least one calibration position of the robot, where a tool center point of the tool is positioned in relation to a reference target, recording a joint position of at least one joint of the robot; calculating tool data based on the at least one joint position in each calibration position and based on a kinematic model of the robot, the tool data including a definition of the tool center point; determining an error of the calculated tool data; and modifying at least one kinematic parameter of the robot based on the error to reduce the error.

    16. The method according to claim 2, wherein the tool data further comprises a definition of an orientation of the tool.

    17. The method according to claim 2, further comprising controlling the robot to execute a movement using the at least one modified kinematic parameter.

    18. The method according to claim 2, wherein the positioning of the tool center point in relation to a reference target is made in a plurality of different calibration positions of the robot.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0037] Further details, advantages and aspects of the present disclosure will become apparent from the following embodiments taken in conjunction with the drawings, wherein:

    [0038] FIG. 1: schematically represents a side view of an industrial robot comprising a tool;

    [0039] FIG. 2: schematically represents the tool in relation to a reference target in different calibration positions of the robot; and

    [0040] FIG. 3: schematically represents the tool in relation to an alternative reference target in different calibration positions of the robot.

    DETAILED DESCRIPTION

    [0041] In the following, a method of calibrating a tool of an industrial robot, a control system for calibrating a tool of an industrial robot, and an industrial robot comprising the control system, will be described. The same reference numerals will be used to denote the same or similar structural features.

    [0042] FIG. 1 schematically represents a side view of an industrial robot 10. The robot 10 is exemplified as a six-axis industrial robot comprising a serial kinematics manipulator programmable in six axes but the present disclosure is not limited to this particular type of robot.

    [0043] The robot 10 of this example comprises a base 12, a tool 14, and a control system 16, such as a robot controller. The robot 10 further comprises a first link member 18a rotatable around a vertical axis relative to the base 12 at a first joint 20a, a second link member 18b rotatable around a horizontal axis relative to the first link member 18a at a second joint 20b, a third link member 18c rotatable around a horizontal axis relative to the second link member 18b at a third joint 20C, a fourth link member 18d rotatable relative to the third link member 18c at a fourth joint god, a fifth link member 18e rotatable relative to the fourth link member 18d at a fifth joint Zoe, and a sixth link member 18f rotationally movable relative to the fifth link member 18e at a sixth joint 20f. The sixth link member 18f comprises a tool flange (not denoted) having an interface to which the tool 14 is attached. Each of the joints 20a-20f is also referred to with reference numeral “20” and each of the link members 18a-18f is also referred to with reference numeral “18”.

    [0044] The control system 16 comprises a data processing device 22 (e.g. a central processing unit, CPU) and a memory 24. A computer program is stored in the memory 24. The computer program may comprise program code which, when executed by the data processing device 22, causes the data processing device 22 to execute any step, or to command execution of any step, according to the present disclosure.

    [0045] A robot program, a kinematic model of the robot 10 and a dynamic model of the robot 10 are also implemented in the control system 16. The control system 16 is configured to generate drive signals to motors (not shown) of each joint 20 based on movement instructions from the robot program and the kinematic and dynamic models of the robot 10.

    [0046] FIG. 1 further shows a reference target 26 fixedly positioned in a workspace 28 of the robot 10. The reference target 26 of this example is constituted by the tip of a nail 30, i.e. a single point. The method for calibrating the tool 14 according to the present disclosure may be carried out with only one reference target 26 in the workspace 28.

    [0047] The position of the reference target 26 may be either known or unknown. In this example, the position of the reference target 26 is known. The position of the reference target 26 may for example be expressed in a world coordinate system X.sub.world and transformed into a base coordinate system X.sub.base of the robot 10. The base coordinate system X.sub.base is positioned on the base 12 at the intersection between the base 12 and the first link member 18a along the rotational axis of the first joint 20a.

    [0048] FIG. 1 further denotes a wrist coordinate system X.sub.wrist. The wrist coordinate system X.sub.wrist is positioned on the last link member 18f at the intersection between the fifth link member 18e and the sixth link member 18f along the rotational axis of the sixth joint 20f.

    [0049] The tool 14 comprises a tool center point 32. When movements of the robot 10 are programmed by specifying a path for the robot 10 to follow, the robot 10 aims to move such that the tool center point 32 follows this path. Although several tool center points 32 can be defined for each tool 14, only one tool center point 32 is active at a given time.

    [0050] A tool coordinate system X.sub.tool is positioned with its origin at the tool center point 32. The tool coordinate system X.sub.tool is expressed in the wrist coordinate system X.sub.wrist. If for example the tool 14 is replacing a previous damaged tool 14, the old robot program can still be used if the tool coordinate system X.sub.tool is redefined.

    [0051] As illustrated in FIG. 1, the orientation of the tool coordinate system X.sub.tool differs from the orientation of the wrist coordinate system X.sub.wrist. Thus, in order to define the tool coordinate system X.sub.tool in this case, tool data containing both the position of the tool center point 32 and the orientation of the tool 14 may be used. If however the tool coordinate system X.sub.tool has the same orientation as the wrist coordinate system X.sub.wrist, the tool data may contain only a definition of the tool center point 32.

    [0052] FIG. 2 schematically represents the tool 14 in relation to the reference target 26 in a plurality of different calibration positions 34a, 34b, 34c, 34d of the robot 10. Each of the calibration positions 34a, 34b, 34c, 34d is also collectively referred to with reference numeral “34

    [0053] With reference to FIGS. 1 and 2, one specific example of a method of calibrating the tool 14 will now be described. The calibration method may for example be conducted by a service technician as a service routine.

    [0054] The robot 10 is jogged to position the tool center point 32 as close as possible to the reference target 26 in a first calibration position 34a of the robot 10, for example by operating a teach pendant (not shown). When the robot 10 has been jogged to the calibration position 34a, a set of joint positions, such as the joint positions of each joint 20, are recorded, for example based on a command from the operator via the teach pendant. The joint positions give information on how each joint 20 is positioned when the robot 10 adopts the calibration position 34a.

    [0055] The above procedure is then repeated for the further calibration positions 34b, 34c, 34d. In this example, the robot 10 is jogged to position the tool center point 32 as close as possible to the reference target 26 in a second, third and fourth calibration position 34b, 34c, 34d. In each calibration position 34b, 34c, 34d, the positions of the joints 20 are recorded. As shown in FIG. 2, the tool center point 32 contacts the reference target 26 in each calibration position 34. This constitutes one example of a positioning of the tool center point 32 in relation to the reference target 26. The robot 10 may alternatively be moved automatically to each calibration position 34. FIG. 2 further illustrates that the tool 14 is oriented in a unique position with respect to the reference target 26 in each calibration position 34.

    [0056] Based on the joint positions recorded in the calibration positions 34, based on the position of the reference target 26 (which in this example is known), and based on the kinematic model of the robot 10, tool data of the tool 14 can be calculated. An error of the tool data can also be calculated.

    [0057] In this example, tool data constituted by the tool center point 32, and an error thereof, are calculated. The calculations can be made using a least squares optimization algorithm by insisting that if the correct coordinates of the tool center point 32 are found, then the sum of the squared variations in the calculated location of the reference target 26 is minimal, but allowing for a residual error. The residual error may for example depend on motion inaccuracies, kinematics of the robot 10, calibration of the joints 20, and gravity.

    [0058] An optimization of joint position modifications is then performed to reduce the error. For example, an optimization problem with an objective function for determining the error is provided. The value of the objective function is then minimized based on joint position modifications as optimization variables to output optimized joint positions. This constitutes one example of modifying kinematic parameters of the robot 10 to reduce the error of the tool center point 32. The method may comprise an optimization of kinematic parameters other than, or in addition to, the joint positions. The modified kinematic parameters, here the optimized joint positions, are then added to the kinematic model of the robot 10 for use by the control system 16 when controlling movements of the robot 10.

    [0059] The method has been tested by the applicant on both simulated and real robots 10. In both cases, a calibration error was deliberately introduced to one of the joints 20. The method correctly identified and corrected the introduced calibration error.

    [0060] FIG. 3 schematically represents the tool 14 in relation to an alternative reference target 26 in different calibration positions 34a, 34b, 34c, 34d of the robot 10. Mainly differences with respect to FIG. 2 will be described.

    [0061] The reference target 26 in FIG. 3 has a spherical surface 36 of known radius and thereby constitutes one example of an object having a definable geometric shape. By knowing or calculating the shape of the reference target 26, the tool center point 32 of the tool 14 can be positioned in arbitrarily calibration positions 34 in relation to the surface 36 of the reference target 26, for example by contacting unique points of the surface 36 in each calibration position 34.

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