Device, control apparatus, method, and computer program for verifying composite operation

The system addresses the safety concerns of complex robot operations by calculating and adjusting motion state parameters, ensuring safe and reliable execution of composite robotic tasks.

WO2025253636A1PCT designated stage Publication Date: 2025-12-11FANUC LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/020891
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-07
Publication Date
2025-12-11

AI Technical Summary

Technical Problem

Existing robot systems lack a comprehensive method to verify the safety of complex operations, particularly when additional motions are integrated with main operations, which can lead to unintended movements of robot components.

Method used

A system that calculates and verifies the difference in motion state parameters between main and composite operations, using a processor to simulate and adjust operating conditions to prevent excessive displacement, velocity, or acceleration of specific robot parts.

Benefits of technology

Ensures the safety of robot operations by preventing unintended movements through real-time simulation and adjustment of operating conditions, thereby enhancing the reliability of complex robotic tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024020891_11122025_PF_FP_ABST
    Figure JP2024020891_11122025_PF_FP_ABST
Patent Text Reader

Abstract

In order to secure work safety of a robot for executing a composite operation, a technology for verifying the composite operation has been conventionally required. A device 50 for verifying a composite operation in which an additional operation for displacing a work position of a tool by changing a posture of the tool is added to a main operation for moving the tool along a predetermined work path by a robot 12, the device comprising a difference calculation unit 56 that obtains the difference between a first operation state parameter representing an operation state of a prescribed part of the robot 12 when the main operation to which the additional operation is not added is executed, and a second operation state parameter representing an operation state of the prescribed part when the composite operation is executed.
Need to check novelty before this filing date? Find Prior Art

Description

Apparatus, control device, method, and computer program for verifying composite operations

[0001] The present disclosure relates to an apparatus, a control device, a method, and a computer program for verifying a complex motion of a robot.

[0002] 2. Description of the Related Art A robot system that executes a composite motion (specifically, a weaving motion) by adding an additional motion to a main motion is known (see, for example, Patent Document 1).

[0003] JP 2011-206830 A

[0004] Conventionally, in order to ensure the safety of work by a robot that performs a complex operation, there has been a demand for a technique for verifying the complex operation.

[0005] In one aspect of the present disclosure, an apparatus for verifying a composite operation in which a main operation of moving a tool by a robot along a predetermined work path is added to an additional operation of changing the posture of the tool to displace the work position of the tool, includes a difference calculation unit that calculates the difference between a first motion state parameter that represents the motion state of a specified part of the robot when the main operation without the additional operation is executed, and a second motion state parameter that represents the motion state of the specified part when the composite operation is executed.

[0006] In another aspect of the present disclosure, a method for verifying a composite operation in which a main operation of moving a tool by a robot along a predetermined work path is added to an additional operation of displacing the work position of the tool by changing the attitude of the tool, comprises a processor calculating the difference between an operation state parameter representing the operation state of a specified part of the robot when the main operation without the additional operation is executed and an operation state parameter representing the operation state of the specified part when the composite operation is executed.

[0007] 1 is a schematic diagram of a robot system according to one embodiment; FIG. 2 is a block diagram of the robot system shown in FIG. 1; FIG. 3 shows an example of a movement path and trajectory of a working position relative to a workpiece; FIG. 4 shows an example of a change in the attitude of a tool when moving a working position along the trajectory shown in FIG. 3; FIG. 5 shows a functional block diagram for generating a main operation command, an additional operation command, and a composite operation command; FIG. 6 shows an example of a waveform of an additional operation command; FIG. 7 shows an example of an operation flow of the robot system shown in FIG. 2; FIG. 8 shows an example of a component coordinate system set for each movable component of the robot; FIG. 9 shows another example of an operation flow of the robot system shown in FIG. 2;

[0008] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. In various embodiments described below, like elements will be designated by like reference numerals, and duplicated descriptions will be omitted. First, a robot system 10 according to one embodiment will be described with reference to FIGS. 1 and 2. The robot system 10 includes a robot 12, a rotation sensor 14 (FIG. 2), and a control device 16.

[0009] In this embodiment, the robot 12 performs welding work on a workpiece 110. Specifically, the robot 12 is a vertically articulated robot and includes a robot base 18, a rotating body 20, a lower arm 22, an upper arm 24, a wrist 26, and a tool 28. The robot base 18 is fixed to the floor of a work cell. The rotating body 20 is attached to the robot base 18 so as to be rotatable about a vertical axis. The lower arm 22 has a base end attached to the rotating body 20 so as to be rotatable about a horizontal axis. The upper arm 24 has a base end rotatably attached to the tip of the lower arm 22. The wrist 26 has a base end rotatably attached to the tip of the upper arm 24.

[0010] Tool 28 is detachably attached to the tip of wrist 26. In this embodiment, tool 28 is a welding torch that generates an electric discharge between tool 28 and workpiece 110 in response to a command from control device 16, and melts a welding wire fed from a wire feeder (not shown) at work position 29 to weld workpiece 110. Tool 28 may also be a laser processing head that emits a laser beam to melt the welding wire with the laser beam and weld workpiece 110.

[0011] A plurality of servo motors 30 ( FIG. 2 ) are provided on each of the robot base 18, rotating body 20, lower arm 22, upper arm 24, and wrist 26. These servo motors 30 rotate the rotating body 20, lower arm 22, upper arm 24, wrist 26, and tool 28 of the robot 12 around their respective drive axes in response to commands from the control device 16, thereby moving the tool 28 to a desired position. Therefore, the rotating body 20, lower arm 22, upper arm 24, wrist 26, and tool 28 constitute a movable component MC of the robot 12.

[0012] The rotation sensor 14 has, for example, an encoder or a Hall element, and detects the rotation (rotational position, rotation angle) of the output shaft of the servo motor 30. In this embodiment, a plurality of rotation sensors 14 are provided for each of the plurality of servo motors 30. The rotation sensors 14 supply detection data Dr of the detected rotation to the control device 16.

[0013] The control device 16 controls the operation of the robot 12. As shown in Fig. 2, the control device 16 is a computer having a processor 32, a memory 34, an I / O interface 36, an input device 38, and a display device 40. The processor 32 has a CPU or a GPU, etc., and is communicatively connected to the memory 34, the I / O interface 36, the input device 38, and the display device 40 via a bus 42, and performs calculations for the function of verifying a composite operation, which will be described later, while communicating with these components.

[0014] The memory 34 includes RAM, ROM, or the like, and temporarily or permanently stores various data used in the arithmetic processing executed by the processor 32 and various data generated during the arithmetic processing. The memory 34 may be configured from a computer-readable non-transitory storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium.

[0015] The I / O interface 36 has, for example, an Ethernet (registered trademark) port, a USB port, an optical fiber connector, or an HDMI (registered trademark) terminal, and communicates data with external devices via a wired or wireless connection under instructions from the processor 32. In this embodiment, the servo motor 30 and the rotation sensor 14 are communicatively connected to the I / O interface 36.

[0016] The input device 38 has buttons, switches, a keyboard, a mouse, a touch panel, or the like, and receives data input from an operator. The display device 40 has a liquid crystal display, an organic EL display, or the like, and displays various data in a visible manner. The input device 38 and the display device 40 may be integrated into the housing of the control device 16, or may be provided as a separate entity (e.g., a PC) from the housing of the control device 16 and connected to the I / O interface 36 by wire or wirelessly.

[0017] As shown in FIG. 1 , a robot coordinate system C1 and a tool coordinate system C2 are set for the robot 12. The robot coordinate system C1 is a coordinate system for automatically controlling each movable component MC of the robot 12 (the rotating body 20, the lower arm 22, the upper arm 24, the wrist 26, and the tool 28). In this embodiment, the robot coordinate system C1 is set fixed with respect to the robot base 18 so that its origin is located at the center of the robot base 18 and its z axis coincides with the rotation axis (i.e., the vertical axis) of the rotating body 20. For convenience, in the following description, the positive x-axis direction of the robot coordinate system C1 will be referred to as the right, the positive y-axis direction will be referred to as the forward direction, and the positive z-axis direction will be referred to as the upward direction.

[0018] The tool coordinate system C2 is a coordinate system that defines the position and posture of the tool 28 in the robot coordinate system C1, and is set to be fixed with respect to the tool 28. In the present embodiment, the tool coordinate system C2 is set to be fixed with respect to the tool 28 so that its origin is located at a work position 29 of the tool 28 (for example, a position where the tool 28 melts the welding wire) and its z-axis direction coincides with the work direction of the tool 28 (for example, the direction of the central axis of the tip of the welding torch or the emission direction of the laser light).

[0019] When positioning the tool 28 at an arbitrary position, the processor 32 sets a tool coordinate system C2 in the robot coordinate system C1, generates commands for positioning the tool 28 at the position and orientation represented by the set tool coordinate system C2, and drives each servo motor 30. In this way, the processor 32 can position the tool 28 at an arbitrary position in the robot coordinate system C1 by operating the movable component MC of the robot 12.

[0020] In this embodiment, the processor 32 causes the robot 12 to execute a composite action CO, which is a main action MO that adds an additional action AO to the main action MO. The composite action CO is an action generated by adding an additional action AO that changes the attitude of the tool 28 and displaces the work position 29 in a predetermined direction to the main action MO that moves the tool 28 along a predetermined work path 100.

[0021] An example of the composite operation CO will be described below with reference to FIG. 3 . In this embodiment, the composite operation CO is a weaving operation performed to widen a bead formed during welding. A work path 100 for the main operation MO is defined by a plurality of teaching points TP that are taught in advance in the robot coordinate system C1. In the example shown in FIG. 3 , the work path 100 is set with respect to the workpiece 110 so as to extend linearly in the x-axis direction of the robot coordinate system C1. In this main operation MO, the robot 12 moves the tool 28 to the right along the work path 100 by sequentially positioning the tool 28 at the plurality of teaching points TP.

[0022] On the other hand, in this embodiment, the additional operation AO is a swinging operation that swings the work position 29 in a direction that intersects (specifically, perpendicular to) the work path 100 by repeatedly changing the position and attitude of the tool 28. This additional operation AO will be described with reference to FIG. 4. In FIG. 4, the tool 28A shown in the center of the page indicates the tool 28 when the main operation MO is being executed (i.e., when placed on the work path 100). Meanwhile, the tool 28B on the right side of the page indicates the tool 28 when placed at the endpoint 102 in FIG. 3 by the additional operation AO, and the tool 28C on the left side of the page indicates the tool 28 when placed at the endpoint 104 in FIG. 3 by the additional operation AO.

[0023] 4, in the additional operation AO, the processor 32 swings the working position 29 of the tool 28 in the forward and backward directions by repeatedly changing the position and posture of the tool 28 between the position and posture shown in the tool 28B and the position and posture shown in the tool 28C by the operation of the robot 12. The posture shown in the tool 28B is determined by the angle θf 0 It is expressed as a tilted posture.

[0024] On the other hand, the posture of the tool 28C is such that the positive direction of the z axis of the tool coordinate system C2 is tilted backward at an angle θr 0 These angles θf 0 and θr 0 represents the amount of change in the attitude of the tool 28 during the swinging operation. In the additional operation AO, the processor 32 uses the robot coordinate system C1 as a reference and rotates the tool 28 around the x-axis of the robot coordinate system C1, thereby changing the attitude between the attitude shown by the tool 28B and the attitude shown by the tool 28C. Therefore, in this embodiment, the angle θf representing the amount of change in the attitude 0 and θr 0 is expressed as an angle around the x-axis of the robot coordinate system C1.

[0025] In this way, when performing the composite operation CO, the processor 32 moves the tool 28 to the right along the working path 100 as the main operation MO, and also swings the working position 29 of the tool 28 back and forth between the front end point 102 and the rear end point 104 as the additional operation AO. As a result, the working position 29 of the tool 28 moves along the wavy trajectory 106 relative to the workpiece 110, and welds the workpiece 110. Note that the processor 32 may swing the working position 29 back and forth by changing only the attitude of the tool 28 in the additional operation AO.

[0026] The processor 32 generates a composite motion command CMc for causing the robot 12 to execute the above-described composite motion CO. Hereinafter, the generation of the composite motion command CMc will be described with reference to FIG. 5 . As shown in FIG. 5 , the control device 16 has a main motion command generator 44, an additional motion command generator 46, and a composite motion command generator 48. The main motion command generator 44 generates a main motion command CMm for causing the robot 12 to execute the above-described main motion MO. The main motion command CMm includes commands (position command, speed command, torque command, etc.) for positioning the tool 28 (specifically, the origin of the tool coordinate system C2) at the teaching point TP.

[0027] The additional operation command generating unit 46 generates an additional operation command CMa for causing the robot 12 to execute an additional operation AO (a swing operation in this embodiment). An example of the waveform of the additional operation command CMa is shown in FIG. 6. Note that the vertical axis of FIG. 6 indicates the amplitude A of swinging the tool 28 in the forward and backward directions (in other words, the distance A from the work path 100 to the end points 102 and 104), and the horizontal axis indicates time t. In the example shown in FIG. 6, the additional operation command CMa has an amplitude A 0 with a period T 0 (That is, frequency f 0 = 1 / T 0 The waveform of the additional operation command CMa may be any waveform such as a trigonometric function, a triangular wave, a trapezoidal wave, a sawtooth wave, or the like.

[0028] The composite motion command generator 48 is, for example, an adder, and generates a composite motion command CMc (=CMm+CMa) by adding the additional motion command CMa generated by the additional motion command generator 46 to the main motion command CMm generated by the main motion command generator 44. The composite motion command CMc generated by the main motion command generator 44 is output to the servo motor 30 of the robot 12 via the I / O interface 36 and a servo amplifier (not shown). In accordance with this composite motion command CMc, the robot 12 executes the composite motion CO and moves the tool 28 along the trajectory 106 shown in FIG. 3 .

[0029] The main action command generator 44, the additional action command generator 46, and the composite action command generator 48 may be functional modules realized by a computer program PG executed by the processor 32. In this case, the processor 32 functions as the main action command generator 44, the additional action command generator 46, and the composite action command generator 48. Alternatively, at least one of the main action command generator 44, the additional action command generator 46, and the composite action command generator 48 may be implemented in the control device 16 as hardware (such as an analog circuit).

[0030] The operator pre-sets an operating condition CD that defines the additional operation AO. The operating condition CD can be, for example, the amplitude A 0 , frequency f 0 (or period T 0 ), and the angle θf shown in FIG. 0 and θr 0 For example, the processor may select an amplitude A as an operating condition CD. 0 , frequency f 0 , angle θf 0 and θr 0 and displays the image data ID1 on the display device 40. In this manner, in this embodiment, the processor 32 functions as the image generation unit 52 (FIG. 2) that generates the image data ID.

[0031] The operator operates the input device 38 to input the amplitude A 0 , frequency f 0 , angle θf 0 and θr 0The processor 32 inputs the desired value of the amplitude A through the image data ID1. 0 , frequency f 0 , angle θf 0 and θr 0 In this manner, in this embodiment, the processor 32 functions as the input receiving unit 54 (FIG. 2) that receives the input IP from the operator.

[0032] The processor 32 receives the operating condition CD (amplitude A 0 , frequency f 0 , angle θf 0 and θr 0 ) is stored in an operating condition database DBc stored in the memory 34. Meanwhile, a work program WP for causing the robot 12 to perform welding work is constructed in advance. The work program WP includes a command code INm for the main operation MO, a command code INa for the additional operation AO, and a command code INt for starting and stopping the tool 28. The command code INm for the main operation MO includes, for example, a command code for positioning the tool 28 (the origin of the tool coordinate system C2) at the teaching point TP.

[0033] On the other hand, the instruction code INa for the additional operation AO includes, for example, instruction codes for starting and ending the additional operation AO and an instruction code for referencing the operating conditions CD stored in the operating condition database DBc. When the processor 32 reads the instruction code INa, it refers to the operating conditions CD stored in the operating condition database DBc.

[0034] Then, the processor 32 functions as an additional operation command generator 46 and generates the amplitude A set by the operator as the operation condition CD. 0 , frequency f 0 , angle θf 0 and θr 0 In this way, the processor 32 generates the main action command CMm and the additional action command CMa (i.e., the composite action command CMc) in accordance with the work program WP (instruction codes INm, INa, etc.).

[0035] Here, when the robot 12 is made to perform a composite operation CO that includes an additional operation AO that changes the posture of the tool 28 as shown in FIG. 4, a predetermined part X of the robot 12 (e.g., the tip of the upper arm 24 or the base end of the wrist 26) may move unintentionally (e.g., an excessive increase in the displacement, speed, or acceleration of the part X).

[0036] Therefore, in this embodiment, the processor 32 verifies the composite action CO for work safety. A method for verifying the composite action CO will be described below with reference to Fig. 7. The processor 32 starts the flow shown in Fig. 7 when it receives an action start command from an operator, the computer program PG, or a higher-level controller.

[0037] In step S1, the processor 32 functions as the input receiving unit 54 and receives an input IP2 that specifies a predetermined part X of the robot 12. As an example, component coordinate systems C3 to C6 are set for the rotating body 20, the lower arm 22, the upper arm 24, and the wrist 26, which are movable components MC of the robot 12. The component coordinate systems C3 to C6 will be described with reference to FIG. 8.

[0038] In this embodiment, the component coordinate system C3 is a moving coordinate system that is fixed with respect to the rotating body 20 and rotates integrally with the rotating body 20 when the rotating body 20 rotates with respect to the robot base 18. The origin of the component coordinate system C3 is fixedly set, for example, on the central axis of the output shaft of the servo motor 30 that rotates the rotating body 20 with respect to the robot base 18. Any position of the rotating body 20 can be expressed as coordinates Q3 (x, y, z) in the component coordinate system C3.

[0039] Similarly, the component coordinate systems C4, C5, and C6 are set to be fixed with respect to the lower arm 22, the upper arm 24, and the wrist 26, respectively, and rotate integrally with the lower arm 22, the upper arm 24, and the wrist 26. The origins of the component coordinate systems C4, C5, and C6 may be set on the central axes of the output shafts of the servo motors 30 that rotationally drive the lower arm 22, the upper arm 24, and the wrist 26, respectively. Any positions of the lower arm 22, the upper arm 24, and the wrist 26 are represented as coordinates Q4, Q5, and Q6 of the component coordinate systems C4, C5, and C6, respectively.

[0040] After starting step S1, the processor 32 functions as the image generation unit 52 to generate image data ID2 for inputting coordinates Q3, Q4, Q5, or Q6, and displays the image data ID2 on the display device 40. Suppose the operator operates the input device 38 to specify a predetermined part X of the robot 12, and inputs IP2 specifying coordinates Q6 (x, y, z) in the component coordinate system C6. _1 The processor 32 functions as the input receiving unit 54 and receives the input IP2 through the image data ID2. _1 Accept.

[0041] In this case, the processor 32 calculates the position P of the wrist 26 represented by the coordinates Q6 (x, y, z) input by the operator. Q is designated as the predetermined portion X. Q may be on the surface of the wrist 26, or may be inside or outside the wrist 26. It should be understood that the coordinates Q3, Q4, and Q5 of the component coordinate systems C3, C4, and C5 can also be similarly designated as the region X. Thus, the processor 32 uses the input IP2 designating the coordinates Q3 to Q6 of the component coordinate systems C3 to C6 as the input IP2 designating the region X. _1 Accept.

[0042] As another example, after starting step S1, the processor 32 functions as the image generation unit 52 to generate image data ID3 of a robot model 12M ( FIG. 8 ) that is a model of the robot 12, and displays the image data ID3 on the display device 40. The robot model 12M is, for example, a three-dimensional CAD model, and includes a robot base model 18M, a rotating torso model 20M, a lower arm model 22M, an upper arm model 24M, and a wrist model 26M. Furthermore, as shown in FIG. 8 , component coordinate systems C3, C4, C5, and C6 are set for the rotating torso model 20M, the lower arm model 22M, the upper arm model 24M, and the wrist model 26M, respectively. The model data MD of the robot model 12M is stored in advance in the memory 34.

[0043] Suppose an operator operates the input device 38 to specify a predetermined part X of the robot 12, and selects an arbitrary position P on the upper arm model 24M among the parts of the robot model 12M displayed in the image data ID3. 24M Click to specify the input IP2 _2 The processor 32 functions as the input receiving unit 54 and receives the input IP2 through the image data ID3. _2 Accept.

[0044] Then, the processor 32 receives the input IP2 _2 Position P specified by 24M Coordinate Q of the component coordinate system C5 24M (x, y, z) is obtained based on the model data MD. In this case, the processor 32 obtains the coordinates Q 24M A position on the upper arm model 24M expressed by (x, y, z) is designated as the predetermined region X.

[0045] Alternatively, the processor 32 may select an input IP2 by clicking and specifying the upper arm model 24M. _2 When the upper arm model 24M is received, a predetermined position P 24M ' may be designated as the predetermined portion X. This position P 24MThe input IP2′ is predetermined as, for example, the origin of the component coordinate system C5, the center of gravity of the upper arm model 24M, or the center of the base end or the tip end of the upper arm model 24M. _2 When the position P 24M ' coordinate Q 24M '(x, y, z) is obtained based on the model data MD, and the coordinates Q 24M A position on the upper arm model 24M expressed by '(x, y, z) is designated as a predetermined region X.

[0046] The processor 32 determines the position P designated as the region X when the upper arm model 24M is clicked. 24M An input IP may be further received to select the position P' from options such as the origin of the component coordinate system C5, the center of gravity of the upper arm model 24M, the center of the base end, and the center of the tip end. 24M ' can be selected arbitrarily.

[0047] It should be understood that the rotating torso model 20M, the lower arm model 22M, and the wrist model 26M can also be similarly designated as the region X. Thus, the processor 32 receives an input IP2 specifying an arbitrary region of the robot model 12M (for example, the rotating torso model 20M, the lower arm model 22M, the upper arm model 24M, or the wrist model 26M) through the image data ID3 as an input IP2 specifying the region X of the robot 12. _2 Accept.

[0048] As described above, in step S1, the processor 32 functions as the input receiving unit 54 and receives an input IP2 (IP2 _1 or IP2 _2 Then, the processor 32 receives the position data Q (for example, the above-mentioned coordinates Q6, Q 24M or Q 24M ') is registered in the monitored portion database DBp stored in the memory 34.

[0049] In step S2, the processor 32 executes the work program WP. In this embodiment, when the processor 32 sequentially reads and executes each instruction code IN defined in the work program WP, it generates various commands CM for the robot 12, such as a main operation command CMm, an additional operation command CMa, and a composite operation command CMc, but does not transmit the commands CM to the actual robot 12.

[0050] That is, after starting step S2, the processor 32 performs only the calculation process to generate the command CM (i.e., performs a simulation of the work program WP) without actually operating the robot 12. Therefore, in this embodiment, the robot 12 and the rotation sensor 14 can be removed from the control device 16 (so-called offline).

[0051] In step S3, the processor 32 calculates a first motion state parameter PR1 that represents the motion state of a predetermined part X of the robot 12 when the main motion MO is executed without adding the additional motion AO. n and a second motion state parameter PR2 representing the motion state of the part X when the composite motion CO is executed. n Difference Δ n Here, the motion state parameter PR representing the motion state of the part X of the robot 12 includes at least one of the position P, velocity V, and acceleration α of the part X.

[0052] The processor 32 calculates the current time t based on the main operation command CMm for the main operation MO. n The first operating state parameter PR1 of the part X at n In step S1, if the predetermined part X of the robot 12 is the position P of the wrist 26 represented by the coordinate Q6 in the component coordinate system C6, Q In this case, the processor 32 calculates the current time t n Based on the main operation command CMm generated in Q Coordinates O1 in the robot coordinate system C1 Q_n is calculated by calculation.

[0053] Here, when the robot 12 is operated in accordance with the main operation command CMm, n The coordinate O1 in the component coordinate system C6 in the robot coordinate system C1 C_n (x, y, z, w, p, r) can be calculated based on the main motion command CMm. C_n Among (x, y, z, w, p, r), the coordinates (x, y, z) are the coordinates at the current time t n On the other hand, the coordinates (w, p, r) indicate the position of the origin of the component coordinate system C6 at the current time t n 10 shows the orientation (directions of each axis) of the component coordinate system C6 with respect to the robot coordinate system C1.

[0054] Then, the processor 32 calculates the calculated coordinate O1 C_n and the coordinate Q6 of the component coordinate system C6 representing the part X stored in the monitored part database DBp, the coordinate Q6 of the component coordinate system C6 is converted into the robot coordinate system C1. n The position P of the wrist 26 in the robot coordinate system C1 at Q Coordinates O1 Q_n This coordinate O1 Q_n is the time t when only the main action MO is executed without adding the additional action AO. n The position X (i.e., the position P of the wrist 26) Q ) in the robot coordinate system C1 n Thus, the processor 32 calculates the current time t n First operating state parameter PR1 at n As a result, the position P1 of the part X n (coordinates O1 Q_n ) can be obtained.

[0055] The processor 32 also calculates the current time t n First operating state parameter PR1 at n The acquired position P1 n (coordinates O1 Q_n ), the position X (for example, the position P Q ) velocity V1 n and acceleration α1n 7, while the determination in step S6 is NO, the processor 32 repeatedly executes a loop of steps S3 to S6 at a predetermined control period τ (for example, 50 [mmsec]).

[0056] The processor 32 n The position P1 of the part X obtained by n and the time t when step S3 was executed last time. n-1 (However, τ = t n -t n-1 ) The position P1 of the part X obtained by n-1 Difference δP1 n = P1 n -P1 n-1 (=O1 Q_n -O1 Q_n-1 Then, the processor 32 calculates the current time t n Velocity V1 of part X at n V1 n = δP1 n / τ = (P1 n -P1 n-1 ) / (t n -t n-1 ) Furthermore, the processor 32 calculates the current time t n Acceleration α1 of part X at n α1 n = δV1 n / τ = (V1 n -V1 n-1 ) / (t n -t n-1 ) based on the main operation command CMm for the main operation MO. n The first operating state parameter PR1 of the part X at n As a result, the position P1 of the part X n , speed V1 n and acceleration α1 n can be obtained.

[0057] Furthermore, the processor 32 calculates the current time t based on the main operation command CMm and the additional operation command CMa. n The second operating state parameter PR2 of the part X at nIf the position P of the wrist 26 is obtained in step S1, Q is designated as the site X, the processor 32 calculates the current time t n Based on the composite motion command CMc (=CMm+CMa) generated in Q Coordinate O2 in the robot coordinate system C1 Q_n is calculated by calculation.

[0058] Here, when the robot 12 is operated in accordance with the composite operation command CMc, n The coordinate O2 in the component coordinate system C6 in the robot coordinate system C1 C_n can be calculated based on the composite motion command CMc. The processor 32 calculates the calculated coordinate O2 C_n and coordinate Q6 in the component coordinate system C6 representing the part X stored in the monitored part database DBp, and the coordinate Q6 in the component coordinate system C6 is converted into the robot coordinate system C1, whereby the coordinate O2 Q_n can be obtained.

[0059] This coordinate O2 Q_n is the time t when the composite operation CO is executed. n The position X (i.e., the position P of the wrist 26) Q ) at position P2 in the robot coordinate system C1 n Thus, the processor 32 calculates the current time t n The second operating state parameter PR2 at n As a result, the position P2 of the part X n : Coordinate O2 Q_n can be obtained.

[0060] The processor 32 also calculates the current time t n The second operating state parameter PR2 at n The acquired position P2 n (coordinates O2 Q_n ), the position X (for example, the position P Q ) speed V2 n and acceleration α2 n Specifically, the processor 32 calculates the velocity V2 n α2n V2 n = δP2 n / τ = (P2 n -P2 n-1 ) / (t n -t n-1 ), and α2 n = δV2 n / τ = (V2 n -V2 n-1 ) / (t n -t n-1 ) based on the composite action command CMc (i.e., the main action command CMm and the additional action command CMa). n The second operating state parameter PR2 of the part X at n As a result, the position P2 of the part X n , speed V2 n and acceleration α2 n Get.

[0061] Then, the processor 32 calculates the first operating state parameter PR1 n (Position P1 n , speed V1 n , acceleration α1 n ) and a second operating state parameter PR2 n (Position P2 n , speed V2 n and acceleration α2 n ) and the difference Δ n Specifically, the processor 32 calculates the difference Δ n As a result, position P1 n and P2 n The difference ΔP n = | P1 n -P2 n |, speed V1 n and V2 n The difference ΔV n = | V1 n -V2 n |, and acceleration α1 n and α2 n The difference Δα n = |α1 n -α2 n Thus, in this embodiment, the processor 32 calculates the difference Δ n This functions as the difference calculation unit 56 (FIG. 2) that calculates

[0062] In step S4, the processor 32 calculates the difference Δ n is a predetermined threshold Δ th Specifically, the processor 32 determines whether the position P n The difference ΔP n and threshold ΔP th , velocity V n The difference ΔV n and threshold ΔV th , and acceleration α n The difference Δα n and threshold Δα th Then, the processor 32 compares the difference ΔP n , ΔV n and Δα n At least one of the thresholds ΔP th , ΔV th and Δα th When it exceeds (that is, ΔP n >ΔP th , ΔV n >ΔV th , or Δα n >Δα th If so, the answer is YES.

[0063] On the other hand, the processor 32 calculates the difference ΔP n , ΔV n and Δα n is the threshold ΔP th , ΔV th and Δα th When ΔP n ≦ΔP th , ΔV n ≦ΔV th , and Δα n ≦Δα th If the processor 32 determines YES, the process proceeds to step S5, whereas if the processor 32 determines NO, the process proceeds to step S6. n is the threshold Δ th The difference determination unit 58 (FIG. 2) determines whether the difference exceeds the threshold.

[0064] In step S5, the processor 32 executes a predetermined safety measure process SP. This safety measure process SP is a process for ensuring the safety of the work of the robot 12. In this embodiment, as the safety measure process SP, the processor 32 executes a process for ensuring the safety of the work of the robot 12. In this embodiment, as the safety measure process SP, the processor 32 executes a process for ensuring the safety of the work of the robot 12. n The threshold Δ th To satisfy the following, the operating conditions CD that define the additional operation AO are automatically adjusted.

[0065] Specifically, the processor 32 selects the amplitude A 0 , frequency f 0 (or period T 0 ), or angle θf 0 Or θr 0 (i.e., the amount of change in the attitude of the tool 28). As an example, after starting the flow of FIG. 7 (for example, step S1), the processor 32 functions as the input receiving unit 54 to receive a plurality of operating conditions (amplitude A 0 , frequency f 0 , angle θf 0 and θr 0 ) and receives an input IP3 for selecting the operating condition CD to be adjusted.

[0066] For example, the processor 32 functions as the image generating unit 52 to generate image data ID4 for selecting the operating condition CD to be adjusted, and displays the image data ID4 on the display device 40. The operator operates the input device 38 to select the amplitude A 0 , frequency f 0 , angle θf 0 and θr 0 The processor 32 functions as an input receiving unit 54 and selects at least one of the amplitude A 0 , frequency f 0 , angle θf 0 and θr 0 An input IP3 for selecting at least one of the above is received through image data ID4.

[0067] In step S5, the processor 32 then selects the amplitude A selected by the input IP3. 0 , frequency f 0 , angle θf0 or θr 0 For example, the processor 32 automatically adjusts the difference Δ n The threshold Δ th To fit the following, the amplitude A 0 , frequency f 0 , or angle θf 0 Or θr 0 is adjusted by reducing it by a predetermined adjustment amount β (β is amplitude, frequency, or angle).

[0068] Here, the amplitude A 0 , frequency f 0 , and the angles θf and θr (the amount of change in the posture of the tool 28) are reduced, the difference ΔP n , the difference in speed V ΔV n , and the difference Δα of acceleration α n The adjustment amount β may be determined in advance by an operator. The processor 32 may function as an input receiving unit 54 and receive an input IP of the adjustment amount β via the input device 38.

[0069] In this way, the processor 32 performs the safety measure processing SP by 0 , frequency f 0 , angle θf 0 or θr 0 Therefore, the processor 32 functions as a processing execution unit 60 (FIG. 2) that executes the safety measure processing SP. Note that the processor 32 adjusts the amplitude A after adjustment in step S5. 1 , frequency f 1 , angle θf 1 or θr 1 At the adjusted time t n (or at time t n The welding program WP command code IN is stored in the operating condition database DBc in association with the corresponding welding program WP command code IN.

[0070] In step S6, the processor 32 determines whether the work program WP started in step S2 has ended. If the processor 32 determines YES, it ends the flow of FIG. 7, whereas if the processor 32 determines NO, it returns to step S3. Thus, while the processor 32 determines NO in step S6, it repeatedly executes the loop of steps S3 to S6 at the control period τ. As a result, the adjusted operating conditions CD (amplitude A 1 , frequency f 1 , angle θf 1 or θr 1 ) at the adjusted time t n (or instruction code IN) and stored.

[0071] After adjusting the operating conditions CD in this manner, the processor 32 executes the work program WP to cause the actual robot 12 to perform welding work, and transmits a composite operation command CMc to the robot 12. After starting the work program WP, the processor 32 reads the command code INa for the additional operation AO and refers to the operating conditions database DBc.

[0072] At this time, the operating condition database DBc stores the adjusted operating conditions CD at time t n (or instruction code IN) is stored. After the start of the working program WP, the processor 32 starts the working program WP at a time t n When generating the additional operation command CMa, the adjusted operation condition CD (amplitude A 1 , frequency f 1 , angle θf 1 or θr 1 ) is used.

[0073] By generating the additional motion command CMa using the adjusted motion condition CD in this way, the first motion state parameter PR1 of the part X of the robot 12 that executes the composite motion CO is n and the second operating state parameter PR2 n Difference Δ n is the threshold Δ thThis makes it possible to prevent the displacement, velocity, or acceleration of the part X from increasing excessively, thereby preventing the part X from making an unintended movement.

[0074] As described above, in this embodiment, the processor 32 functions as the image generation unit 52, the input reception unit 54, the difference calculation unit 56, the difference determination unit 58, and the processing execution unit 60 to verify the composite action CO. Therefore, the image generation unit 52, the input reception unit 54, the difference calculation unit 56, the difference determination unit 58, and the processing execution unit 60 constitute the device 50 ( FIG. 2 ) that verifies the composite action CO.

[0075] In this device 50, the difference calculation unit 56 calculates the first operating state parameter PR1 n and the second operating state parameter PR2 n Difference Δ n According to this configuration, the operator can determine the difference Δ n As a result, the operator can take safety measures, such as re-verifying the operating conditions CD, to avoid the unintended movement.

[0076] Furthermore, according to the device 50, the difference calculation unit 56 calculates the first motion state parameter PR1 based on the main motion command CMm for the main motion MO. n and obtains a second motion state parameter PR2 based on the main motion command CMm and the additional motion command CMa for the additional motion AO (i.e., the composite motion command CMc). n According to this configuration, the difference Δ n Therefore, before the robot 12 performs an actual task, the difference Δ n can be confirmed.

[0077] In the apparatus 50, the difference determination unit 58 determines the difference Δ n is a predetermined threshold Δ thIn this configuration, it is determined whether the difference Δ n It is possible to automatically determine whether or not the value is excessive.

[0078] In the device 50, the processing execution unit 60 determines the difference Δ n is the threshold Δ th If it is determined that the difference Δ n The threshold Δ th According to this configuration, as described above, when the robot 12 is made to execute the composite operation CO, the difference Δ n is the threshold Δ th As a result, unintended movement of the part X can be avoided, thereby ensuring the safety of the work.

[0079] In the device 50, the input receiving unit 54 receives a plurality of operating conditions CD (for example, amplitude A 0 , frequency f 0 , angle θf 0 and θr 0 ) to be adjusted. n Any operating condition CD that is effective in reducing the ΔT can be selected as the adjustment target.

[0080] In the apparatus 50, the processing execution unit 60 sets the amplitude A of the swinging motion as the additional motion AO as the motion condition CD. 0 , frequency f 0 , or the change in the posture of the tool 28 (angle θf 0 or θr 0 According to this configuration, by appropriately adjusting the operating condition CD of the rocking operation, the difference Δ n The threshold Δ th It can be contained below.

[0081] In the device 50, the input receiving unit 54 receives an input IP2 specifying a predetermined region X (step S1). n In the device 50, the input receiving unit 54 receives, as the input IP2, the input IP2 specifying the coordinates Q3 to Q6 in the component coordinate systems C3 to C6. _1 According to this configuration, the operator receives the difference Δ n The area X to be monitored can be specified in detail.

[0082] Alternatively, the image generation unit 52 generates image data ID3 of a robot model 12M that is a model of the robot 12, and the input reception unit 54 receives, as an input IP2, an input IP2 that specifies an arbitrary part of the robot model 12M (for example, an upper arm model 24M) through the image data ID3. _2 According to this configuration, the operator receives the difference Δ n The part X to be monitored can be easily specified from the robot model 12M displayed in the image data ID3.

[0083] In the apparatus 50, the image generating unit 52 calculates the difference Δ n Specifically, the processor 32 functions as the image generating unit 52 to generate image data ID5 that displays the difference Δ n (For example, the difference ΔP n , ΔV n or Δα n ) is generated and displayed on the display device 40.

[0084] Here, the processor 32 calculates the difference Δ n In this case, the processor 32 may generate image data ID5 that displays the difference Δ n At the time t n , the associated instruction code INm or INa, or the time t n The position on the work path 100 (coordinate O in the robot coordinate system C1) corresponding to the difference Δ nAlternatively, the processor 32 may display the plurality of differences Δ n Among these, the difference Δ n According to this configuration, the operator can generate image data ID5 that displays only the calculated difference Δ n This can be easily confirmed by visually checking.

[0085] In addition, in step S5 described above, the processor 32 may issue an alarm AL as a safety measure process SP instead of (or in addition to) automatically adjusting the operating conditions CD. Specifically, the processor 32 functions as the process execution unit 60 and calculates the difference Δ n is the threshold Δ th An image or audio data warning AL indicating that the difference Δ is greater than Δ may be generated and output through the display device 40 or a speaker (not shown). n It can be intuitively recognized that is excessive.

[0086] When adjusting the operating condition CD in step S5, the processor 32 uses the difference Δ n For example, the adjustment amount β may be determined based on the difference ΔP n , ΔV n and Δα n For each of the amplitude A 0 , frequency f 0 , angle θf 0 and θr 0 An adjustment amount database DBa storing the adjustment amounts β in association with each other may be stored in the memory 34 in advance.

[0087] Such an adjustment amount database DBa can be created by an experimental method or a simulation. n , ΔV n or Δα n is applied to the adjustment amount database DBa, the difference ΔP n , ΔV n or Δα n The amplitude A corresponding to 0, frequency f 0 , angle θf 0 or θr 0 The adjustment amount β can be determined.

[0088] Alternatively, the difference Δ n A machine learning model LM showing the correlation between the amplitude A and the adjustment amount β may be stored in advance in the memory 34. Such a machine learning model LM can be constructed, for example, by performing reinforcement learning as described below in the machine learning device LA. Specifically, the machine learning device LA first randomly selects an adjustment amount β, and adjusts the operating condition CD (i.e., the amplitude A 0 , frequency f 0 , angle θf 0 or θr 0 ) and the machine learning device LA adjusts the adjusted operating conditions CD (amplitude A 1 , frequency f 1 , angle θf 1 or θr 1 ) to try out the operations of steps S2 to S4 described above.

[0089] If the machine learning device LA determines YES in step S4 executed at this time, it gives a negative reward −R to the machine learning model LM, whereas if the machine learning device LA determines NO, it gives a positive reward +R to the machine learning model LM. In addition, the machine learning device LA calculates the first motion state parameter PR1, the second motion state parameter PR2, and the difference Δ n The adjustment amount β and operating condition CD used at this time are taken in as learning data.

[0090] By this reinforcement learning, the learning of the machine learning model LM is n The threshold Δ th As a result, the machine learning model LM is guided to a direction where the difference Δ n The threshold Δ th It is possible to learn the optimum adjustment amount β to keep it within the range below. The processor 32 may have the function of the machine learning device LA.

[0091] After learning the adjustment amount β, the processor 32 executes the flow of FIG. 7, and in step S5, calculates the first operating state parameter PR1, the second operating state parameter PR2, and the difference Δ n are input to the machine learning model LM together with the operating conditions CD at this time. The machine learning model LM then outputs the adjustment amount β as an optimal solution corresponding to the input data. In this way, the processor 32 can determine the optimal adjustment amount β from the machine learning model LM in step S5.

[0092] The difference determination unit 58 may be omitted from the device 50. In this case, the processor 32 may determine, for example, the difference Δ n The image data ID5 showing the difference Δ n Alternatively, the processor 32 may visually inspect the difference Δ n may be transmitted to another computer (for example, a host controller, a server of the manufacturer of the robot system 10, etc.). n By checking the above, the composite action CO can be verified.

[0093] The processing execution unit 60 may be omitted from the device 50. In this case, step S5 is omitted from the flow of Fig. 7. In this case, the processor 32 executes the process of step S5 by determining the difference Δ n The image data ID5 showing the above may be generated and displayed on the display device 40 or transmitted to another computer such as a higher-level controller.

[0094] The input receiving unit 54 may be omitted from the device 50. In this case, the operating condition CD (amplitude A 0 , frequency f 0 , angle θf 0 and θr 0 In this case, the operator does not need to input the input IP1. nThe area X to be monitored may be predetermined (for example, the center of the tip of the wrist 26). In this case, the operator does not need to input the input IP2 specifying the area X. Also, the operating conditions CD to be automatically adjusted in step S5 may be predetermined. In this case, the operator does not need to input the input IP3 selecting the operating conditions CD. Also, the image generation unit 52 may be omitted from the device 50.

[0095] Next, other functions of the robot system 10 will be described with reference to Fig. 9. By executing the flow of Fig. 9, the processor 32 causes the actual robot 12 to perform the composite operation CO, and actually performs welding work on the workpiece 110. In this embodiment, the processor 32 starts the flow of Fig. 9 without executing the flow of Fig. 7. Therefore, at the start of the flow of Fig. 9, the operating condition database DBc contains the initial operating conditions CD (amplitude A 0 , frequency f 0 , angle θf 0 and θr 0 ) is stored.

[0096] After executing step S1 described above, the processor 32 executes the work program WP in step S2'. In this embodiment, the processor 32 sequentially reads and executes each command code IN defined in the work program WP, generates various commands CM such as a main operation command CMm, an additional operation command CMa, and a composite operation command CMc, and transmits them to the actual robot 12. As a result, the robot 12 performs a composite operation CO in accordance with the composite operation command CMc, while performing a welding operation on the workpiece 110.

[0097] In step S3′, the processor 32 functions as the difference calculation unit 56 to calculate the first operating state parameter PR1 n and the second operating state parameter PR2 n Difference Δ nSpecifically, similarly to the above-described embodiment, the processor 32 obtains the first motion state parameter PR1 based on the main motion command CMm. Meanwhile, the processor 32 obtains the second motion state parameter PR2 based on the rotation detection data Dr detected by the rotation sensor 14 during execution of the composite motion CO.

[0098] Specifically, after the start of step S2′, the processor 32 acquires the detection data Dr detected by the rotation sensor 14 while the robot 12 is executing the composite action CO in accordance with the composite action command CMm at a control period τ (in other words, each time step S3′ is executed). Q is designated as the region X, the processor 32 calculates the current time t based on the detection data Dr. n The coordinate O2 in the component coordinate system C6 in the robot coordinate system C1 C_n Ask for.

[0099] The processor 32 then calculates the coordinate O2 C_n and coordinate Q6 in the component coordinate system C6 representing the part X stored in the monitored part database DBp, and the coordinate Q6 in the component coordinate system C6 is converted into the robot coordinate system C1, whereby the coordinate O2 Q_n In this way, the processor 32 obtains the current time t based on the detection data Dr. n The second operating state parameter PR2 at n As a result, the position P2 of the part X n : Coordinate O2 Q_n The processor 32 can also obtain the current time t n The second operating state parameter PR2 at n The acquired position P2 n Based on this, the velocity V2 of the part X n and acceleration α2 n Ask for.

[0100] In this way, the processor 32 calculates the first operating state parameter PR1 based on the main operating command CMm. n While acquiring the second operating state parameter PR2 based on the detection data Dr, nThen, the processor 32 obtains the current time t n The difference between the two at Δ n In step S3', the processor 32 calculates the current time t based on the main operation command CMm and the additional operation command CMa (composite operation command CMm) without using the detection data Dr of the rotation sensor 14, as in the above-described embodiment. n The second operating state parameter PR2 of the part X at n may be obtained.

[0101] In step S3', the processor 32 determines whether the current time t n A time point τ that is one control period τ ahead (i.e., in the future) n+1 Operating state parameter PR n+1 Specifically, the processor 32 analyzes the welding program WP and obtains the welding time τ n+1 Here, processor 32 calculates a main operation command CMm to be generated at any time τ during the execution of the welding program WP from a command code IN (specifically, a command code INm for a main operation MO, etc.) defined in the welding program WP. n The main operation command CMm can be calculated.

[0102] The processor 32 determines the current time t n The time point τ that is one control period τ ahead of n+1 The instruction code IN (instruction code INm, etc.) of the welding program WP corresponding to the previous time point τ n+1 Then, the processor 32 calculates the main operation command CMm to be transmitted to the robot 12 at the time τ n+1 First operating state parameter PR1 at n+1 (Specifically, position P1 n+1 , speed V1 n+1 , acceleration α1 n+1 ) to obtain the

[0103] Also, the processor 32 calculates the value of the previous time τ n+1 The instruction code IN of the welding program WP corresponding to the current time t (specifically, the instruction code INa for the additional operation AO, etc.) is analyzed.n By referring to the operating conditions CD stored in the database DBc, n+1 The additional motion command CMa to be generated can be calculated by:

[0104] Therefore, the processor 32 calculates the welding time from the welding program WP and the operating conditions CD at a previous time τ n+1 The processor 32 can calculate the composite motion command CMc (=CMm+CMa) to be generated at the time τ n+1 The second operating state parameter PR2 at n+1 (Specifically, position P2 n+1 , speed V2 n+1 , acceleration α2 n+1 ) to obtain the

[0105] Then, the processor 32 calculates the first operating state parameter PR1 n+1 and the second operating state parameter PR2 n+1 Difference Δ n+1 In this way, the processor 32 calculates the time t during the execution of the work program WP. n A time t ahead (in the future) n+1 Difference Δ n+1 The processor 32 calculates the current time t n A time point t that is an integer multiple mτ (m=1, 2, 3, . . . ) of the control period τ ahead of the n+m The first operating state parameter PR1 n+m and the second operating state parameter PR2 n+m and the difference between them Δ n+m You may ask for:

[0106] Then, in step S4, the processor 32 calculates the difference Δ n or Δ n+m is a predetermined threshold Δ thIf the determination in step S4 is YES, in step S5, the processor 32 functions as the processing execution unit 60 and automatically adjusts the operating condition CD as a safety measure processing SP. After adjusting the operating condition CD in this step S5, the processor 32 uses the adjusted operating condition CD (amplitude A 1 , frequency f 1 , angle θf 1 or θr 1 ) to generate an additional motion command CMa.

[0107] The processor 32 repeatedly adjusts the operating condition CD each time step S5 is executed. After adjusting the operating condition CD in step S5, if the determination in step S4 is NO a predetermined number of times k (for example, k=10), the processor 32 determines the adjusted operating condition CD (amplitude A 1 , frequency f 1 , angle θf 1 or θr 1 ) under the initial operating condition CD (amplitude A 0 , frequency f 0 , angle θf 0 or θr 0 ) may be restored to the condition database DB.

[0108] As described above, in this embodiment, the difference calculation unit 56 calculates the first operation state parameter PR1 based on the main operation command CMm. n On the other hand, based on the rotation detection data Dr detected by the rotation sensor 14 during the execution of the composite operation CO, a second operation state parameter PR2 n According to this configuration, the second motion state parameter PR2 of the part X of the robot 12 that actually executes the composite motion CO is acquired (step S3'). n can be obtained accurately.

[0109] In this embodiment, during execution of the work program WP, the difference calculation unit 56 calculates the current time t n A time t ahead of n+mThe difference calculation unit 56 calculates the main operation command CMm at the previous time t based on the instruction code INa and the operation condition CD for the additional operation AO defined in the work program WP. n+m According to this configuration, the processor 32 calculates the additional operation command CMa at the previous time t n+m The difference Δ n+m It is possible to predict whether or not the value of the operating condition CD will be excessive, and to execute the safety measures SP (automatic adjustment of the operating condition CD, issuing of the warning AL) in advance. n+m This can prevent unintended movement of part X that may occur.

[0110] The processor 32 may function as the processing execution unit 60 in step S5 in Fig. 9 and may stop the robot 12 as the safety measure processing SP instead of automatically adjusting the operating conditions CD. In this case, the processor 32 may end the flow in Fig. 9 after executing step S5. The processor 32 may stop the robot 12 as the safety measure processing SP and may also issue the above-mentioned warning AL.

[0111] In step S5 of FIG. 7 or 9, the processor 32 functions as the processing execution unit 60 and calculates the amplitude A 0 , frequency f 0 , angle θf 0 and r 0 7 or 9 starts (e.g., in step S1), the processor 32 functions as the image generator 52 to generate image data ID6 for specifying the priority and displays it on the display device 40. The operator specifies the priority by operating the input device 38, and the processor 32 functions as the input receiver 54 to receive an input IP4 specifying the priority via the image data ID6.

[0112] Suppose the processor 32 prioritizes the amplitude A 0 →frequency f 0 →Angle θf 0 →Angle θr 0In this case, every time step S5 is executed, the processor 32 functions as the processing execution unit 60 and sets the operating condition CD to the amplitude A in accordance with the priority specified by the input IP4. 0 →frequency f 0 →Angle θf 0 →Angle θr 0 Adjust in the following order.

[0113] In this manner, in this embodiment, the processing execution unit 60 performs the processing under a plurality of operating conditions CD (amplitude A 0 , frequency f 0 , angle θf 0 and θr 0 ) is adjusted in accordance with a predetermined priority. n Since the operating condition CD that is effective in reducing the movement of the part X can be preferentially adjusted, unintended movement of the part X can be more effectively avoided.

[0114] In this embodiment, the input receiving unit 54 receives an input IP4 for specifying a priority. n It is possible to arbitrarily specify which operating condition CD should be preferentially adjusted to reduce the input IP4. The above-mentioned priority order may be determined in advance. In this case, the operator does not need to input the input IP4.

[0115] 7 or 9 in accordance with a computer program PG pre-stored in the memory 34. The functions of the image generation unit 52, the input reception unit 54, the difference calculation unit 56, the difference determination unit 58, and the processing execution unit 60 executed by the processor 32 may be functional modules realized by the computer program PG.

[0116] 7 or 9, when the operating conditions CD are adjusted multiple times in step S5, the processor 32 may adopt the operating conditions CD with the smallest numerical value and store the selected operating conditions CD in the operating condition database DBc. In this case, the processor 32 will use the operating conditions CD with the smallest numerical value when performing actual welding work.

[0117] The processor 32 functions as the input receiving unit 54 and receives the threshold value Δ th (ΔP th , ΔV th , Δα th 7 or 9 starts (for example, in step S1), the processor 32 functions as the image generating unit 52 and may receive an input IP5 that specifies the threshold value Δ th Image data ID7 for specifying the above is generated and displayed on the display device 40.

[0118] The operator operates the input device 38 to set the threshold value Δ th The processor 32 functions as the input receiving unit 54 and determines the threshold value Δ th Then, in step S4, the processor 32 receives an input IP5 specifying the difference Δ n is the threshold Δ th It is determined whether or not the threshold value Δ th may be specified to be a common value over the entire length of the work path 100, or may be specified to be a different value depending on the position on the work path 100.

[0119] The processor 32 may function as an input receiving unit 54 and receive an input IP6 for selecting a safety measure process SP to be executed in step S5 (specifically, automatic adjustment of the operating conditions CD, issuance of an alert AL, or stopping of the robot 12). Specifically, after the start of the flow in FIG. 7 or 9 (for example, in step S1), the processor 32 functions as an image generating unit 52 to generate image data ID8 for selecting a safety measure process SP and display it on the display device 40.

[0120] The operator operates the input device 38 to select the safety measure process SP to be executed in step S5 from options such as automatically adjusting the operating conditions CD, issuing an alert AL, and stopping the robot 12. The processor 32 functions as the input receiving unit 54 and receives an input IP6 selecting the safety measure process SP via image data ID8. Then, in step S5, the processor 32 executes the safety measure process SP selected by the input IP6. Also, in step S5, the processor 32 may adjust the operating conditions of the main operation MO (e.g., the speed or acceleration of the operation of moving the tool 28 along the work path 100) while adjusting the operating conditions CD (or without adjusting the operating conditions).

[0121] In the above embodiment, the angle θf in FIG. 4 is used as the amount of change in the attitude of the tool 28 included in the operating condition CD. 0 and θr 0 However, the present invention is not limited to this, and any angle θ may be set as the amount of change in the attitude of the tool 28. For example, the angle θs may be set as the amount of change in the attitude, such as 0 +θr 0 may be set.

[0122] In the above embodiment, the working path 100 extends linearly in the x-axis direction of the robot coordinate system C1. However, this is not limiting, and the working path 100 may be determined to extend on a curve. In this case, the processor 32 may set a weaving coordinate system C7 having an axis (e.g., the x-axis) parallel to the tangent direction of the working path 100 to the robot coordinate system C1 when executing the working program.

[0123] The weaving coordinate system C7 is a moving coordinate system that moves in a virtual space defined by the robot coordinate system C1 together with the tool 28. The processor 32 may then rotate the tool 28 around an axis (x-axis) of the weaving coordinate system C7 that is parallel to the tangent direction of the work path 100, thereby changing the orientation of the tool 28 between the orientation shown by tool 28B and the orientation shown by tool 28C in FIG.

[0124] In the above embodiment, the difference Δ n In the above description, a single site X is designated as a monitoring target. However, this is not limiting, and multiple sites X may be designated as monitoring targets. In this case, the processor 32 calculates the difference Δ n The operating condition CD is not limited to the amplitude A, the frequency f (or the period T), and the angles θf and θr, and may include any other parameters, such as the phase of the waveform in FIG. 6 and an end point dwell time during which the tool 28 is maintained at the end point 102 or 104 (FIG. 3).

[0125] In the above embodiment, the robot 12 performs welding work. However, the robot 12 is not limited to this. The robot 12 may be configured to perform brazing work, for example, or any other work. The robot 12 is not limited to a vertical articulated robot, and may be any type of robot, such as a horizontal articulated robot or a parallel link robot.

[0126] In the above embodiment, the additional operation AO is a swinging operation. However, the additional operation AO is not limited to this, and may be, for example, a tracking operation in which the tool 28 is displaced based on image data ID8 of the workpiece 110 captured by a visual sensor (not shown). In this tracking operation, the processor 32 functions as an additional operation command generation unit 46, and generates an additional operation command based on the image data ID8 captured by the visual sensor at the current time t n The processor 32 calculates a deviation amount φ of the work position 29 of the tool 28 from the work path 100 on the workpiece 110 shown in the image data ID8. Then, based on the calculated deviation amount φ, the processor 32 generates an additional operation command CMa for displacing the work position 29 by changing the attitude of the tool 28. Note that the additional operation AO may be any operation other than the swing operation and the tracking operation.

[0127] In the above embodiment, the functions of the device 50 are implemented in the control device 16, and the processor 32 of the control device 16 functions as the device 50. However, the present invention is not limited to this, and the functions of the device 50 (i.e., the image generation unit 52, the input reception unit 54, the difference calculation unit 56, the difference determination unit 58, and the processing execution unit 60) may be implemented in any other computer, such as a teaching device for teaching the robot 12 how to operate, a host controller, or a tablet or desktop PC.

[0128] Although the present disclosure has been described in detail above, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the present disclosure or the spirit of the present disclosure derived from the content of the claims and their equivalents. These embodiments can also be implemented in combination. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these. The same applies when numerical values ​​or mathematical expressions are used in the description of the above-described embodiments.

[0129] The present disclosure describes the following aspects: (Aspect 1) A device 50 for verifying a composite action CO in which a main action MO for moving a tool 28 by a robot 12 along a predetermined work path 100 is added with an additional action AO for changing the posture of the tool 28 to displace a work position 29 of the tool 28, the device 50 including: a first motion state parameter PR1 representing a motion state of a predetermined part X of the robot 12 when the main action MO without the additional action AO is executed; n and a second motion state parameter PR2 representing the motion state of the predetermined part X when the composite motion CO is executed. n Difference Δ n The apparatus 50 includes a difference calculation unit 56 that calculates the first motion state parameter PR1 based on the main motion command CMm for the main motion MO. n and obtains a second motion state parameter PR2 based on the main motion command MO and the additional motion command CMa for the additional motion AO. nThe device 50 according to aspect 1 acquires the main operation command CMm and the additional operation command CMa based on the instruction code INm for the main operation MO defined in the work program WP during execution of the work program WP. n A time t ahead of n+m The main operation command CMm at the previous time t is calculated based on the command code CMa for the additional operation AO specified in the work program WP and the operation condition CD that specifies the additional operation AO. n+m The apparatus 50 according to aspect 2 calculates an additional motion command CMa at the first motion state parameter PR1 based on the main motion command CMm for the main motion MO. (Aspect 4) The robot 12 is provided with a rotation sensor 14 that detects the rotation of the servo motor 30 that drives the movable component MC of the robot 12, and the difference calculation unit 56 calculates an additional motion command CMa at the first motion state parameter PR1 based on the main motion command CMm for the main motion MO. n On the other hand, based on the rotation detection data Dr detected by the rotation sensor 14 during the execution of the composite operation CO, a second operation state parameter PR2 n The device according to aspect 1, wherein the difference Δ n is a predetermined threshold Δ th The device 50 according to any one of aspects 1 to 4 further includes a difference determination unit 58 that determines whether the difference Δ n is the threshold Δ th The device 50 according to aspect 5 further includes a processing execution unit 60 that executes a predetermined safety measure processing SP when it is determined that the difference Δ n The threshold Δ thThe device 50 according to Aspect 6 automatically adjusts the operating conditions CD that define the additional operation AO so as to fall within the range specified below. (Aspect 8) The device 50 according to Aspect 7, further comprising an input receiving unit 54 that receives an input IP3 for selecting an operating condition CD to be adjusted from among the plurality of operating conditions CD. (Aspect 9) The device 50 according to Aspect 7 or 8, wherein the processing execution unit 60 adjusts the plurality of operating conditions CD according to a predetermined priority order. (Aspect 10) The device 50 according to Aspect 9, further comprising an input receiving unit 54 that receives an input IP4 that specifies the priority order. (Aspect 11) The device 50 according to any one of Aspects 7 to 10, wherein the additional operation AO includes a swinging operation that swings the working position 29 in a direction intersecting the working path 100 by repeatedly changing the posture, and the processing execution unit 60 adjusts the amplitude A of the swinging operation, the frequency f of the swinging operation, or the amounts of change θf, θr of the posture as the operating conditions CD. (Aspect 12) The device 50 according to any one of Aspects 7 to 10, wherein the difference Δ calculated by the difference calculation unit 56 is n The device 50 according to any one of Aspects 1 to 11, further comprising an image generation unit 52 that generates image data ID5 that displays the predetermined portion X. (Aspect 13) The device 50 according to any one of Aspects 1 to 12, further comprising an input reception unit 54 that receives an input IP2 that specifies a predetermined portion X. (Aspect 14) Component coordinate systems C3 to C6 are set for the movable component MC of the robot 12, and the input reception unit 54 receives an input IP2 that specifies coordinates Q3 to Q6 in the component coordinate systems C3 to C6 as the input IP2 to be specified. _1 The device 50 according to aspect 13 further includes an image generation unit 52 that generates image data ID3 of a robot model 12M that is a model of the robot 12, and the input reception unit 54 receives, as the input IP2 to be specified, an input IP2 that specifies an arbitrary part of the robot model 12M through the image data ID3. _2(Aspect 16) The device 50 according to any one of Aspects 1 to 15, wherein the motion state parameter PR includes at least one of a position P, a velocity V, and an acceleration α of a predetermined portion X. (Aspect 17) A control device 16 for a robot 12, comprising the device 50 according to any one of Aspects 1 to 16. (Aspect 18) A method for verifying a composite action CO in which a main action MO in which the robot 12 moves a tool 28 along a predetermined working path 100 is added to an additional action AO in which an attitude of the tool 28 is changed to displace a working position 29 of the tool 28, the method comprising: a processor 32 receiving a motion state parameter PR1 indicative of a motion state of a predetermined portion X of the robot 12 when the processor 32 executes the main action MO in which the additional action AO is not added; n and a motion state parameter PR2 representing the motion state of a predetermined part X when the composite motion CO is executed. n Difference Δ n (Aspect 19) A computer program PG that causes a processor 32 to execute the method according to aspect 18.

[0130] REFERENCE SIGNS LIST 10 Robot system 12 Robot 14 Rotation sensor 16 Control device 28 Tool 29 Work position 30 Servo motor 32 Processor 50 Device 52 Image generation unit 54 Input reception unit 56 Difference calculation unit 58 Difference determination unit 60 Processing execution unit

Claims

1. A device for verifying a composite operation in which a main operation of a robot moving a tool along a predetermined work path is added to an additional operation of changing the posture of the tool to displace the work position of the tool, the device comprising a difference calculation unit that calculates the difference between a first motion state parameter that represents the motion state of a specified part of the robot when the main operation without the additional operation is executed, and a second motion state parameter that represents the motion state of the specified part when the composite operation is executed.

2. The device described in claim 1, wherein the difference calculation unit obtains the first operation state parameter based on a main operation command for the main operation, and obtains the second operation state parameter based on the main operation command and an additional operation command for the additional operation.

3. The device described in claim 2, wherein the main operation command and the additional operation command are generated in accordance with a work program that causes the robot to execute the composite operation, and wherein the difference calculation unit, during execution of the work program, calculates the main operation command for a future point in time based on a command code for the main operation specified in the work program, and calculates the additional operation command for the future point in time based on a command code for the additional operation specified in the work program and operation conditions that specify the additional operation.

4. The device according to claim 1, wherein the robot is provided with a rotation sensor that detects rotation of a servo motor that drives a movable component of the robot, and the difference calculation unit acquires the first motion state parameter based on a main motion command for the main motion, while acquiring the second motion state parameter based on detection data of the rotation detected by the rotation sensor when the combined motion is performed.

5. The device according to claim 1, further comprising a difference determination unit that determines whether the difference calculated by the difference calculation unit exceeds a predetermined threshold value.

6. The device according to claim 5, further comprising a processing execution unit that executes a predetermined safety measure processing when the difference determination unit determines that the difference exceeds the threshold value.

7. The device described in claim 6, wherein the processing execution unit, as the safety measure processing, stops the robot, issues a warning, or automatically adjusts the operating conditions that define the additional operation so that the difference is below the threshold.

8. The device according to claim 7, further comprising an input receiving unit that receives an input for selecting the operating condition to be adjusted from among the plurality of operating conditions.

9. The device according to claim 7, wherein the processing execution unit adjusts the plurality of operating conditions according to a predetermined order of priority.

10. The device according to claim 9, further comprising an input receiving unit that receives an input specifying the priority.

11. The device described in claim 7, wherein the additional operation includes a swinging operation that swings the work position in a direction intersecting the work path by repeatedly changing the posture, and the processing execution unit adjusts the amplitude of the swinging operation, the frequency of the swinging operation, or the amount of change in the posture as the operation condition.

12. The device according to claim 1, further comprising an image generating section for generating image data representing the difference determined by the difference calculating section.

13. The device according to claim 1, further comprising an input receiving unit that receives an input specifying the predetermined region.

14. The device according to claim 13, wherein a component coordinate system is set for a movable component of the robot, and the input receiving unit receives, as the specifying input, an input specifying coordinates of the component coordinate system.

15. The device according to claim 13, further comprising an image generation unit that generates image data of a robot model that is a model of the robot, and the input receiving unit receives, as the designation input, an input that designates an arbitrary part of the robot model through the image data.

16. The device according to claim 1, wherein the motion state parameters include at least one of a position, a velocity, and an acceleration of the predetermined part.

17. A control device for a robot, comprising the device according to claim 1.

18. A method for verifying a composite operation in which a main operation of a robot moving a tool along a predetermined working path is added to an additional operation of displacing the working position of the tool by changing the posture of the tool, wherein a processor calculates the difference between an operation state parameter representing the operating state of a specified part of the robot when the main operation without the additional operation is executed, and an operation state parameter representing the operating state of the specified part when the composite operation is executed.

19. A computer program product causing said processor to perform the method of claim 18.

Citation Information

Patent Citations

  • Robot diagnosing method

    JP1996190412A

  • Welding robot controller

    JP2006059037A

  • Method and a Device for Providing Feedback on Weaving Parameters

    US20080203072A1