ROBOT CONTROL METHOD AND ROBOT CONTROL DEVICE
20210114212 · 2021-04-22
Inventors
- Hiroyuki Nakata (Osaka, JP)
- Hiroyoshi Ueda (Osaka, JP)
- Atsumi Hashimoto (Osaka, JP)
- Ryosuke Yamamoto (Osaka, JP)
- MASAYOSHI IWATANI (Osaka, JP)
Cpc classification
B25J9/1641
PERFORMING OPERATIONS; TRANSPORTING
B25J13/088
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1664
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/41078
PHYSICS
B25J9/1638
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
In an angular velocity calculation block, an angular velocity component is calculated based on a position command for a joint portion. In a kinetic calculation block, a kinetic torque is calculated based on the position command for the joint portion. In a command velocity component reversal detection block, a reversal timing is calculated based on the angular velocity component. In a reverse torque detection block, a reverse torque is calculated based on the kinetic torque and the reversal timing. In a backlash correction amount calculation block, the correction amount of the joint portion is calculated based on the kinetic torque, the reverse torque, and the reversal timing.
Claims
1. A robot control method for controlling a motion of a robot arm having a plurality of joint portions, the method comprising: calculating an angular velocity of at least one of the plurality of joint portions which is targeted for correction; calculating a torque applied to the at least one joint portion targeted for correction, based on position commands for the plurality of joint portions; calculating a reversal timing at which a direction of rotation of the at least one joint portion targeted for correction is reversed, based on the angular velocity of the at least one joint portion targeted for correction; calculating a reverse torque applied to the at least one joint portion targeted for correction, based on the torque and the reversal timing; and calculating, based on the reverse torque and the reversal timing, a torsion correction amount and correction time for correcting torsion that occurs, due to the reverse torque, at the at least one joint portion targeted for correction.
2. The robot control method of claim 1, further comprising: if the reverse torque is smaller than a predetermined threshold value, correcting a corresponding one of the position commands for the at least one joint portion targeted for correction, based on a backlash correction amount for correcting backlash that occurs at the at least one joint portion targeted for correction, and if the reverse torque is larger than the predetermined threshold value, correcting the position command for the at least one joint portion targeted for correction, based on the backlash correction amount, the torsion correction amount, and the correction time.
3. The robot control method of claim 1, wherein in the calculating the torsion correction amount and the correction time, the torsion correction amount and the correction time are calculated such that as the reverse torque increases, the torsion correction amount increases and the correction time decreases.
4. A robot control method for controlling a motion of a robot arm having a plurality of joint portions, at least one of the plurality of joint portions which is targeted for correction having a pivot on which the robot arm is pivoted, the method comprising: calculating an angular velocity of the pivot based on a position command for the pivot; calculating an acceleration of the pivot based on the angular velocity of the pivot; calculating a reversal timing at which a direction of rotation of the pivot is reversed, based on the angular velocity of the pivot; calculating an acceleration at reversal of the pivot based on the acceleration of the pivot and the reversal timing; and calculating a torsion correction amount and correction time for correcting torsion that occurs at the pivot at the reversal of the pivot, based on the acceleration at reversal and the reversal timing.
5. The robot control method of claim 4, further comprising: if the acceleration at reversal is smaller than a predetermined threshold value, correcting the position command for the pivot, based on a backlash correction amount for correcting backlash that occurs at the pivot, and if the acceleration at reversal is larger than the predetermined threshold value, correcting the position command for the pivot, based on the backlash correction amount, the torsion correction amount, and the correction time.
6. The robot control method of claim 4, wherein in the calculating the torsion correction amount and the correction time, the torsion correction amount and the correction time are calculated such that as the acceleration at reversal increases, the torsion correction amount increases and the correction time decreases.
7. A robot control device for controlling a motion of a robot arm having a plurality of joint portions, the robot control device comprising: an angular velocity calculator that calculates an angular velocity of at least one of joint portions which is targeted for correction; a kinetic calculator that calculates a torque applied to the at least one joint portion targeted for correction, based on position commands for the plurality of joint portions; a reversal timing calculator that calculates a reversal timing at which a direction of rotation of the at least one joint portion targeted for correction is reversed, based on the angular velocity of the at least one joint portion targeted for correction; a reverse torque calculator that calculates a reverse torque applied to the at least one joint portion targeted for correction, based on the torque and the reversal timing; and a correction amount calculator that calculates, based on the reverse torque and the reversal timing, a torsion correction amount and correction time for correcting torsion that occurs, due to the reverse torque, at the at least one joint portion targeted for correction.
8. A robot control device for controlling a motion of a robot arm having a plurality of joint portions, at least one of the plurality of joint portions which is targeted for correction having a pivot on which the robot arm is pivoted, the robot control device comprising: an angular velocity calculator that calculates an angular velocity of the pivot based on a position command for the pivot; an acceleration calculator that calculates an acceleration of the pivot based on the angular velocity of the pivot; a reversal timing calculator that calculates a reversal timing at which a direction of rotation of the pivot is reversed, based on the angular velocity of the pivot; a reversal acceleration calculator that calculates an acceleration at reversal of the pivot based on the acceleration of the pivot and the reversal timing; and a correction amount calculator that calculates a torsion correction amount and correction time for correcting torsion that occurs at the pivot at the reversal of the pivot, based on the acceleration at reversal and the reversal timing.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
DETAILED DESCRIPTION
[0085] Embodiments of the present invention will be described in detail below with reference to the drawings. Note that the following description of embodiments is merely an example in nature, and is not intended to limit the scope, applications, or use of the present invention.
First Embodiment
[0086] As illustrated in
[0087] The robot arm 2 is divided into a plurality of parts. The junction between adjacent ones of the parts is provided with an associated one of the joint portions J1 to J6. Servomotors 12 are connected to the respective joint portions J1 to J6 via speed reducers 13 (see
[0088] The servomotors 12 are each driven based on a position command θc from the robot control device 20, and rotate the joint portions J1 to J6 by intended amounts, thereby controlling the motion and posture of the robot arm 2.
[0089] In this embodiment, the joint portions J1 to J3 are three main axes that determine the overall posture of the robot arm 2, and the joint portions J4 to J6 are three wrist axes that determine the direction of the tip of the robot arm 2. The joint portion J1 has a pivot on which the robot arm 2 is pivoted.
[0090] A case will be described below in which a laser output device (not shown) is mounted on the tip of the robot arm 2 to perform an operation of cutting a workpiece by applying laser beams to the workpiece.
[0091] Suppose that the operation is, for example, of cutting out a circular workpiece having a diameter of 10 mm at 0.2 m/min as illustrated in
[0092] In this case, the direction of rotation of the motor 12 of the joint portion J1 is reversed at the timing when the tip of the robot arm 2 reaches the 90° position in
[0093] Specifically, an actual path draws a trajectory in which a portion on the right side with respect to the reversal positions shown in
[0094] A portion on the left side with respect to the reversal positions shown in
[0095] As can be seen, the actual path draws the trajectory in which the right side with respect to the reversal positions in
[0096] To address this problem, as illustrated in
[0097] On the other hand, the correction amount 1 (θBL1) is subtracted from the position command from the 90° position to the 270° position, thereby correcting the position command and shifting the path downward as shown in
[0098] As can be seen, giving a correction addition command as shown in
[0099] The degree of changes in the path deviation before and after the correction will now be described with reference to the measurement waveforms shown in
[0100] On the other hand,
[0101] The graphs shown in
[0102] Under the condition where the circular workpiece having a diameter of 10 mm is cut out at 0.2 m/min, the laser cutting speed is relatively low. Thus, the reverse torque τdir does not exceed a predetermined torque threshold value τth as shown in
[0103] However, an increase in the laser cutting speed may cause the reverse torque τdir to exceed the torque threshold value τth. In this case, merely performing the backlash correction cannot reduce the path error of the robot arm 2 accurately. This will be specifically described below.
[0104] Suppose that the operation is, for example, of cutting out a circular workpiece having a diameter of 10 mm at 2 m/min as illustrated in
[0105] In this case, the direction of rotation of the motor 12 of the joint portion J1 is reversed at the timing when the tip of the robot arm 2 reaches the 90° position in
[0106] Specifically, just like the foregoing example illustrated in
[0107] In the example illustrated in
[0108] In particular, the distance from the rotational position of the joint portion J1 as the main axis to the tip of the robot arm 2 is long. Thus, even slight torsion of the speed reducer 13 connected to the joint portion J1 causes the center of rotation of the joint portion J1 to fluctuate, and affects the path drawn by the tip of the robot arm 2.
[0109] To address this problem, as described above, the correction amount 1 (θBL1) is added to the position command from the 0° position to the 90° position and from the 270° position to the 360° (0°) position, thereby correcting the position command and shifting the path upward as shown in
[0110] On the other hand, the correction amount 1 (θBL1) is subtracted from the position command from the 90° position to the 270° position, thereby correcting the position command and shifting the path downward as shown in
[0111] However, in the example illustrated in
[0112] The degree of changes in the path deviation before and after the correction will now be described with reference to the measurement waveforms shown in
[0113] On the other hand,
[0114] The graphs shown in
[0115] Under the condition where the circular workpiece having a diameter of 10 mm is cut out at 2 m/min, the laser cutting speed is high. Thus, the reverse torque τdir exceeds the predetermined torque threshold value τth as shown in
[0116] Thus, in this embodiment, in the case in which the reverse torque is greater than the predetermined threshold value, torsion correction is performed together with backlash correction to make it possible to reduce the path error of the robot arm 2. Specific procedures of such correction will be described below.
[0117] Configurations of Articulated Robot and Control System for Same
[0118] As shown in
[0119] The motors 12 are connected to the respective joint portions J1 to J6 of the robot 1 through the speed reducers 13, and drive the joint portions J1 to J6 based on control signals transmitted from respective servo control sections 23 of the robot control device 20, thereby controlling the motion and posture of the robot arm 2. The robot 1 has its joint portions J1 to J6 operated so that the tip of the robot arm 2 draw an intended path, such as a circular path, an elliptic path, or a path of any other shape.
[0120] The encoders 14 are connected to the respective motors 12, and detect the rotation amount and rotational speed of the respective motors 12. The detection signal is transmitted as a feedback signal to the respective servo control sections 23.
[0121] Note that in the following description, the motor 12, the speed reducer 13, and the encoder 14 connected to the joint portion J1 may be referred to as a the “first motor,” the “first speed reducer,” and the “first encoder,” respectively, and the other motors connected to the joint portions J2 to J6, for example, may be referred to as the “second to sixth motors.”
[0122] Further, the servo control section 23 and a backlash correction block 25 connected to the first motor may be referred to as the “first servo control section” and the “first backlash correction block,” respectively, and the other servo control sections 23 connected to the second to sixth motors 12 and the other backlash correction blocks 25 connected to the second to sixth servo control sections 23 may be referred to as the “second to sixth servo control sections” and the “second to sixth backlash correction blocks,” respectively.
[0123] Further, the position commands and position command correction values transmitted to the respective axes may be referred to as the “position commands θ1c to θ6c” and the “position command correction values θ1BL to θ6BL.”
[0124] The robot control device 20 includes an operation/teaching section 21, a main control section 22, the servo control sections 23, and the backlash correction blocks 25.
[0125] The operation/teaching section 21 stores, for example, a path of the robot arm 2 acquired during teaching, and rotary motions and other motions of the motors 12 for drawing this path.
[0126] The main control section 22 receives an instruction from the operation/teaching section 21, and outputs the position commands θ1c to θ6c of the axes J1 to J6 of the robot 1 in accordance with the path along which the robot arm 2 or any other component of the robot mechanism 11 moves and which is stored in the operation/teaching section 21.
[0127] The servo control sections 23 respectively control rotary motions of the first to sixth motors 12 in the robot mechanism 11 so that the rotary motions follow the position commands θ1c to θ6c transmitted from the main control section 22.
[0128] The backlash correction blocks 25 are provided between the main control section 22 and the servo control sections 23, and correspond to the respective joint portions J1 to J6. The backlash correction blocks 25 generate the position command correction values θ1BL to θ6BL based on the position commands θ1c to θ6c, respectively, received from the main control section 22. The position command correction values θ1BL to θ6BL generated are added to the associated position commands θ1c to θ6c, and the resultant commands are transmitted to the first to sixth servo control sections 23, respectively.
[0129] Note that functional blocks in the robot control device 20 may be configured as independent circuits, or may be configured as one integrated circuit. A combination of some of the functional blocks may be configured as one integrated circuit.
[0130] The functions of the main control section 22, the servo control sections 23, and the backlash correction blocks 25 are generally implemented through execution of a program written in software on an integrated circuit, such as a CPU.
[0131]
[0132] The load 30 includes a first arm 31 serving as a motor mounting base, the motor 12 connected to the first arm 31, the speed reducer 13, and a second arm 35. The speed reducer 13 includes a first side 32 connected to the motor 12, and a second side 33 provided with a bearing 34. The second arm 35 is rotatably connected to the second side 33 of the speed reducer 13.
[0133] The first side 32 of the speed reducer is coupled to a rotor 36 of the motor 12 via a rotation shaft of the motor 12, and rotates by the amount of the motor rotation position OM transmitted from the servo control section 23. The speed reducer 13 converts the motor rotation position OM into an arm rotation position θL at a reduction ratio Rg. The speed reducer 13 includes a spring component 37 between the first side 32 and the second side 33 of the speed reducer 13.
[0134] The position command θc indicates an angle command that instructs an angular amount of rotation of each axis. The actual position θL indicates the actual angular amount of rotation of each axis.
[0135] Detailed Configurations of Control Blocks of Articulated Robot
[0136] Note that, in the following description, features of the first servo control section 23 are used as examples. The same statement applies to the second to sixth servo control sections 23.
[0137] In a velocity control block 51, a current IM to flow through the first motor 12 is calculated as follows: a motor velocity ωM, obtained by differentiating the motor position θM, is subtracted from the velocity command ωcp; the resultant value is multiplied by the velocity proportional gain Kps; and the thus obtained value and a value obtained by integrating said resultant value of the subtraction and multiplying the result by the velocity integral gain Ki are added together, thereby obtaining the current IM. The current IM is input to the load 30.
[0138] In the load 30, IM represents a motor current command for driving the motor 12; Kt represents a torque constant of the motor 12; 1/Rg represents the reciprocal of the reduction ratio; Ks represents a spring constant of the speed reducer 13; θs represents the amount of torsion occurring between the first side 32 and the second side 33 of the speed reducer; and τddyn represents a kinetic torque applied to the robot arm 2.
[0139] A motor transfer function 40 and a load transfer function 41 are obtained by mathematizing (modeling) respective physical phenomena.
[0140] In the motor transfer function 40, JM represents the moment of inertia around the rotation axis of a combination of the rotor 36 of the motor 12 and the first side 32 of the speed reducer, and DM represents the viscous friction coefficient.
[0141] In the load transfer function 41, JL represents the moment of inertia around the rotation axis of a combination of the second arm 35 and the second side 33 of the speed reducer, and DL represents the viscous friction coefficient.
[0142]
[0143]
[0144] In the kinetic calculation block 60, the kinetic torque τdyn is calculated using the position commands θ1c to θ6c transmitted to all of the axes from the main control section 22. In the kinetic calculation block 60, the kinetic torque τdyn applied to each axis is calculated by performing a kinetic calculation using the position commands θ1c to θ6 of all of the axes, velocity components obtained by differentiation of the position commands, and acceleration components obtained by second-order differentiation of the position commands.
[0145] In the angular velocity calculation block 61, an angular velocity component dθc is calculated by differentiation of the position command θ1c (which is a correction target) for the joint portion J1. The angular velocity component dθc obtained is input to the command velocity component reversal detection block 62. In the command velocity component reversal detection block 62, the reversal timing dir is calculated based on the angular velocity component dθc. The reversal timing dir is input to the reverse torque detection block 63 and the backlash correction amount calculation block 64.
[0146] In the reverse torque detection block 63, the reverse torque τdir is calculated based on the kinetic torque τdyn and the reversal timing dir.
[0147] In the backlash correction amount calculation block 64, the correction amount θ1BL of the joint portion J1 is calculated based on the kinetic torque τdyn, the reverse torque τdir, and the reversal timing dir.
[0148] In a case of performing only backlash correction, a waveform including the backlash correction amount (correction amount 1 (θBL1)) shown in
[0149] On the other hand, in a case of performing backlash correction and torsion correction, a waveform including the correction amount 1 (θBL1), the torsion correction amount (correction amount 2 (θBL2)), and the correction time tBL2 shown in
[0150] The correction amount θ1BL calculated in the backlash correction amount calculation block 64 is incorporated in the position command dθc to be transmitted to the first servo control section 23 from the main control section 22. The thus obtained new position command is input to the first servo control section 23 so that the servo control section 23 control the driving of the first motor 12.
[0151] The first servo control section 23 adjusts the correction amount in accordance with the magnitude of the reverse torque τdir. Specifically, in the case of the above-described operation of cutting out the circular workpiece having a diameter of 10 mm at 0.2 m/min (see
[0152] On the other hand, in the case of the above-described operation of cutting out the circular workpiece having a diameter of 10 mm at 2 m/min (see
[0153] Suppose that the operation is, for example, of cutting out a circular workpiece having a diameter of 10 mm at 2 m/min as illustrated in
[0154] In this case, the direction of rotation of the motor 12 of the joint portion J1 is reversed at the timing when the tip of the robot arm 2 reaches the 90° position in
[0155] Specifically, just like the foregoing example illustrated in
[0156] In the example illustrated in
[0157] To address this problem, as illustrated in
[0158] First, the correction amount 1 (θBL1) is added to the position command from the 0° position to the 90° position, thereby correcting the position command and shifting the path upward as shown in
[0159] On the other hand, the correction amount 1 (θBL1) is subtracted from the position command from the 90° position to the 270° position, thereby correcting the position command and shifting the path downward as shown in
[0160] Further, the correction amount 1 (θBL1) is added to the position command from the 270° position to the 360° (0°) position, thereby correcting the position command and shifting the path upward as shown in
[0161] As can be seen, giving a correction addition command as shown in
[0162] The degree of changes in the path deviation before and after the correction will now be described with reference to the measurement waveforms shown in
[0163] On the other hand,
[0164] The graphs shown in
[0165] Under the condition where the circular workpiece having a diameter of 10 mm is cut out at 2 m/min, the laser cutting speed is high. Thus, the reverse torque τdir exceeds the predetermined torque threshold value τth as shown in
[0166] As shown in
[0167] As shown in
[0168] For example, in an operation of cutting out a circular workpiece having a diameter of 10 mm at 1 m/min as shown in
[0169] As can be seen from the foregoing description, according to the robot control device 20 of this embodiment, it is possible to reduce the path error of the robot arm 2 by correcting torsion in addition to correcting backlash at the joint portion J1, which is a correction target, if the reverse torque is greater than the predetermined threshold value.
Second Embodiment
[0170]
[0171] As shown in
[0172] Gravity is not applied to the joint portion J1. Further, the working speed that achieves necessary path accuracy is lower than or equal to 10 m/min ( 1/20 or less of the highest speed). Thus, as indicated by the following formula (1), the main component of the kinetic torque τdyn is the inertial force of the axis of the joint portion J1.
τdyn≈J×αC (1)
where J represents the inertia around the pivot. The inertia depends on the posture of the robot 1 in operation. Further, αC represents an acceleration component. The acceleration component αC is a value obtained by differentiation of an angular velocity component dθc.
[0173]
[0174] In the angular velocity calculation block 71, the angular velocity component dθc, which is a value obtained by differentiation of the position command θ1c for the pivot, is calculated. The angular velocity component dθc calculated in the angular velocity calculation block 71 is input to the acceleration calculation block 72 and the command velocity component reversal detection block 73.
[0175] In the acceleration calculation block 72, the acceleration component αC, which is a value obtained by differentiation of the angular velocity component dθc, is calculated. The acceleration component αC calculated in the acceleration calculation block 72 is input to the reversal acceleration detection block 74 and the backlash correction amount calculation block 75.
[0176] In the command velocity component reversal detection block 73, the reversal timing dir is calculated based on the angular velocity component dθc. The reversal timing dir is input to the reversal acceleration detection block 74 and the backlash correction amount calculation block 75.
[0177] In the reversal acceleration detection block 74, the acceleration αdir at reversal is calculated based on the acceleration component ac and the reversal timing dir.
[0178] In the backlash correction amount calculation block 75, the correction amount θ1BL of the joint portion J1 is calculated based on the acceleration component αc, the acceleration αdir at reversal, and the reversal timing dir.
[0179] In a case of performing only backlash correction, a waveform including the backlash correction amount (correction amount 1 (θBL1)) is output as the correction amount θ1BL. The backlash correction amount is a value determined in advance by an experiment or any other factor.
[0180] On the other hand, in a case of performing backlash correction and torsion correction, a waveform including the correction amount 1 (θBL1), the torsion correction amount (correction amount 2 (θBL2)), and the correction time tBL2 shown in
[0181] The correction amount θ1BL calculated in the backlash correction amount calculation block 64 is incorporated in the position command dθc to be transmitted to the first servo control section 23 from the main control section 22. The thus obtained new position command is input to the first servo control section 23 so that the servo control section 23 control the driving of the first motor 12.
[0182] The first servo control section 23 adjusts the correction amount in accordance with the magnitude of the acceleration αdir at reversal. Specifically, in the case of the above-described operation of cutting out the circular workpiece having a diameter of 10 mm at 0.2 m/min (see
[0183] On the other hand, the graphs shown in
[0184] Under the condition where the circular workpiece having a diameter of 10 mm is cut out at 2 m/min, the laser cutting speed is high. Thus, the acceleration αdir at reversal exceeds the predetermined acceleration threshold value αth as shown in
[0185] Thus, the influence of the torsion that occurs at the joint portion J1 is significant, and not only backlash but also torsion may be corrected as shown in
[0186] As shown in
[0187] As shown in
[0188] For example, in an operation of cutting out a circular workpiece having a diameter of 10 mm at 1 m/min, the acceleration αdir at reversal is reduced because the rotational speed of the motor 12 in this operation is lower than the rotational speed of the motor 12 in the operation shown in
[0189] To accommodate changes in the inertia about the pivot depending on the posture of the robot 1, multiple sets of tables respectively indicating the correction amount 2 (θBL2) and the correction time tBL2 shown in
[0190] As can be seen from the foregoing description, according to the robot control device 20 of this embodiment, it is possible to reduce the path error of the robot arm 2 by correcting torsion in addition to correcting backlash at the joint portion J1, which is a correction target, if the acceleration at reversal is greater than the predetermined threshold value.
OTHER EMBODIMENTS
[0191] The embodiments described above may be modified as follows.
[0192] In the embodiments, the vertical articulated six-axis robot 1 has been described as a non-limiting example. The number of joint portions of the robot is not limited to six, and may be changed as appropriate depending on the specifications of the robot.
[0193] As can be seen from the foregoing description, the present invention can reduce the path error of a robot arm, which is very practical and useful and therefore highly applicable in the industry.