Robot control device
11613013 · 2023-03-28
Assignee
Inventors
- Hiroyuki Nakata (Osaka, JP)
- Hiroyoshi Ueda (Osaka, JP)
- Atsumi Hashimoto (Osaka, JP)
- Ryosuke Yamamoto (Osaka, JP)
- Yasuyoshi Honuchi (Osaka, JP)
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1694
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1638
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/39189
PHYSICS
International classification
Abstract
A robot control device includes the following: a main control unit; a servo control unit, which receives a position command θc from the main control unit; and a bending correction block (24), which corrects the bending of the reduction gear connected to the servo motor. The bending correction block (24) includes the following: a first position-correction-value calculation means (63), which finds a first position-command correction value θsgc based on the position command θc; and a second position-command-correction-value calculation means (64), which finds a second position-command correction value θskc based on the interference torque τa. The servo control unit drives the servo motor based on a new position command obtained by adding the first position-command correction value θsgc and the second position-command correction value θskc to the position command θc.
Claims
1. A robot control device for controlling movement of a robot arm having a first joint shaft having a first position response frequency and a second joint shaft having a second position response frequency different from the first position response frequency, the first joint shaft driven through a reduction gear connected to a servo motor, the robot control device comprising: a hardware processor configured to execute at least one program and cause the robot control device to: transmit a first position command to the first joint shaft; and perform bending correction to correct a position error of the robot arm, the position error being due to bending of the reduction gear, the hardware processor further configured: to calculate separately a gravitational torque and an interference torque, the interference torque is applied from the second joint shaft, as part of an external torque causing the bending of the reduction gear, wherein, in the calculation for separating the gravitational torque and the interference torque, the hardware processor is configured: to calculate, based on the first position command, the external torque causing the bending of the reduction gear by a dynamic calculation, to calculate, based on the first position command, the gravitational torque as part of the external torque causing the bending of the reduction gear by a gravity calculation, the gravity calculation being performed through the dynamic calculation with a speed and an acceleration component of the first position command set to zero, and to calculate, by subtracting the gravitational torque calculated by the gravity calculation from the external torque calculated by the dynamic calculation, the interference torque, the interference torque being due to interference to which the first joint shaft is subjected, and whereby the gravitational torque and the interference torque are calculated separately; to determine a first position-command correction value based on the separated gravitational torque; to determine a second position-command correction value by multiplying the separated interference torque by coefficients for amplitude compensation and phase compensation; and to perform servo control to drive the servo motor based on a second position command obtained by adding the first position-command correction value determined from the separated gravitational torque and the second position-command correction value determined from the separated interference torque to the first position command.
2. A robot control device for controlling movement of a robot arm having a first joint shaft having a first position response frequency and a second joint shaft having a second position response frequency different from the first position response frequency, the first joint shaft driven through a reduction gear connected to a servo motor, the robot control device comprising: a hardware processor configured to execute at least one program and cause the robot control device to: transmit a first position command to the first joint shaft; and perform bending correction to correct a position error of the robot arm, the position error being due to bending of the reduction gear, the hardware processor further configured: to calculate separately a gravitational torque and an interference torque, the interference torque is applied from the second joint shaft, as part of an external torque causing the bending of the reduction gear, wherein, in the calculation for separating the gravitational torque and the interference torque, the hardware processor is configured: to calculate, based on the first position command, the external torque causing the bending of the reduction gear by a dynamic calculation, to calculate, based on the first position command, the gravitational torque as part of the external torque causing bending of the robot arm by a gravity calculation, the gravity calculation being performed through the dynamic calculation with a speed and an acceleration component of the first position command set to zero, and to calculate, by subtracting the gravitational torque calculated by the gravity calculation from the external torque calculated by the dynamic calculation, the interference torque, the interference torque being due to interference to which the first joint shaft is subjected, and whereby the gravitational torque and the interference torque are calculated separately; to determine a first position-command correction value based on the separated gravitational torque; and to determine a current compensation value by multiplying the separated interference torque by coefficients for amplitude compensation and phase compensation; and to perform servo control to drive the servo motor based on following commands: a second position command obtained by adding the first position-command correction value determined from the separated gravitational torque to the first position command, and a new motor current command obtained by adding the current compensation value determined separated from the interference torque to a motor current command generated based on the second position command.
3. The robot control device according to claim 1, wherein the servo motor is one of n servo motors, the n being an integer not less than 2, the reduction gear is one of n reduction gears connected to the n servo motors, the first joint shaft is one of n joint shafts driven through the n reduction gears, the servo control is one of n servo controls for driving the n servo motors, the position command is one of n position commands for specifying respective positions of the n joint shafts, the bending correction is one of n bending corrections corresponding to the n servo controls, and the position error of the robot arm due to the bending is corrected based on the n position commands.
4. The robot control device according to claim 2, wherein the servo motor is one of n servo motors, the n being an integer not less than 2, the reduction gear is one of n reduction gears connected to the n servo motors, the first joint shaft is one of n joint shafts driven through the n reduction gears, the servo control is one of n servo controls for driving the n servo motors, the position command is one of n position commands for specifying respective positions of the n joint shafts, the bending correction is one of n bending corrections corresponding to the n servo controls, and the position error of the robot arm due to the bending is corrected based on the n position commands.
5. The robot control device according to claim 1, wherein the first position-command correction value and the second position-command correction value are shown as following formulae:
θsgc=τg×(−1/Ks)
θskc=Kpa×θsac+Kda×(s.Math.θsac)
θsac=τa×(−1/Ks) where θsgc represents the first position-command correction value; θskc represents the second position-command correction value; θsac represents a bending correction value; τg represents the gravitational torque; τa represents the interference torque; Ks represents a spring constant of the reduction gear; Kpa represents a phase PD compensation proportional gain (a coefficient for amplitude compensation); Kda represents a PD compensation differential gain (a coefficient for phase compensation); s represents an integral component.
6. The robot control device according to claim 2, wherein the first position-command correction value and the current compensation value are shown as following formulae:
θsgc=τg×(−1/Ks)
Isc=(Kpb×τa+Kdb×(s.Math.τa))×(−1/Kt) where θsgc represents the first position-command correction value; Isc represents the current compensation value; τg represents the gravitational torque; τa represents the interference torque; Ks represents a spring constant of the reduction gear; Kt represents a torque constant of the servo motor; Kpb represents an interference-torque-current-compensation proportional gain (a coefficient for amplitude compensation); Kdb represents an interference-torque-current-compensation differential gain (a coefficient for phase compensation); s represents an integral component.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
DESCRIPTION OF EMBODIMENTS
(29) The present disclosure will now be described in detail by means of exemplary embodiments with reference to the drawings. It should be understood that the exemplary embodiments are merely exemplary of the present disclosure and are not intended to limit the present disclosure, its application, or use.
(30) The Findings on which the Present Disclosure is Based
(31) As described above, the bending of the spring components of the reduction gears causes a position error of the robot arm. To correct the bending, it is preferable to take the external torque applied to the reduction gears into consideration. The external torque contains the gravitational torque and the interference torque, which is applied from other joint shafts. The inventors of the present application have found that the gravitational and interference torques have different influences from each other on the position command after the bending correction. To be more specific, they have found that these torques have different response frequencies from each other. This finding will be described as follows by taking the operation of a vertical articulated robot as an example.
(32) The Structure and Operation of the Vertically Articulated Robot
(33)
(34) In the following description, robot 1 includes a total of six joint shafts: main three shafts J1 to J3, which determine the attitude of robot 1 as a whole, and distal three shafts J4 to J6, which determine the orientation of the arm tip. Note that the directions X, Y, and Z shown in
(35) Assume that laser output device 3 emits laser light 4 to cut workpiece 5 and that laser output device 3 has a mass of about 5 kg. Once the position and direction of radiation of laser light 4 are determined, the attitude of robot arm 2, or the angle of each joint shaft of robot 1 is uniquely determined. Thus, the joint shafts have no control redundancy, so that when workpiece 5 is being cut into a circle, all the joint shafts operate.
(36) Assume that workpiece 5 is cut into a circle with a diameter of 10 mm at a rate of 10 m/min. In this case, the operation time is about 0.2 seconds, and the operating frequency is about 5 Hz. Each joint shaft operates upon receiving a sinusoidal position command θc corresponding to the operating frequency. The actual frequency at which each joint shaft can operate in response to the position command θc is defined as the position response frequency, and the actual position of each joint shaft (hereinafter, actual position) is referred to as θL. The position command θc is an angle command indicating the amount of rotation angle of each joint shaft. The actual position θL indicates the actual amount of rotation angle of each joint shaft. The position response frequency is determined by the natural oscillation frequency of each joint shaft of robot 1 and the characteristics of the control device (see
WcL=θL/θc Formula 1
(37) In the following description, the position response frequency is the lower one of the following: the frequency at which the amplitude of the transfer function WcL is half (−6 dB); and the frequency at which the phase of the transfer function WcL is 90 degrees behind.
(38) Main three shafts J1 to J3 are so physically large and heavy that it is difficult to improve the position response frequency. For example, when a robot has an arm length of 2 m and a maximum load capacity of about 10 kg, the position response frequency is at its minimum of about 5 Hz when the arm is extended (the inertia is at its maximum).
(39)
(40) As shown in
(41) Thus, when workpiece 5 is laser-cut into a circle with a diameter of 10 mm at a rate of 10 m/min by operating the main shafts at a position response frequency of 5 Hz, the diameter of the circular trajectory traced by the tip of robot arm 2 is halved, resulting in an inappropriate trajectory.
(42) Meanwhile, distal three shafts J4 to J6 are smaller and lighter in weight than main three shafts J1 to J3. Therefore, these shafts J4 to J6 have a position response frequency of at least 10 Hz even when laser output device 3 of about 5 kg is mounted at the tip of robot arm 2. Hence, robot arm 2 can have additional joint shaft J7 at its tip. Main shafts J1 to J3 can be in the stopped state whereas distal shafts J4 to J6 and the additional joint shaft J7 together can perform positioning or track following. This operation enables robot arm 2 to have sufficient position responsivity at an operating frequency of at least 5 Hz. Thus, joint shafts J1 to J5 are brought to a complete standstill so as to keep rotation center position 8 of joint shaft J6 still.
(43)
(44)
(45) At time t1, joint shafts J1 to J5 of robot arm 2 are driven to move laser radiation position 7 to the center of a desired circular trajectory, and then laser radiation is started. At time t2, laser radiation position 7 is moved in the +Y direction and placed on the circular trajectory by rotating joint shafts J6 and J7 in rotation directions 9 and 10, respectively. At times t3 to t5, joint shafts J6 and J7 are rotated so that laser radiation position 7 travels along the circular trajectory. At time t6, laser radiation is ended.
(46)
(47) Therefore, as shown in
(48) In the case shown in
(49) The Generation and Influence of the Interference Torque Due to the Movement of the Joint Shafts of the Robot Arm
(50) However, the movement of joint shafts J6 and J7 causes an interference torque on joint shafts J1 to J5, thereby bending the reduction gears connected to joint shafts J1 to J5. The rotational trajectories of main three shafts J1 to J3 are particularly far from the tip of robot arm 2. The inventors of the present application have found that a slight bending of the reduction gears connected to these joint shafts can cause rotation center position 8 of joint shaft J6 to greatly fluctuate, thereby greatly affecting the trajectory drawn by the tip of robot arm 2.
(51) The inventors of the present application have actually investigated the fluctuation of rotation center position 8 of joint shaft J6 when workpiece 5 is laser-cut into a circle with a diameter of 10 mm at a rate of 10 m/min. This investigation has revealed that joint shaft J6 has a fluctuation of about 1 mm, causing the trajectory drawn by the tip of robot arm 2 to have an error of 10% or so. In seven-axis vertical articulated robot 6 shown in
(52)
(53) At time t1, joint shafts J1 to J5 of robot arm 2 are driven to move laser radiation position 7 to the center of a desired circular trajectory, and then laser radiation is started. Similar to the case shown in
(54) When main three shafts J1 to J3 are moved in a six-axis articulated robot, the diameter of the circular trajectory may be reduced about 50% by an error. The trajectory error of the actual position θL is smaller than this error, but it exceeds the maximum error allowable when processing is performed with a robot. Therefore, some measures should be taken for this.
(55)
(56) In this case, the bending correction value θsc (hereinafter, position-command correction value) to be added to the position command θc is expressed by the following Formula 2 where Ks represents the spring constant of the reduction gear.
θsc=−θs=−τddyn/Ks Formula 2
(57) where θs represents the amount of bending caused between the later-described primary and secondary sides of the reduction gear.
(58) The bending correction value θsgc (hereinafter, first position-command correction value) to reduce a gravitational torque τg and the bending correction value θsgc to reduce interference torque τa are expressed by the following Formulas 3 and 4, respectively.
θsgc=−τg/Ks Formula 3
θsac=−τa/Ks Formula 4
(59) Consequently, the entire position-command correction value θsc is as shown in Formula 5.
θsc=−(τg+τa)/Ks=θsgc+τsac Formula 5
(60) When the position-command correction value θsc expressed by Formula 5 is added to the position command θc to perform bending correction, the first position-command correction value θsgc to reduce the gravitational torque τg is fully corrected for the following reason.
(61) While main three shafts J1 to J3 are in the stopped state, the gravitational torque τg has a frequency of 0 Hz. The robot has an arm length of 2 m and a maximum load capacity of about 10 kg, whereas main three shafts J1 to J3 have an operational angular velocity of about 180/sec. and rotate only half of the circle per second. Therefore, even when main three shafts J1 to J3 are in action, the gravitational torque τg changes less than 0.5 Hz.
(62) Consequently, the oscillation frequency of robot arm 2 twisted by the gravitational torque τg is also less than 0.5 Hz. Even when the position response frequency of main three shafts J1 to J3 is 5 Hz or so, the actual position θL can fully follow the position command θc, achieving bending correction.
(63) Meanwhile, the bending due to the interference torque τa cannot be fully corrected even when the bending correction value θsac to reduce the interference torque τa is added to the position command θc for the following reason.
(64) In the above-described cutting operation (workpiece 5 is cut into a circle with a diameter of 10 mm at a rate of 10 m/min), the center frequency of the bending of robot arm 2 due to the interference torque τa is 5 Hz. As a result, as shown in Formula 4, the frequency of the bending correction value θsac to reduce the interference torque τa is also 5 Hz.
(65)
(66) As shown in
(67) In the above-described well-known approach, the position-command correction value θsc is found based on the external torque τddyn as a whole without dividing it into the gravitational torque and the interference torque. Therefore, for example, if the position-command correction value θsc is increased with a decrease in the actual corrected amplitude of the bending due to the interference torque τa, the first position-command correction value θsgc to reduce the gravitational torque τg is also increased. As a result, the arm is raised more than it is pulled down by gravitation.
(68) The inventors of the present application have found that the external torque can be separated into the gravitational torque and the interference torque so as to correct the position error of robot arm 2 based on these separate torques, thereby enabling robot arm 2 to provide a desired trajectory. This finding will be described in detail as follows.
First Exemplary Embodiment
(69) Articulated Robot and the Structure of its Control System
(70)
(71) In the following description, motor 12, reduction gear 13, and encoder 14 connected to joint shaft J1 may hereinafter be referred to as the first motor, the first reduction gear, and the first encoder, respectively. Similarly, the motors connected to joint shafts J2 to J7 may hereinafter be referred to as second-to-seventh motors. Servo control unit 23 and bending correction block 24 connected to the first motor may hereinafter be referred to as the first servo control unit and the first bending correction block, respectively. Similarly, servo control units 23 connected to the second-to-seventh motors may hereinafter be referred to as the second-to-seventh servo control units. Bending correction blocks 24 connected to the second-to-seventh servo control units may hereinafter be referred to as second to fifth bending correction blocks. The position commands and the position-command correction values sent to the joint shafts may hereinafter be referred to as the position commands θc to θ7c, and the position-command correction values θsc to θ7sc, respectively.
(72) Robot control device 20 includes operation-teaching unit 21, main control unit 22, servo control units 23, and bending correction blocks 24 (bending correction means). Operation-teaching unit 21 stores the trajectory of robot arm 2 acquired in the teaching process and the rotation of motors 12 to draw the trajectory.
(73) Main control unit 22 receives an instruction from operation-teaching unit 21, and outputs the position commands θc to θ7c to joint shafts J1 to J7, respectively, of robot 6 according to the trajectory of robot arm 2 of robot mechanism 11 stored in operation-teaching unit 21.
(74) First-to-seventh servo control units 23 control the rotation of first-to-seventh motors 12 of robot mechanism 11 such that the actual position θL follows the position commands θc to θ7c sent from main control unit 22.
(75) Bending correction blocks 24 are located between main control unit 22 and the respective servo control units 23 in such a manner as to correspond to joint shafts J1 to J7. Bending correction blocks 24 generate the position-command correction values θsc to θ7sc based on the position commands θc to θ7c received from main control unit 22. The position-command correction values θsc to θ7sc thus generated are added to the position commands θc to θ7c, respectively, and are sent to first-to-seventh servo control units 23, respectively.
(76) Each functional block in robot control device 20 may be composed of an independent circuit, or of a single integrated circuit. Alternatively, a combination of some functional blocks may be composed of a single integrated circuit. The functions of main control unit 22, servo control units 23 and bending correction blocks 24 are achieved mostly by executing a software program on an integrated circuit such as a CPU.
(77)
(78) Primary side 32 of the reduction gear is connected to rotor 36 of motor 12 through the shaft of motor 12. Primary side 32 is rotated by the angle corresponding to a motor rotation position θM sent from servo control unit 23. Reduction gear 13 converts the motor rotation position θM into the arm rotation position (actual position) θL at a reduction ratio Rg shown in Formula 6.
Rg=θM/θL Formula 6
(79) However, as shown in
(80)
(81) Motor transfer function 40 has: a moment of inertia JM around the shaft including rotor 36 of motor 12 and primary side 32 of the reduction gear; and a viscous friction coefficient DM. Load transfer function 41 has: a moment of inertia JL around the shaft including second arm 35 and secondary side 33 of the reduction gear; and a viscous friction coefficient DL.
(82) As shown in
(83) Since
(84) The Detailed Structure of the Control Block of the Articulated Robot
(85)
(86) In speed control block 51, the motor rotation position θM is differentiated to obtain a motor speed ωM. The motor speed ωM is subtracted from the speed command ωc so as to obtain a sixth value. The sixth value is multiplied by a velocity proportional gain Kps so as to obtain a seventh value. The sixth value is also integrated and multiplied by a velocity integral gain Ki so as to obtain an eighth value. The seventh and eighth values are added together to calculate the current to be supplied to first motor 12, thereby obtaining the motor current command IM.
(87)
(88) To avoid this happening, dynamic calculation block 60 finds an external torque value τdyn by using the position commands θc to θ7c sent from main control unit 22 for all the joint shafts. In dynamic calculation block 60, dynamic calculation is performed using the position commands θc to θ7c for all the shafts, the speed components, which are the differential values of the position commands θc to θ7c, and the acceleration components, which are second-order differential values. This calculation finds the external torque applied to each joint shaft.
(89) The external torque value τdyn is multiplied by the reciprocal of the spring constant Ks (obtained by sign inversion) so as to find the position-command correction value θsco.
θsco=τdyn×(−1/Ks) Formula 7
(90) As described earlier, the external torque value τdyn contains both the gravitational torque τg and the interference torque τa. Therefore, the actual corrected amplitude of the bending due to the interference torque τa having a high frequency is small. If the position-command correction value θsco is increased accordingly, the position-command correction value to reduce the gravitational torque τg is also increased. The arm is raised more than it is pulled down by gravitation as described earlier.
(91)
(92) Meanwhile, in the present exemplary embodiment, each bending correction block 24 separates the gravitational torque τg and interference torque τa from each other to calculate the respective position-command correction values. Gravity calculation block 62 receives the position commands θc to θ7c in the same manner as dynamic calculation block 61. Block 62 finds the gravitational torque τg through dynamic calculation with the above-mentioned speed and acceleration components set at zero.
(93) The gravitational torque τg is subtracted from the external torque value τdyn so as to obtain the interference torque τa as shown in Formula 8.
τa=τdyn−τg Formula 8
(94) As described above, in the present exemplary embodiment, each of the external torque value τdyn, the gravitational torque τg, and the interference torque τa is calculated in bending correction block 24.
(95) Furthermore, the gravitational torque τg thus obtained is used to obtain the first position-command correction value θsgc from Formula 9.
θsgc=τg×(−1/Ks) Formula 9
(96) Meanwhile, the bending correction value θsac to reduce the interference torque τa is calculated by Formula 10 shown below.
θsac=τa×(−1/Ks) Formula 10
(97) As mentioned earlier, the amplitude and phase of the bending correction value θsac should be compensated to correspond to the actual position θL. For example, they should be subjected to PD compensation including proportion comprehension and phase lead compensation. The value θskc (hereinafter, second position-command correction value) obtained by the compensation is shown in Formula 11.
θskc=Kpa×θsac+Kda×(s.Math.θsac) Formula 11
(98) where Kpa represents a PD compensation proportional gain and a coefficient for amplitude compensation; Kda represents a PD compensation differential gain and a coefficient for phase compensation; and s represents an integral component.
(99) The position-command correction value θsc is obtained from the values calculated by Formula 9 and Formula 11.
θsc=θsgc+θskc Formula 12
(100) Gravity calculation block 62 and the calculate function of bending correction block 24, which is shown in Formula 9, will be together referred to as first position-command-correction-value calculation means 63. Dynamic calculation block 61, gravity calculation block 62, and the calculate function of bending correction block 24, which is shown in Formulas 8, 10 and 11, will be together referred to as second position-command-correction-value calculation means 64.
(101) As shown in
(102)
(103) As shown in
(104) As described hereinbefore, in the present exemplary embodiment, the gravitational torque τg and the interference torque τa, which are different in operation response frequency and are contained in the external torque τddyn applied to robot arm 2, are separately calculated. These torques are used to find the first and second position-command correction values θsgc and θskc. This enables correcting the position command without overestimating the influence of bending due to the gravitational torque τg. These position-command correction values θsgc and θskc are added to the original position command θc so as to correct the position error of robot arm 2 with high accuracy. Bending correction blocks 24 receive seven position commands θc to θ7c sent from main control unit 22 to seven servo control units 23. Bending correction blocks 24 find the external torque value τdyn and the gravitational torque τg through the dynamic calculation based on the position commands θc to θ7c. This eliminates the need to provide a dedicated component such as a torque sensor for measuring the torque, thereby reducing the cost of robot 6 and robot control device 20. The interference torque τa is obtained by subtracting the gravitational torque τg from the external torque value τdyn. This allows easy separation between the gravitational torque τg and the interference torque τa, thereby correcting the position error of robot arm 2 caused by bending.
(105) These days, the position teaching of robots is more and more performed not by the teaching playback method but offline using a GUI on a PC. According to the teaching playback method, it does not matter if there is a discrepancy between the tip position of robot arm 2 specified to motors 12 and the actual tip position as long as repeatability is high. Meanwhile, offline teaching needs absolute position accuracy, so that if bending correction is inappropriate, the robot cannot be controlled properly.
(106) In the present exemplary embodiment, the position error of robot arm 2 due to bending can be corrected with high accuracy, so that the offline teaching can be performed smoothly.
Second Exemplary Embodiment
(107)
(108)
(109) In bending correction block 26, gravity calculation block 62 calculates the gravitational torque τg, and the interference torque τa is calculated by Formula 7 similar to the first exemplary embodiment. The position-command correction value θsc shown in Formula 12 is changed as shown in Formula 13.
θsc=θsgc Formula 13
(110) Meanwhile, the interference torque τa is used not to find the bending correction value θsac but to find the current corresponding to the bending correction value θsac. In this case, similar to the second position-command correction value θskc in the first exemplary embodiment, the current also needs to be compensated in amplitude and phase. Therefore, the current compensation value Isc is expressed by Formula 14 below.
Isc=(Kpb×τa+Kdb×(s.Math.τa))×(−1/Kt) Formula 14
(111) where Kpb represents an interference-torque-current-compensation proportional gain, which is a coefficient for amplitude compensation. Kdb represents an interference-torque-current-compensation differential gain, which is a coefficient for phase compensation. The other calculation components are the same as mentioned above.
(112) The motor current command IMb sent from speed control block 52 is expressed by Formula 15 below based on the value calculated by Formula 14.
IMb=IM+Isc Formula 15
(113) Dynamic calculation block 61, gravity calculation block 62, and the calculate function of bending correction block 26, which is shown in Formulas 8 and 14, are together referred to as current compensation value calculation means 65.
(114) As shown in
(115) As described above, in the present exemplary embodiment, the current compensation value Isc to reduce the interference torque τa is added to the motor current command IM so as to apply bending correction based on the interference torque τa directly to the motor current. This improves the response of load 30, or in other words, the effect of correcting bending caused by the interference torque τa.
(116) In the present exemplary embodiment, the bending due to the interference torque τa is corrected not by adding the position-command correction values θsc to θ7sc to the position commands θc to θ7c sent from outside block 50 or 52, but by adding the current compensation value Isc to the motor current command IM generated in blocks 50 and 52. Thus, the bending is compensated indirectly, so that the current compensation value Isc added to the motor current command IM does not necessarily entirely contribute to the bending reduction. Therefore, in some cases, determining the exact current compensation value Isc needs to perform operation verification using an actual articulated robot and gain adjustment.
(117) The first and second exemplary embodiments have described seven-axis vertical articulated robot 6; alternatively, however, the number of joint shafts is not limited to seven and can be properly changed according to the specification of the robot. Robot control device 20 is configured so that n servo control units 23 (n is an integer not less than 2) drive the n servo motors 12 so as to drive n joint shafts connected to the n servo motors 12 through reduction gears 13. Furthermore, bending correction blocks 24 and 26 receive the n position commands θc to θnc sent from main control unit 22 to the n servo control units 23, and correct the position error of robot arm 2, which is caused by bending, based on these position commands. Thus, the robot control device of the present disclosure is applicable to articulated robots with two or more shafts.
INDUSTRIAL APPLICABILITY
(118) The robot control device of the present disclosure separates the bending due to the gravitational torque and the bending due to the interference torque from other joint shafts from each other to correct their position commands separately. Thus, the robot control device, which can reduce the position error of a robot arm, is usefully applicable to welding robots and other industrial robots.
REFERENCE MARKS IN THE DRAWINGS
(119) 1 six-axis vertical articulated robot 2 robot arm 3 laser output device 4 laser light 5 workpiece 6 seven-axis vertical articulated robot 7 laser radiation position 8 rotation center position 11 robot mechanism 12 motor (servo motor) 13 reduction gear 14 encoder 20 robot control device 21 operation-teaching unit 22 main control unit 23 servo control unit 24 to 26 bending correction block (bending correction means) 30 load 31 first arm 32 primary side of the reduction gear 33 secondary side of the reduction gear 34 bearing 35 second arm 36 rotor 37 spring component of the reduction gear 40 motor transfer function 41 load transfer function 50 position control block 51, 52 speed control block 60, 61 dynamic calculation block 62 gravity calculation block 63 first position-command-correction-value calculation means 64 second position-command-correction-value calculation means 65 current compensation value calculation means J1 to J7 joint shaft θc to θ7c position command IM motor current command IMb motor current command τddyn external torque τa interference torque τg gravitational torque