Method of calibrating a manipulator, control system and robotic system

By using load sensors and kinematic calculations between the master and slave manipulators, the cumbersome and costly manipulator calibration problem is solved, enabling fast and accurate manipulator calibration on-site, suitable for multi-robot environments.

CN117042925BActive Publication Date: 2026-06-30ABB (SCHWEIZ) AG

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ABB (SCHWEIZ) AG
Filing Date
2021-04-29
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

In the existing technology, the calibration process of industrial robot manipulators is cumbersome and expensive, usually requiring expensive measuring equipment, and on-site calibration is uncommon and difficult to perform efficiently at the production site.

Method used

By using a load sensor to rigidly connect the main mounting interface and the secondary mounting interface, the position of the main joint is recorded and the secondary manipulator is calibrated based on the load data. The main manipulator is used as a measuring device, and the attitude and joint position of the secondary TCP are calculated by combining forward and reverse kinematics, thereby reducing or eliminating the influence of external load.

Benefits of technology

It enables fast, accurate, and cost-effective on-site manipulator calibration, avoiding reliance on expensive equipment and is suitable for multi-robot environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117042925B_ABST
    Figure CN117042925B_ABST
Patent Text Reader

Abstract

A method for calibrating a manipulator (16b) of an industrial robot (12b, 12c), the method comprising: providing a master manipulator (16a) having one or more master joints (24a) and a master mounting interface (26a); providing a sub-manipulator (16b) having one or more sub-joints (24b) and a sub-mounting interface (26b), wherein the master mounting interface is substantially rigidly connected to the sub-mounting interface; providing a load sensor (36) between the master mounting interface and the sub-mounting interface, the load sensor being configured to provide load data (38) indicating the load between the master mounting interface and the sub-mounting interface; controlling the master manipulator to adopt at least one calibration state (42a1, 42a2, 42a3); for each calibration state, recording the master joint position of at least one master joint; and calibrating the sub-manipulator based on the recorded master joint position; wherein the master manipulator is controlled to adopt at least one calibration state based on the load data; and / or wherein the calibration of the sub-manipulator is further based on the load data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to the calibration of robot manipulators. Specifically, it provides a method for calibrating the manipulator of an industrial robot, a control system for calibrating the manipulator of an industrial robot, and a robot system including the control system. Background Technology

[0002] The manipulator of an industrial robot can include multiple joints and multiple intermediate links. To determine the manipulator's position, each joint is typically equipped with an angle measuring device in the form of an encoder or resolver, indicating the joint's position relative to zero. By reading the joint positions, the attitude (position and orientation) of the manipulator's tool center point TCP can be determined.

[0003] Before a manipulator can be used, it must be calibrated, for example, by referring to the zero-position calibration angle measuring device for each angle measuring device. Calibrating a manipulator can be a tedious and difficult operation, but it is also very important. Manipulators can be calibrated at their manufacturing location before delivery. However, such calibration often requires expensive measuring equipment, such as laser tracking systems. Therefore, on-site calibration, such as at the production location where the manipulator operates, is not very common. Instead, manipulators are usually returned to the manufacturer for calibration.

[0004] TW 202015868A discloses a method for calibrating the contact force (TCP) of a robotic arm. This method utilizes the force sensors of the robotic arm to detect the gravity and torque of the tool, as well as the contact force and contact torque of the TCP. The contact force and contact torque of the TCP are subtracted from the gravity and torque of the tool, respectively, to calculate the net contact force of the tension arm. The tension arm determines the coordinates of the TCP to automatically calibrate the TCP of the robotic arm. Summary of the Invention

[0005] One object of this disclosure is to provide an improved method for calibrating the manipulator of an industrial robot.

[0006] Another object of this disclosure is to provide a method for calibrating the manipulator of an industrial robot, which provides accurate calibration.

[0007] Another object of this disclosure is to provide a cost-effective method for calibrating the manipulators of industrial robots.

[0008] Another object of this disclosure is to provide a method for calibrating the manipulator of an industrial robot, which can be easily performed in the field.

[0009] Another object of this disclosure is to provide a method for calibrating the manipulator of an industrial robot, which addresses some or all of the foregoing objects in combination.

[0010] Another object of this disclosure is to provide a control system for calibrating a manipulator that addresses one, several, or all of the foregoing objects.

[0011] Another object of this disclosure is to provide a robot system including a control system that solves one, several or all of the foregoing objects.

[0012] According to a first aspect, a method for calibrating a manipulator of an industrial robot is provided, the method comprising: providing a master manipulator having one or more main joints and a main mounting interface; providing a sub-manipulator having one or more sub-joints and a sub-mounting interface, wherein the main mounting interface is substantially rigidly connected to or rigidly connected to the sub-mounting interface; providing a load sensor between the main mounting interface and the sub-mounting interface, the load sensor being configured to provide load data indicating the load between the main mounting interface and the sub-mounting interface; controlling the master manipulator to adopt at least one calibration state; for each calibration state, recording the main joint position of at least one main joint; and calibrating the sub-manipulator based on at least one recorded main joint position; wherein the master manipulator is controlled to adopt at least one calibration state based on the load data; and / or wherein the calibration of the sub-manipulator is further performed based on the load data.

[0013] In this method, the master manipulator is used as a measurement manipulator. If the master manipulator is properly calibrated, it can be used as a measuring device for various measurements in its surrounding environment. However, if the master manipulator is subjected to an external load, the accuracy of such measurements will decrease if the external load is not considered.

[0014] Information about the external loads acting on the master controller is obtained using load data from load sensors. The calibration of the slave controller is improved by taking these external loads into account and / or by moving the master controller to one or more controller attitudes where such external loads are reduced or eliminated.

[0015] The load sensor can be rigidly connected to each of the main and secondary mounting interfaces, for example, by means of one or more fasteners (such as screws). Positioning the load sensor between the mounting interfaces is relatively simple and can therefore be performed by inexperienced users. Compared to the load calculation of a load sensor based on a main joint of the main actuator, positioning the load sensor between the mounting interfaces provides a more accurate value of the load acting between them. Therefore, positioning the load sensor between the mounting interfaces enables precise control of the load between the mounting interfaces, such as at zero load.

[0016] The method may further include determining the primary TCP (tool center point) attitude of the primary manipulator based on at least one primary joint position and optionally on load data using the forward kinematics of each calibration state. Since the primary mounting interface is rigidly connected to the secondary mounting interface, a fixed and known relationship exists between the primary and secondary TCP attitudes of the secondary manipulator. The TCP attitude defines the position and orientation of the TCP. The primary and secondary TCP positions may coincide or may be offset from each other. The primary and secondary TCP orientations may be angled relative to each other or may not be angled. In one example, the primary and secondary TCP attitudes coincide. When a load determined by a load sensor acts on the primary manipulator, the corresponding load acts on the secondary manipulator.

[0017] The method may further include recording the recorded subjoint positions of at least one subjoint for each calibration state. The method may also include calculating the calculated subjoint positions of at least one subjoint based on the subTCP pose and optionally based on load data using inverse kinematics for each calibration state. The method may further include calibrating the submanipulator based on at least one recorded subjoint position and at least one calculated subjoint position for each calibration state. In this way, the submanipulator is calibrated based on at least one recorded master joint position.

[0018] According to one variation, the secondary manipulator is controlled with reduced stiffness throughout the method. In this way, the secondary manipulator is compliant and can be moved by the primary manipulator to multiple different manipulator postures. Even if the primary and secondary manipulators can be stationary in each calibration state, the primary manipulator can still apply force and / or torque to the secondary manipulator, and vice versa. In this case, the internal friction of the manipulator may help prevent manipulator movement. If force and torque are transmitted between the manipulators, the manipulators will deflect. If this deflection is not considered, the calibration will be inaccurate.

[0019] According to another variation, the secondary manipulator is controlled with high stiffness throughout the method. The secondary manipulator thus remains essentially stationary and is substantially immobile by the primary manipulator. In this case, the primary manipulator can be controlled to apply a first load to the secondary manipulator in a first calibration state, and a second load, different from the first load, to the secondary manipulator in a second calibration state. The load data for each calibration state can then be used, along with at least one recorded primary joint position, for the calibration of the secondary manipulator.

[0020] In addition to the master and slave manipulators, this method can be performed by providing only a load sensor. Therefore, expensive and sensitive measuring equipment is not required. By using the master manipulator as the measuring manipulator according to this method, the process is available in environments with two or more robot manipulators. Furthermore, since load sensors are relatively inexpensive, and since this method does not require a load sensor for each manipulator, it is cost-effective.

[0021] Each joint can be either rotational or translational. In addition to at least one primary joint and at least one secondary joint, the primary manipulator and secondary manipulator can each include at least two primary links and at least two secondary links. Each manipulator in the primary and secondary manipulators can be a robotic arm.

[0022] The method may include controlling the master manipulator to adopt one calibration state or multiple unique calibration states. Alternatively or additionally, the method may include recording the master joint position of each master joint. Each mounting interface may be, for example, a tool flange.

[0023] As used herein, the load may include force and / or torque. Furthermore, the manipulator attitude defines the position of each joint of the manipulator. In some manipulators, a single TCP position can be obtained using different manipulator attitudes. Additionally, manipulators with more than six axes can obtain a single TCP attitude with different manipulator attitudes.

[0024] The method according to the first aspect can be used with any type of control system according to the second aspect and / or any type of robot system according to the third aspect.

[0025] This method may include controlling the master manipulator to adopt multiple calibration states. In this case, each calibration state may be a unique manipulator posture of the master manipulator.

[0026] With the master controller controlled to adopt at least one calibration state based on load data, the load measured by the load sensor can be minimized or locally minimized in each controller posture. In this way, deformation of both the master and slave controllers can be reduced or eliminated. Load data can be used to identify any external loads acting on the master controller and to move the master controller to a more relaxed controller posture. In other words, the master controller can be controlled to a controller posture with less or no deformation. By reducing the deformation of the master controller, the estimation of its position, such as the posture of the master TCP, can be improved.

[0027] In this variant, load data is used when the master manipulator is in at least one calibration state, but it need not be considered for calibration purposes. For example, the forward kinematics used to calculate the master TCP pose can be performed purely based on one or more master joint positions, and the inverse kinematics used to calculate the calculated subjoint positions can be performed purely based on the subTCP pose. For each calibration state, minimization may include controlling the master manipulator such that the load is below a threshold.

[0028] As an alternative example, the method may include controlling the master manipulator to adopt multiple arbitrary calibration states with one or more manipulator attitudes. In this case, load data need not be considered when controlling the master manipulator to adopt the corresponding calibration state. However, the load data is then used in conjunction with at least one recorded master joint position for calibrating the secondary manipulator.

[0029] In cases where each calibration state represents a unique manipulator posture for the master manipulator, the method may further include moving the master manipulator to multiple calibration states while simultaneously moving the sub-manipulator by means of conduction. Therefore, this variation may also include controlling the sub-manipulator in a conduction mode. In this conduction mode, the stiffness of the sub-manipulator is reduced, thereby causing the sub-manipulator to conform. Although the sub-manipulator is in conduction mode, load may be transferred between the master and sub-manipulators, for example, due to internal friction within the manipulator.

[0030] Load sensors can be configured to provide load data indicating force and / or torque. Load sensors can therefore be force sensors, torque sensors, or force and torque sensors, such as six-axis (three force and three torque) sensors.

[0031] According to a second aspect, a control system for calibrating a manipulator of an industrial robot is provided. The control system includes at least one data processing device and at least one memory storing at least one computer program thereon. The at least one computer program includes program code that, when executed by the at least one data processing device, causes the at least one data processing device to perform the following steps: receiving load data indicating a load from a load sensor positioned between a main mounting interface of a main manipulator having one or more main joints and a secondary mounting interface of a secondary manipulator having one or more secondary joints, wherein the main mounting interface is substantially rigidly connected to or rigidly connected to the secondary mounting interface; controlling the main manipulator to adopt at least one calibration state; recording the main joint position of at least one main joint for each calibration state; and calibrating the secondary manipulator based on the at least one recorded main joint position; wherein the main manipulator is controlled to adopt at least one calibration state based on the load data; and / or wherein the calibration of the secondary manipulator is further performed based on the load data.

[0032] At least one computer program may include program code that, when executed by at least one data processing device, causes the at least one data processing device to perform or commands the execution of some or all of the steps described in the first aspect.

[0033] At least one computer program may include program code that, when executed by at least one data processing device, causes the at least one data processing device to perform steps to control the master controller to adopt multiple calibration states. In this case, each calibration state may be a unique manipulator posture of the master controller.

[0034] In cases where at least one computer program includes program code, when executed by at least one data processing device, the program code causes the at least one data processing device to perform the step of controlling the master manipulator to adopt at least one calibration state based on load data, wherein the load measured by the load sensor can be minimized or partially minimized in each manipulator posture. Alternatively or additionally, at least one computer program may include program code that, when executed by at least one data processing device, causes the at least one data processing device to perform the following steps: controlling the sub-manipulator in a conduction mode; and controlling the master manipulator to move to multiple calibration states while controlling the sub-manipulator in the conduction mode.

[0035] According to a third aspect, a robot system is provided, comprising a main manipulator, a secondary manipulator, a load sensor, and a control system according to a second aspect. The main manipulator, secondary manipulator, and load sensor can be of any type described in combination with the first and second aspects.

[0036] The robot system may include a first industrial robot and a second industrial robot. In this case, the first industrial robot may include a master manipulator, and the second industrial robot may include a slave manipulator. The first and second industrial robots may be of the same type or different types (e.g., with different levels). Moreover, a common control system can be used to control the master and slave manipulators. This common control system may be a first control system for the first industrial robot, a second control system for the second industrial robot, or a separate control system.

[0037] Alternatively, the robot system may include a single industrial robot with a primary manipulator and a secondary manipulator. Such an industrial robot may be a dual-arm robot. If one arm requires calibration, the other arm can be used as a measuring device. The method and control system according to this disclosure greatly facilitate the replacement of the first arm of a dual-arm robot, because the second arm of the dual-arm robot can be used to calibrate a third arm replacing the first arm. Load sensors can be detachably attached to each of the primary and secondary mounting interfaces.

[0038] The robot system may also include a connecting member that includes a load sensor and is configured to be rigidly connected to each of the main and secondary mounting interfaces. The connecting member may be rigid.

[0039] The load sensor can be configured to provide load data indicating force and / or torque. Attached Figure Description

[0040] Other details, advantages, and aspects of this disclosure will become apparent from the following description taken in conjunction with the accompanying drawings, in which:

[0041] Figure 1 : This schematically illustrates an example of a robot system when the master manipulator is in a calibration state. The robot system includes a first industrial robot with a master manipulator and a second industrial robot with a slave manipulator.

[0042] Figure 2 : This schematically illustrates another example of a robot system when the master manipulator is in a calibration state; and

[0043] Figure 3 : This schematically illustrates another example of a robot system when the master manipulator is in a calibration state; and

[0044] Figure 4 : This schematically illustrates another example of a robot system when the master controller is in a calibration state, the robot system comprising a third industrial robot with a master controller and a slave controller. Detailed Implementation

[0045] The following describes a method for calibrating the manipulator of an industrial robot, a control system for calibrating the manipulator of an industrial robot, and a robot system including the control system. The same or similar reference numerals will be used to denote the same or similar structural features.

[0046] Figure 1 An example of robot system 10a is schematically shown. Robot system 10a includes a first industrial robot 12a, a second industrial robot 12b, and a control system 14. Each of the first industrial robot 12a and the second industrial robot 12b may, for example, be a welding robot at a public production site.

[0047] The first industrial robot 12a includes a main manipulator 16a and a main robot controller 18a. In this specific example, the main manipulator 16a is a series manipulator comprising a main base 20a, a main first link 22a1 rotatable relative to the main base 20a at a main first joint 24a1, a main second link 22a2 rotatable relative to the main first link 22a1 at a main second joint 24a2, a main third link 22a3 rotatable relative to the main second link 22a2 at a main third joint 24a3, a main fourth link 22a4 rotatable relative to the main third link 22a3 at a main fourth joint 24a4, a main fifth link 22a5 rotatable relative to the main fourth link 22a4 at a main fifth joint 24a5, and a main sixth link 22a6 rotatable relative to the main fifth link 22a5 at a main sixth joint 24a6. One, several, or all of the main links 22a1 to 22a6 may also be referred to by the reference numeral "22a". One, several, or all of the main joints 24a1 to 24a6 may also be referred to by the reference numeral "24a". The main manipulator 16a also includes a plurality of main angle measuring devices (not shown) for reading the position of the main joint 24a.

[0048] The second industrial robot 12b includes a secondary manipulator 16b and a secondary robot controller 18b. In this specific example, the secondary manipulator 16b is a series manipulator comprising a main base 20b, a secondary first link 22b1 rotatable relative to the secondary base 20b at a secondary first joint 24b1, a secondary second link 22b2 rotatable relative to the secondary first link 22b1 at a secondary second joint 24b2, a secondary third link 22b3 rotatable relative to the secondary second link 22b2 at a secondary third joint 24b3, a secondary fourth link 22b4 rotatable relative to the secondary third link 22b3 at a secondary fourth joint 24b4, a secondary fifth link 22b5 rotatable relative to the secondary fourth link 22b4 at a secondary fifth joint 24b5, and a secondary sixth link 22b6 rotatable relative to the secondary fifth link 22b5 at a secondary sixth joint 24b6. One, several, or all of the secondary links 22b1 to 22b6 may also be referred to by the reference numeral "22b". One, several, or all of the secondary joints 24b1 to 24b6 may also be referred to by the reference numeral "24b". The secondary actuator 16b also includes a plurality of secondary angle measuring devices (not shown) for reading the position of the secondary joint 24b.

[0049] However, Figure 1 Manipulators 16a and 16b are just two examples among many. One or two manipulators 16a and 16b may also include, for example, one or more translational joints.

[0050] The main manipulator 16a also includes a main mounting interface 26a, illustrated here as the main tool flange. In this example, the main mounting interface 26a is fixed to the main sixth link 22a6. The main tool center point TCP is defined with respect to the main mounting interface 26a.

[0051] The secondary manipulator 16b also includes a secondary mounting interface 26b, illustrated here as a secondary tool flange. In this example, the secondary mounting interface 26b is attached to the secondary sixth link 22b6. The secondary TCP is defined with respect to the secondary mounting interface 26b.

[0052] The control system 14 in this example includes a main robot controller 18a and a secondary robot controller 18b. However, Figure 1 The control system 14 described herein is just one example among many. The main robot controller 18a in this example includes a main data processing device 28a and a main memory 30a. The main memory 30a contains a computer program containing program code that, when executed by the main data processing device 28a, causes the main data processing device 28a to perform or command the various steps described herein. The main robot controller 18a communicates with the main manipulator 16a and the auxiliary robot controller 18b via signals.

[0053] The example auxiliary robot controller 18b includes an auxiliary data processing device 28b and an auxiliary memory 30b. The auxiliary memory 30b includes a computer program containing program code that, when executed by the auxiliary data processing device 28b, causes the auxiliary data processing device 28b to perform or command the various steps described herein.

[0054] The robot system 10a in this example also includes a connecting member 32. The connecting member 32 is a rigid member that is rigidly connected here to each of the main mounting interface 26a and the secondary mounting interface 26b by means of screws (not shown). The connecting member 32 can be attached to and detached from the mounting interfaces 26a and 26b by a human user. When the main mounting interface 26a is secured to the secondary mounting interface 26b, the main manipulator 16a and the secondary manipulator 16b form a common kinematic chain 34. The main TCP and the secondary TCP coincide at a common point. Alternatively, the offset between the main TCP and the secondary TCP can be known.

[0055] The robot system 10a also includes a load sensor 36. The load sensor 36 is arranged in the connecting member 32. The load sensor 36 is thus positioned between the mounting interfaces 26a and 26b.

[0056] Load sensor 36 is configured to measure load and publish load data 38 indicating the measured load. Load sensor 36 communicates with control system 14 (here with main robot controller 18a). Load sensor 36 may be a commercially available load sensor and is illustrated herein as a six-axis (three force and three torque) load sensor.

[0057] exist Figure 1 In this configuration, the primary manipulator 16a is controlled by the primary robot controller 18a and positioned in a first primary manipulator posture 40a1. The secondary manipulator 16b is controlled by the secondary robot controller 18b in a conducting mode. Since manipulators 16a and 16b are connected, when the primary manipulator 16a adopts the first primary manipulator posture 40a1, the secondary manipulator 16b adopts the first secondary manipulator posture 40b1. Based on load data 38, the primary robot controller 18a has positioned the primary manipulator 16a such that no force or torque is transmitted between manipulators 16a and 16b. If the connecting member 32 were theoretically cut in half to separate manipulators 16a and 16b, manipulators 16a and 16b would not move. The state of the primary manipulator 16a when it adopts the first primary manipulator posture 40a1 and when no force or torque is transmitted between manipulators 16a and 16b constitutes the first calibration state 42a1 of the primary manipulator 16a. As an alternative to the conduction control of the secondary manipulator 16b, the secondary manipulator 16b can be controlled to move based on the load data 38.

[0058] In this example, the primary manipulator 16a is well calibrated, while the secondary manipulator 16b is not. To calibrate the secondary manipulator 16b, the primary joint position of the primary joint 24a is recorded by the primary robot controller 18a when the primary manipulator 16a is in the first calibration state 42a1. The primary robot controller 18a then calculates the primary TCP pose based on the primary joint position using the forward kinematics of the model using the primary manipulator 16a. The primary robot controller 18a then transmits the primary TCP pose to the secondary robot controller 18b. Since the relationship between the primary TCP pose and the secondary TCP pose is known, the secondary robot controller 18b can determine the secondary TCP pose based on the primary TCP pose. However, in this example, when the primary mounting interface 26a is fixed to the secondary mounting interface 26b, the primary TCP pose and the secondary TCP pose coincide. The secondary robot controller 18b then calculates the calculated secondary joint position of the secondary joint 24b based on the secondary TCP pose using the inverse kinematics of the model using the secondary manipulator 16b. Then, the secondary manipulator 16b of the second industrial robot 12b can be calibrated based on the calculated and recorded secondary joint positions of the secondary joints 24b recorded by the secondary robot controller 18b in the first calibration state 42a1. In cases where the secondary manipulator 16b will include more than six degrees of freedom, one, several, or all of the recorded secondary joint positions can be considered additionally to calculate the calculated secondary joint positions based on the secondary TCP pose.

[0059] By controlling the master actuator 16a, no force or torque, or very small force and torque, is transmitted between actuators 16a and 16b, thus eliminating or reducing the deflection of actuators 16a and 16b. This improves the accuracy of calibration.

[0060] Figure 2 The diagram schematically illustrates the robot system 10a when the master manipulator 16a is in the second calibration state 42a2. The difference between the second calibration state 42a2 and the first calibration state 42a1 is that the master manipulator 16a is positioned in the second master manipulator posture 40a2. Therefore, the slave manipulator 16b, controlled in the on mode, follows the master manipulator 16a and is positioned in the second slave manipulator posture 40b2. Also in the second calibration state 42a2, no force or torque is transmitted between manipulators 16a and 16b. The second master manipulator posture 40a2 can be selected to maximize the movement of joints 24a and 24b.

[0061] Then, through combination Figure 1In the same manner described, the control system 14 calculates the calculated subjoint position for the second calibration state 42a2 and records the recorded joint position of the subjoint 24b. The calibration can then be further improved using the recorded subjoint positions and several sets of corresponding recorded joint positions, for example, one set for each calibration state 42a1 and 42a2.

[0062] Figure 3 The diagram schematically illustrates the robot system 10a when the master manipulator 16a is in the third calibration state 42a3. The difference between the third calibration state 42a3 and the first calibration state 42a1 is that the master manipulator 16a applies a force 44 and a torque 46 to the slave manipulator 16b. For this purpose, the master robot controller 18a controls the master manipulator 16a to apply a predetermined force 44 and a predetermined torque 46 based on load data 38. The slave manipulator 16b is not controlled in conduction mode here, but rather with high stiffness. Figure 3 In the first master controller 16a, the master controller 16a is in the first master controller posture 40a1, and the slave controller 16b is in the first slave controller posture 40b1.

[0063] To calibrate the sub-manipulator 16b, when the master manipulator 16a is in the third calibration state 42a3, the master joint position and load data 38 of the master joint 24a are recorded by the master robot controller 18a. The master robot controller 18a then calculates the master TCP pose based on the master joint position and load data 38 using forward kinematics. If the load data 38 is not considered when calculating the master TCP pose while the master manipulator 16a applies force 44 and torque 46 to the sub-manipulator 16b, the master TCP pose will be incorrect due to the deflection of the master manipulator 16. The master robot controller 18a then transmits the master TCP pose and load data 38 to the sub-manipulator 18b. Since the relationship between the master TCP pose and the sub-TCP pose is known, the sub-manipulator 18b can determine the sub-TCP pose based on the master TCP pose. The sub-manipulator 18b then calculates the calculated sub-joint position of the sub-joint 24b based on the sub-TCP pose and load data 38 using inverse kinematics. For this purpose, force 44 and torque 46 are also modeled. Then, the secondary manipulator 16b can be calibrated based on the calculated and recorded secondary joint positions of the secondary joints 24b recorded by the secondary robot controller 18b in the third calibration state 42a3. The calibration can then be further refined using several sets of recorded secondary joint positions corresponding to the recorded joint positions, for example, one set for each calibration state 42a1, 42a2, and 42a3.

[0064] Figure 4Another example of robot system 10b is schematically illustrated. Robot system 10b includes a single industrial robot 12c. Industrial robot 12c includes a master manipulator 16a and a slave manipulator 16b. Industrial robot 12c also includes a base 20c from which the master manipulator 16a and slave manipulator 16b extend. Industrial robot 12c is a dual-arm robot, such as the YuMi sold by ABB. The control system 14 of industrial robot 12c here consists of a single robot controller including a data processing device 28c and a memory 30c. The principle of calibrating industrial robot 12c corresponds to the principle of calibrating industrial robot 12b.

[0065] While this disclosure has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to what has been described above. For example, it is to be understood that the dimensions of the components can be varied as needed. Therefore, the invention is intended to be limited only by the scope of the appended claims.

Claims

1. A method for calibrating the manipulator of an industrial robot (12b, 12c), the method comprising: - Provide a main manipulator (16a) having one or more main joints (24a) and a main mounting interface (26a). - Provide a secondary manipulator (16b) having one or more secondary joints (24b) and a secondary mounting interface (26b), wherein the primary mounting interface (26a) is substantially rigidly connected to the secondary mounting interface (26b). - A load sensor (36) is provided between the main mounting interface (26a) and the secondary mounting interface (26b), the load sensor (36) being configured to provide load data (38) indicating the load between the main mounting interface (26a) and the secondary mounting interface (26b). - Control the main manipulator (16a) to adopt at least one calibration state (42a1, 42a2, 42a3). - For each calibration state (42a1, 42a2, 42a3), record the position of at least one primary joint (24a); and - The secondary manipulator (16b) is calibrated based on the recorded position of at least one primary joint. The master manipulator (16a) is controlled to adopt at least one calibration state (42a1, 42a2, 42a3) based on the load data (38); and / or The calibration of the sub-manipulator (16b) is also based on the load data (38); and - Based on the position of the at least one main joint and based on the load data (38), the main tool center point TCP attitude of the main manipulator (16a) is determined by means of the positive kinematics of each calibration state (42a1, 42a2, 42a3); - Record the position of at least one accessory joint in each calibration state (42a1, 42a2, 42a3); - Based on the TCP pose of the master tool center point and based on the load data (38), the position of at least one subjoint (24b) is calculated by means of the inverse kinematics of each calibration state (42a1, 42a2, 42a3); as well as - The sub-manipulator (16b) is calibrated based on at least one recorded sub-joint position and at least one calculated sub-joint position for each calibration state (42a1, 42a2, 42a3).

2. The method according to claim 1, wherein the method comprises: The master controller (16a) is controlled to adopt multiple calibration states (42a1, 42a2, 42a3), wherein when the master controller (16a) adopts a first master controller posture (40a1), the state of the master controller (16a) constitutes the first calibration state (42a1) or the third calibration state (42a3) of the master controller (16a), and when the master controller (16a) adopts a second master controller posture (40a2), the state of the master controller (16a) constitutes the second calibration state (42a2) of the master controller (16a).

3. The method according to claim 2, wherein the master manipulator (16a) is controlled to adopt the at least one calibration state (42a1, 42a2, 42a3) based on the load data (38), and wherein the load measured by the load sensor (36) is minimized or partially minimized in each manipulator posture (40a1, 40a2).

4. The method according to claim 2 or 3, wherein the method further comprises: The master manipulator (16a) is moved to a variety of calibration states (42a1, 42a2, 42a3), while the slave manipulator (16b) is moved by means of conduction.

5. The method according to any one of claims 1 to 3, wherein the load sensor (36) is configured to provide load data (38) indicating force (44) and / or torque (46).

6. A control system (14) for calibrating the manipulator of an industrial robot (12b, 12c), the control system (14) comprising at least one data processing device (28a, 28b, 28c) and at least one memory (30a, 30b, 30c), wherein at least one computer program is stored in the at least one memory (30a, 30b, 30c), the at least one computer program comprising program code, the program code, when executed by the at least one data processing device (28a, 28b, 28c), causes the at least one data processing device (28a, 28b, 28c) to perform the following steps: - Receive load data (38) indicating the load from a load sensor (36) positioned between a main mounting interface (26a) of a main manipulator (16a) and a secondary mounting interface (26b) of a secondary manipulator (16b), the main manipulator (16a) having one or more main joints (24a) and the secondary manipulator (16b) having one or more secondary joints (24b), wherein the main mounting interface (26a) is substantially rigidly connected to the secondary mounting interface (26b). - Control the main manipulator (16a) to adopt at least one calibration state (42a1, 42a2, 42a3). - For each calibration state (42a1, 42a2, 42a3), record the position of at least one primary joint (24a); and - The secondary manipulator (16b) is calibrated based on the recorded position of at least one primary joint. The master manipulator (16a) is controlled to adopt at least one calibration state (42a1, 42a2, 42a3) based on the load data (38); and / or The calibration of the sub-manipulator (16b) is also based on the load data (38); and The calibration of the sub-manipulator (16b) includes: - Based on the position of the at least one main joint and based on the load data (38), the main tool center point TCP attitude of the main manipulator (16a) is determined by means of the positive kinematics of each calibration state (42a1, 42a2, 42a3); - Record the position of at least one accessory joint in each calibration state (42a1, 42a2, 42a3); - Based on the TCP pose of the master tool center point and based on the load data (38), the position of at least one subjoint (24b) is calculated by means of the inverse kinematics of each calibration state (42a1, 42a2, 42a3); as well as - The sub-manipulator (16b) is calibrated based on at least one recorded sub-joint position and at least one calculated sub-joint position for each calibration state (42a1, 42a2, 42a3).

7. The control system (14) according to claim 6, wherein the at least one computer program includes program code that, when executed by the at least one data processing device (28a, 28b, 28c), causes the at least one data processing device (28a, 28b, 28c) to perform the following steps: - Control the master controller (16a) to adopt multiple calibration states (42a1, 42a2, 42a3), wherein when the master controller (16a) adopts a first master controller posture (40a1), the state of the master controller (16a) constitutes the first calibration state (42a1) or the third calibration state (42a3) of the master controller (16a), and when the master controller (16a) adopts a second master controller posture (40a2), the state of the master controller (16a) constitutes the second calibration state (42a2) of the master controller (16a).

8. The control system (14) according to claim 7, wherein the at least one computer program includes program code that, when executed by the at least one data processing device (28a, 28b, 28c), causes the at least one data processing device (28a, 28b, 28c) to perform the following steps: controlling the master manipulator (16a) to adopt the at least one calibration state (42a1, 42a2, 42a3) based on the load data (38); and wherein the load measured by the load sensor (36) is minimized or partially minimized in each manipulator posture (40a1, 40a2).

9. The control system (14) according to claim 7 or 8, wherein the at least one computer program includes program code that, when executed by the at least one data processing device (28a, 28b, 28c), causes the at least one data processing device (28a, 28b, 28c) to perform the following steps: - Control the sub-actuator (16b) in conduction mode; and - Control the main manipulator (16a) to move to multiple calibration states (42a1, 42a2, 42a3), while controlling the secondary manipulator (16b) in the conduction mode.

10. A robot system (10a, 10b) comprising the main manipulator (16a), the secondary manipulator (16b), the load sensor (36), and the control system (14) according to claim 7 or 8.

11. The robot system of claim 10 (10a, 10b) further comprises: The connecting member (32) includes the load sensor (36) and is configured to be rigidly connected to each of the main mounting interface (26a) and the secondary mounting interface (26b).

12. The robot system (10a, 10b) according to claim 10 or 11, wherein the load sensor (36) is configured to provide load data (38) indicating force (44) and / or torque (46).