WO2023248442A1 - 溶接ガンの加圧力指令を補正する装置、制御装置、及び方法 - Google Patents

溶接ガンの加圧力指令を補正する装置、制御装置、及び方法 Download PDF

Info

Publication number
WO2023248442A1
WO2023248442A1 PCT/JP2022/025192 JP2022025192W WO2023248442A1 WO 2023248442 A1 WO2023248442 A1 WO 2023248442A1 JP 2022025192 W JP2022025192 W JP 2022025192W WO 2023248442 A1 WO2023248442 A1 WO 2023248442A1
Authority
WO
WIPO (PCT)
Prior art keywords
posture
welding
teaching
command
pressurizing force
Prior art date
Application number
PCT/JP2022/025192
Other languages
English (en)
French (fr)
Inventor
昭典 西村
俊道 青木
Original Assignee
ファナック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ファナック株式会社 filed Critical ファナック株式会社
Priority to PCT/JP2022/025192 priority Critical patent/WO2023248442A1/ja
Priority to TW112122249A priority patent/TW202400337A/zh
Publication of WO2023248442A1 publication Critical patent/WO2023248442A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23KSOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
    • B23K11/00Resistance welding; Severing by resistance heating
    • B23K11/10Spot welding; Stitch welding
    • B23K11/11Spot welding
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23KSOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
    • B23K11/00Resistance welding; Severing by resistance heating
    • B23K11/24Electric supply or control circuits therefor

Definitions

  • the present disclosure relates to a device, a control device, and a method for correcting a pressurizing force command that defines a pressurizing force of a welding gun.
  • a device that corrects a pressurizing force command that defines the pressurizing force of a welding gun according to the posture of the welding gun (for example, Patent Document 1).
  • a device that corrects a pressurizing force command that defines a pressurizing force of a welding gun that is moved by a robot and pressurizes and welds a workpiece according to the posture of the welding gun is provided for a robot and a welding gun.
  • a motion execution unit that operates the robot so as to position the welding gun in a taught posture specified in a welding work program that executes welding work, and a motion execution unit that operates the robot to position the welding gun in a taught posture specified in a welding work program that executes welding work.
  • a welding work program is executed by a welding force acquisition section that acquires the welding force when driven with the first welding force command, and by correcting the first welding force command based on the welding force acquired by the welding force acquisition section. and a command correction unit that obtains a second pressurizing force command when driving the welding gun in the taught posture.
  • a method for correcting a pressurizing force command that defines a pressurizing force of a welding gun that is moved by a robot and pressurizes and welds a workpiece according to the attitude of the welding gun
  • the processor and the robot is operated so as to position the welding gun in a teaching posture specified in a welding work program that causes the welding gun to perform welding work, and when the welding gun is positioned in the teaching posture, the welding gun is applied with a first pressurizing force.
  • the pressurizing force command by correcting the pressurizing force command using the teaching posture for positioning the welding gun during actual welding work, it is possible to generate a constant pressurizing force on the welding gun regardless of the posture.
  • the pressurizing force command can be determined with high accuracy. Further, since there is no need to newly teach the robot the posture for correcting the pressurizing force command, the work of correcting the pressurizing force command can be simplified.
  • FIG. 1 is a schematic diagram of a welding robot system according to one embodiment.
  • 2 is a block diagram of the welding robot system shown in FIG. 1.
  • FIG. 2 is an enlarged view of the welding gun shown in FIG. 1.
  • FIG. 4 shows a state where the attitude of the welding gun shown in FIG. 3 has been changed.
  • 2 is a flowchart showing an example of a method of correcting a pressurizing force command, which is executed by the welding robot system shown in FIG. 1.
  • FIG. An example of a welding work program is shown below.
  • An example of a position data table is shown.
  • An example of a data table of welding conditions is shown.
  • FIG. 7 shows an enlarged view of a welding gun according to another embodiment.
  • FIG. 3 is a schematic diagram of a welding robot system according to another embodiment.
  • FIG. 11 is a block diagram of the welding robot system shown in FIG. 10.
  • FIG. 11 is a flowchart showing an example of a method of correcting a pressurizing force command, which is executed by the welding robot system shown in FIG. 10.
  • 12 is a block diagram showing other functions of the welding robot system shown in FIG. 11.
  • FIG. 14 is a flowchart showing an example of a method of correcting a pressurizing force command, which is executed by the welding robot system shown in FIG. 13.
  • 3 is a block diagram showing other functions of the welding robot system shown in FIG. 2.
  • FIG. 16 is a flowchart showing an example of a method of correcting a pressurizing force command, which is executed by the welding robot system shown in FIG. 15.
  • FIG. 17 is a flowchart showing an example of the flow of step S35 in FIG. 16.
  • Another example of a position data table is shown.
  • An example of a posture reproduction program is shown below.
  • Still another example of the position data table is shown.
  • 12 is a block diagram showing still other functions of the welding robot system shown in FIG. 11.
  • FIG. 22 is a flowchart showing an example of a method of correcting a pressurizing force command, which is executed by the welding robot system shown in FIG. 21.
  • 23 is a flowchart showing an example of the flow of step S54 in FIG. 22.
  • FIG. Still another example of the position data table is shown. Another example of a posture reproduction program will be shown.
  • the welding robot system 10 includes a robot 12, a welding gun 14, a pressure sensor 16, and a control device 18.
  • the robot 12 is a vertically articulated robot, and includes a robot base 20, a rotating trunk 22, a lower arm 24, an upper arm 26, and a wrist 28.
  • the robot base 20 is fixed on the floor of the work cell.
  • the rotating trunk 22 is provided on the robot base 20 so as to be rotatable around a vertical axis.
  • the lower arm portion 24 is provided on the rotating trunk 22 so as to be rotatable around a horizontal axis.
  • the upper arm section 26 is rotatably provided at the distal end of the lower arm section 24.
  • the wrist portion 28 includes a wrist base 28a rotatably provided at the distal end of the upper arm portion 26, and a wrist flange 28b provided on the wrist base 28a so as to be rotatable around the wrist axis A1. .
  • a plurality of servo motors 30 are provided on the robot base 20, the rotating trunk 22, the lower arm 24, the upper arm 26, and the wrist 28, respectively. These servo motors 30 rotate each movable component of the robot 12 (i.e., the rotating trunk 22, the lower arm 24, the upper arm 26, the wrist 28, and the wrist flange 28b) in accordance with commands from the control device 18, This moves the welding gun 14.
  • the welding gun 14 is detachably attached to the wrist flange 28b. As shown in FIG. 3, in this embodiment, the welding gun 14 is a so-called C-type spot welding gun, which includes a base portion 32, a fixed arm 34, a fixed welding tip 36, a movable arm 38, a servo motor 40, a movable It has a conversion mechanism 42 and a movable welding tip 44.
  • C-type spot welding gun which includes a base portion 32, a fixed arm 34, a fixed welding tip 36, a movable arm 38, a servo motor 40, a movable It has a conversion mechanism 42 and a movable welding tip 44.
  • the base portion 32 is connected to the wrist flange 28b.
  • the fixed arm 34 has a proximal end 34a fixed to the base portion 32, and extends in a substantially L-shape from the proximal end 34a to the distal end 34b.
  • the fixed welding tip 36 is fixed to the tip 34b of the fixed arm 34.
  • the movable arm 38 is provided on the base portion 32 so as to be able to reciprocate along the gun axis A2.
  • the movable arm 38 is a rod-shaped member that extends linearly along the gun axis A2.
  • the movable welding tip 44 is fixed to the tip 38a of the movable arm 38 so as to be aligned with the fixed welding tip 36 on the gun axis A2.
  • the gun axis A2 may be arranged parallel to the wrist axis A1.
  • the servo motor 40 has an output shaft (not shown) and is fixed to the base portion 32.
  • the motion conversion mechanism 42 has, for example, a ball screw mechanism or a mechanism consisting of a timing belt and a pulley, and converts the rotational motion of the output shaft of the servo motor 40 into a reciprocating motion of the movable arm 38 along the gun axis A2. .
  • the control device 18 controls the operations of the robot 12 and the welding gun 14.
  • the control device 18 is a computer having a processor 50, a memory 52, and an I/O interface 54.
  • the processor 50 has a CPU, a GPU, etc., is communicably connected to a memory 52 and an I/O interface 54 via a bus 56, and has a function of correcting a pressurizing force command, which will be described later, while communicating with these components. Performs calculation processing for.
  • the memory 52 has a RAM, a ROM, or the like, and temporarily or permanently stores various data used in the arithmetic processing executed by the processor 50 and various data generated during the arithmetic processing.
  • the I/O interface 54 has, for example, an Ethernet (registered trademark) port, a USB port, an optical fiber connector, or an HDMI (registered trademark) terminal, and allows data to be exchanged with an external device under instructions from the processor 50. Communicate by wire or wirelessly.
  • the servo motors 30 and 40 and the pressurizing force sensor 16 are connected to the I/O interface 54 so that they can communicate by wire or wirelessly.
  • the control device 18 is further provided with an input device 58 and a display device 60.
  • the input device 58 includes a keyboard, a mouse, a touch panel, or the like, and receives data input from an operator.
  • the display device 60 has a liquid crystal display, an organic EL display, or the like, and displays various data.
  • the input device 58 and the display device 60 are connected to the I/O interface 54 so that they can communicate by wire or wirelessly. Note that the input device 58 and the display device 60 may be integrated into the casing of the control device 18, or may be provided separately from the casing of the control device 18, for example as one computer (PC, etc.). may be provided.
  • a robot coordinate system C1 is set for the robot 12.
  • the robot coordinate system C1 is a coordinate system for automatically controlling each movable component of the robot 12.
  • the robot coordinate system C1 is set for the robot 12 so that its origin is located at the center of the robot base 20 and its z-axis coincides with the rotation axis of the rotation trunk 22.
  • Tool coordinate system C2 is set for the welding gun 14.
  • Tool coordinate system C2 is a coordinate system that defines the position and orientation of welding gun 14 in robot coordinate system C1.
  • the tool coordinate system C2 has its origin (so-called TCP) located on the fixed welding tip 36 (for example, the center of the tip surface), and its z-axis coincides with the gun axis A2 ( or parallel) with respect to the welding gun 14.
  • the processor 50 When moving the welding gun 14, the processor 50 first sets a tool coordinate system C2 in the robot coordinate system C1, and positions the welding gun 14 at the position and orientation represented by the set tool coordinate system C2. Commands (position command, speed command, torque command, etc.) to each servo motor 30 of the robot 12 are generated. In this way, the welding gun 14 is moved by the operation of the robot 12 and positioned at an arbitrary position and orientation in the robot coordinate system C1.
  • the welding gun 14 pressurizes and welds a workpiece (not shown).
  • the processor 50 sends a pressurizing force command FC to the servo motor 40 and moves the movable arm 38 along the gun axis A2, thereby moving the movable welding tip 44 toward the fixed welding tip 36. .
  • the workpiece is held between the movable welding tip 44 and the fixed welding tip 36.
  • a pressing force F corresponding to the pressing force command FC is applied to the work from the movable welding tip 44.
  • the pressurizing force command F C sent to the servo motor 40 is a command that defines the pressurizing force F to be generated in the welding gun 14, and represents a target value (for example, 2 [kN]) of the pressurizing force F.
  • the pressure sensor 16 includes a piezoelectric element or a strain gauge, and measures the pressure F of the welding gun 14. Specifically, the pressurizing force sensor 16 is configured so that the operator can hold it with one hand, and is manually set between the fixed welding tip 36 and the movable welding tip 44 by the operator when measuring the pressurizing force F. The pressurizing force sensor 16 is held between the movable welding tip 44 driven by the servo motor 40 and the fixed welding tip 36, and measures the pressurizing force F applied to the pressurizing force sensor 16 at this time. The pressurizing force sensor 16 supplies detection data of the measured pressurizing force F to the control device 18.
  • the pressurizing force F generated by the welding gun 14 when the welding gun 14 is driven with a predetermined pressurizing force command FC can change depending on the attitude of the welding gun 14.
  • the welding gun 14 is arranged in a posture OR 0 in which the gun axis A2 is parallel to the vertical direction and the movable welding tip 44 is aligned vertically above the fixed welding tip 36. .
  • the welding gun 14 is rotated by an angle ⁇ around the y-axis of the tool coordinate system C2 from the orientation OR 0 shown in FIG. 3, and placed in the orientation OR ⁇ shown in FIG.
  • the motor 40 is driven with the same pressing force command F C_0 and the movable welding tip 44 pressurizes the pressurized object.
  • the pressurizing force F ⁇ applied from the movable welding tip 44 to the pressurized object is the resultant force F of the above-mentioned force component F ⁇ and the force component F g cos ⁇ obtained by multiplying the above-mentioned gravitational component F g by cos ⁇ .
  • ⁇ ( F ⁇ +F g cos ⁇ ).
  • the pressing force F ⁇ in this posture OR ⁇ is reduced by F g (1 ⁇ cos ⁇ ) compared to the pressing force F 0 in the posture OR 0 shown in FIG.
  • the pressurizing force F changes depending on the orientation OR of the welding gun 14. Such variations in the pressurizing force F depending on the posture OR will affect welding quality.
  • the processor 50 corrects the pressurizing force command FC according to the orientation OR of the welding gun 14.
  • a method of correcting the pressurizing force command FC will be described. The flow shown in FIG. 5 is started when the processor 50 receives a correction start command from an operator, a higher-level controller, or the like.
  • step S1 the processor 50 acquires the welding work program 200.
  • This welding work program 200 is a computer program for causing the robot 12 and welding gun 14 to perform welding work.
  • An example of the welding work program 200 is schematically shown in FIG.
  • This is a positioning command IN P for moving and positioning to the first teaching position TP 1 and teaching posture OR 1 represented by the identifier [TP1].
  • the identifier "TP1" is assigned to the coordinates (X 1 , Y 1 , Z 1 , W 1 , P 1 , R 1 ). Among these coordinates (X 1 , Y 1 , Z 1 , W 1 , P 1 , R 1 ), (X 1 , Y 1 , Z 1 ) are used to position the welding gun 14 (specifically, TCP). These are the coordinates of the power robot coordinate system C1, and represent the first teaching position TP1 .
  • (W 1 , P 1 , R 1 ) are coordinates that define each axis direction (so-called yaw, pitch, roll) of the tool coordinate system C1 in the robot coordinate system C1, and are coordinates that define the first teaching posture OR It represents 1 .
  • the processor 50 When executing the welding work program 200, when the processor 50 reads out the positioning command IN P of "MOVE [TP1] VELOCITY [V1]" in the first line, it refers to the position data table 202 and uses the identifier "TP1".
  • the expressed coordinates (X 1 , Y 1 , Z 1 , W 1 , P 1 , R 1 ) are acquired from the position data table 202.
  • the processor 50 sets the origin position represented by the coordinates (X 1 , Y 1 , Z 1 , W 1 , P 1 , R 1 ) and the tool coordinate system C2 in each axis direction in the robot coordinate system C1. , commands (position commands) to each servo motor 30 of the robot 12 to move the welding gun 14 at a speed V1 to the first teaching position TP1 and teaching posture OR1 represented by the set tool coordinate system C2. , speed command, torque command, etc.). In this way, the processor 50 positions the welding gun 14 at the first teaching position TP 1 and the teaching attitude OR 1 by operating the robot 12 according to the positioning command IN P .
  • Each of the n-th teaching position TP n and teaching attitude OR n is taught to the robot 12 in advance by an operator using a teaching device (teaching pendant, tablet terminal device, etc.).
  • a speed data table in which the speed V n is stored together with the identifier "Vn” may be prepared in advance as data separate from the welding work program 200.
  • the speed V n to which the identifier "Vn” is assigned is acquired from the speed data table.
  • the speeds V n defined in the welding work program 200: "VELOCITY[Vn]" may be different from each other, or at least two (for example, all) speeds V n may be the same. Good too.
  • This is a welding command INW for starting the welding gun 14 and welding the workpiece according to the given welding condition 1.
  • FIG. 8 shows an example of welding condition 1 given the identifier [1].
  • a data table of welding conditions m pressure force F m , welding current I m , welding time t m ) as illustrated in FIG. 8 is prepared in advance for each type of workpiece (that is, thickness, material), and is memorized. Note that any parameters (for example, welding voltage, etc.) other than the pressurizing force F m , welding current I m , and welding time t m may be set as the welding condition m.
  • the servo motor 40 of the welding gun 14 is provided with a load detection sensor LS (not shown) that detects the load torque or feedback current of the servo motor 40.
  • the processor 50 obtains feedback FB1 (ie, load torque, feedback current, etc.) from the load detection sensor LS.
  • a calibration work is performed in advance to make the pressurizing force command F C to the servo motor 40 and the pressurizing force F generated by the welding gun 14 driven according to the pressurizing force command F C coincide with each other.
  • This calibration work is performed, for example, with the robot 12 placing the welding gun 14 in a predetermined reference orientation OR0 .
  • This reference attitude OR 0 is, for example, the attitude shown in FIG. 3 .
  • the operator sets the pressurizing force sensor 16 between the movable welding tip 44 and the fixed welding tip 36 of the welding gun 14 placed in the reference posture OR 0 , and operates the welding gun 14 according to the pressurizing force command FC .
  • the pressurizing force F during driving is measured by the pressurizing force sensor 16.
  • the operator obtains the correlation between the feedback FB1 from the load detection sensor LS at this time and the measured pressing force F, and adjusts the correlation so that the pressing force command FC and the pressing force F match each other. Proofread.
  • the processor 50 While the processor 50 is driving the servo motor 40 with the pressurizing force command F C_1 according to the welding command IN W , the processor 50 obtains feedback FB1 from the load detection sensor LS, and the feedback FB1 is a value corresponding to the pressurizing force command F C_1 . When this happens, the servo motor 40 is stopped.
  • step S1 the processor 50 obtains the welding work program 200 including the positioning command INP and welding command INW as described above.
  • the welding work program 200 is stored in the memory 52 in advance, and the processor 50 acquires the welding work program 200 by reading the welding work program 200 from the memory 52.
  • the welding work program 200 may be stored in another computer (upper controller, production management server, teaching device, etc.).
  • the other computer may be communicatively connected to the I/O interface 54 of the control device 18 via a communication network (Internet, LAN).
  • the processor 50 may obtain the welding work program 200 by downloading it from the other computer.
  • step S3 the processor 50 determines whether or not the welding gun 14 has been positioned at the n-th teaching position TP n and teaching attitude OR n .
  • the processor 50 receives feedback FB2 (for example, position feedback, velocity feedback, or Based on the acceleration feedback), it can be determined whether the welding gun 14 has been positioned to the n-th teaching position TP n and teaching attitude OR n .
  • feedback FB2 for example, position feedback, velocity feedback, or Based on the acceleration feedback
  • step S3 when executing step S3 after step S2, the processor 50 determines whether or not the welding gun 14 has been positioned to the first teaching position TP 1 and teaching attitude OR 1 . If the processor 50 determines that the welding gun 14 has been positioned at the n-th teaching position TP n and the teaching attitude OR n (that is, YES), the processor 50 stops the operation of the robot 12 and proceeds to step S4. As a result, the welding gun 14 stands still while being positioned at the n-th teaching position TP n and the teaching attitude OR n . On the other hand, if the processor 50 determines NO, it loops step S3.
  • the processor 50 When determining YES in step S3, the processor 50 performs the welding specified in the next line of the positioning command IN P executed in step S2 (or the most recently executed step S8 described below) in the welding work program 200. Read instruction INW . However, in the flow of FIG. 5, the processor 50 does not execute this welding command INW , but instead executes the pressing force acquisition operation FO.
  • an operator or a higher-level controller may transmit a flag setting signal to the control device 18, and the processor 50 may be configured to enable or disable the flag FL in response to the flag setting signal.
  • the operator or the higher-level controller gives a flag setting signal to the control device 18 to enable the flag FL, and in response to the flag setting signal, the processor 50 enables the flag FL.
  • the processor 50 determines YES in step S3 when executing the flow of FIG. 5, it executes steps S4 to S7 as the pressurizing force acquisition operation FO instead of the welding command INW .
  • the processor 50 acquires the feedback FB1 from the load detection sensor LS described above, and when the feedback FB1 becomes a value corresponding to the pressing force command FC_1 , the servo motor 40 stop.
  • the pressurizing force sensor 16 is held between the movable welding tip 44 and the fixed welding tip 36, and a pressurizing force F according to the pressurizing force command FC_1 is applied to the pressurizing force sensor 16.
  • step S6 the pressing force F is obtained.
  • the processor 50 acquires the pressing force F measured by the pressing force sensor 16 at the end of step S5 (that is, when the servo motor 40 is stopped) from the pressing force sensor 16, and stores it in the memory 52.
  • the processor 50 uses the pressurizing force command F to move the welding gun 14, which has been positioned at the n-th teaching position TP n and the teaching attitude OR n in the most recent step S2 (or step S8 described below).
  • the pressing force F actually measured by the pressing force sensor 16 when driven at C_1 is acquired.
  • step S7 the processor 50 determines whether the pressing force F has been obtained for all the teaching positions TP n and teaching postures OR n defined in the welding work program 200. If the processor 50 determines YES, it ends the flow shown in FIG. 5, whereas if the processor 50 determines NO, it proceeds to step S8.
  • step S8 the processor 50 executes the positioning command IN_P defined in the next line of the welding work program 200. For example, when executing step S8 for the first time, the processor 50 executes the positioning command IN P "MOVE [TP2] VELOCITY [V2]" on the third line, and moves the welding gun 14 to the second teaching position. It is moved at a speed of V 2 in order to position it at TP 2 and teaching attitude OR 2 .
  • the processor 50 then returns to step S3. In this way, the processor 50 repeatedly executes the loop of steps S3 to S8 until it determines YES in step S7, and executes step S8 to position the welding gun 14 at the n-th teaching position TP n and teaching posture OR n . Each time, the pressing force F is obtained in step S6.
  • the processor 50 executes the welding work program 200 to perform actual welding work on the workpiece.
  • the operator or higher-level controller provides a flag setting signal to the control device 18 to disable the flag FL, and in response to the flag setting signal, the processor 50 disables the flag FL. Set.
  • the processor 50 performs the welding operation on the workpiece by executing the welding command INW of the welding operation program 200.
  • the processor 50 corrects the pressing force command F C_1 based on the pressing force F acquired in step S6 described above. do.
  • the positioning command IN P on the 2i-1st line is executed to position the welding gun 14 at the n-th teaching position TP n and the teaching attitude OR n .
  • the pressurizing force F is 1.5 [kN].
  • the processor 50 drives the servo motor 40 of the welding gun 14 when executing the welding instruction IN W on the 2i-th line following the positioning instruction IN P on the 2i-1st line in the actual welding operation.
  • the correction amount ⁇ F for correcting the pressing force command F C_1 ( 2 [kN]) for .
  • the correction amount ⁇ F is not limited to the difference between the pressurizing force F and the pressurizing force command F C_1 , but may be, for example, a value obtained by multiplying the difference by a predetermined coefficient, or the correction amount ⁇ F is not limited to the difference between the pressurizing force F and the pressurizing force command F It may be determined by any other calculation using C_1 .
  • the pressing force F applied to the workpiece by the welding gun 14 positioned in the n-th teaching posture OR n during actual welding work can be made substantially equal to the pressing force F 1 specified in the welding condition 1.
  • the processor 50 corrects the first pressurizing force command F C_1 based on the pressurizing force F acquired in step S6, thereby adjusting the teaching posture OR n when executing the welding work program 200. It functions as a command correction unit 66 (FIG. 2) that obtains a second pressurizing force command FC_1 ' when driving the welding gun 14.
  • the processor 50 functions as the operation execution section 62, the pressurizing force acquisition section 64, and the command correcting section 66, thereby providing a pressurizing force command that defines the pressurizing force F of the welding gun 14.
  • FC is corrected according to the orientation OR of the welding gun 14. Therefore, the operation execution section 62, the pressing force acquisition section 64, and the command correction section 66 constitute a device 70 (FIG. 2) that corrects the pressing force command FC according to the orientation OR of the welding gun 14.
  • the operation execution unit 62 operates the robot 12 so as to position the welding gun 14 at the teaching posture ORn defined in the welding work program 200 (steps S2, S8), and the pressurizing force acquisition unit 64 acquires the pressurizing force F when the welding gun 14 is driven by the first pressurizing force command F C_1 when the operation execution unit 62 positions the welding gun 14 at the teaching posture ORn (step S6).
  • the command correction unit 66 corrects the first pressing force command F C_1 based on the pressing force F acquired by the pressing force acquisition unit 64, so that the welding gun is adjusted in the teaching posture ORn when the welding work program 200 is executed.
  • a second pressurizing force command F C_1 ' when driving 14 is determined.
  • the pressurizing force acquisition unit 64 detects the pressurizing force sensor when the welding gun 14 positioned at the n -th teaching posture ORn is driven by the first pressurizing force command F C_1 by the operation execution unit 62. 16 obtains the pressure force F measured. According to this configuration, the pressurizing force F can be actually measured with high precision by the pressurizing force sensor 16, so that the second pressurizing force command F C_1 ' can be determined with higher precision.
  • the operation program PG1 for executing the pressurizing force acquisition operation FO may be prepared separately from the welding work program 200.
  • the processor 50 determines YES in step S3, it executes the operation program PG1 and executes steps S4 to S7 as the pressing force acquisition operation FO.
  • the present invention is not limited to this, and in the welding work program 200 acquired in step S1, in order to alternatively execute the pressurizing force acquisition operation FO in the code of each welding command IN W : "GUN [ON] CONDITION [1]".
  • the flag FL may be assigned.
  • the processor 50 refers to the flag FL given to the welding instruction INW read when the determination is YES in step S3, and instead of the welding instruction INW , executes the pressurizing force acquisition operation FO in steps S4 to S7. may be executed.
  • the flag FL may be deleted from the welding work program 200.
  • the processor 50 may execute the welding instruction INW by ignoring the assigned flag FL.
  • the pressurizing force sensor 16 is connected to the I/O interface 54 of the control device 18 and supplies the measured pressurizing force F to the control device 18.
  • the present invention is not limited to this, and the pressurizing force sensor 16 may not be connected to the control device 18.
  • the operator may operate the input device 58 to manually input the pressing force F measured by the pressing force sensor 16 at the end of step S5 described above into the control device 18.
  • the welding robot system 10 includes a pressurizing force sensor 16 independent of the welding gun 14, and the operator manually sets the pressurizing force sensor 16.
  • the pressurizing force sensor 16 may be integrated into the welding gun 14.
  • FIG. 9 Such a form is shown in FIG.
  • the pressurizing force sensor 16' is integrally fixed to the movable arm 38 together with the movable welding tip 44.
  • this pressure sensor 16' acts as a reaction force to the pressure sensor 16'. It is configured to measure the pressing force F applied to the pressurized object by detecting the applied force.
  • step S4 can be omitted from the flow of FIG. 5.
  • the processor 50 determines YES in step S3, it executes step S5 and drives the servo motor 40 of the welding gun 14 in accordance with the pressurizing force command FC_1 .
  • the movable welding tip 44 is pressed against the fixed welding tip 36 as an object to be pressurized, and pressurizes the fixed welding tip 36.
  • the processor 50 stops the servo motor 40 when the feedback FB1 acquired from the load detection sensor LS described above becomes a value corresponding to the pressing force command FC_1 .
  • step S5 when executing step S5, a pressurized object (such as a steel plate) that is separate from the welding gun 14 is inserted between the movable welding tip 44 and the fixed welding tip 36, and the movable welding tip 44 The object to be pressurized may be pressurized.
  • step S6 the processor 50 obtains the pressing force F measured by the pressing force sensor 16' at this time.
  • the pressurizing force sensor 16' may be fixedly installed between the fixed welding tip 36 and the fixed arm 34.
  • Welding robot system 80 differs from welding robot system 10 described above in the following configuration. Specifically, the welding robot system 80 does not include the pressurizing force sensor 16 described above, while the welding gun 14 includes the position sensor 68.
  • the position sensor 68 detects the position PS of the movable welding tip 44.
  • the position sensor 68 includes a rotation detection sensor RS2 (encoder, Hall element, etc.) provided on the servo motor 40 of the welding gun 14, and detects the rotation position (or rotation angle) of the servo motor 40. do. Since the rotational position of the servo motor 40 correlates with the positions of the movable arm 38 and the movable welding tip 44 in the direction of the gun axis A2, the position sensor 68 of this example detects the rotational position of the servo motor 40, The position PS of the welding tip 44 can be detected.
  • RS2 encoder, Hall element, etc.
  • the position sensor 68 is provided on the welding gun 14 (for example, the base part 32) and is a linear scale that can directly detect the position PS of the movable arm 38 or the movable welding tip 44 in the direction of the gun axis A2.
  • Has SC has SC.
  • the position sensor 68 (rotation detection sensor RS2 or linear scale SC) supplies detection data of the detected position PS to the control device 18.
  • step S1 the same step number is given to the same process as the flow shown in FIG. 5, and redundant explanation is omitted.
  • the processor 50 executes step S1 and obtains the welding work program 200.
  • step S11 processor 50 positions welding gun 14 at reference orientation OR0 .
  • the processor 50 operates the robot 12 to position the welding gun 14 at the reference attitude OR 0 shown in FIG. 3 .
  • the gun axis A2 of the welding gun 14 becomes parallel to the vertical direction, and the movable welding tip 44 is aligned vertically above the fixed welding tip 36.
  • step S12 the processor 50 drives the welding gun 14 in accordance with the pressurizing force command F C_m (first pressurizing force command) corresponding to the pressurizing force F m defined in the welding condition m.
  • the processor 50 stops the servo motor 40 when the feedback FB1 from the load detection sensor LS described above becomes a value corresponding to the pressing force command FC_1 .
  • a pressurizing force F 1 is applied from the movable welding tip 44 to the pressurizing force sensor 16 .
  • step S13 the processor 50 obtains the first position PS1 of the movable welding tip 44. Specifically, the processor 50 receives the first position PS 1 (or rotational position) detected by the position sensor 68 at the end of step S12 (that is, when the servo motor 40 is stopped) from the position sensor 68. get.
  • the processor 50 drives the welding gun 14 positioned at the reference orientation OR 0 with the first pressurizing force command F C_1 to move the movable welding tip 44 to the pressurized object (specifically In this case, it functions as a position acquisition unit 72 (FIG. 11) that acquires the first position PS 1 detected by the position sensor 68 when the fixed welding tip 36) is pressurized.
  • step S13 the processor 50 sequentially executes steps S2, S3, and S5 described above.
  • step S14 the processor 50 functions as the position acquisition unit 72 and acquires the second position PS2 of the movable welding tip 44. Specifically, the processor 50 receives the second position PS 2 (or rotational position) detected by the position sensor 68 at the end of step S5 (that is, when the servo motor 40 is stopped) from the position sensor 68. get.
  • the pressurizing force F with which the movable welding tip 44 presses the fixed welding tip 36 when step S14 is executed may be different from the pressurizing force F1 when step S13 is executed. Therefore, the second position PS 2 obtained in step S14 may be different from the first position PS 1 obtained in step S13.
  • the processor 50 functions as the position acquisition unit 72 and moves the welding gun 14, which was positioned at the n -th teaching posture ORn in step S2 or S8, by driving it with the first pressing force command F C_1 .
  • a second position PS 2 detected by the position sensor 68 when the pressurized object (specifically, the fixed welding tip 36) is pressurized by the welding tip 44 is acquired.
  • step S15 the processor 50 functions as the pressing force acquisition unit 64 and acquires the pressing force F.
  • PS 1 /PS 2 F 1 /F (Formula 1)
  • the processor 50 stores the obtained pressing force F in the memory 52.
  • step S15 the processor 50 sequentially executes steps S7 and S8 described above, and repeatedly executes a loop of steps S3, S5, S14, S15, S7, and S8 until it determines YES in step S7, and then performs step S8. Every time the welding gun 14 is positioned at the n-th teaching position TP n and the teaching attitude OR n , the pressurizing force F is acquired in step S15.
  • the processor 50 executes the welding work program 200 for actual welding work, and during the execution of the welding work program 200, the command correction unit 66, the pressurizing force command F C_1 ' is obtained by correcting the pressurizing force command F C_1 at each teaching posture OR n based on the pressurizing force F acquired in step S15.
  • the processor 50 functions as the operation execution section 62, the pressurizing force acquisition section 64, the command correction section 66, and the position acquisition section 72, thereby responding to the orientation OR of the welding gun 14. Correct the pressurizing force command FC . Therefore, the operation execution unit 62, the pressure force acquisition unit 64, the command correction unit 66, and the position acquisition unit 72 constitute a device 90 (FIG. 11) that corrects the pressure force command FC according to the orientation OR of the welding gun 14. do.
  • the position acquisition unit 72 drives the welding gun 14 positioned at the reference orientation OR 0 with the first pressurizing force command F C_1 , and uses the movable welding tip 44 to move the pressurized object (fixed welding tip 36 ), the first position PS1 detected by the position sensor 68 when pressurized is obtained (step S13).
  • the position acquisition unit 72 drives the welding gun 14, which has been positioned at the n-th teaching posture ORn by the operation execution unit 62, with the first pressurizing force command F C_1 to move the pressurized object with the movable welding tip 44.
  • the second position PS2 detected by the position sensor 68 when pressurized is acquired (step S14).
  • the pressurizing force acquisition unit 64 calculates the pressurizing force F at the n-th teaching posture OR n based on the first position PS 1 and the second position PS 2 (specifically, the above-mentioned calculation using equation (1)) (step S15).
  • the pressing force F at the teaching posture OR n can be obtained without using a physical sensor such as the pressing force sensor 16 described above. Therefore, the work of manually setting the pressure sensor 16 by the operator can be omitted, and the flow shown in FIG. 12 can be effectively automated, so that the work of obtaining the pressure force F can be simplified.
  • the processor 50 positions the welding gun 14 at all the teaching positions TP n and teaching postures OR n by executing step S2 or S8, and applies the pressurizing force F in step S6 or S15. I mentioned the case of acquiring it.
  • the present invention is not limited to this, and when the processor 50, as the command correction unit 66, calculates the pressing force command F C_1 ′ at the n-th teaching position TP n and the teaching attitude OR n , the processor 50 calculates the pressing force command F C_1 ′.
  • the pressurizing force command F C_1 ′ at the k-th teaching position TP k and the teaching attitude OR k is estimated. You can also do that.
  • the processor 50 positions the welding gun 14 at the first teaching position TP 1 and the teaching attitude OR 1 in step S2, and obtains the pressurizing force F in the above-mentioned step S6 or S15. Then, during actual welding work, the processor 50 corrects the first pressing force command F C_1 based on the acquired pressing force F, thereby correcting the pressing force at the first teaching position TP 1 and teaching posture OR 1 . Assume that the command FC_1 ' is obtained.
  • the processor 50 uses the obtained pressing force command FC_1 ' and the first teaching position TP 1 and the second teaching position TP 2 defined in the welding work program 200 (specifically, the robot coordinate system C1 By executing a predetermined calculation using a predetermined approximation formula based on the coordinates of ' can be estimated.
  • This approximate expression is, for example, an expression representing a change (for example, a linear change) in the pressing force F from the first teaching position TP 1 to the second teaching position TP 2 , and is determined in advance by the operator.
  • the processor 50 does not execute the operation of positioning the welding gun 14 to the second teaching position TP2 and the second teaching attitude OR2 in step S8 described above.
  • the positioning operation in step S8 and the operation for acquiring the pressing force F in step S15 can be canceled for the second teaching attitude OR2 , and the second teaching attitude OR2 in the second teaching attitude OR2 can be canceled.
  • Pressure force command F C_1 ' can be estimated with high accuracy.
  • Welding robot system 80 further executes the flow shown in FIG. 14. Note that in the flow shown in FIG. 14, processes similar to those in FIG. 12 are given the same step numbers, and redundant explanations will be omitted.
  • step S21 the processor 50 uses the teaching postures OR 1 , OR 2 , ... OR n specified in the positioning command IN P that has already been executed, and the teaching posture OR n+1 specified in the positioning command IN P to be executed next. Find the difference ⁇ .
  • step S2 After the processor 50 positions the welding gun 14 at the first teaching position TP 1 and the teaching attitude OR 1 according to the positioning command IN P in the first line of the welding work program 200 (FIG. 6) in step S2, It is assumed that S3, S5, S14, S15 and S7 are executed and the process proceeds to step 21.
  • step S21 the processor 50 uses the first taught attitude OR 1 defined in the positioning command IN P in the first line and the positioning command IN P in the third line to be executed next.
  • the difference ⁇ 1_2 from the prescribed second taught posture OR 2 is determined.
  • the processor 50 refers to the positioning command IN P in the third line of the welding work program 200: "MOVE[TP2] VELOCITY[V2]" code, and determines the coordinates ( X 2 , Y 2 , Z 2 , W 2 , P 2 , R 2 ) are acquired from the position data table 202 .
  • the processor 50 acquires the coordinates (W 1 , P 1 , R 1 ) of the first taught posture OR 1 specified in the positioning command IN P of the first line executed most recently from the position data table 202.
  • the difference ⁇ 1_2 between the first teaching attitude OR 1 and the second teaching attitude OR 2 is determined based on the coordinates (W 2 , P 2 , R 2 ) of the second teaching attitude OR 2 .
  • the processor 50 represents the coordinates (W 1 , P 1 , R 1 ) of the first teaching attitude OR 1 as a 3 ⁇ 3 matrix M 1 .
  • the vector V1_1 represented by the three parameters in the first column is a unit vector indicating a rotational component around the x-axis of the tool coordinate system C2, and the three parameters in the second column
  • the vector V1_2 represented by It is a unit vector indicating the rotational component around the axis.
  • the processor 50 represents the coordinates (W 2 , P 2 , R 2 ) of the second taught attitude OR 2 as a 3 ⁇ 3 matrix M 2 . Then, the processor 50 calculates the inner product IP 1 of the vector V 1_1 in the first column of the matrix M 1 and the vector V 2_1 in the first column of the matrix M 2 .
  • This inner product IP 1 is expressed as cos ⁇ x , where ⁇ x is the angle between vector V 1_1 and vector V 2_1 .
  • This angle ⁇ x represents the difference ⁇ 1_2 between the first teaching attitude OR 1 and the second teaching attitude OR 2 in the direction around the x-axis of the tool coordinate system C2.
  • the processor 50 calculates the inner product IP 2 of the vector V 1_2 in the second column of the matrix M 1 and the vector V 2_2 in the second column of the matrix M 2.
  • This inner product IP 2 is expressed as cos ⁇ y , where ⁇ y is the angle between vector V 1_2 and vector V 2_2 .
  • This angle ⁇ y represents the difference ⁇ 1_2 between the first teaching attitude OR 1 and the second teaching attitude OR 2 in the direction around the y-axis of the tool coordinate system C2.
  • the processor 50 determines the angles ⁇ x and ⁇ y as the difference ⁇ 1_2 between the first taught attitude OR 1 and the second taught attitude OR 2 . Therefore, the processor 50 functions as the posture difference calculation unit 74 (FIG. 13) that calculates the difference ⁇ 1_2 between the first taught posture OR 1 and the second taught posture OR 2 . Note that the method of determining the difference ⁇ described above is just an example, and the processor 50 may determine the difference ⁇ using any other method.
  • step S22 the processor 50 determines whether the difference ⁇ obtained in step S21 is smaller than a predetermined threshold value ⁇ th . For example, assume that the processor 50 has determined the angles ⁇ x and ⁇ y as the difference ⁇ 1_2 between the first taught attitude OR 1 and the second taught attitude OR 2 in the immediately preceding step S21.
  • step S22 the processor 50 determines whether the angle ⁇ x is smaller than the predetermined threshold value ⁇ th_x (that is, ⁇ x ⁇ th_x ) and whether the angle ⁇ It is determined whether or not the threshold value ⁇ th_y is smaller than the threshold value ⁇ th_y (that is, ⁇ y ⁇ th_y ). If ⁇ x ⁇ th_x and ⁇ y ⁇ th_y are satisfied, the processor 50 determines that the difference ⁇ 1_2 between the first taught attitude OR 1 and the second taught attitude OR 2 is smaller than the threshold value ⁇ th ( In other words, it is determined as YES).
  • the processor 50 determines that the difference ⁇ 1_2 between the first taught attitude OR 1 and the second taught attitude OR 2 is equal to or greater than the threshold ⁇ th . It is determined that there is (that is, NO).
  • the processor 50 functions as the difference determination unit 76 (FIG. 13) that determines whether the difference ⁇ 1_2 obtained in step S21 is smaller than the predetermined threshold ⁇ th . .
  • the processor 50 determines NO in step S22, the process proceeds to step S8.
  • the processor 50 executes the positioning command INP in the third line to move the welding gun 14 to the second teaching position TP2 and the second teaching attitude OR2 , and returns to step S3.
  • step S22 the process returns to step S7. That is, in the present embodiment, when the difference ⁇ 1_2 between the first taught attitude OR 1 and the second taught attitude OR 2 is small (in other words, the two postures OR 1 and OR 2 are approximate ), in step S8 the operation executes the positioning command IN P on the third line, and then in step S15 the pressurizing force at the second taught position TP 2 and the second taught posture OR 2 is executed. Do not perform the operation to obtain F. Then, in step S7, the processor 50 considers that the pressing force F has been obtained for the second taught position TP2 and taught posture OR2 .
  • step S2 For example, assume that among the four taught postures OR n shown in FIG. 7, the difference ⁇ 1_2 between the first taught posture OR 1 and the second taught posture OR 2 is smaller than the threshold value ⁇ th as described above.
  • the processor 50 positions the welding gun 14 at the third teaching position TP 3 and the teaching attitude OR 3 in accordance with the positioning command IN P on the fifth line of the welding work program 200 in step S8, in step S3, It is assumed that S5, S14, S15 and S7 are executed and the process proceeds to step S21.
  • step S21 the processor 50 uses the first taught attitude OR 1 defined in the positioning command IN P in the first line that has already been executed, and the positioning command IN P in the seventh line that is scheduled to be executed next.
  • the difference ⁇ 3_4 from the teaching posture OR 4 of 4 is calculated.
  • step S22 the processor 50 determines YES if at least one of the difference ⁇ 1_4 and the difference ⁇ 3_4 is smaller than the threshold ⁇ th .
  • the processor 50 does not execute the positioning command IN P on the seventh line, and cancels step S15 of acquiring the pressing force F in the fourth taught attitude OR4 . That is, in the present embodiment, the processor 50 acquires the pressurizing force F in step S15 only for the taught postures OR n that are not close to each other (that is, the difference ⁇ is greater than or equal to the threshold value ⁇ th ).
  • the processor 50 executes the welding work program 200 for actual welding work, and during the execution of the welding work program 200, the processor 50 functions as the command correction unit 66 to obtain the commands acquired in step S15.
  • the processor 50 functions as the command correction unit 66 to obtain the commands acquired in step S15.
  • the processor 50 uses a common correction amount ⁇ F among the plurality of taught postures OR n that have a small difference ⁇ (that is, are similar to each other). For example, assume that the determination is YES in step S22 because the difference ⁇ 1_2 between the first teaching attitude OR 1 and the second teaching attitude OR 2 is small, and the operation of obtaining the pressurizing force F in step S15 is canceled. .
  • the processor 50 functions as the command correction unit 66 and uses the correction amount ⁇ F obtained for the first teaching attitude OR 1 to perform an adjustment for driving the welding gun 14 in the second teaching attitude OR 2 .
  • step S22 assume that the determination is YES in step S22 because the difference ⁇ 1_4 between the first teaching attitude OR 1 and the fourth teaching attitude OR 4 is small, and the operation of obtaining the pressurizing force F in step S15 is canceled.
  • a new pressurizing force command F C_1 ' is obtained.
  • the original pressurizing force command F C_1 is corrected using this command.
  • the present invention is not limited to this, and a different pressing force command F C_1 may be determined for each teaching posture OR n .
  • the pressurizing force command F C_1 for each teaching posture OR n may be stored in the data table of welding condition 1 shown in FIG. 8 .
  • the processor 50 functions as the motion execution section 62, the pressurizing force acquisition section 64, the command correction section 66, the position acquisition section 72, the posture difference calculation section 74, and the difference determination section 76.
  • the pressurizing force command FC is corrected according to the orientation OR of the welding gun 14. Therefore, the operation execution section 62, the pressure acquisition section 64, the command correction section 66, the position acquisition section 72, the posture difference calculation section 74, and the difference determination section 76 execute the pressure force command F C according to the posture OR of the welding gun 14.
  • a device 100 (FIG. 13) is configured to correct.
  • the posture difference calculation section 74 calculates the difference ⁇ 1_2 between the first taught posture OR 1 and the second taught posture OR 2 (step S21), and the difference determination section 76 calculates the difference ⁇ 1_2 between the first taught posture OR 1 and the second taught posture OR 2 (step S21). It is determined whether the difference ⁇ 1_2 is smaller than a predetermined threshold ⁇ th (step S22). Then, when the difference determining unit 76 determines that the difference ⁇ 1_2 is smaller than the threshold value ⁇ th (that is, YES in step S22), the operation executing unit 62 positions the welding gun 14 in the second teaching posture OR 2 . The operation (step S8) is not executed.
  • a common correction amount ⁇ F can be used among the plurality of taught postures OR n having a small difference ⁇ from each other, so the positioning operation in step S8 and the operation to obtain the pressing force F in step S15 can be canceled. Thereby, the cycle time of the flow shown in FIG. 14 can be reduced.
  • difference determination unit 76 and posture difference calculation unit 74 of the device 100 can also be applied to the device 70 shown in FIG. 2.
  • the processor 50 determines NO in step S7 in FIG. 5, it executes steps S21 and S22 in FIG. If so, the process advances to step S8.
  • the processor 50 uses a common correction amount ⁇ F among a plurality of taught postures OR n that have a small difference ⁇ (that is, are similar).
  • the present invention is not limited to this, and when there are a plurality of taught postures OR n with small differences ⁇ , the processor 50 can calculate the difference ⁇ from the second pressurizing force command F C_1 ′ corrected by one taught posture OR n . Based on this, the second pressing force command F C_1 ′ in another teaching attitude OR n+1 may be obtained.
  • the processor 50 calculates the second pressing force command F C_1 ' by correcting the first pressing force command F C_1 as described above, and It is assumed that the difference ⁇ 1_2 (that is, the angles ⁇ x and ⁇ y ) between the orientation OR 1 and the second taught orientation OR 2 is small. In this case, the processor 50 determines the second pressing force command in the first teaching posture OR1 according to the angle ⁇ y around the y-axis of the tool coordinate system C2 perpendicular to the gun axis A2, out of the difference ⁇ 1_2 .
  • the second pressing force command F C_1 ′ at the second teaching attitude OR 2 may be obtained by linearly changing F C_1 ′.
  • the second teaching attitude OR 2 is the attitude shown in FIG. 4, and the first teaching attitude OR 1 is the attitude shown in FIG. 3 from the second teaching attitude OR 2 on the y-axis of the tool coordinate system C2.
  • the processor 50 functions as the command correction unit 66, and adjusts the second pressing force command F C_1 ' at the second teaching attitude OR 2 to the first teaching attitude OR 1 according to the angle ⁇ y . It may be obtained by linearly increasing the second pressurizing force command F C_1 '.
  • the command correction unit 66 adjusts the second pressing force command F C_1 ′ at the first taught posture OR 1 based on the difference ⁇ (for example, the angle ⁇ y ).
  • the second pressurizing force command F C_1 ' at the teaching posture OR2 is determined.
  • the positioning operation in step S8 and the operation for acquiring the pressing force F in step S15 can be canceled for the second teaching attitude OR2 , and the second teaching attitude OR2 in the second teaching attitude OR2 can be canceled.
  • the pressurizing force command F C_1 ' can be determined with high accuracy according to the difference ⁇ .
  • the second teaching attitude OR 2 is the attitude shown in FIG. 4, and the first teaching attitude OR 1 is the attitude shown in FIG. 3 from the second teaching attitude OR 2 in the tool coordinate system C2.
  • the processor 50 functions as the command correction unit 66, and adjusts the correction amount ⁇ F for correcting the first pressing force command F C_1 in the second teaching attitude OR2 according to the angle ⁇ y . It may be determined by linearly increasing the correction amount ⁇ F at the teaching attitude OR1 .
  • the first teaching attitude OR 1 is the attitude shown in FIG. 4, and the second teaching attitude OR 1 is the attitude shown in FIG. 3 from the first teaching attitude OR 1 in the tool coordinate system C2.
  • the processor 50 functions as the command correction unit 66, and adjusts the correction amount ⁇ F for correcting the first pressing force command F C_1 in the second teaching attitude OR2 according to the angle ⁇ y . It may be determined by linearly decreasing the correction amount ⁇ F at the teaching attitude OR1 .
  • Welding robot system 10 further executes the flow shown in FIG. 16.
  • the processor 50 generates a posture reproduction program 204 for reproducing each teaching posture OR n defined in the welding work program 200 and obtaining a pressurizing force F in each teaching posture OR n .
  • processor 50 executes step S1 and obtains welding work program 200.
  • step S31 the processor 50 extracts the teaching posture OR n from the welding work program 200. Specifically, the processor 50 analyzes the welding work program 200 and extracts all positioning commands INP specified in the welding work program 200.
  • the processor 50 extracts the identifier [TPn] included in the code of the positioning command IN P , and obtains the taught posture OR n indicated by the identifier [TPn] from the position data table 202 (FIG. 7).
  • the processor 50 selects the coordinates (W 1 , P 1 , R 1 ) representing the first taught orientation OR 1 , the coordinates (W 2 , P 2 , R 2 ) representing the second taught orientation OR 2 , the coordinates (W 2 , P 2 , R 2 ) representing the first taught orientation OR 1
  • the coordinates (W 3 , P 3 , R 3 ) representing the third teaching posture OR 3 and the coordinates (W 4 , P 4 , R 4 ) representing the fourth teaching posture OR 4 are extracted.
  • the processor 50 functions as the posture extracting section 78 (FIG. 15) that extracts the teaching posture OR n from the welding work program 200.
  • step S32 the processor 50 determines whether the input of the posture reproduction position OP has been received.
  • This posture reproduction position OP is the position of the robot coordinate system C1 (specifically, the coordinates (X, Y ,Z)).
  • the processor 50 generates an input image IM for inputting the posture reproduction position OP, and displays it on the display device 60.
  • the operator operates the input device 58 while viewing the input image IM to provide the processor 50 with an input specifying the coordinates of the posture reproduction position OP.
  • a case will be described below in which the operator specifies coordinates (X 0 , Y 0 , Z 0 ) of the robot coordinate system C1 as the posture reproduction position OP.
  • the coordinates (X 0 , Y 0 , Z 0 ) of this posture reproduction position OP are at least one (for example, all) teaching positions TP n (X n , Y n , Z n ) specified in the welding work program 200. is specified by the operator as coordinates different from , and closer to the origin of the robot coordinate system C1 (that is, the robot base 20) than the at least one teaching position TP n .
  • the processor 50 determines YES and proceeds to step S33, whereas if the processor 50 determines NO, the processor 50 loops step S32. In this manner, in the present embodiment, the processor 50 functions as the input receiving unit 84 (FIG. 15) that receives an input of a posture reproduction position OP that is different from the taught position TP n .
  • step S33 the processor 50 generates the posture reproduction program 204 based on the taught posture OR n extracted in step S31. Specifically, the processor 50 first generates the position data table 206 for the posture reproduction program 204 based on the taught posture OR n extracted in step S31 and the posture reproduction position OP received in step S32. .
  • FIG. 18 An example of the position data table 206 is shown in FIG. 18.
  • coordinate data respectively assigned identifiers "OP1", "OP2", “OP3”, and "OP4" is stored.
  • they each have the coordinates (W n , P n , R n ) of the taught posture OR n extracted in step S31.
  • the processor 50 creates a position data table 206 as shown in FIG. 18 based on the taught posture OR n extracted in step S31 and the posture reproduction position OP received in step S32.
  • the processor 50 generates the posture reproduction program 204 based on the created position data table 206.
  • An example of the posture reproduction program 204 is shown in FIG.
  • This is a positioning command IN O for moving and positioning to the posture reproduction position OP and teaching posture OR3 represented by the identifier [OP3].
  • the processor 50 When the processor 50 reads the positioning command INO in the fifth line when executing the posture reproduction program 204, the processor 50 retrieves the coordinates (X 0 , Y 0 , Z 0 , W 3 , P 3 , R 3 ).
  • the processor 50 functions as an operation execution unit 62 and operates the robot 12 in the robot coordinate system C1 to move the welding gun 14 to the coordinates (X 0 , Y 0 , Z 0 , W 3 , P 3 , R 3 ). position.
  • the processor 50 generates the position data table 206 based on the taught posture OR n extracted in step S31 and the posture reproduction position OP received in step S32, and 206, a posture reproduction program 204 is generated. Therefore, the processor 50 functions as a program generation unit 82 (FIG. 15) that generates the posture reproduction program 204 based on the taught posture OR n and the posture reproduction position OP.
  • step S34 the processor 50 determines whether or not it has received a posture reproduction program start command from the operator or the higher-level controller. If the processor 50 determines YES, the process proceeds to step S35, whereas if the processor 50 determines NO, it loops step S34.
  • step S35 the processor 50 executes a pressing force acquisition process.
  • This step S35 will be explained with reference to FIG. 17. Note that in the flow shown in FIG. 17, processes similar to those in the flow of FIG. 5 are given the same step numbers, and redundant explanations will be omitted.
  • step S41 the processor 50 executes the positioning command INO of the posture reproduction program 204.
  • the processor 50 functions as the motion execution unit 62, reads out the positioning command IN O "MOVE [OP1] VELOCITY [V11]" specified in the first line of the posture reproduction program 204,
  • the teaching posture OR 1 that is, the coordinates (X 0 , Y 0 , Z 0 , W 1 , P 1 , R 1 ) of the identifier “OP1”
  • Move at speed V11 Move at speed V11 .
  • step S42 the processor 50 moves the welding gun 14 to the posture reproduction position OP and the n-th taught posture OR n (that is, the coordinates of the identifier "OPn" (X 0 , Y 0 , Z 0 , W n , P n , R n ))) is determined. Specifically, the processor 50 determines whether the welding gun 14 has been positioned to the posture reproduction position OP and the n-th taught posture OR n based on the feedback FB2 from the rotation detection sensor RS1.
  • the processor 50 determines that the welding gun 14 has been positioned to the posture reproduction position OP and the n-th taught posture OR n (that is, YES)
  • the processor 50 stops the operation of the robot 12 and proceeds to step S4. Thereby, the welding gun 14 stands still while being positioned at the posture reproduction position OP and the n-th teaching posture OR n .
  • the processor 50 determines NO, it loops step S42.
  • step S43 the processor 50 drives the welding gun 14 according to the pressurizing force command F C_m (first pressurizing force command) corresponding to the pressurizing force F m defined in the welding condition m. Specifically, the processor 50 reads the pressurization command INR in the 2i-th line in the posture reproduction program 204.
  • step S6 functions as the pressurizing force acquisition unit 64, and obtains the pressurizing force F measured by the pressurizing force sensor 16 at the end of step S43 (that is, when the servo motor 40 is stopped). , obtained from the pressurizing force sensor 16.
  • step S ⁇ b>44 the processor 50 determines whether the pressurizing force F has been obtained for all the taught postures OR n defined in the posture reproduction program 204 . If the processor 50 determines YES, it ends the flow shown in FIG. 17, and thus ends the flow shown in FIG. 16. On the other hand, if the processor 50 determines NO, the process proceeds to step S45.
  • step S45 the processor 50 executes the positioning command IN O specified in the next line of the posture reproduction program 204. For example, when executing step S45 for the first time, the processor 50 executes the positioning command IN O "MOVE [OP2] VELOCITY [V12]" on the third line, and moves the welding gun 14 to the posture reproduction position OP and It is moved at a speed of V12 in order to position it in the second teaching attitude OR2 .
  • step S42 The processor 50 then returns to step S42.
  • the processor 50 repeatedly executes the loop of steps S42, S4, S43, S6, S44, and S45 until it determines YES in step S44, and in step S45 moves the welding gun 14 to the posture reproduction position OP and the nth teaching position. Every time the positioning is performed in the orientation OR n , the pressing force F is obtained in step S6.
  • the processor 50 maintains the position of the welding gun 14 (that is, the posture reproduction position OP) without changing it (that is, maintaining the position of the welding gun 14 at the posture reproduction position OP). (while doing so), only the posture of the welding gun 14 is changed to the teaching posture ORn , and the pressurizing force F is obtained in step S6.
  • the processor 50 executes the welding work program 200 to perform actual welding work on the workpiece.
  • the processor 50 functions as the command correction unit 66 and calculates each teaching based on the pressing force F acquired in step S6 of step S35. By correcting the pressing force command F C_1 at the orientation OR n , the pressing force command F C_1 ′ is obtained.
  • the processor 50 functions as the motion execution section 62, the pressurizing force acquisition section 64, the command correction section 66, the posture extraction section 78, the program generation section 82, and the input reception section 84. Then, the pressurizing force command FC is corrected according to the orientation OR of the welding gun 14. Therefore, the operation execution section 62, the pressure acquisition section 64, the command correction section 66, the posture extraction section 78, the program generation section 82, and the input reception section 84 generate the pressure force command FC according to the posture OR of the welding gun 14.
  • a correction device 110 (FIG. 15) is configured.
  • the operation execution unit 62 includes a positioning command IN O for operating the robot 12 to position the welding gun 14 at a posture reproduction position OP and a taught posture OR n that are different from the taught position TP n ;
  • the robot 12 positions the welding gun 14 at the posture reproduction position OP and the taught posture OR n (steps S41, S45).
  • the pressing force acquisition unit 64 acquires the pressing force F when the operation execution unit 62 positions the welding gun 14 at the posture reproduction position OP and the teaching posture OR n (step S6).
  • the posture reproduction program 204 that reproduces the teaching posture OR n specified in the welding work program 200
  • the welding gun 14 is positioned at the teaching posture OR n
  • the welding gun 14 is positioned at the teaching posture OR n .
  • the pressing force F for correcting the pressing force command FC can be effectively obtained.
  • the posture extracting section 78 extracts the teaching posture OR n from the welding work program 200 (step S31), and the program generating section 82 extracts the teaching posture OR n based on the teaching posture OR n extracted by the posture extracting section 78. , a posture reproduction program 204 is generated. According to this configuration, since the computer can automatically generate the posture reproduction program 204, the work of the operator can be reduced.
  • the input receiving unit 84 receives the input of the posture reproduction position OP (step S32), and the program generating unit 82 further based on the posture reproduction position OP received by the input receiving unit 84, performs posture reproduction.
  • a program 204 is generated.
  • the operator can arbitrarily specify the posture reproduction position OP as coordinates close to the origin (robot base 20) of the robot coordinate system C1, for example.
  • the range of motion of the robot 12 when the posture reproduction program 204 is executed can be reduced, so that interference between the robot 12 and peripheral devices when the posture reproduction program 204 is executed can be reliably prevented.
  • the processor 50 may function as the input receiving unit 84 and accept the input of the permissible movement range RG of the robot 12 instead of the posture reproduction position OP.
  • the processor 50 generates an input image IM for inputting the allowable motion range RG, and causes the display device 60 to display it. While viewing the input image IM, the operator operates the input device 58 to input to the processor 50 an input specifying the allowable motion range RG (for example, an input specifying the radius R from the origin of the robot coordinate system C1). You may give.
  • step S33 uses the position data table 206' based on the taught posture OR n extracted in step S31 and the allowable movement range RG received in step S32. generate.
  • An example of this position data table 206' is shown in FIG.
  • the coordinates (X j , Y j , Z j ) of the posture reproduction position OP are the same as at least one (for example, all) teaching positions TP n (X n , Y n , Z n ) specified in the welding work program 200. are automatically generated by the processor 50 as coordinates that are different and within the allowable motion range RG accepted in step S32.
  • step S33 the processor 50 functions as the program generation unit 82 and generates the posture reproduction program 204 based on the position data table 206'. That is, in this case, the processor 50 functions as the program generation section 82 and generates the instruction based on the taught posture OR n extracted by the posture extraction section 78 in step S31 and the allowable motion range RG received by the input reception section 84 in step S32. Then, a posture reproduction program 204 is generated.
  • Welding robot system 80 further executes the flow shown in FIG. 22. Note that in the flow shown in FIG. 22, processes similar to those in the flow of FIG. 16 are given the same step numbers, and redundant explanations will be omitted.
  • step S1 the processor 50 executes step S1 to acquire the welding work program 200, then executes step S31, functions as the posture extraction unit 78, and extracts the taught posture from the welding work program 200. Extract OR n .
  • step S32 the processor 50 executes step S32 and determines whether the input of the posture reproduction position OP (X 0 , Y 0 , Z 0 ) has been received.
  • step S51 the processor 50 functions as the posture difference calculation unit 74, and In S31, the difference ⁇ between the plurality of taught postures OR n extracted from the welding work program 200 is determined.
  • the processor 50 uses the method described in step S21 above to determine the first taught attitude OR 1 (W 1 , P 1 , R 1 ) and the second taught attitude OR 2 (W 2 , P 2 , R 2 ), and the difference between the first teaching attitude OR 1 (W 1 , P 1 , R 1 ) and the third teaching attitude OR 3 (W 3 , P 3 , R 3 ).
  • ⁇ 1_3 and the difference ⁇ 1_4 between the first taught attitude OR 1 (W 1 , P 1 , R 1 ) and the fourth taught attitude OR 4 (W 2 , P 2 , R 2 ) are determined, respectively. .
  • the processor 50 also calculates the difference ⁇ 2_3 between the second teaching attitude OR 2 (W 2 , P 2 , R 2 ) and the third teaching attitude OR 3 (W 3 , P 3 , R 3 ), The difference ⁇ 2_4 between the teaching attitude OR 2 (W 2 , P 2 , R 2 ) and the fourth teaching attitude OR 4 (W 4 , P 4 , R 4 ) and the third teaching attitude OR 3 ( The difference ⁇ 3_4 between W 3 , P 3 , R 3 ) and the fourth taught attitude OR 4 (W 4 , P 4 , R 4 ) is determined.
  • step S52 the processor 50 functions as the difference determination unit 76 and determines whether each difference ⁇ obtained in step S51 is smaller than a predetermined threshold value ⁇ th . Specifically, the processor 50 compares each of the difference ⁇ 1_2 , the difference ⁇ 1_3 , the difference ⁇ 1_4 , the difference ⁇ 2_3 , the difference ⁇ 2_4 , and the difference ⁇ 3_4 with the threshold value ⁇ th , and determines that ⁇ 1_2 ⁇ th , ⁇ 1_3 ⁇ th , ⁇ 1_4 ⁇ th , ⁇ 2_3 ⁇ th , ⁇ 2_4 ⁇ th , or ⁇ 3_4 ⁇ th is determined.
  • the processor 50 determines that ⁇ 1_2 ⁇ th , ⁇ 1_4 ⁇ th , and ⁇ 2_4 ⁇ th are satisfied.
  • step S53 the processor 50 functions as the program generation unit 82 and generates the posture reproduction program 204. Specifically, the processor 50 selects the teaching posture OR n for which the difference ⁇ is greater than or equal to the threshold ⁇ th among the plurality of taught postures OR n extracted in step S31 and the posture reproduction position OP received in step S32. Then, a position data table 206'' for the posture reproduction program 204 is generated.
  • step S52 described above the difference ⁇ between the first taught posture OR 1 , the second taught posture OR 2 , and the fourth taught posture OR 4 is smaller than the threshold value ⁇ th (that is, It is determined that ⁇ 1_2 ⁇ th , ⁇ 1_4 ⁇ th , and ⁇ 2_4 ⁇ th are satisfied. Therefore, the processor 50 generates a position data table 206'' shown in FIG. 24 based on the first taught posture OR 1 , the third taught posture OR 3 , and the posture reproduction position OP received in step S32.
  • the processor 50 generates an attitude reproduction program 204' shown in FIG. 25 based on the position data table 206''. It includes the instruction IN O and the pressurization instruction IN R on the 2nd i-th line.Then, the processor 50 executes step S34, and if it determines YES, the process proceeds to step S54.
  • step S54 the processor 50 executes a pressing force acquisition process.
  • This pressing force acquisition process is shown in FIG. Note that in the flow shown in FIG. 23, processes similar to those in the flow of FIG. 12 or FIG. 17 are given the same step numbers, and redundant explanations will be omitted.
  • the processor 50 obtains the pressurizing force F by executing steps S41 to S43, S14, S15, S44, and S45 described above according to the posture reproduction program 204' generated in step S53. As a result, the processor 50 acquires the pressing force F in the first teaching posture OR 1 and the pressing force F in the third teaching posture OR 3 .
  • the processor 50 executes the welding work program 200 for actual welding work, and during the execution of the welding work program 200, functions as the command correction unit 66, and performs the process in step S54.
  • the correction amount ⁇ F for the first teaching posture OR 1 and the third teaching posture OR 3 is determined, and the original pressurizing force command F C_1 is calculated using the correction amount ⁇ F.
  • the pressurizing force commands F C_1 ′ at the first teaching attitude OR 1 and the third teaching attitude OR 3 are obtained.
  • the processor 50 uses the correction amount ⁇ F obtained for the first teaching attitude OR 1 to correct the original pressing force command F C_1 , respectively. to correct. In this way, the processor 50 obtains the pressurizing force commands F C_1 ′ for the second teaching attitude OR 2 and the fourth teaching attitude OR 4 , respectively. That is, the processor 50 uses the common correction amount ⁇ F in the first teaching attitude OR 1 , the second teaching attitude OR 2 , and the fourth teaching attitude OR 4 that are similar to each other to adjust the original pressing force command F. C_1 will be corrected.
  • the processor 50 includes the motion execution section 62, the pressing force acquisition section 64, the command correction section 66, the position acquisition section 72, the posture difference calculation section 74, the difference determination section 76, and the posture extraction section. 78, a program generation section 82, and an input reception section 84 to correct the pressurizing force command FC according to the orientation OR of the welding gun 14.
  • the motion execution section 62, the pressing force acquisition section 64, the command correction section 66, the position acquisition section 72, the posture difference calculation section 74, the difference determination section 76, the posture extraction section 78, the program generation section 82, and the input reception section 84 constitutes a device 120 (FIG. 21) that corrects the pressurizing force command FC according to the orientation OR of the welding gun 14.
  • the processor 50 may generate the posture reproduction program 204 shown in FIG. 19 instead of the posture reproduction program 204' in step S53. In this case, steps S51 and S52 can be omitted from the flow of FIG. 22. Then, after determining NO in step S44 in FIG. 23, the processor 50 may execute steps S21 and S22 shown in FIG.
  • the processor 50 functions as the program generation unit 82 and generates the posture reproduction programs 204 and 204'.
  • the present invention is not limited to this, and in the embodiment of FIG. 15 or 21, the processor 50 obtains the posture reproduction program 204 or 204' by downloading it from another computer (upper controller, production management server, etc.) It's okay.
  • the posture extraction section 78, the program generation section 82, and the input reception section 84 can be omitted from the device 110 or 120.
  • the processor 50 executes step S35 shown in FIG. 17 or step S54 shown in FIG. 23 according to the downloaded posture reproduction program 204 or 204'.
  • the processor 50 corrects the pressing force command FC_1 while executing the welding work program 200 for actual welding work.
  • the processor 50 may correct the pressing force command F C_1 while executing the flow of FIG. 5, FIG. 12, FIG. 14, FIG. 16, or FIG. 22.
  • the processor 50 determines the applied force in each teaching posture ORn based on the applied force F collected in step S6 or S15.
  • the pressurizing force command F C_1 ' may be obtained by correcting the pressure command F C_1 .
  • the processor 50 may create a data table DT in which the pressing force command FC_1 ' obtained for each teaching attitude OR n is stored in association with the teaching attitude OR n .
  • the processor 50 when the processor 50 reads out the welding command INW of the welding work program 200 in the actual welding work, the processor 50 determines the teaching posture OR n (that is, the welding command INW) in which the welding gun 14 is currently positioned.
  • the pressurizing force command F C_1 ' corresponding to the teaching attitude OR n specified in the positioning command IN P in the previous row is obtained from the data table DT.
  • the processor 50 at the end of step S35 or S54 (that is, when determining YES in step S44), based on the pressurizing force F collected in step S6 or S15, The pressing force command F C_1 ′ may be obtained by correcting the pressing force command F C_1 at each teaching posture OR n .
  • step S2 or S8 the processor 50 causes the robot 12 to move the welding gun 14 at a speed Vn specified in the positioning command IN P (code "Vn") of the welding work program 200.
  • the processor 50 moves the welding gun 14 at a speed V n ′ that is different from the speed V n specified in the welding work program 200 (for example, lower than the speed V n ). You may move it.
  • a flag FL' for moving the welding gun 14 at a speed V n ' may be set in the control device 18.
  • the flag FL' may be added to the code of the positioning command INP in the welding work program 200 acquired in step S1 described above.
  • step S5 and S43 the processor 50 stops the servo motor 40 when the feedback FB1 from the load detection sensor LS reaches a value corresponding to the pressing force command FC_1 . I talked about it.
  • the present invention is not limited to this, and in step S5 or S43, the processor 50 stops the servo motor 40 when the movable welding tip 44 comes into contact with a non-pressurized object (fixed welding tip 36) and is forcibly stopped. You can.
  • the processor 50 also stops the servo motor 40 when the movable welding tip 44 comes into contact with the workpiece and is forcibly stopped when the welding command INW of the welding work program 200 is executed during actual welding work. You can.
  • the object to be pressurized is not limited to the fixed welding tip 36, but any object fixed to the fixed arm 34 (for example, an iron plate) can be used.
  • the processor 50 may execute the flow of FIG. 5, FIG. 12, FIG. 14, FIG. 16, or FIG. 22 according to the computer program PG2 stored in the memory 52 in advance.
  • the functions of the device 70, 90, 100, 110, or 120 executed by the processor 50 i.e., the motion execution section 62, the pressing force acquisition section 64, the command correction section 66, the position acquisition section 72, the posture difference calculation section 74, the The determination unit 76, posture extraction unit 78, program generation unit 82, and input reception unit 84
  • the welding work program 200 shown in FIG. 6, the posture reproduction program 204 shown in FIG. 19, and the posture reproduction program 204' shown in FIG. 25 are examples, and may include any other types of commands.
  • the positioning command IN_P is defined in the 2i-1th line
  • the welding command IN_W is defined in the 2i-th line.
  • the positioning command IN_P and the welding command IN_W may be defined in the i-th line (that is, the same line).
  • a positioning command IN O and a pressurizing command IN R may be defined in the i-th line (same line).
  • the number of teaching positions TP n and teaching postures OR n specified in the welding work program 200 is not limited to four, and may be one, or may be five or more. The same applies to the number of taught postures OR n defined in the posture reproduction program 204 or 204'.
  • coordinates (X n , Y n , Z n , W n , P n , R n ) may be directly written as a code in the positioning instruction INP instead of the identifier “TPn”. Good too. The same applies to the positioning command INO of the posture reproduction program 204 or 204'.
  • an identifier [m] (m 1 in the example of FIG. 6) corresponding to the welding condition m is described in the welding command INW , and the welding command INW is as shown in FIG.
  • the present invention is not limited to this, and instead of the identifier "m", the values of welding conditions m (that is, pressurizing force F m , welding current I m , welding time t m ) can be directly written as a code in the welding command IN W. may be written.
  • the pressurization command INR of the posture reproduction program 204 or 204' may be written.
  • the operator makes changes to the welding work program 200 acquired in step S1 above, except for the positioning command IN P (specifically, the teaching posture OR n ), and creates the welding work program 200'. Good too.
  • the processor 50 may perform the welding work by executing the modified welding work program 200' during the actual welding work.
  • the operator may change the program name of the welding work program 200 (FIG. 6) acquired in step S1, or change the positioning command IN P in the welding work program 200.
  • Other codes may be edited or added, or the above-mentioned flag FL may be added.
  • the operator replaces the welding command INW of the welding work program 200 acquired in step S1 with a command for executing the pressurizing force acquisition operation FO
  • the processor 50 replaces the welding command INW of the welding work program 200 obtained in step S1 with a command for executing the welding work program 200' after the replacement.
  • the flow of FIG. 5, FIG. 12, or FIG. 14 may be executed.
  • Both the welding work program 200 acquired in step S1 and the welding work program 200' after such changes can be regarded as welding work programs that cause the robot 12 and the welding gun 14 to perform welding work. can.
  • the welding work program 200 or 200' may include multiple programs.
  • the welding work program 200 shown in FIG. 6 includes a first program 200A including instruction codes from the first line to the fourth line, and a second program 200B including instruction codes from the fifth line to the eighth line. It may be composed of.
  • the posture reproduction program 204 or 204' may also include multiple programs.
  • the welding work program 200 and the posture reproduction programs 204 and 204' use welding condition 1 given the identifier [1] (that is, the code "CONDITION [1]"). Although described, other welding conditions m may be used.
  • the processor 50 obtains the above-mentioned correction amount ⁇ F when performing actual welding work, and corrects the first pressurizing force command F C_1 with the correction amount ⁇ F.
  • the case where the second pressurizing force command F C_1 ' is obtained has been described.
  • the present invention is not limited to this, and the processor 50 calculates the second pressurizing force command F C_1 ′ at each teaching posture OR n based on the pressurizing force F acquired in step S6 or S15 described above, based on the actual welding operation. It may be determined in advance.
  • the processor 50 may determine the second pressurizing force command F C_1' using the correction amount ⁇ F obtained as described above, or may determine the first pressurizing force command F C_1 ' without using the correction amount ⁇ F.
  • the second pressing force command F C_1 ′ may be determined by any calculation using the pressure command F C_1 and the pressing force F.
  • the processor 50 replaces the first pressing force command F C_1 with a predetermined second pressing force command F C_1 ' when executing the actual welding work (that is, the welding work programs 200, 200'). It may be corrected by this.
  • the functions of the devices 70, 90, 100, 110, and 120 (motion execution unit 62, pressurizing force acquisition unit 64, command correction unit 66, position acquisition unit 72, posture difference calculation unit 74, The case where the determination unit 76, posture extraction unit 78, program generation unit 82, and input reception unit 84) are implemented in the control device 18 has been described.
  • the invention is not limited to this, and at least one of the functions of the device 70, 90, 100, 110, or 120 (for example, the motion execution unit 62, the posture extraction unit 78, the program generation unit 82, the input reception unit 84) It may be implemented in a teaching device (teaching pendant, tablet terminal device, etc.) that teaches operations to a computer, or another computer such as a PC. In this case, the processor of the other computer functions as device 70, 90, 100, 110 or 120.
  • the robot 12 is not limited to a vertically articulated robot, but may be any other type of robot such as a horizontally articulated robot or a parallel link robot.
  • the concept of the present invention is applicable not only to C-type spot welding guns but also to any other type of welding gun, such as, for example, X-type spot welding guns.

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Resistance Welding (AREA)

Abstract

溶接ガンの加圧力指令の補正のために加圧力を取得する動作において、溶接ガンを位置決めする姿勢の数を最適化し、該動作を簡単化する技術が求められている。 装置70は、溶接作業プログラムに規定される教示姿勢に溶接ガン14を位置決めするようにロボット12を動作させる動作実行部62と、動作実行部62が溶接ガン14を教示姿勢に位置決めしたときに溶接ガン14を第1の加圧力指令で駆動したときの加圧力を取得する加圧力取得部64と、加圧力取得部64が取得した加圧力に基づいて第1の加圧力指令を補正することで、溶接作業プログラムの実行時に教示姿勢で溶接ガン14を駆動するときの第2の加圧力指令を求める指令補正部66とを備える。

Description

溶接ガンの加圧力指令を補正する装置、制御装置、及び方法
 本開示は、溶接ガンの加圧力を規定する加圧力指令を補正する装置、制御装置、及び方法に関する。
 溶接ガンの加圧力を規定する加圧力指令を、該溶接ガンの姿勢に応じて補正する装置が知られている(例えば、特許文献1)。
特開2001-47249号公報
 従来、加圧力指令を高精度に補正するとともに、該補正に掛かる作業を簡単化する技術が求められている。
 本開示の一態様において、ロボットによって移動され、ワークを加圧して溶接する溶接ガンの加圧力を規定する加圧力指令を、該溶接ガンの姿勢に応じて補正する装置は、ロボット及び溶接ガンに溶接作業を実行させる溶接作業プログラムに規定される教示姿勢に溶接ガンを位置決めするように、ロボットを動作させる動作実行部と、動作実行部が溶接ガンを教示姿勢に位置決めしたときに溶接ガンを第1の加圧力指令で駆動したときの加圧力を取得する加圧力取得部と、加圧力取得部が取得した加圧力に基づいて第1の加圧力指令を補正することで、溶接作業プログラムの実行時に教示姿勢で溶接ガンを駆動するときの第2の加圧力指令を求める指令補正部とを備える。
 本開示の他の態様において、ロボットによって移動され、ワークを加圧して溶接する溶接ガンの加圧力を規定する加圧力指令を、該溶接ガンの姿勢に応じて補正する方法は、プロセッサが、ロボット及び溶接ガンに溶接作業を実行させる溶接作業プログラムに規定される教示姿勢に溶接ガンを位置決めするように、ロボットを動作させ、溶接ガンを教示姿勢に位置決めしたときに溶接ガンを第1の加圧力指令で駆動したときの加圧力を取得し、取得した加圧力に基づいて第1の加圧力指令を補正することで、溶接作業プログラムの実行時に教示姿勢で溶接ガンを駆動するときの第2の加圧力指令を求める。
 本開示によれば、実際の溶接作業で溶接ガンを位置決めする教示姿勢を用いて加圧力指令を補正することで、姿勢に依らずに一定の加圧力を溶接ガンに生じさせることができる第2の加圧力指令を、高精度に求めることができる。また、加圧力指令を補正するための姿勢をロボットに新たに教示する必要がないので、加圧力指令を補正する作業を簡単化できる。
一実施形態に係る溶接ロボットシステムの概略図である。 図1に示す溶接ロボットシステムのブロック図である。 図1に示す溶接ガンの拡大図である。 図3に示す溶接ガンの姿勢を変化させた状態を示す。 図1に示す溶接ロボットシステムが実行する、加圧力指令を補正する方法の一例を示すフローチャートである。 溶接作業プログラムの一例を示す。 位置データテーブルの一例を示す。 溶接条件のデータテーブルの一例を示す。 他の実施形態に係る溶接ガンの拡大図を示す。 他の実施形態に係る溶接ロボットシステムの概略図である。 図10に示す溶接ロボットシステムのブロック図である。 図10に示す溶接ロボットシステムが実行する、加圧力指令を補正する方法の一例を示すフローチャートである。 図11に示す溶接ロボットシステムの他の機能を示すブロック図である。 図13に示す溶接ロボットシステムが実行する、加圧力指令を補正する方法の一例を示すフローチャートである。 図2に示す溶接ロボットシステムの他の機能を示すブロック図である。 図15に示す溶接ロボットシステムが実行する、加圧力指令を補正する方法の一例を示すフローチャートである。 図16中のステップS35のフローの一例を示すフローチャートである。 位置データテーブルの他の例を示す。 姿勢再現プログラムの一例を示す。 位置データテーブルのさらに他の例を示す。 図11に示す溶接ロボットシステムのさらに他の機能を示すブロック図である。 図21に示す溶接ロボットシステムが実行する、加圧力指令を補正する方法の一例を示すフローチャートである。 図22中のステップS54のフローの一例を示すフローチャートである。 位置データテーブルのさらに他の例を示す。 姿勢再現プログラムの他の例を示す。
 以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、図1及び図2を参照して、一実施形態に係る溶接ロボットシステム10について説明する。溶接ロボットシステム10は、ロボット12、溶接ガン14、加圧力センサ16、及び制御装置18を備える。
 本実施形態においては、ロボット12は、垂直多関節型ロボットであって、ロボットベース20、旋回胴22、下腕部24、上腕部26、及び手首部28を有する。ロボットベース20は、作業セルの床の上に固定される。旋回胴22は、鉛直軸周りに回動可能となるようにロボットベース20に設けられている。
 下腕部24は、水平軸周りに回動可能となるように旋回胴22に設けられている。上腕部26は、下腕部24の先端部に回動可能に設けられている。手首部28は、上腕部26の先端部に回動可能に設けられた手首ベース28aと、手首軸A1の周りに回動可能となるように手首ベース28aに設けられた手首フランジ28bとを有する。
 ロボットベース20、旋回胴22、下腕部24、上腕部26、及び手首部28には、複数のサーボモータ30(図2)がそれぞれ設けられている。これらサーボモータ30は、制御装置18からの指令に応じてロボット12の各可動コンポーネント(すなわち、旋回胴22、下腕部24、上腕部26、手首部28、手首フランジ28b)を回動させ、これにより溶接ガン14を移動させる。
 溶接ガン14は、手首フランジ28bに着脱可能に取り付けられている。図3に示すように、本実施形態においては、溶接ガン14は、いわゆるC型スポット溶接ガンであって、ベース部32、固定アーム34、固定溶接チップ36、可動アーム38、サーボモータ40、運動変換機構42、及び可動溶接チップ44を有する。
 ベース部32は、手首フランジ28bに連結されている。固定アーム34は、その基端34aがベース部32に固定されており、該基端34aから先端34bまで略L字状に湾曲して延在している。固定溶接チップ36は、固定アーム34の先端34bに固定されている。
 可動アーム38は、ガン軸A2に沿って往復動可能となるように、ベース部32に設けられている。本実施形態においては、可動アーム38は、ガン軸A2に沿って直線状に延びる棒状部材である。可動溶接チップ44は、固定溶接チップ36とガン軸A2上で整列するように、可動アーム38の先端38aに固定されている。なお、ガン軸A2は、手首軸A1と平行に配置されてもよい。
 サーボモータ40は、出力シャフト(図示せず)を有し、ベース部32に固定されている。運動変換機構42は、例えば、ボール螺子機構、又は、タイミングベルト及びプーリからなる機構を有し、サーボモータ40の出力シャフトの回転運動を、可動アーム38のガン軸A2に沿う往復運動へ変換する。
 制御装置18は、ロボット12及び溶接ガン14の動作を制御する。図2に示すように、制御装置18は、プロセッサ50、メモリ52、及びI/Oインターフェース54を有するコンピュータである。プロセッサ50は、CPU又はGPU等を有し、メモリ52、及びI/Oインターフェース54と、バス56を介して通信可能に接続され、これらコンポーネントと通信しつつ、後述する加圧力指令を補正する機能のための演算処理を行う。
 メモリ52は、RAM又はROM等を有し、プロセッサ50が実行する演算処理で利用される各種データ、及び演算処理の途中で生成される各種データを、一時的又は恒久的に記憶する。I/Oインターフェース54は、例えば、イーサネット(登録商標)ポート、USBポート、光ファイバコネクタ、又はHDMI(登録商標)端子を有し、プロセッサ50からの指令の下、外部機器との間でデータを有線又は無線で通信する。本実施形態においては、サーボモータ30及び40と加圧力センサ16とは、I/Oインターフェース54に有線又は無線で通信可能に接続されている。
 制御装置18には、入力装置58及び表示装置60がさらに設けられている。入力装置58は、キーボード、マウス、又はタッチパネル等を有し、オペレータからデータ入力を受け付ける。表示装置60は、液晶ディスプレイ又は有機ELディスプレイ等を有し、各種データを表示する。
 入力装置58及び表示装置60は、I/Oインターフェース54に、有線又は無線で通信可能に接続されている。なお、入力装置58及び表示装置60は、制御装置18の筐体に一体に組み込まれてもよいし、又は、例えば1つのコンピュータ(PC等)として、制御装置18の筐体とは別体として設けられてもよい。
 図1に示すように、ロボット12には、ロボット座標系C1が設定される。ロボット座標系C1は、ロボット12の各可動コンポーネントを自動制御するための座標系である。本実施形態においては、ロボット座標系C1は、その原点がロボットベース20の中心に配置され、そのz軸が旋回胴22の旋回軸に一致するように、ロボット12に対して設定されている。
 一方、図3に示すように、溶接ガン14には、ツール座標系C2が設定される。ツール座標系C2は、ロボット座標系C1における溶接ガン14の位置及び姿勢を規定する座標系である。本実施形態においては、ツール座標系C2は、その原点(いわゆる、TCP)が、固定溶接チップ36上(例えば、先端面の中心)に配置され、そのz軸が、ガン軸A2と一致する(又は平行となる)ように、溶接ガン14に対して設定されている。
 溶接ガン14を移動させるとき、プロセッサ50は、まず、ロボット座標系C1においてツール座標系C2を設定し、設定したツール座標系C2によって表される位置及び姿勢に溶接ガン14を位置決めするように、ロボット12の各サーボモータ30への指令(位置指令、速度指令、トルク指令等)を生成する。こうして、溶接ガン14は、ロボット12の動作によって移動され、ロボット座標系C1の任意の位置及び姿勢に位置決めされる。
 溶接ガン14は、ワーク(図示せず)を加圧して溶接する。具体的には、プロセッサ50は、サーボモータ40へ加圧力指令Fを送り、可動アーム38をガン軸A2に沿って移動させることで、可動溶接チップ44を固定溶接チップ36へ向かって移動させる。その結果、ワークは、可動溶接チップ44と固定溶接チップ36との間で挟持される。このとき、可動溶接チップ44から該ワークに対し、加圧力指令Fに応じた加圧力Fが加えられることになる。
 次いで、プロセッサ50は、固定溶接チップ36及び可動溶接チップ44を起動し、該固定溶接チップ36及び該可動溶接チップ44を通電させる。その結果、固定溶接チップ36及び可動溶接チップ44の間に挟持されたワークが溶接される。サーボモータ40へ送信される加圧力指令Fは、溶接ガン14に生じさせる加圧力Fを規定する指令であり、該加圧力Fの目標値(例えば、2[kN])を表す。
 加圧力センサ16は、圧電素子又は歪みゲージ等を有し、溶接ガン14の加圧力Fを計測する。具体的には、加圧力センサ16は、オペレータが片手把持可能に構成され、加圧力Fを測定するときにオペレータによって固定溶接チップ36及び可動溶接チップ44の間に手動でセットされる。加圧力センサ16は、サーボモータ40が駆動する可動溶接チップ44と固定溶接チップ36との間に挟持され、このときに加圧力センサ16に加えられる加圧力Fを計測する。加圧力センサ16は、計測した加圧力Fの検出データを、制御装置18に供給する。
 ここで、所定の加圧力指令Fで溶接ガン14を駆動したときに該溶接ガン14が生じさせる加圧力Fは、該溶接ガン14の姿勢に応じて変化し得る。例えば、図3に示す例では、溶接ガン14は、そのガン軸A2が鉛直方向と平行となり、且つ、可動溶接チップ44が固定溶接チップ36の鉛直上方に整列する姿勢ORに配置されている。
 このような姿勢ORにおいて、仮に、プロセッサ50がサーボモータ40を所定の加圧力指令FC_0(例えば、FC_0=1[kN])で駆動し、溶接ガン14が該加圧力指令FC_0に従って可動溶接チップ44で被加圧物(例えば、固定溶接チップ36)を加圧したとする。
 このときに可動溶接チップ44から被加圧物に加えられる加圧力Fは、サーボモータ40のトルクを運動変換機構42によってガン軸A2の方向に変換した力成分Fτと、運動変換機構42、可動アーム38及び可動溶接チップ44からなる溶接ガン14の可動部分の重力成分Fとの合成力F(=Fτ+F)となる。
 次に、図3に示す姿勢ORから溶接ガン14を、ツール座標系C2のy軸周りに角度θだけ回転させて、図4に示す姿勢ORθに配置させた状態で、プロセッサ50がサーボモータ40を同じ加圧力指令FC_0で駆動して、可動溶接チップ44で被加圧物を加圧したとする。このときに可動溶接チップ44から被加圧物に加えられる加圧力Fθは、上述の力成分Fτと、上述の重力成分Fにcosθを乗算した力成分Fcosθとの合成力Fθ(=Fτ+Fcosθ)になる。
 したがって、この姿勢ORθにおける加圧力Fθは、図3に示す姿勢ORにおける加圧力Fに比べて、F(1-cosθ)だけ減少することになる。このように、加圧力Fは、溶接ガン14の姿勢ORに応じて変化する。このような姿勢ORに応じた加圧力Fの変動は、溶接品質に影響を与えることになる。
 そこで、本実施形態においては、プロセッサ50は、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する。以下、図5を参照して、加圧力指令Fを補正する方法について、説明する。図5に示すフローは、プロセッサ50が、オペレータ又は上位コントローラ等から、補正開始指令を受け付けたときに、開始される。
 ステップS1において、プロセッサ50は、溶接作業プログラム200を取得する。この溶接作業プログラム200は、ロボット12及び溶接ガン14に溶接作業を実行させるためのコンピュータプログラムである。溶接作業プログラム200の一例を、図6に模式的に示す。
 図6に示す溶接作業プログラム200において、例えば、第1行目の「MOVE[TP1] VELOCITY[V1]」というコードは、ロボット12によって溶接ガン14を、速度V=V[mm/sec]で移動させて、識別子[TP1]で表される第1の教示位置TP及び教示姿勢ORに位置決めするための位置決め命令INである。
 一方、溶接作業プログラム200とは別のデータとして、位置データテーブル202が予め作成され、メモリ52に記憶される。位置データテーブル202の一例を、図7に模式的に示す。図7に示す位置データテーブル202においては、識別子「TP1」、「TP2」、「TP3」、「TP4」がそれぞれ付与された座標データが格納されている。
 例えば、識別子「TP1」は、座標(X,Y,Z,W,P,R)に付与されている。この座標(X,Y,Z,W,P,R)のうち、(X,Y,Z)は、溶接ガン14(具体的には、TCP)を位置決めすべきロボット座標系C1の座標であって、第1の教示位置TPを表している。一方、(W,P,R)は、ロボット座標系C1におけるツール座標系C1の各軸方向(いわゆる、ヨー、ピッチ、ロール)を規定する座標であって、第1の教示姿勢ORを表している。
 プロセッサ50は、溶接作業プログラム200の実行時に、第1行目の「MOVE[TP1] VELOCITY[V1]」という位置決め命令INを読み出したとき、位置データテーブル202を参照し、識別子「TP1」で表される座標(X,Y,Z,W,P,R)を位置データテーブル202から取得する。
 そして、プロセッサ50は、ロボット座標系C1に、座標(X,Y,Z,W,P,R)で表される原点位置及び各軸方向のツール座標系C2を設定し、設定したツール座標系C2によって表される第1の教示位置TP及び教示姿勢ORへ溶接ガン14を速度Vで移動させるように、ロボット12の各サーボモータ30への指令(位置指令、速度指令、トルク指令等)を生成する。こうして、プロセッサ50は、位置決め命令INに従ってロボット12を動作させることで、溶接ガン14を第1の教示位置TP及び教示姿勢ORに位置決めする。
 このように、本実施形態においては、溶接作業プログラム200に、第nの教示位置TP及び教示姿勢OR(n=1,2,3,4)が規定されている。第nの教示位置TP及び教示姿勢ORの各々は、教示装置(教示ペンダント、タブレット端末装置等)を用いて、オペレータによってロボット12に予め教示される。
 なお、各々の位置決め命令INの「MOVE[TPn] VELOCITY[Vn]」(n=1,2,3,4)というコードにおいて、速度Vを規定するコード「[Vn]」には、速度Vの数値(例えば、50[mm/sec])が記載されてもよい。代替的には、「[Vn]」に、ロボット12が溶接ガン14を移動させる最大速度VMAXの割合[%]が記載されてもよい(例えば、「80%」)。
 又は、上述の位置データテーブル202と同様に、速度Vを識別子「Vn」とともに格納した速度データテーブルが、溶接作業プログラム200とは別のデータとして予め用意されてもよい。この場合、プロセッサ50は、第2i-1行目(i=1,2,3,4)の「MOVE[TPn] VELOCITY[Vn]」という位置決め命令INを読み出したとき、速度データテーブルを参照し、識別子「Vn」が付与された速度Vを該速度データテーブルから取得する。なお、溶接作業プログラム200中に規定される速度V:「VELOCITY[Vn]」は、互いに異なる速度であってもよいし、少なくとも2つ(例えば、全て)の速度Vが同じであってもよい。
 再度、図6を参照して、溶接作業プログラム200において、第2i行目(i=1,2,3,4)の「GUN[ON] CONDITION[1]」というコードは、識別子[1]が付与された溶接条件1に従って溶接ガン14を起動してワークを溶接するための溶接命令INである。
 ここで、種々の厚さ及び材質を有する複数種類のワークが、溶接対象となり得る。本実施形態においては、ワークの種類毎に、互いに異なる複数の溶接条件m(m=1,2,3,・・・)が、予め設定される。図8に、識別子[1]が付与された溶接条件1の一例を示す。
 溶接条件1には、加圧力F=2[kN]、溶接電流I=8[kA]、及び溶接時間t=10[sec]といったパラメータが設定されている。図8に例示するような溶接条件mのデータテーブル(加圧力F、溶接電流I、溶接時間t)が、ワークの種類(つまり、厚さ、材質)毎に予め用意され、メモリ52に記憶される。なお、溶接条件mには、加圧力F、溶接電流I、及び溶接時間t以外の如何なるパラメータ(例えば、溶接電圧等)が設定されてもよい。
 プロセッサ50は、溶接作業プログラム200の実行時に、第2i行目の「GUN[ON] CONDITION[1]」という溶接命令INを読み出すと、識別子[1]が付与された溶接条件1のデータテーブルを参照し、加圧力F=2[kN]、溶接電流I=8[kA]、及び溶接時間t=10[sec]という溶接条件1のパラメータを取得する。
 そして、プロセッサ50は、溶接条件1に規定されている加圧力Fに対応する加圧力指令FC_1(=2[kN])を生成し、該加圧力指令FC_1に従って溶接ガン14のサーボモータ40を駆動し、可動溶接チップ44と固定溶接チップ36との間でワークを挟持する。
 一方、溶接ガン14のサーボモータ40には、該サーボモータ40の負荷トルク又はフィードバック電流等を検出する負荷検出センサLS(図示せず)が設けられている。プロセッサ50は、該負荷検出センサLSからフィードバックFB1(すなわち、負荷トルク又はフィードバック電流等)を取得する。
 ここで、サーボモータ40への加圧力指令Fと、該加圧力指令Fに従って駆動された溶接ガン14が生じさせる加圧力Fとを互いに一致させるための校正作業が、予め実行される。この校正作業は、例えば、ロボット12によって溶接ガン14を、予め定められた基準姿勢ORに配置した状態で実行される。この基準姿勢ORは、例えば、図3に示す姿勢である。
 この校正作業において、オペレータは、基準姿勢ORに配置した溶接ガン14の可動溶接チップ44と固定溶接チップ36との間に加圧力センサ16をセットし、加圧力指令Fに従って溶接ガン14を駆動したときの加圧力Fを、該加圧力センサ16によって計測する。オペレータは、このときの負荷検出センサLSからのフィードバックFB1と、計測された加圧力Fとの相関関係を取得し、加圧力指令Fと加圧力Fとを互いに一致させるように、該相関関係を校正する。
 プロセッサ50は、溶接命令INに従って加圧力指令FC_1でサーボモータ40を駆動している間、負荷検出センサLSからフィードバックFB1を取得し、該フィードバックFB1が該加圧力指令FC_1に対応する値となったとき、該サーボモータ40を停止させる。
 次いで、プロセッサ50は、溶接条件1に規定されている溶接電流I(=8[kA])に従って固定溶接チップ36及び可動溶接チップ44を通電させ、溶接時間t(=10[sec])に亘ってワークを溶接する。こうして、プロセッサ50は、溶接命令INを実行することで、ワークに対して溶接作業を行う。
 プロセッサ50は、このステップS1において、上述のような位置決め命令IN及び溶接命令INを含む溶接作業プログラム200を取得する。例えば、溶接作業プログラム200は、メモリ52に予め記憶され、プロセッサ50は、該溶接作業プログラム200をメモリ52から読み出すことによって取得する。
 代替的には、溶接作業プログラム200は、別のコンピュータ(上位コントローラ、生産管理サーバ、教示装置等)に記憶されてもよい。該別のコンピュータは、通信ネットワーク(インターネット、LAN)を介して、制御装置18のI/Oインターフェース54に通信可能に接続され得る。プロセッサ50は、該別のコンピュータから溶接作業プログラム200をダウンロードすることで取得してもよい。
 ステップS2において、プロセッサ50は、溶接作業プログラム200の位置決め命令INを実行する。本実施形態においては、プロセッサ50は、ステップS2において、溶接作業プログラム200の第1行目に規定されている「MOVE [TP1] VELOCITY[V1]」という位置決め命令INを読み出し、ロボット12によって溶接ガン14を第1の教示位置TP及び教示姿勢ORに位置決めすべく、速度Vで移動させる。このように、本実施形態においては、溶接作業プログラム200に規定される教示姿勢ORに溶接ガン14を位置決めするようにロボット12を動作させる動作実行部62(図2)として機能する。
 ステップS3において、プロセッサ50は、溶接ガン14を第nの教示位置TP及び教示姿勢ORへ位置決めしたか否かを判定する。具体的には、プロセッサ50は、ロボット12の各サーボモータ30に設けられた回転検出センサRS1(エンコーダ、又はホール素子等)からのフィードバックFB2(例えば、サーボモータ30の位置フィードバック、速度フィードバック、又は加速度フィードバック)に基づいて、溶接ガン14を第nの教示位置TP及び教示姿勢ORへ位置決めしたか否かを判定できる。
 例えば、ステップS2の次にステップS3を実行する場合、プロセッサ50は、溶接ガン14を第1の教示位置TP及び教示姿勢ORへ位置決めしたか否かを判定する。プロセッサ50は、溶接ガン14を第nの教示位置TP及び教示姿勢ORへ位置決めした(すなわち、YES)と判定した場合は、ロボット12の動作を停止させ、ステップS4へ進む。これにより、溶接ガン14は、第nの教示位置TP及び教示姿勢ORに位置決めされた状態で静止することになる。一方、プロセッサ50は、NOと判定した場合はステップS3をループする。
 ステップS3でYESと判定したとき、プロセッサ50は、溶接作業プログラム200において、ステップS2(又は、直近に実行した後述のステップS8)で実行した位置決め命令INの次の行に規定されている溶接命令INを読み出す。しかしながら、図5のフローでは、プロセッサ50は、この溶接命令INを実行せず、代わりに、加圧力取得動作FOを実行する。
 ここで、本実施形態においては、制御装置18において、溶接命令INの代わりに、後述する加圧力取得動作FOを実行するためのフラグFLが設定されている。このフラグFLが有効になっている場合、プロセッサ50は、ステップS3でYESと判定したときに読み出した溶接命令INを実行せず、代わりに、加圧力取得動作FOとして、後述のステップS4~S7を実行する。
 例えば、オペレータ又は上位コントローラは、制御装置18にフラグ設定信号を送信し、該フラグ設定信号に応じて、プロセッサ50は、フラグFLの有効又は無効を切り替えるように構成されてもよい。図5のフローを実行するとき、オペレータ又は上位コントローラは、フラグFLを有効にするためのフラグ設定信号を制御装置18に与え、該フラグ設定信号に応じて、プロセッサ50は、フラグFLを有効に設定する。よって、プロセッサ50は、図5のフローの実行時にステップS3でYESと判定したとき、溶接命令INの代わりに、加圧力取得動作FOとしてステップS4~S7を実行することになる。
 ステップS4において、プロセッサ50は、オペレータから加圧力取得動作開始指令を受け付けたか否かを判定する。例えば、プロセッサ50は、「可動溶接チップと固定溶接チップとの間に加圧力センサをセットしてください」という画像又は音声の報知信号SG1を生成し、該報知信号SG1を表示装置60に画像として表示するか、又は制御装置18に設けられたスピーカ(図示せず)から音声として出力する。
 オペレータは、可動溶接チップ44と固定溶接チップ36との間に加圧力センサ16を手動でセットし、入力装置58を操作して、加圧力取得動作開始指令をプロセッサ50に与える。プロセッサ50は、加圧力取得動作開始指令を受け付けた場合はYESと判定し、ステップS5へ進む一方、NOと判定した場合はステップS4をループする。
 ステップS5において、プロセッサ50は、溶接条件mに規定されている加圧力Fに対応する加圧力指令FC_m(第1の加圧力指令)に従って、溶接ガン14を駆動する。具体的には、プロセッサ50は、直近のステップS3でYESと判定したときに読み出した溶接命令INの「CONDITION[1]」というコードに応じて、識別子[1]が付与された溶接条件1に規定されている加圧力F(=2[kN])を取得する。そして、プロセッサ50は、溶接条件1から取得した加圧力Fに対応する加圧力指令FC_1(=2[kN])を生成し、該加圧力指令FC_1に従って溶接ガン14のサーボモータ40を駆動する。
 一方、プロセッサ50は、サーボモータ40を駆動している間、上述の負荷検出センサLSからフィードバックFB1を取得し、該フィードバックFB1が加圧力指令FC_1に対応する値となったとき、サーボモータ40を停止する。その結果、加圧力センサ16が可動溶接チップ44と固定溶接チップ36との間で挟持され、加圧力センサ16に対し、加圧力指令FC_1に応じた加圧力Fが加えられることになる。
 ステップS6において、加圧力Fを取得する。具体的には、プロセッサ50は、ステップS5の終了時(つまり、サーボモータ40を停止したとき)に加圧力センサ16が計測した加圧力Fを、該加圧力センサ16から取得し、メモリ52に記憶する。このように、本実施形態においては、プロセッサ50は、直近のステップS2(又は、後述のステップS8)で第nの教示位置TP及び教示姿勢ORに位置決めした溶接ガン14を加圧力指令FC_1で駆動したときに加圧力センサ16が実測した加圧力Fを取得している。
 したがって、プロセッサ50は、加圧力Fを取得する加圧力取得部64(図2)として機能する。このステップS6で取得される加圧力Fは、上述の校正作業を実行したとしても、溶接ガン14を位置決めしている第nの教示姿勢ORに応じて、加圧力指令FC_1(つまり、溶接条件1に規定された加圧力F=2[kN])とは異なり得る。
 ステップS7において、プロセッサ50は、溶接作業プログラム200に規定されている全ての教示位置TP及び教示姿勢ORに関して加圧力Fを取得したか否かを判定する。プロセッサ50は、YESと判定した場合は図5に示すフローを終了する一方、NOと判定した場合はステップS8へ進む。
 ステップS8において、プロセッサ50は、溶接作業プログラム200の次の行に規定されている位置決め命令INを実行する。例えば、第1回目のステップS8を実行する場合、プロセッサ50は、第3行目の位置決め命令IN「MOVE [TP2] VELOCITY[V2]」を実行し、溶接ガン14を、第2の教示位置TP及び教示姿勢ORに位置決めすべく、速度Vで移動させる。
 そして、プロセッサ50は、ステップS3へ戻る。こうして、プロセッサ50は、ステップS7でYESと判定するまで、ステップS3~S8のループを繰り返し実行し、ステップS8を実行して溶接ガン14を第nの教示位置TP及び教示姿勢ORに位置決めする毎に、ステップS6で加圧力Fを取得する。
 図5に示すフローを終了した後、プロセッサ50は、溶接作業プログラム200を実行し、ワークに対し実際の溶接作業を実行する。実際の溶接作業を実行するとき、オペレータ又は上位コントローラは、フラグFLを無効にするためのフラグ設定信号を制御装置18に与え、該フラグ設定信号に応じて、プロセッサ50は、フラグFLを無効に設定する。その結果、プロセッサ50は、実際の溶接作業においては、溶接作業プログラム200の溶接命令INを実行することで、ワークに対して溶接作業を行う。
 本実施形態においては、実際の溶接作業のために溶接作業プログラム200を実行しているときに、プロセッサ50は、上述のステップS6で取得した加圧力Fに基づいて、加圧力指令FC_1を補正する。例えば、上述のステップS2又はS8で第2i-1行目の位置決め命令INを実行して溶接ガン14を第nの教示位置TP及び教示姿勢ORに位置決めした直後のステップS6で取得した加圧力Fが、1.5[kN]であったとする。
 この場合、プロセッサ50は、実際の溶接作業で第2i-1行目の位置決め命令INの次の第2i行目の溶接命令INを実行するときに溶接ガン14のサーボモータ40を駆動するための加圧力指令FC_1(=2[kN])を補正する補正量ΔFを、例えば、取得した加圧力Fと加圧力指令FC_1との差ΔF(=0.5[kN])として求める。
 そして、プロセッサ50は、該加圧力指令FC_1を、補正量ΔFだけ加算することによって補正し、新たな加圧力指令FC_1’=2.5[kN](第2の加圧力指令)を求める。なお、補正量ΔFは、加圧力Fと加圧力指令FC_1との差に限らず、例えば、該差に所定の係数を乗算した値であってもよいし、加圧力Fと加圧力指令FC_1とを用いた他の如何なる演算により求められてもよい。
 そして、プロセッサ50は、第2i行目の溶接命令INの実行時に、補正後の加圧力指令FC_1’(=2.5[kN])に従ってサーボモータ40を駆動させる。これにより、実際の溶接作業で第nの教示姿勢ORに位置決めした溶接ガン14がワークに加える加圧力Fを、溶接条件1に規定された加圧力Fに実質一致させることができる。
 このように、本実施形態においては、プロセッサ50は、ステップS6で取得した加圧力Fに基づいて第1の加圧力指令FC_1を補正することで、溶接作業プログラム200の実行時に教示姿勢ORで溶接ガン14を駆動するときの第2の加圧力指令FC_1’を求める指令補正部66(図2)として機能する。
 以上のように、本実施形態においては、プロセッサ50は、動作実行部62、加圧力取得部64、及び指令補正部66として機能することで、溶接ガン14の加圧力Fを規定する加圧力指令Fを、該溶接ガン14の姿勢ORに応じて補正する。したがって、動作実行部62、加圧力取得部64、及び指令補正部66は、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する装置70(図2)を構成する。
 この装置70においては、動作実行部62は、溶接作業プログラム200に規定される教示姿勢ORに溶接ガン14を位置決めするように、ロボット12を動作させ(ステップS2、S8)、加圧力取得部64は、動作実行部62が溶接ガン14を教示姿勢ORに位置決めしたときに溶接ガン14を第1の加圧力指令FC_1で駆動したときの加圧力Fを取得する(ステップS6)。そして、指令補正部66は、加圧力取得部64が取得した加圧力Fに基づいて第1の加圧力指令FC_1を補正することで、溶接作業プログラム200の実行時に教示姿勢ORで溶接ガン14を駆動するときの第2の加圧力指令FC_1’を求める。
 この構成によれば、実際の溶接作業で溶接ガン14を位置決めする教示姿勢ORで取得した加圧力Fに基づいて、加圧力指令FC_1を補正できる。これにより、実際の溶接作業で溶接ガン14を位置決めする姿勢に依らずに一定の加圧力Fを溶接ガン14に生じさせることができる第2の加圧力指令FC_1’を、高精度に求めることができる。また、加圧力指令FC_1を補正するための姿勢をロボット12に新たに教示する必要がないので、加圧力指令FC_1を補正する作業を簡単化できる。
 また、装置70においては、溶接作業プログラム200は、ロボット12を動作させて溶接ガン14を第nの教示位置TP及び教示姿勢ORに位置決めする位置決め命令INと、溶接ガン14を起動してワークを溶接する溶接命令INとを含む。そして、動作実行部62は、溶接作業プログラム200の位置決め命令INを実行することで、ロボット12によって溶接ガン14を第nの教示位置TP及び教示姿勢ORに位置決めする(ステップS2、S8)一方、溶接命令INを実行しない(ステップS4~S7)。
 そして、加圧力取得部64は、動作実行部62が溶接ガン14を第nの教示位置TP及び教示姿勢ORに位置決めしたときの加圧力Fを取得する(ステップS6)。この構成によれば、実際の溶接作業と同じ動作をロボット12に実行させて、加圧力指令FC_1の補正のための加圧力Fを取得することができる。したがって、溶接作業の現場で、ロボット12と周辺機器との干渉を避けつつ、加圧力Fを取得する動作を実行できる。
 また、装置70においては、加圧力取得部64は、動作実行部62によって第nの教示姿勢ORに位置決めされた溶接ガン14を第1の加圧力指令FC_1で駆動したときに加圧力センサ16が計測した加圧力Fを取得する。この構成によれば、加圧力センサ16によって加圧力Fを高精度に実測できるので、第2の加圧力指令FC_1’を、より高精度に求めることができる。
 なお、上述の実施形態において、加圧力取得動作FO(ステップS4~S7)を実行するための動作プログラムPG1が、溶接作業プログラム200とは別に用意されてもよい。この場合、プロセッサ50は、ステップS3でYESと判定したときに、該動作プログラムPG1を実行し、加圧力取得動作FOとしてステップS4~S7を実行する。
 また、上述の実施形態においては、制御装置18にフラグFLが設定されている場合について述べた。しかしながら、これに限らず、ステップS1で取得した溶接作業プログラム200において、各溶接命令INのコード:「GUN[ON] CONDITION[1]」に、加圧力取得動作FOを代替的に実行するためのフラグFLが付与されてもよい。そして、プロセッサ50は、ステップS3でYESと判定したときに読み出した溶接命令INに付与されたフラグFLを参照し、該溶接命令INの代わりに、加圧力取得動作FOとしてステップS4~S7を実行してもよい。
 そして、実際の溶接作業を実行するために溶接作業プログラム200を実行するとき、該溶接作業プログラム200からフラグFLが削除されてもよい。代替的には、プロセッサ50は、溶接作業プログラム200の溶接命令INの実行時に、付与されているフラグFLを無視することで、溶接命令INを実行してもよい。
 また、上述の実施形態においては、加圧力センサ16は、制御装置18のI/Oインターフェース54に接続され、計測した加圧力Fを制御装置18に供給する場合について述べた。しかしながら、これに限らず、加圧力センサ16は、制御装置18に接続されなくてもよい。この場合、オペレータが、上述のステップS5の終了時に加圧力センサ16が計測した加圧力Fを、入力装置58を操作して手動で制御装置18に入力してもよい。
 また、上述の実施形態においては、溶接ロボットシステム10は、溶接ガン14から独立した加圧力センサ16を備え、オペレータが該加圧力センサ16を手動でセットする場合について述べた。しかしながら、加圧力センサ16は、溶接ガン14に一体に組み込まれてもよい。
 このような形態を、図9に示す。図9に示す溶接ロボットシステム10’においては、加圧力センサ16’は、可動溶接チップ44とともに可動アーム38に一体に固設されている。この加圧力センサ16’は、サーボモータ40によって駆動された可動溶接チップ44が被加圧物(例えば、固定溶接チップ36)を加圧したときに、その反力として該加圧力センサ16’に作用する力を検出することで、該被加圧物に加えられる加圧力Fを計測するように構成されている。
 この溶接ロボットシステム10’によれば、図5のフローからステップS4を省略できる。具体的には、プロセッサ50は、ステップS3でYESと判定したとき、ステップS5を実行し、加圧力指令FC_1に従って溶接ガン14のサーボモータ40を駆動する。その結果、可動溶接チップ44が、被加圧物としての固定溶接チップ36に押し当てられ、該固定溶接チップ36を加圧する。そして、プロセッサ50は、上述の負荷検出センサLSから取得したフィードバックFB1が加圧力指令FC_1に対応する値となったとき、サーボモータ40を停止する。
 なお、このステップS5を実行するときに、可動溶接チップ44及び固定溶接チップ36の間に、溶接ガン14とは別体の被加圧物(鉄板等)を挿入し、可動溶接チップ44で該被加圧物を加圧してもよい。次いで、ステップS6において、プロセッサ50は、このときに加圧力センサ16’が計測した加圧力Fを取得する。なお、加圧力センサ16’は、固定溶接チップ36と固定アーム34との間に固設されてもよい。
 次に、図10及び図11を参照して、他の実施形態に係る溶接ロボットシステム80について説明する。溶接ロボットシステム80は、上述の溶接ロボットシステム10と、以下の構成において相違する。具体的には、溶接ロボットシステム80は、上述の加圧力センサ16を備えていない一方、溶接ガン14は、位置センサ68を有している。
 位置センサ68は、可動溶接チップ44の位置PSを検出する。一例として、位置センサ68は、溶接ガン14のサーボモータ40に設けられた回転検出センサRS2(エンコーダ、又はホール素子等)を有し、該サーボモータ40の回転位置(又は、回転角度)を検出する。サーボモータ40の回転位置は、可動アーム38及び可動溶接チップ44のガン軸A2の方向の位置に相関するので、本例の位置センサ68は、サーボモータ40の回転位置を検出することで、可動溶接チップ44の位置PSを検出できる。
 他の例として、位置センサ68は、溶接ガン14(例えば、ベース部32)に設けられ、可動アーム38又は可動溶接チップ44のガン軸A2の方向の位置PSを直接的に検出可能なリニアスケールSCを有する。位置センサ68(回転検出センサRS2、又はリニアスケールSC)は、検出した位置PSの検出データを、制御装置18へ供給する。
 次に、図12を参照して、溶接ロボットシステム80において加圧力指令Fを補正する方法について、説明する。なお、図12のフローにおいて、図5に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。図12に示すフローの開始後、プロセッサ50は、ステップS1を実行し、溶接作業プログラム200を取得する。
 本実施形態においては、プロセッサ50は、取得した溶接作業プログラム200を解析し、第2i行目の溶接命令IN中の「CONDITION[1]」というコードを参照する。そして、プロセッサ50は、該コード中の識別子[1]が付与された溶接条件1に含まれる加圧力F(=2[kN])の情報を、溶接条件1のデータテーブル(図8)から取得する。
 ステップS1の後、ステップS11において、プロセッサ50は、溶接ガン14を基準姿勢ORに位置決めする。具体的には、プロセッサ50は、ロボット12を動作させて、溶接ガン14を、図3に示す基準姿勢ORに位置決めする。その結果、溶接ガン14のガン軸A2は、鉛直方向と平行となり、可動溶接チップ44は、固定溶接チップ36の鉛直上方に整列する。
 ステップS12において、プロセッサ50は、溶接条件mに規定されている加圧力Fに対応する加圧力指令FC_m(第1の加圧力指令)に従って、溶接ガン14を駆動する。具体的には、プロセッサ50は、上述のステップS1で取得した、溶接条件1に含まれる加圧力Fの情報に基づいて、該加圧力Fに対応する加圧力指令FC_1(=2[kN])を生成し、該加圧力指令FC_1に従って溶接ガン14のサーボモータ40を駆動する。
 これにより、可動溶接チップ44が、被加圧物としての固定溶接チップ36に押し当てられる。そして、プロセッサ50は、上述の負荷検出センサLSからのフィードバックFB1が加圧力指令FC_1に対応する値となったとき、サーボモータ40を停止する。その結果、可動溶接チップ44から加圧力センサ16に加圧力Fが加えられることになる。
 ここで、上述した校正作業によって、基準姿勢ORに配置された溶接ガン14を加圧力指令Fで駆動したときの加圧力Fと該加圧力指令Fとは、互いに一致するように校正されている。よって、このステップS12で加圧力センサ16に加えられる加圧力Fは、加圧力指令FC_1と一致する、溶接条件1の加圧力F(=2[kN])となる。
 ステップS13において、プロセッサ50は、可動溶接チップ44の第1の位置PSを取得する。具体的には、プロセッサ50は、ステップS12の終了時(つまり、サーボモータ40の停止時)に位置センサ68が検出した第1の位置PS(又は、回転位置)を、該位置センサ68から取得する。
 このように、本実施形態においては、プロセッサ50は、基準姿勢ORに位置決めされた溶接ガン14を第1の加圧力指令FC_1で駆動して可動溶接チップ44で被加圧物(具体的には、固定溶接チップ36)を加圧したときに位置センサ68が検出した第1の位置PSを取得する位置取得部72(図11)として機能する。
 ステップS13の後、プロセッサ50は、上述のステップS2、S3及びS5を順次実行する。その結果、第nの教示位置TP及び教示姿勢ORに位置決めされた溶接ガン14は、加圧力指令FC_1(=2[kN])に従って駆動されて、可動溶接チップ44が、被加圧物としての固定溶接チップ36を加圧力Fで加圧する。このときの加圧力Fは、第nの教示姿勢ORに応じて、加圧力指令FC_1(つまり、溶接条件1の加圧力F=2[kN])とは異なり得る。
 ステップS14において、プロセッサ50は、位置取得部72として機能し、可動溶接チップ44の第2の位置PSを取得する。具体的には、プロセッサ50は、ステップS5の終了時(つまり、サーボモータ40の停止時)に位置センサ68が検出した第2の位置PS(又は、回転位置)を、該位置センサ68から取得する。
 このステップS14の実行時に可動溶接チップ44が固定溶接チップ36を加圧する加圧力Fは、上述したように、ステップS13の実行時の加圧力Fとは異なり得る。よって、このステップS14で取得される第2の位置PSは、ステップS13で取得される第1の位置PSとは異なり得る。
 このように、プロセッサ50は、位置取得部72として機能して、ステップS2又はS8で第nの教示姿勢ORに位置決めされた溶接ガン14を第1の加圧力指令FC_1で駆動して可動溶接チップ44で被加圧物(具体的には、固定溶接チップ36)を加圧したときに位置センサ68が検出した第2の位置PSを取得する。
 ステップS15において、プロセッサ50は、加圧力取得部64として機能し、加圧力Fを取得する。ここで、ステップS13で取得した第1の位置PSと、ステップS14で取得した第2の位置PSと、ステップS1で取得した溶接条件1に規定される加圧力Fと、ステップS15で取得した加圧力Fとの間には、以下の式1で示す関係性が存在する。
       PS/PS=F/F ・・・(式1)
 上述の校正作業により、式1中の加圧力Fは、上述したように、加圧力指令FC_1=2[kN]と同じであって、既知である。したがって、式1より、加圧力Fは、F=F・PS/PSという演算により、求めることができる。プロセッサ50は、求めた加圧力Fを、メモリ52に記憶する。
 ステップS15の後、プロセッサ50は、上述のステップS7及びS8を順次実行し、ステップS7でYESと判定するまで、ステップS3、S5、S14、S15、S7及びS8のループを繰り返し実行し、ステップS8で溶接ガン14を第nの教示位置TP及び教示姿勢ORに位置決めする毎に、ステップS15で加圧力Fを取得する。
 図12に示すフローを終了した後、プロセッサ50は、上述の実施形態と同様に、実際の溶接作業のために溶接作業プログラム200を実行し、該溶接作業プログラム200の実行中に、指令補正部66として機能して、ステップS15で取得した加圧力Fに基づいて、各教示姿勢ORでの加圧力指令FC_1を補正することで、加圧力指令FC_1’を求める。
 以上のように、本実施形態においては、プロセッサ50は、動作実行部62、加圧力取得部64、指令補正部66、及び位置取得部72として機能することで、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する。したがって、動作実行部62、加圧力取得部64、指令補正部66、及び位置取得部72は、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する装置90(図11)を構成する。
 この装置90においては、位置取得部72は、基準姿勢ORに位置決めされた溶接ガン14を第1の加圧力指令FC_1で駆動して可動溶接チップ44で被加圧物(固定溶接チップ36)を加圧したときに位置センサ68が検出した第1の位置PSを取得する(ステップS13)。
 また、位置取得部72は、動作実行部62によって第nの教示姿勢ORに位置決めされた溶接ガン14を第1の加圧力指令FC_1で駆動して可動溶接チップ44で被加圧物を加圧したときに位置センサ68が検出した第2の位置PSを取得する(ステップS14)。そして、加圧力取得部64は、第1の位置PS及び前記第2の位置PSに基づいて、第nの教示姿勢ORでの加圧力Fを所定の演算(具体的には、上述の式(1)を用いた演算)により求めている(ステップS15)。
 この構成によれば、上述の加圧力センサ16のような物理的センサを用いることなく、教示姿勢ORでの加圧力Fを取得できる。したがって、オペレータが手動で加圧力センサ16をセットする作業を省略できるとともに、図12のフローを効果的に自動化できるので、加圧力Fを取得する作業を簡単化できる。
 なお、上述の実施形態においては、プロセッサ50は、ステップS2又はS8を実行することで溶接ガン14を全ての教示位置TP及び教示姿勢ORに位置決めし、ステップS6又はS15で加圧力Fを取得する場合について述べた。しかしながら、これに限らず、プロセッサ50は、指令補正部66として第nの教示位置TP及び教示姿勢ORでの加圧力指令FC_1’を求めた場合、求めた該加圧力指令FC_1’と、第nの教示位置TP及び第k(k≠n)の教示位置TPとに基づいて、第kの教示位置TP及び教示姿勢ORでの加圧力指令FC_1’を推定することもできる。
 例えば、プロセッサ50は、ステップS2で溶接ガン14を第1の教示位置TP及び教示姿勢ORに位置決めし、上述のステップS6又はS15で加圧力Fを取得する。そして、プロセッサ50は、実際の溶接作業時に、取得した加圧力Fに基づいて第1の加圧力指令FC_1を補正することで、第1の教示位置TP及び教示姿勢ORでの加圧力指令FC_1’を求めたとする。
 この場合、プロセッサ50は、求めた加圧力指令FC_1’と、溶接作業プログラム200に規定される第1の教示位置TP及び第2の教示位置TP(具体的には、ロボット座標系C1の座標)とに基づいて、予め定めた近似式を用いた所定の演算を実行することにより、第2の教示位置TP及び第2の教示姿勢ORでの第2の加圧力指令FC_1’を推定することができる。この近似式は、例えば、第1の教示位置TPから第2の教示位置TPまでの加圧力Fの変化(例えば、線形変化)を表す式であって、オペレータによって予め定められる。
 この場合、プロセッサ50は、動作実行部62として、上述のステップS8で溶接ガン14を第2の教示位置TP及び第2の教示姿勢ORに位置決めする動作を実行しない。この構成によれば、第2の教示姿勢ORについて、ステップS8の位置決め動作、及びステップS15の加圧力Fを取得する動作をキャンセルできるととともに、第2の教示姿勢ORでの第2の加圧力指令FC_1’を高精度に推定することができる。
 次に、図13及び図14を参照し、溶接ロボットシステム80の他の機能について説明する。溶接ロボットシステム80は、さらに、図14に示すフローを実行する。なお、図14に示すフローにおいて、図12と同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
 図14のフローにおいては、プロセッサ50は、ステップS7でNOと判定したとき、ステップS21を実行する。ステップS21において、プロセッサ50は、既に実行した位置決め命令INに規定された教示姿勢OR、OR、・・・ORと、次に実行する位置決め命令INに規定された教示姿勢ORn+1との差φを求める。
 例えば、プロセッサ50が、ステップS2で溶接作業プログラム200(図6)の第1行目の位置決め命令INによって溶接ガン14を第1の教示位置TP及び教示姿勢ORに位置決めした後、ステップS3、S5、S14、S15及びS7を実行し、ステップ21へ進んだとする。
 この場合、プロセッサ50は、このステップS21において、第1行目の位置決め命令INに規定された第1の教示姿勢ORと、次に実行する予定の第3行目の位置決め命令INに規定された第2の教示姿勢ORとの差φ1_2を求める。具体的には、プロセッサ50は、溶接作業プログラム200の第3行目の位置決め命令IN:「MOVE[TP2] VELOCITY[V2]」というコードを参照し、識別子「TP2」で表される座標(X,Y,Z,W,P,R)を位置データテーブル202から取得する。
 そして、プロセッサ50は、直近に実行した第1行目の位置決め命令INに規定された第1の教示姿勢ORの座標(W,P,R)と、位置データテーブル202から取得した第2の教示姿勢ORの座標(W,P,R)とに基づいて、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2を求める。
 以下、差φ1_2を求める方法の一例について説明する。まず、プロセッサ50は、第1の教示姿勢ORの座標(W,P,R)を、3×3の行列Mとして表す。この行列Mにおいては、第1列目の3つのパラメータで表されるベクトルV1_1は、ツール座標系C2のx軸周りの回転成分を示す単位ベクトルであり、第2列目の3つのパラメータで表されるベクトルV1_2は、ツール座標系C2のy軸周りの回転成分を示す単位ベクトルであり、第3列目の3つのパラメータで表されるベクトルV1_3は、ツール座標系C2のz軸周りの回転成分を示す単位ベクトルである。
 同様に、プロセッサ50は、第2の教示姿勢ORの座標(W,P,R)を、3×3の行列Mとして表す。そして、プロセッサ50は、行列Mの第1列目のベクトルV1_1と、行列Mの第1列目のベクトルV2_1との内積IPを求める。この内積IPは、ベクトルV1_1とベクトルV2_1との角度をφとすると、cosφとして表される。この角度φは、ツール座標系C2のx軸周りの方向における、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2を表す。プロセッサ50は、求めた内積IP=cosφから、角度φ=cos-1(IP)を求めることができる。
 同様に、プロセッサ50は、行列Mの第2列目のベクトルV1_2と、行列Mの第2列目のベクトルV2_2との内積IPを求める。この内積IPは、ベクトルV1_2とベクトルV2_2との角度をφとすると、cosφとして表される。この角度φは、ツール座標系C2のy軸周りの方向における、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2を表す。プロセッサ50は、求めた内積IP=cosφから、角度φ=cos-1(IP)を求めることができる。
 こうして、プロセッサ50は、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2として、角度φ及びφを求める。したがって、プロセッサ50は、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2を求める姿勢差演算部74(図13)として機能する。なお、上述した差φを求める方法は、一例であって、プロセッサ50は、他の如何なる方法によって差φを求めてもよい。
 ステップS22において、プロセッサ50は、ステップS21で求めた差φが予め定められた閾値φthよりも小さいか否かを判定する。例えば、プロセッサ50が、直前のステップS21で第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2として角度φ及びφを求めたとする。
 この場合、プロセッサ50は、このステップS22で、角度φが、予め定められた閾値φth_xよりも小さい(つまり、φ<φth_x)か否か、及び、角度φが、予め定められた閾値φth_yよりも小さい(つまり、φ<φth_y)か否かを判定する。プロセッサ50は、φ<φth_x、且つ、φ<φth_yを満たす場合は、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2が閾値φthよりも小さい(すなわち、YES)と判定する。一方、φ≧φth_x、又は、φ≧φth_yを満たす場合は、プロセッサ50は、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2が閾値φth以上である(すなわち、NO)と判定する。
 このように、本実施形態においては、プロセッサ50は、ステップS21で求めた差φ1_2が予め定められた閾値φthよりも小さいか否かを判定する差判定部76(図13)として機能する。プロセッサ50は、ステップS22でNOと判定した場合は、ステップS8へ進む。そして、プロセッサ50は、ステップS8で第3行目の位置決め命令INを実行して溶接ガン14を第2の教示位置TP及び第2の教示姿勢ORへ移動し、ステップS3へ戻る。
 一方、プロセッサ50は、ステップS22でYESと判定した場合は、ステップS7へ戻る。すなわち、本実施形態においては、プロセッサ50は、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2が小さい場合(換言すれば、2つの姿勢OR及びORが近似している場合)は、ステップS8で第3行目の位置決め命令INを実行する動作、及び、その後にステップS15で第2の教示位置TP及び第2の教示姿勢ORでの加圧力Fを取得する動作を実行しない。そして、プロセッサ50は、ステップS7において、第2の教示位置TP及び教示姿勢ORについては加圧力Fを取得したものと見做す。
 このように、本実施形態においては、既に実行した位置決め命令INに規定された教示姿勢OR、OR・・・ORの少なくとも1つと、次に実行する予定の位置決め命令INに規定された教示姿勢ORn+1との差φが小さい場合は、次の位置決め命令INを実行せず、加圧力Fを取得する動作をキャンセルする。
 例えば、図7に示す4つの教示姿勢ORのうち、第1の教示姿勢OR及び第2の教示姿勢ORの差φ1_2が、上述したように閾値φthよりも小さかったとする。この場合において、プロセッサ50が、ステップS8で溶接作業プログラム200の第5行目の位置決め命令INによって溶接ガン14を第3の教示位置TP及び教示姿勢ORに位置決めした後、ステップS3、S5、S14、S15及びS7を実行し、ステップS21に進んだとする。
 この場合、プロセッサ50は、ステップS21において、既に実行した第1行目の位置決め命令INに規定された第1の教示姿勢ORと、次に実行する予定の第7行目の位置決め命令INに規定された第4の教示姿勢ORとの差φ1_4、及び、既に実行した第3行目の位置決め命令INに規定されたに規定された第3の教示姿勢ORと、第4の教示姿勢ORとの差φ3_4を、それぞれ求める。
 そして、プロセッサ50は、ステップS22において、差φ1_4及び差φ3_4の少なくとも1つが閾値φthよりも小さい場合は、YESと判定することになる。この場合、プロセッサ50は、第7行目の位置決め命令INを実行せず、第4の教示姿勢ORで加圧力Fを取得するステップS15をキャンセルする。すなわち、本実施形態においては、プロセッサ50は、互いに近似しない(つまり、差φが閾値φth以上である)教示姿勢ORについてのみ、ステップS15で加圧力Fを取得する。
 図14のフローの後、プロセッサ50は、実際の溶接作業のために溶接作業プログラム200を実行し、該溶接作業プログラム200の実行中に、指令補正部66として機能して、ステップS15で取得した加圧力Fに基づいて各教示姿勢ORでの加圧力指令FC_1を補正することで、加圧力指令FC_1’を求める。
 ここで、本実施形態においては、プロセッサ50は、互いに差φが小さい(つまり、近似している)複数の教示姿勢ORの間で、共通の補正量ΔFを用いる。例えば、ステップS22で第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2が小さいことでYESと判定して、ステップS15の加圧力Fを取得する動作をキャンセルしたとする。
 この場合、プロセッサ50は、指令補正部66として機能して、第1の教示姿勢ORについて求めた補正量ΔFを用いて、第2の教示姿勢ORで溶接ガン14を駆動するための加圧力指令FC_1を補正する。例えば、第1の教示姿勢ORで求めた補正量ΔFが、上述のようにΔF=0.5[kN]であったとする。
 この場合、プロセッサ50は、溶接作業プログラム200の第4行目の溶接命令INの実行時に、第2の教示姿勢ORで溶接ガン14を駆動するための加圧力指令FC_1(=2[kN])を、第1の教示姿勢ORで求めた補正量ΔF(=1[kN])だけ加算することで補正し、新たな加圧力指令FC_1’=2.5[kN](第2の加圧力指令)を求める。そして、プロセッサ50は、第4行目の溶接命令INの実行時に、第2の教示姿勢ORに位置決めした溶接ガン14を、該新たな加圧力指令FC_1’(=2.5[kN])で駆動する。
 さらに、ステップS22で第1の教示姿勢ORと第4の教示姿勢ORとの差φ1_4が小さいことでYESと判定して、ステップS15の加圧力Fを取得する動作をキャンセルしたとする。この場合、プロセッサ50は、指令補正部66として機能して、第1の教示姿勢ORについて求めた補正量ΔF(=0.5[kN])を用いて、第4の教示姿勢ORで溶接ガン14を駆動するための加圧力指令Fを補正することで、新たな加圧力指令FC_1’(=2.5[kN])。
 そして、プロセッサ50は、第8行目の溶接命令INの実行時に、第4の教示姿勢ORに位置決めした溶接ガン14を、該新たな加圧力指令FC_1’で駆動する。すなわち、この場合、プロセッサ50は、第1の教示姿勢OR、第2の教示姿勢OR、及び第4の教示姿勢ORで、共通の補正量ΔF(=0.5[kN])を用いて、元の加圧力指令FC_1を補正することになる。
 なお、本実施形態においては、全ての教示姿勢ORで同じ値の加圧力指令FC_1(つまり、図8に示す溶接条件1の加圧力F=2[kN])が予め定められている場合について述べた。しかしながら、これに限らず、教示姿勢OR毎に、異なる加圧力指令FC_1が定められてもよい。この場合において、図8に示す溶接条件1のデータテーブルに、教示姿勢OR毎の加圧力指令FC_1が格納されてもよい。
 以上のように、本実施形態においては、プロセッサ50は、動作実行部62、加圧力取得部64、指令補正部66、位置取得部72、姿勢差演算部74、及び差判定部76として機能することで、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する。したがって、動作実行部62、加圧力取得部64、指令補正部66、位置取得部72、姿勢差演算部74、及び差判定部76は、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する装置100(図13)を構成する。
 この装置100においては、加圧力取得部64は、動作実行部62が溶接ガン14を第1の教示姿勢ORに位置決めしたときときの第1の加圧力Fを取得し(ステップS15)、指令補正部66は、該第1の加圧力Fに基づいて、第1の教示姿勢ORで溶接ガン14を駆動するための第1の加圧力指令FC_1(=2[kN])を第2の加圧力指令FC_1’(=2.5[kN])へ補正する補正量ΔF(=0.5[kN])を求める。
 一方、姿勢差演算部74は、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2を求め(ステップS21)、差判定部76は、姿勢差演算部74が求めた差φ1_2が予め定められた閾値φthよりも小さいか否かを判定する(ステップS22)。そして、差判定部76によって差φ1_2が閾値φthよりも小さい(つまり、ステップS22でYES)と判定された場合、動作実行部62は、溶接ガン14を第2の教示姿勢ORに位置決めする動作(ステップS8)を実行しない。
 そして、指令補正部66は、第1の教示姿勢ORで求めた補正量ΔFを用いて、第2の教示姿勢ORで溶接ガン14を駆動するための第1の加圧力指令F(=2[kN])を補正することで、該第2の教示姿勢ORでの第2の加圧力指令FC_1’(=2.5[kN])を求める。
 この構成によれば、互いに差φが小さい複数の教示姿勢ORの間で、共通の補正量ΔFを用いることができるので、ステップS8の位置決め動作、及びステップS15の加圧力Fを取得する動作をキャンセルできる。これにより、図14のフローのサイクルタイムを縮減できる。
 なお、装置100の差判定部76及び姿勢差演算部74を、図2に示す装置70に適用することもできる。この場合、プロセッサ50は、図5中のステップS7でNOと判定したときに、図14のステップS21及びS22を実行し、ステップS22でYESと判定した場合はステップS7へ戻る一方、NOと判定した場合はステップS8へ進む。
 なお、本実施形態においては、プロセッサ50は、互いに差φが小さい(つまり、近似している)複数の教示姿勢ORの間で共通の補正量ΔFを用いる場合について述べた。しかしながら、これに限らず、プロセッサ50は、互いに差φが小さい複数の教示姿勢ORがある場合に、1つの教示姿勢ORで補正した第2の加圧力指令FC_1’と差φとに基づいて、他の教示姿勢ORn+1での第2の加圧力指令FC_1’を求めてもよい。
 例えば、プロセッサ50が、第1の教示姿勢ORにおいて、上述のように第1の加圧力指令FC_1を補正することで第2の加圧力指令FC_1’を求め、且つ、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2(すなわち、角度φ及びφ)が小さいとする。この場合、プロセッサ50は、差φ1_2のうち、ガン軸A2と直交するツール座標系C2のy軸周りの角度φに応じて、第1の教示姿勢ORでの第2の加圧力指令FC_1’を線形変化させることで、第2の教示姿勢ORでの第2の加圧力指令FC_1’を求めてもよい。
 例えば、第2の教示姿勢ORが図4に示す姿勢であり、第1の教示姿勢ORが、該第2の教示姿勢ORから、図3に示す姿勢へツール座標系C2のy軸周りに角度φだけ回転した姿勢であるとする。この場合、プロセッサ50は、指令補正部66として機能して、第2の教示姿勢ORでの第2の加圧力指令FC_1’を、角度φ応じて、第1の教示姿勢ORでの第2の加圧力指令FC_1’を線形的に増大させることで、求めてもよい。
 反対に、第1の教示姿勢ORが図4に示す姿勢であり、第2の教示姿勢ORが、該第1の教示姿勢ORから、図3に示す姿勢へツール座標系C2のy軸周りに角度φだけ回転した姿勢であるとする。この場合、プロセッサ50は、指令補正部66として機能して、第2の教示姿勢ORでの第2の加圧力指令FC_1’を、角度φ応じて、第1の教示姿勢ORでの第2の加圧力指令FC_1’を線形的に減少させることで、求めてもよい。
 このように本実施形態では、指令補正部66は、第1の教示姿勢ORでの第2の加圧力指令FC_1’と差φ(例えば、角度φ)とに基づいて、第2の教示姿勢ORでの第2の加圧力指令FC_1’を求める。この構成によれば、第2の教示姿勢ORについて、ステップS8の位置決め動作、及びステップS15の加圧力Fを取得する動作をキャンセルできるととともに、第2の教示姿勢ORでの第2の加圧力指令FC_1’を、差φに応じて高精度に求めることができる。
 なお、プロセッサ50は、互いに差φが小さい複数の教示姿勢ORがある場合に、1つの教示姿勢ORで求めた補正量ΔFと差φとに基づいて、他の教示姿勢ORn+1での補正量ΔFを求めてもよい。例えば、上述のように第1の教示姿勢ORで補正量ΔFを求め、且つ、第1の教示姿勢ORと第2の教示姿勢ORとの差φ1_2が小さいとする。この場合、プロセッサ50は、ガン軸A2と直交するツール座標系C2のy軸周りの角度φに応じて、第1の教示姿勢ORで求めた補正量ΔFを線形変化させることで、第2の教示姿勢ORで第1の加圧力指令FC_1を補正する補正量ΔFを求めてもよい。
 例えば、第2の教示姿勢ORが図4に示す姿勢であり、第1の教示姿勢ORが、該第2の教示姿勢ORから、図3に示す姿勢へ向かって、ツール座標系C2のy軸周りに角度φだけ回転した姿勢であるとする。この場合、プロセッサ50は、指令補正部66として機能して、第2の教示姿勢ORで第1の加圧力指令FC_1を補正する補正量ΔFを、角度φに応じて、第1の教示姿勢ORでの補正量ΔFを線形的に増大させることで、求めてもよい。
 反対に、第1の教示姿勢ORが図4に示す姿勢であり、第2の教示姿勢ORが、該第1の教示姿勢ORから、図3に示す姿勢へ向かってツール座標系C2のy軸周りに角度φだけ回転した姿勢であるとする。この場合、プロセッサ50は、指令補正部66として機能して、第2の教示姿勢ORで第1の加圧力指令FC_1を補正する補正量ΔFを、角度φに応じて、第1の教示姿勢ORでの補正量ΔFを線形的に減少させることで、求めてもよい。
 次に、図15~図17を参照して、溶接ロボットシステム10の他の機能について説明する。溶接ロボットシステム10は、さらに、図16に示すフローを実行する。本実施形態においては、プロセッサ50は、溶接作業プログラム200に規定される各教示姿勢ORを再現し、該各教示姿勢ORで加圧力Fを取得するための姿勢再現プログラム204を生成する。
 図16のフローの開始後、プロセッサ50は、ステップS1を実行し、溶接作業プログラム200を取得する。ステップS31において、プロセッサ50は、溶接作業プログラム200から教示姿勢ORを抽出する。具体的には、プロセッサ50は、溶接作業プログラム200を解析し、該溶接作業プログラム200に規定されている全ての位置決め命令INを抽出する。
 そして、プロセッサ50は、位置決め命令INのコードに含まれる識別子[TPn]を抽出し、該識別子[TPn]で示される教示姿勢ORを、位置データテーブル202(図7)から取得する。その結果、プロセッサ50は、第1の教示姿勢ORを表す座標(W,P,R)、第2の教示姿勢ORを表す座標(W,P,R)、第3の教示姿勢ORを表す座標(W,P,R)、及び、第4の教示姿勢ORを表す座標(W,P,R)を抽出する。このように、本実施形態においては、プロセッサ50は、溶接作業プログラム200から教示姿勢ORを抽出する姿勢抽出部78(図15)として機能する。
 ステップS32において、プロセッサ50は、姿勢再現位置OPの入力を受け付けたか否かを判定する。この姿勢再現位置OPは、後述する姿勢再現プログラム204(図19)の実行時に溶接ガン14(換言すれば、TCP)を位置決めするロボット座標系C1の位置(具体的には、座標(X,Y,Z))である。
 例えば、プロセッサ50は、姿勢再現位置OPを入力するための入力画像IMを生成し、表示装置60に表示させる。オペレータは、入力画像IMを視認しつつ、入力装置58を操作して、姿勢再現位置OPの座標を指定する入力を、プロセッサ50に与える。以下、オペレータが、姿勢再現位置OPとして、ロボット座標系C1の座標(X,Y,Z)を指定した場合について説明する。
 この姿勢再現位置OPの座標(X,Y,Z)は、溶接作業プログラム200に規定された少なくとも1つ(例えば、全て)の教示位置TP(X,Y,Z)とは異なる座標であって、該少なくとも1つの教示位置TPよりもロボット座標系C1の原点(つまり、ロボットベース20)に近い座標として、オペレータによって指定される。
 プロセッサ50は、オペレータから姿勢再現位置OPの入力を受け付けた場合はYESと判定し、ステップS33へ進む一方、NOと判定した場合はステップS32をループする。このように、本実施形態においては、プロセッサ50は、教示位置TPとは異なる姿勢再現位置OPの入力を受け付ける入力受付部84(図15)として機能する。
 ステップS33において、プロセッサ50は、ステップS31で抽出した教示姿勢ORに基づいて、姿勢再現プログラム204を生成する。具体的には、プロセッサ50は、まず、ステップS31で抽出した教示姿勢ORと、ステップS32で受け付けた姿勢再現位置OPとに基づいて、姿勢再現プログラム204のための位置データテーブル206を生成する。
 位置データテーブル206の一例を、図18に示す。図18に示す位置データテーブル206においては、識別子「OP1」、「OP2」、「OP3」、「OP4」がそれぞれ付与された座標データが格納されている。図18に示すように、識別子「OPn」(n=1,2,3,4)の座標は、ステップS32で受け付けた姿勢再現位置OPの座標(X,Y,Z)を共有している一方、ステップS31で抽出した教示姿勢ORの座標(W,P,R)をそれぞれ有している。プロセッサ50は、ステップS31で抽出した教示姿勢ORと、ステップS32で受け付けた姿勢再現位置OPとに基づいて、図18に示すような位置データテーブル206を作成する。
 次いで、プロセッサ50は、作成した位置データテーブル206に基づいて、姿勢再現プログラム204を生成する。姿勢再現プログラム204の一例を、図19に示す。図19に示す姿勢再現プログラム204において、例えば、第5行目の「MOVE[OP3] VELOCITY[V13]」というコードは、ロボット12によって溶接ガン14を、速度V=V13[mm/sec]で移動させて、識別子[OP3]で表される姿勢再現位置OP及び教示姿勢ORに位置決めするための位置決め命令INである。
 なお、姿勢再現プログラム204に規定される速度V:「VELOCITY[Vn]」(n=11,12,13,14)は、溶接作業プログラム200に規定される速度V(n=1,2,3,4)とは異なる(具体的には、低い)速度に設定され得る(例えば、V11=V12=V13=V14<V=V=V=V)。
 プロセッサ50は、姿勢再現プログラム204の実行時に、第5行目の位置決め命令INを読み出すと、位置データテーブル206から識別子「OP3」で表される座標(X,Y,Z,W,P,R)を取得する。そして、プロセッサ50は、動作実行部62として機能して、ロボット座標系C1においてロボット12を動作させて溶接ガン14を座標(X,Y,Z,W,P,R)に位置決めする。
 一方、姿勢再現プログラム204の第2i行目(i=1,2,3,4)の「PRESSURIZE CONDITION[1]」というコードは、識別子[1]が付与された溶接条件1に従って溶接ガン14のサーボモータ40を駆動して、溶接ガン14に被加圧物を加圧させる加圧命令INである。このように、姿勢再現プログラム204は、溶接作業プログラム200に規定される溶接命令INを含まない。
 プロセッサ50は、姿勢再現プログラム204の実行時に加圧命令INを読み出すと、識別子[1]が付与された溶接条件1のデータテーブルを参照して加圧力F=2[kN]を取得し、該加圧力Fに対応する加圧力指令FC_1(=2[kN])に従って溶接ガン14のサーボモータ40を駆動する。
 このように、本実施形態においては、プロセッサ50は、ステップS31で抽出した教示姿勢ORと、ステップS32で受け付けた姿勢再現位置OPとに基づいて位置データテーブル206を生成し、該位置データテーブル206に基づいて姿勢再現プログラム204を生成している。したがって、プロセッサ50は、教示姿勢OR及び姿勢再現位置OPに基づいて姿勢再現プログラム204を生成するプログラム生成部82(図15)として機能する。
 再度、図16を参照して、ステップS34において、プロセッサ50は、オペレータ又は上位コントローラから、姿勢再現プログラム開始指令を受けたか否かを判定する。プロセッサ50は、YESと判定した場合はステップS35へ進む一方、NOと判定した場合はステップS34をループする。
 ステップS35において、プロセッサ50は、加圧力取得プロセスを実行する。このステップS35について、図17を参照して説明する。なお、図17に示すフローにおいて、図5のフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
 ステップS41において、プロセッサ50は、姿勢再現プログラム204の位置決め命令INを実行する。具体的には、プロセッサ50は、動作実行部62として機能して、姿勢再現プログラム204の第1行目に規定されている「MOVE [OP1] VELOCITY[V11]」という位置決め命令INを読み出し、ロボット12によって溶接ガン14を姿勢再現位置OP及び教示姿勢OR(つまり、識別子「OP1」の座標(X,Y,Z,W,P,R))に位置決めすべく、速度V11で移動させる。
 ステップS42において、プロセッサ50は、溶接ガン14を姿勢再現位置OP及び第nの教示姿勢OR(つまり、識別子「OPn」の座標(X,Y,Z,W,P,R))へ位置決めしたか否かを判定する。具体的には、プロセッサ50は、回転検出センサRS1からのフィードバックFB2に基づいて、溶接ガン14を姿勢再現位置OP及び第nの教示姿勢ORへ位置決めしたか否かを判定する。
 プロセッサ50は、溶接ガン14を姿勢再現位置OP及び第nの教示姿勢ORへ位置決めした(すなわち、YES)と判定した場合は、ロボット12の動作を停止させ、ステップS4へ進む。これにより、溶接ガン14は、姿勢再現位置OP及び第nの教示姿勢ORに位置決めされた状態で静止する。一方、プロセッサ50は、NOと判定した場合はステップS42をループする。
 ステップS4の後、ステップS43において、プロセッサ50は、溶接条件mに規定されている加圧力Fに対応する加圧力指令FC_m(第1の加圧力指令)に従って、溶接ガン14を駆動する。具体的には、プロセッサ50は、姿勢再現プログラム204中の第2i行目の加圧命令INを読み出す。
 そして、プロセッサ50は、このステップS43において、読み出した加圧命令INの「CONDITION[1]」というコードに応じて、識別子[1]が付与された溶接条件1に規定されている加圧力F(=2[kN])を取得する。そして、プロセッサ50は、溶接条件1から取得した加圧力Fに対応する加圧力指令FC_1(=2[kN])を生成し、該加圧力指令FC_1に従って溶接ガン14のサーボモータ40を駆動する。
 そして、プロセッサ50は、上述の負荷検出センサLSからのフィードバックFB1が加圧力指令FC_1に対応する値となったとき、サーボモータ40を停止する。その結果、加圧力センサ16が可動溶接チップ44と固定溶接チップ36との間で挟持される。次いで、プロセッサ50は、ステップS6を実行し、加圧力取得部64として機能して、ステップS43の終了時(つまり、サーボモータ40を停止したとき)に加圧力センサ16が計測した加圧力Fを、該加圧力センサ16から取得する。
 ステップS44において、プロセッサ50は、姿勢再現プログラム204に規定されている全ての教示姿勢ORに関して加圧力Fを取得したか否かを判定する。プロセッサ50は、YESと判定した場合は図17に示すフローを終了し、以って、図16のフローを終了する。一方、プロセッサ50は、NOと判定した場合はステップS45へ進む。
 ステップS45において、プロセッサ50は、姿勢再現プログラム204の次の行に規定されている位置決め命令INを実行する。例えば、第1回目のステップS45を実行する場合、プロセッサ50は、第3行目の位置決め命令IN「MOVE [OP2] VELOCITY[V12]」を実行し、溶接ガン14を、姿勢再現位置OP及び第2の教示姿勢ORに位置決めすべく、速度V12で移動させる。
 そして、プロセッサ50は、ステップS42へ戻る。こうして、プロセッサ50は、ステップS44でYESと判定するまで、ステップS42、S4、S43、S6、S44及びS45のループを繰り返し実行し、ステップS45で溶接ガン14を姿勢再現位置OP及び第nの教示姿勢ORに位置決めする毎に、ステップS6で加圧力Fを取得する。
 つまり、姿勢再現プログラム204によれば、プロセッサ50は、ステップS41及びS45を実行することで、溶接ガン14の位置(つまり、姿勢再現位置OP)を変えずに(つまり、姿勢再現位置OPに維持しつつ)、該溶接ガン14の姿勢のみを教示姿勢ORへ変化させて、ステップS6で加圧力Fを取得している。
 図17に示すフローを終了した後、プロセッサ50は、溶接作業プログラム200を実行し、ワークに対し実際の溶接作業を実行する。実際の溶接作業のために溶接作業プログラム200を実行しているときに、プロセッサ50は、指令補正部66として機能して、ステップS35中のステップS6で取得した加圧力Fに基づいて、各教示姿勢ORでの加圧力指令FC_1を補正することで、加圧力指令FC_1’を求める。
 以上のように、本実施形態においては、プロセッサ50は、動作実行部62、加圧力取得部64、指令補正部66、姿勢抽出部78、プログラム生成部82、及び入力受付部84として機能することで、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する。したがって、動作実行部62、加圧力取得部64、指令補正部66、姿勢抽出部78、プログラム生成部82、及び入力受付部84は、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する装置110(図15)を構成する。
 この装置110においては、動作実行部62は、ロボット12を動作させて溶接ガン14を、教示位置TPとは異なる姿勢再現位置OP及び教示姿勢ORに位置決めする位置決め命令INを含む一方、溶接命令INを含まない姿勢再現プログラム204を実行することで、ロボット12によって溶接ガン14を姿勢再現位置OP及び教示姿勢ORに位置決めする(ステップS41、S45)。
 そして、加圧力取得部64は、動作実行部62が溶接ガン14を姿勢再現位置OP及び教示姿勢ORに位置決めしたときの加圧力Fを取得する(ステップS6)。この構成によれば、溶接作業プログラム200に規定される教示姿勢ORを再現する姿勢再現プログラム204を実行することで、溶接ガン14を教示姿勢ORに位置決めし、該教示姿勢ORでの加圧力指令Fを補正するための加圧力Fを効果的に取得できる。
 また、装置110においては、姿勢抽出部78は、溶接作業プログラム200から教示姿勢ORを抽出し(ステップS31)、プログラム生成部82は、姿勢抽出部78が抽出した教示姿勢ORに基づいて、姿勢再現プログラム204を生成する。この構成によれば、姿勢再現プログラム204をコンピュータが自動で生成することができるので、オペレータの作業を軽減できる。
 また、装置110においては、入力受付部84は、姿勢再現位置OPの入力を受け付け(ステップS32)、プログラム生成部82は、入力受付部84が受け付けた姿勢再現位置OPにさらに基づいて、姿勢再現プログラム204を生成する。この構成によれば、オペレータは、例えば、姿勢再現位置OPを、ロボット座標系C1の原点(ロボットベース20)に近い座標として、任意に指定できる。その結果、姿勢再現プログラム204を実行しているときのロボット12の動作範囲を縮減できるので、姿勢再現プログラム204の実行時にロボット12が周辺機器と干渉するのを確実に防止できる。
 なお、上述のステップS32において、プロセッサ50は、入力受付部84として機能し、姿勢再現位置OPの代わりに、ロボット12の許容動作範囲RGの入力を受け付けてもよい。例えば、プロセッサ50は、許容動作範囲RGを入力するための入力画像IMを生成し、表示装置60に表示させる。オペレータは、入力画像IMを視認しつつ、入力装置58を操作して、許容動作範囲RGを指定する入力(例えば、ロボット座標系C1の原点からの半径Rを指定する入力)を、プロセッサ50に与えてもよい。
 この場合、プロセッサ50は、ステップS32でYESと判定した後、ステップS33において、ステップS31で抽出した教示姿勢ORと、ステップS32で受け付けた許容動作範囲RGとに基づいて、位置データテーブル206’を生成する。この位置データテーブル206’の一例を図20に示す。
 図20に示す例では、位置データテーブル206’に格納された、識別子「OPn」(n=1,2,3,4)が付与された座標は、姿勢再現位置OPの座標(X,Y,Z)(j=11,12,13,14)を有する。姿勢再現位置OPの座標(X,Y,Z)は、溶接作業プログラム200に規定された少なくとも1つ(例えば、全て)の教示位置TP(X,Y,Z)とは異なり、且つ、ステップS32で受け付けた許容動作範囲RG内に在る座標として、プロセッサ50によって自動生成される。
 そして、プロセッサ50は、ステップS33において、プログラム生成部82として機能し、位置データテーブル206’に基づいて、姿勢再現プログラム204を生成する。すなわち、この場合、プロセッサ50は、プログラム生成部82として機能して、ステップS31で姿勢抽出部78として抽出した教示姿勢ORと、ステップS32で入力受付部84として受け付けた許容動作範囲RGに基づいて、姿勢再現プログラム204を生成する。
 次に、図21~図23を参照して、溶接ロボットシステム80のさらに他の機能について説明する。溶接ロボットシステム80は、さらに、図22に示すフローを実行する。なお、図22に示すフローにおいて、図16のフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
 図22のフローの開始後、プロセッサ50は、ステップS1を実行し、溶接作業プログラム200を取得し、次いで、ステップS31を実行し、姿勢抽出部78として機能して、溶接作業プログラム200から教示姿勢ORを抽出する。次いで、プロセッサ50は、ステップS32を実行し、姿勢再現位置OP(X,Y,Z)の入力を受け付けたか否かを判定する。
 ステップS32でYESと判定した(つまり、姿勢再現位置OP(X,Y,Z)の入力を受け付けた)とき、ステップS51において、プロセッサ50は、姿勢差演算部74として機能し、ステップS31で溶接作業プログラム200から抽出した複数の教示姿勢ORの間の差φを求める。
 具体的には、プロセッサ50は、上述のステップS21で述べた方法により、第1の教示姿勢OR(W,P,R)と、第2の教示姿勢OR(W,P,R)との差φ1_2、第1の教示姿勢OR(W,P,R)と、第3の教示姿勢OR(W,P,R)との差φ1_3、及び、第1の教示姿勢OR(W,P,R)と、第4の教示姿勢OR(W,P,R)との差φ1_4を、それぞれ求める。
 また、プロセッサ50は、第2の教示姿勢OR(W,P,R)と、第3の教示姿勢OR(W,P,R)との差φ2_3、第2の教示姿勢OR(W,P,R)と、第4の教示姿勢OR(W,P,R)との差φ2_4、及び、第3の教示姿勢OR(W,P,R)と、第4の教示姿勢OR(W,P,R)との差φ3_4を、それぞれ求める。
 ステップS52において、プロセッサ50は、差判定部76として機能し、ステップS51で求めた各々の差φが予め定められた閾値φthよりも小さいか否かを判定する。具体的には、プロセッサ50は、差φ1_2、差φ1_3、差φ1_4、差φ2_3、差φ2_4、及び差φ3_4の各々と、閾値φthとを比較し、φ1_2<φth、φ1_3<φth、φ1_4<φth、φ2_3<φth、φ2_4<φth、又は、φ3_4<φthであるか否かをそれぞれ判定する。
 仮に、上述の実施形態で述べたように、第1の教示姿勢OR、第2の教示姿勢OR、及び第4の教示姿勢ORの間の差φが閾値φthよりも小さい場合、プロセッサ50は、φ1_2<φth、φ1_4<φth、及び、φ2_4<φthを満たすと判定することになる。
 ステップS53において、プロセッサ50は、プログラム生成部82として機能して、姿勢再現プログラム204を生成する。具体的には、プロセッサ50は、ステップS31で抽出した複数の教示姿勢ORのうち、差φが閾値φth以上である教示姿勢ORと、ステップS32で受け付けた姿勢再現位置OPとに基づいて、姿勢再現プログラム204のための位置データテーブル206”を生成する。
 本実施形態では、上述のステップS52において、第1の教示姿勢OR、第2の教示姿勢OR、及び第4の教示姿勢ORの間の差φが閾値φthよりも小さい(つまり、φ1_2<φth、φ1_4<φth、φ2_4<φthを満たす)と判定されている。よって、プロセッサ50は、第1の教示姿勢OR及び第3の教示姿勢ORと、ステップS32で受け付けた姿勢再現位置OPとに基づいて、図24に示す位置データテーブル206”を生成する。
 そして、プロセッサ50は、位置データテーブル206”に基づいて、図25に示す姿勢再現プログラム204’を生成する。姿勢再現プログラム204’は、第2i-1行目(i=1,2)の位置決め命令INと、第2i行目の加圧命令INとを含む。その後、プロセッサ50は、ステップS34を実行し、YESと判定するとステップS54へ進む。
 ステップS54において、プロセッサ50は、加圧力取得プロセスを実行する。この加圧力取得プロセスを、図23に示す。なお、図23に示すフローにおいて、図12又は図17のフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
 プロセッサ50は、ステップS53で生成した姿勢再現プログラム204’に従って、上述のステップS41~S43、S14、S15、S44及びS45を実行することで、加圧力Fを取得する。その結果、プロセッサ50は、第1の教示姿勢ORでの加圧力Fと、第3の教示姿勢ORでの加圧力Fとを取得することになる。
 図23のフローを終了後、プロセッサ50は、実際の溶接作業のために溶接作業プログラム200を実行し、該溶接作業プログラム200の実行中に、指令補正部66として機能して、ステップS54中のステップS15で取得した加圧力Fに基づいて、第1の教示姿勢OR、及び第3の教示姿勢ORでの補正量ΔFをそれぞれ求め、該補正量ΔFで元の加圧力指令FC_1をそれぞれ補正することで、該第1の教示姿勢OR及び該第3の教示姿勢ORでの加圧力指令FC_1’をそれぞれ求める。
 一方、プロセッサ50は、第2の教示姿勢OR及び第4の教示姿勢ORについては、第1の教示姿勢ORについて求めた補正量ΔFを用いて、元の加圧力指令FC_1をそれぞれ補正する。こうして、プロセッサ50は、第2の教示姿勢OR及び第4の教示姿勢ORでの加圧力指令FC_1’をそれぞれ求める。すなわち、プロセッサ50は、互いに近似する第1の教示姿勢OR、第2の教示姿勢OR、及び第4の教示姿勢ORでは、共通の補正量ΔFを用いて、元の加圧力指令FC_1を補正することになる。
 以上のように、本実施形態においては、プロセッサ50は、動作実行部62、加圧力取得部64、指令補正部66、位置取得部72、姿勢差演算部74、差判定部76、姿勢抽出部78、プログラム生成部82、及び入力受付部84として機能することで、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する。
 したがって、動作実行部62、加圧力取得部64、指令補正部66、位置取得部72、姿勢差演算部74、差判定部76、姿勢抽出部78、プログラム生成部82、及び入力受付部84は、溶接ガン14の姿勢ORに応じて加圧力指令Fを補正する装置120(図21)を構成する。
 この装置120においては、溶接作業プログラム200に規定されている複数の教示姿勢ORのうち、互いに姿勢ORの差φが閾値φth以上である(つまり、姿勢ORが異なる)教示姿勢ORのみを用いて、姿勢再現プログラム204’を生成している。この構成によれば、姿勢再現プログラム204’で溶接ガン14を位置決めする姿勢ORの数を最適化できる。
 なお、本実施形態において、プロセッサ50は、ステップS53において、姿勢再現プログラム204’の代わりに、図19に示す姿勢再現プログラム204を生成してもよい。この場合、図22のフローから、ステップS51及びS52を省略できる。そして、プロセッサ50は、図23中のステップS44でNOと判定した後に、図14に示すステップS21及びS22を実行してもよい。
 なお、図15及び図21の実施形態においては、プロセッサ50が、プログラム生成部82として機能して、姿勢再現プログラム204及び204’を生成する場合について述べた。しかしながら、これに限らず、図15又は図21の実施形態において、プロセッサ50は、例えば、姿勢再現プログラム204又は204’を、別のコンピュータ(上位コントローラ、生産管理サーバ等)からダウンロードすることで取得しもよい。
 この場合、装置110又は120から、姿勢抽出部78、プログラム生成部82、及び入力受付部84を省略できる。この場合、プロセッサ50は、ダウンロードした姿勢再現プログラム204又は204’に従って、図17に示すステップS35、又は図23に示すステップS54を実行する。
 なお、上述の実施形態においては、プロセッサ50が、実際の溶接作業のために溶接作業プログラム200を実行しているときに加圧力指令FC_1を補正する場合について述べた。しかしながら、プロセッサ50は、図5、図12、図14、図16又は図22のフローの実行中に加圧力指令FC_1を補正してもよい。
 例えば、図5、図12又は図14のフローにおいて、プロセッサ50は、ステップS7でYESと判定したときに、ステップS6又はS15で収集した加圧力Fに基づいて、各教示姿勢ORでの加圧力指令FC_1を補正することで加圧力指令FC_1’を求めてもよい。そして、プロセッサ50は、教示姿勢OR毎に求めた加圧力指令FC_1’を、該教示姿勢ORと関連づけて格納したデータテーブルDTを作成してもよい。
 この場合、プロセッサ50は、実際の溶接作業で溶接作業プログラム200の溶接命令INを読み出したときに、この時点で溶接ガン14を位置決めしている教示姿勢OR(つまり、該溶接命令INの前の行の位置決め命令INに規定された教示姿勢OR)に対応する加圧力指令FC_1’をデータテーブルDTから取得する。
 また、図16又は図22のフローにおいて、プロセッサ50は、ステップS35又はS54の終了時(つまり、ステップS44でYESと判定したとき)に、ステップS6又はS15で収集した加圧力Fに基づいて、各教示姿勢ORでの加圧力指令FC_1を補正することで加圧力指令FC_1’を求めてもよい。
 なお、図5のフローでは、プロセッサ50は、ステップS2又はS8において、ロボット12によって溶接ガン14を、溶接作業プログラム200の位置決め命令IN(「Vn」というコード)に規定された速度Vで移動させる場合について述べた。しかしながら、プロセッサ50は、図5のステップS2又はS8において、溶接ガン14を、溶接作業プログラム200に規定されている速度Vとは異なる(例えば、速度Vよりも低い)速度V’で移動させてもよい。この場合、溶接ガン14を速度V’で移動させるためのフラグFL’が、制御装置18に設定されてもよい。代替的には、上述のステップS1で取得した溶接作業プログラム200において、位置決め命令INのコードに該フラグFL’が付与されてもよい。
 なお、上述の実施形態においては、プロセッサ50は、ステップS5及びS43において、負荷検出センサLSからのフィードバックFB1が加圧力指令FC_1に対応する値となったときに、サーボモータ40を停止する場合について述べた。しかしながら、これに限らず、ステップS5又はS43において、プロセッサ50は、可動溶接チップ44が非加圧物(固定溶接チップ36)に当接して強制的に停止したときに、サーボモータ40を停止してもよい。
 この場合、プロセッサ50は、実際の溶接作業で溶接作業プログラム200の溶接命令INを実行したときも、可動溶接チップ44がワークに当接して強制的に停止したときにサーボモータ40を停止してもよい。また、被加圧物としては、固定溶接チップ36に限らず、固定アーム34に対して固定された如何なる物体(例えば、鉄板)を適用できる。
 なお、プロセッサ50は、図5、図12、図14、図16又は図22のフローを、メモリ52に予め記憶されたコンピュータプログラムPG2に従って実行してもよい。また、プロセッサ50が実行する装置70、90、100、110又は120の機能(すなわち、動作実行部62、加圧力取得部64、指令補正部66、位置取得部72、姿勢差演算部74、差判定部76、姿勢抽出部78、プログラム生成部82、入力受付部84)は、コンピュータプログラムPGにより実現される機能モジュールであってもよい。
 なお、図6に示す溶接作業プログラム200、図19に示す姿勢再現プログラム204、及び図25に示す姿勢再現プログラム204’は、一例であって、他の如何なる種類の命令を含んでもよい。例えば、図6に示す溶接作業プログラム200においては、第2i-1行目に位置決め命令INが規定され、第2i行目に溶接命令INが規定されている。しかしながら、溶接作業プログラム200において、第i行(つまり、同じ行)に位置決め命令INと溶接命令INとが規定されてもよい。
 同様に、姿勢再現プログラム204又は204’において、第i行(同じ行)に、位置決め命令INと加圧命令INとが規定されてもよい。また、溶接作業プログラム200に規定される教示位置TP及び教示姿勢ORの個数は、4に限らず、1つであってもよいし、5以上であってもよい。姿勢再現プログラム204又は204’に規定される教示姿勢ORの個数についても同様である。
 また、図6に示す溶接作業プログラム200においては、位置決め命令INに、識別子「TPn」(n=1,2,3,4)が規定され、図7に示す位置データテーブル202が別に作成される場合について述べた。しかしながら、これに限らず、位置決め命令INに、識別子「TPn」の代わりに、座標(X,Y,Z,W,P,R)がコードとして直接的に記載されてもよい。姿勢再現プログラム204又は204’の位置決め命令INについても同様である。
 また、図6に示す溶接作業プログラム200においては、溶接命令INに、溶接条件mに対応する識別子[m](図6の例では、m=1)が記載され、図8に示すような溶接条件mのデータテーブルが別に用意される場合について述べた。しかしながら、これに限らず、溶接命令INに、識別子「m」の代わりに、溶接条件mの値(つまり、加圧力F、溶接電流I、溶接時間t)がコードとして直接的に記載されてもよい。姿勢再現プログラム204又は204’の加圧命令INについても同様である。
 なお、オペレータは、上述のステップS1で取得された溶接作業プログラム200に対し、位置決め命令IN(具体的には、教示姿勢OR)以外の箇所に変更を加えて、溶接作業プログラム200’としてもよい。そして、プロセッサ50は、実際の溶接作業時に、変更後の溶接作業プログラム200’を実行することで溶接作業を実行してもよい。
 例えば、オペレータは、実際の溶接作業を実行する前に、ステップS1で取得された溶接作業プログラム200(図6)のプログラム名を変更してもよいし、溶接作業プログラム200において、位置決め命令IN以外のコードを編集又は追加してもよいし、上述のフラグFLを付与してもよい。
 また、オペレータは、ステップS1で取得された溶接作業プログラム200の溶接命令INを、加圧力取得動作FOを実行するための命令に置換し、プロセッサ50は、該置換後の溶接作業プログラム200’に従って、図5、図12又は図14のフローを実行してもよい。ステップS1で取得された溶接作業プログラム200、及び、このような変更後の溶接作業プログラム200’は、いずれも、ロボット12及び溶接ガン14に溶接作業を実行させる溶接作業プログラムと見做すことができる。
 また、溶接作業プログラム200又は200’は、複数のプログラムを有してもよい。例えば、図6に示す溶接作業プログラム200は、第1行~第4行までの命令コードを含む第1のプログラム200Aと、第5行~第8行までの命令コードを含む第2のプログラム200Bとから構成されてもよい。同様に、姿勢再現プログラム204又は204’も、複数のプログラムを有してもよい。
 また、上述の実施形態においては、溶接作業プログラム200、姿勢再現プログラム204及び204’で、識別子[1]が付与された溶接条件1を用いる(つまり、「CONDITION[1]」というコード)場合について述べたが、他の溶接条件mを用いてもよい。
 また、上述の実施形態においては、プロセッサ50は、実際の溶接作業を実行するときに、上述の補正量ΔFを求め、該補正量ΔFで第1の加圧力指令FC_1を補正することで、第2の加圧力指令FC_1’を求める場合について述べた。しかしながら、これに限らず、プロセッサ50は、上述のステップS6又はS15で取得した加圧力Fに基づいて、各教示姿勢ORでの第2の加圧力指令FC_1’を、実際の溶接作業の前に定めてもよい。
 このとき、プロセッサ50は、上述のように求めた補正量ΔFを用いて、第2の加圧力指令FC_1’を定めてもよいし、又は、補正量ΔFを用いることなく、第1の加圧力指令FC_1と加圧力Fとを用いた如何なる演算により第2の加圧力指令FC_1’を定めてもよい。そして、プロセッサ50は、実際の溶接作業(つまり、溶接作業プログラム200、200’)の実行時に、第1の加圧力指令FC_1を、予め定めた第2の加圧力指令FC_1’で置換することで補正してもよい。
 また、上述の実施形態においては、装置70、90、100、110及び120の機能(動作実行部62、加圧力取得部64、指令補正部66、位置取得部72、姿勢差演算部74、差判定部76、姿勢抽出部78、プログラム生成部82、入力受付部84)が、制御装置18に実装される場合について述べた。
 しかしながら、これに限らず、装置70、90、100、110又は120の機能の少なくとも1つ(例えば、動作実行部62、姿勢抽出部78、プログラム生成部82、入力受付部84)は、ロボット12に動作を教示する教示装置(教示ペンダント、タブレット端末装置等)、又はPC等の別のコンピュータに実装されてもよい。この場合、該別のコンピュータのプロセッサが、装置70、90、100、110又は120として機能する。
 また、ロボット12は、垂直多関節ロボットに限らず、水平多関節ロボット、パラレルリンクロボット等、他の如何なるタイプのロボットであってもよい。また、本発明の概念は、C型スポット溶接ガンに限らず、例えばX型スポット溶接ガン等、他の如何なるタイプの溶接ガンに適用できる。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
 10,10’,80  溶接ロボットシステム
 12  ロボット
 14  溶接ガン
 16,16’ 加圧力センサ
 18  制御装置
 62  動作実行部
 64  加圧力取得部
 66  指令補正部
 70,90,100,110,120  装置
 72  位置取得部
 74  姿勢差演算部
 76  差判定部
 78  姿勢抽出部
 82  プログラム生成部
 84  入力受付部
 200  溶接作業プログラム
 204,204’  姿勢再現プログラム

Claims (12)

  1.  ロボットによって移動され、ワークを加圧して溶接する溶接ガンの加圧力を規定する加圧力指令を、該溶接ガンの姿勢に応じて補正する装置であって、
     前記ロボット及び前記溶接ガンに溶接作業を実行させる溶接作業プログラムに規定される教示姿勢に前記溶接ガンを位置決めするように、前記ロボットを動作させる動作実行部と、
     前記動作実行部が前記溶接ガンを前記教示姿勢に位置決めしたときに前記溶接ガンを第1の前記加圧力指令で駆動したときの前記加圧力を取得する加圧力取得部と、
     前記加圧力取得部が取得した前記加圧力に基づいて前記第1の加圧力指令を補正することで、前記溶接作業プログラムの実行時に前記教示姿勢で前記溶接ガンを駆動するときの第2の前記加圧力指令を求める指令補正部と、を備える、装置。
  2.  前記溶接作業プログラムは、前記ロボットを動作させて前記溶接ガンを教示位置及び前記教示姿勢に位置決めする位置決め命令と、前記溶接ガンを起動してワークを溶接する溶接命令と、を含み、
     前記動作実行部は、前記溶接作業プログラムの前記位置決め命令を実行することで、前記ロボットによって前記溶接ガンを前記教示位置及び前記教示姿勢に位置決めする一方、前記溶接命令を実行せず、
     前記加圧力取得部は、前記動作実行部が前記溶接ガンを前記教示位置及び前記教示姿勢に位置決めしたときの前記加圧力を取得する、請求項1に記載の装置。
  3.  前記動作実行部は、前記ロボットを動作させて前記溶接ガンを、前記溶接作業プログラムに規定される教示位置とは異なる位置及び前記教示姿勢に位置決めする位置決め命令を含む一方、前記溶接ガンを起動してワークを溶接する溶接命令を含まない姿勢再現プログラムを実行することで、前記ロボットによって前記溶接ガンを前記異なる位置及び前記教示姿勢に位置決めし、
     前記加圧力取得部は、前記動作実行部が前記溶接ガンを前記異なる位置及び前記教示姿勢に位置決めしたときの前記加圧力を取得する、請求項1に記載の装置。
  4.  前記溶接作業プログラムから前記教示姿勢を抽出する姿勢抽出部と、
     前記姿勢抽出部が抽出した前記教示姿勢に基づいて、前記姿勢再現プログラムを生成するプログラム生成部と、をさらに備える、請求項3に記載の装置。
  5.  前記異なる位置の入力を受け付ける入力受付部をさらに備え、
     前記プログラム生成部は、前記入力受付部が受け付けた前記異なる位置にさらに基づいて、前記姿勢再現プログラムを生成する、請求項4に記載の装置。
  6.  前記姿勢再現プログラムの実行時における前記ロボットの許容動作範囲の入力を受け付ける入力受付部をさらに備え、
     前記プログラム生成部は、前記入力受付部が受け付けた前記許容動作範囲にさらに基づいて、前記姿勢再現プログラムを生成する、請求項4に記載の装置。
  7.  前記加圧力取得部は、前記動作実行部が前記溶接ガンを第1の前記教示姿勢に位置決めしたときときの第1の前記加圧力を取得し、
     前記指令補正部は、前記第1の加圧力に基づいて、前記第1の教示姿勢で前記溶接ガンを駆動するための前記第1の加圧力指令を前記第2の加圧力指令へ補正する補正量を求め、
     前記装置は、
      第2の前記教示姿勢と前記第1の教示姿勢との差を求める姿勢差演算部と、
      前記姿勢差演算部が求めた前記差が予め定められた閾値よりも小さいか否かを判定する差判定部と、をさらに備え、
     前記差判定部によって前記差が前記閾値よりも小さいと判定された場合、前記動作実行部は、前記溶接ガンを前記第2の教示姿勢に位置決めする動作を実行せず、
     前記指令補正部は、前記第1の教示姿勢で求めた前記補正量を用いて、前記第2の教示姿勢で前記溶接ガンを駆動するための前記第1の加圧力指令を補正することで、該第2の教示姿勢での前記第2の加圧力指令を求める、請求項1~6のいずれか1項に記載の装置。
  8.  前記溶接作業プログラムには、前記溶接ガンを位置決めする第1の教示位置及び第1の前記教示姿勢と、第2の教示位置及び第2の前記教示姿勢と、が規定され、
     前記加圧力取得部は、前記動作実行部が前記溶接ガンを、前記第1の教示位置及び前記第1の教示姿勢に位置決めしたときの第1の前記加圧力を取得し、
     前記指令補正部は、
      前記第1の加圧力に基づいて前記第1の加圧力指令を補正することで、前記第1の教示位置及び前記第1の教示姿勢での前記第2の加圧力指令を求め、
      求めた前記第2の加圧力指令と、前記溶接作業プログラムに規定される前記第1の教示位置及び前記第2の教示位置と、に基づいて、前記第2の教示位置及び前記第2の教示姿勢での前記第2の加圧力指令を推定し、
     前記動作実行部は、前記溶接ガンを前記第2の教示姿勢に位置決めする動作を実行しない、請求項1~6のいずれか1項に記載の装置。
  9.  前記加圧力取得部は、前記動作実行部によって前記教示姿勢に位置決めされた前記溶接ガンを前記第1の加圧力指令で駆動したときに加圧力センサが計測した前記加圧力を取得する、請求項1~8のいずれか1項に記載の装置。
  10.  前記溶接ガンは、可動溶接チップと、該可動溶接チップの位置を検出する位置センサと、を有し、
     前記装置は、予め定められた基準姿勢に位置決めされた前記溶接ガンを前記第1の加圧力指令で駆動して前記可動溶接チップで被加圧物を加圧したときに前記位置センサが検出した第1の前記位置と、前記動作実行部によって前記教示姿勢に位置決めされた前記溶接ガンを前記第1の加圧力指令で駆動して前記可動溶接チップで前記被加圧物を加圧したときに前記位置センサが検出した第2の前記位置と、を取得する位置取得部をさらに備え、
     前記加圧力取得部は、前記位置取得部が取得した前記第1の位置及び前記第2の位置に基づいて、前記教示姿勢での前記加圧力を所定の演算により求める、請求項1~8のいずれか1項に記載の装置。
  11.  請求項1~10のいずれか1項に記載の装置を備える、前記ロボットの制御装置。
  12.  ロボットによって移動され、ワークを加圧して溶接する溶接ガンの加圧力を規定する加圧力指令を、該溶接ガンの姿勢に応じて補正する方法であって、
     プロセッサが、
      前記ロボット及び前記溶接ガンに溶接作業を実行させる溶接作業プログラムに規定される教示姿勢に前記溶接ガンを位置決めするように、前記ロボットを動作させ、
      前記溶接ガンを前記教示姿勢に位置決めしたときに前記溶接ガンを第1の前記加圧力指令で駆動したときの前記加圧力を取得し、
      取得した前記加圧力に基づいて前記第1の加圧力指令を補正することで、前記溶接作業プログラムの実行時に前記教示姿勢で前記溶接ガンを駆動するときの第2の前記加圧力指令を求める、方法。
PCT/JP2022/025192 2022-06-23 2022-06-23 溶接ガンの加圧力指令を補正する装置、制御装置、及び方法 WO2023248442A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2022/025192 WO2023248442A1 (ja) 2022-06-23 2022-06-23 溶接ガンの加圧力指令を補正する装置、制御装置、及び方法
TW112122249A TW202400337A (zh) 2022-06-23 2023-06-14 修正銲槍之加壓力指令之裝置、控制裝置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/025192 WO2023248442A1 (ja) 2022-06-23 2022-06-23 溶接ガンの加圧力指令を補正する装置、制御装置、及び方法

Publications (1)

Publication Number Publication Date
WO2023248442A1 true WO2023248442A1 (ja) 2023-12-28

Family

ID=89379301

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/025192 WO2023248442A1 (ja) 2022-06-23 2022-06-23 溶接ガンの加圧力指令を補正する装置、制御装置、及び方法

Country Status (2)

Country Link
TW (1) TW202400337A (ja)
WO (1) WO2023248442A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001047249A (ja) * 1999-07-30 2001-02-20 Mazda Motor Corp 溶接方法及び溶接装置
JP2005066654A (ja) * 2003-08-26 2005-03-17 Nachi Fujikoshi Corp スポット溶接方法
JP2016087663A (ja) * 2014-11-06 2016-05-23 ファナック株式会社 被加圧物へ作用する加圧力を一定とすることができるスポット溶接システム、方法、およびコンピュータプログラム
JP2020196024A (ja) * 2019-05-31 2020-12-10 ファナック株式会社 スポット溶接システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001047249A (ja) * 1999-07-30 2001-02-20 Mazda Motor Corp 溶接方法及び溶接装置
JP2005066654A (ja) * 2003-08-26 2005-03-17 Nachi Fujikoshi Corp スポット溶接方法
JP2016087663A (ja) * 2014-11-06 2016-05-23 ファナック株式会社 被加圧物へ作用する加圧力を一定とすることができるスポット溶接システム、方法、およびコンピュータプログラム
JP2020196024A (ja) * 2019-05-31 2020-12-10 ファナック株式会社 スポット溶接システム

Also Published As

Publication number Publication date
TW202400337A (zh) 2024-01-01

Similar Documents

Publication Publication Date Title
US9427873B2 (en) Robot controller, simple installation-type robot, and method of controlling simple installation-type robot
EP1834738B1 (en) Teaching position correcting apparatus and teaching position correction method
EP2375298B1 (en) Programming method for a robot, programming apparatus for a robot, and robot control system
WO2017064851A1 (ja) ロボット教示方法及びロボットアーム制御装置
US20080013825A1 (en) Simulation device of robot system
US10987742B2 (en) Method of controlling positioning control apparatus and positioning control apparatus
JP2014188585A (ja) スポット溶接ガンを有するスポット溶接システム
JP2002283059A (ja) サーボ式スポット溶接ガンの軸の基準位置設定方法及びロボット制御装置
JP2014233814A (ja) ロボット教示補助装置、ロボットシステムおよびロボット教示方法
KR102034541B1 (ko) 부품 조립용 로봇 시스템의 제어방법
JP7281910B2 (ja) ロボット制御システム
US11117257B2 (en) Robot system for performing learning control based on machining results and control method therefor
WO2023248442A1 (ja) 溶接ガンの加圧力指令を補正する装置、制御装置、及び方法
JP2019055469A (ja) キャリブレーションを行うロボット制御装置、計測システム及びキャリブレーション方法
EP1016490A1 (en) Method of detecting abrasion quantity of welding gun electrode and welding method
KR102034542B1 (ko) 부품 조립용 로봇 시스템 및 제어방법
JP2003245881A (ja) ロボットの制御装置および制御方法
US11351626B2 (en) Spot-welding system
JP4761886B2 (ja) ロボットによる曲げ加工システム及び曲げ加工方法
KR102034543B1 (ko) 부품 조립용 로봇 시스템의 제어방법
KR101206241B1 (ko) 로봇의 축 관리장치 및 방법
JP6091272B2 (ja) 多関節ロボットのバネ定数補正装置
WO2020121399A1 (ja) ロボット制御システム及びロボット制御方法
US20230053168A1 (en) Control device for robot, robot system, control method, and program
JP7351935B2 (ja) 制御装置、制御方法、情報処理装置及び情報処理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22948003

Country of ref document: EP

Kind code of ref document: A1