Method Of Calibrating A Tool Of An Industrial Robot, Control System And Industrial Robot
20220105640 · 2022-04-07
Inventors
- Johan Noren (Västerås, SE)
- Sven Hanssen (Västerås, SE)
- Hans Andersson (Västerås, SE)
- Peter Fixell (Västerås, SE)
Cpc classification
B25J9/1664
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/39018
PHYSICS
B25J9/1653
PERFORMING OPERATIONS; TRANSPORTING
B25J9/163
PERFORMING OPERATIONS; TRANSPORTING
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]
[0039]
[0040]
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]
[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]
[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]
[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
[0052]
[0053] With reference to
[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
[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]
[0061] The reference target 26 in
[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.