Robot control device and robot control method
Patent Information
- Application Number
- TW114122221
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-06-30
- Filing Date
- 2023-05-31
- Publication Date
- 2026-09-11
- Estimated Expiration
- 2043-05-30
AI Technical Summary
Existing robot control systems lack adequate safety measures to ensure operator safety during direct teaching functions, particularly in controlling robot movements based on applied forces.
A control device that integrates a safety function to monitor contact force, speed, and acceleration, stopping the robot when thresholds are exceeded, while simultaneously performing a direct teaching function that moves the robot according to applied forces, using a common force sensor for both functions.
Ensures operator safety by stopping robot movements when unsafe conditions are detected, allowing precise and synchronized execution of direct teaching functions without the need for additional switches, reducing costs and improving operational convenience.
Smart Images

Figure TWG2TB001910624_001 
Figure TWG2TB001910624_002 
Figure TWG2TB001910624_003
Abstract
Description
Technical Field
[0001] Invention Field This disclosure relates to a robot control device, a robot system, and a robot control method. Prior Technology
[0002] Background of the Invention A known direct teach function involves applying an external force to a robot to make the robot move according to that force (e.g., Patent Document 1). Prior technology documents Patent documents
[0003] Patent Document 1: Japanese Patent Application Publication No. 2015-182142 Summary of the Invention
[0004] Invention Summary The problem the invention aims to solve To date, the safety of operators must be ensured when implementing direct teaching functions. The means to solve the problem
[0005] In one embodiment disclosed herein, a control device for controlling the movement of a robot comprises: a safety function execution unit that performs a safety function, wherein the safety function monitors at least one of the contact force applied to the robot during movement, the robot's speed, and acceleration, and stops the robot's movement when the at least one exceeds a predetermined threshold; and a direct teaching execution unit that performs a direct teaching function in parallel with the safety function executed by the safety function execution unit, wherein the direct teaching function causes the robot to move according to the operating force applied to the robot.
[0006] In another embodiment disclosed herein, the control device for controlling the robot's movements comprises: a direct teaching execution unit that performs a direct teaching function, which causes the robot to move according to the operating force applied to the robot; a motion parameter acquisition unit that acquires the robot's speed or acceleration during the execution of the direct teaching function; and a resistance control unit that changes the resistance relative to the operating force in response to the speed or acceleration acquired by the motion parameter acquisition unit.
[0007] In another embodiment disclosed herein, the control device for controlling the robot's movements includes a direct teaching execution unit. The direct teaching execution unit performs a direct teaching function, which causes the robot to move according to the operating force applied to the robot. The direct teaching execution unit terminates the direct teaching function when the elapsed time, calculated from the following time points, exceeds a predetermined threshold: the time point at which the instruction to start the direct teaching function is received, the time point at which the direct teaching function begins, or the time point at which the robot, which has been moving by the direct teaching function, stops.
[0008] In another embodiment disclosed herein, the control device for controlling the robot's movements includes: a direct teaching execution unit that performs a direct teaching function, which causes the robot to move according to the operating force applied to the robot; after the direct teaching execution unit receives an instruction to perform the direct teaching function and starts the direct teaching function, it continues to perform the direct teaching function without receiving the instruction again.
[0009] In another embodiment disclosed herein, the control device for controlling the robot's movements includes: a safety function execution unit that performs a safety function, which monitors at least one of the contact force applied to the robot during its movement, the robot's speed, and acceleration, and stops the robot's movement when the at least one exceeds a predetermined threshold; and a direct teaching execution unit that performs a direct teaching function, which causes the robot to move according to the operating force applied to the robot; and a force sensor is provided in the robot to detect the external force applied to the robot. The safety function execution unit and the direct teaching execution unit perform the safety function and the direct teaching function respectively based on the detection data of a common force sensor.
[0010] In another aspect disclosed herein, the method for controlling the robot's movements is that the processor executes a safety function and executes a direct teaching function in parallel with the safety function. The aforementioned safety function monitors at least one of the contact force applied to the robot during its movement, the robot's speed, and acceleration. When the at least one exceeds a predetermined threshold, the robot's movement is stopped. The aforementioned direct teaching function causes the robot to move according to the operating force applied to the robot.
[0011] In another aspect disclosed herein, the method of controlling the robot's movements is that the processor executes a direct teaching function to make the robot move according to the operating force applied to the robot, and obtains the robot's speed or acceleration during the execution of the direct teaching function, and changes the resistance relative to the operating force in response to the obtained speed or acceleration.
[0012] In another aspect disclosed herein, the method of controlling the robot's movements is that the processor executes a direct teaching function to make the robot move according to the operating force applied to the robot, and the direct teaching function ends when the elapsed time, calculated from the following time points, exceeds a predetermined threshold: the time point when the instruction to start the direct teaching function is received, the time point when the direct teaching function begins, or the time point when the robot stops moving by means of the direct teaching function. Simple Explanation of the Diagram
[0013] Figure 1 is a schematic diagram of an embodiment of a robot system. Figure 2 is a block diagram of the robot system shown in Figure 1. Figure 3 is a flowchart illustrating an example of the motion flow of the robot system shown in Figure 2. Figure 4 shows an example of a direct instructional image. Figure 5 is a flowchart illustrating an example of the process of step S2 in Figure 3. Figure 6 is a flowchart illustrating an example of the process of step S3 in Figure 3. Figure 7 is a flowchart illustrating another example of the motion flow of the robot system shown in Figure 2. Figure 8 is a flowchart illustrating an example of the process of step S3' in Figure 7. Figure 9 is a block diagram showing another function of the robot system shown in Figure 2. Figure 10 shows an example of a security feature setting image. Figure 11 is a flowchart illustrating an example of the motion flow of the robot system shown in Figure 9. Figure 12 is a flowchart illustrating an example of the process for step S3 in Figure 11. Figure 13 is a flowchart illustrating an example of the process for step S2 in Figure 11. Figure 14 is a schematic diagram of one embodiment of the torque sensor. Figure 15 is a schematic diagram of an embodiment of a force sensor. Figure 16 is a block diagram illustrating the safety and direct instruction functions performed using the force sensor shown in Figure 14 or Figure 15. Figure 17 is a block diagram showing the processor that performs the security and direct instruction functions shown in Figure 16. Figure 18 is a flowchart illustrating an example of the fault detection function. Figure 19 is a block diagram showing another function of the robot system shown in Figure 2. Figure 20 is a flowchart illustrating an example of the direct teaching function performed by the control device shown in Figure 19. Figure 21 is a flowchart illustrating another example of the direct teaching function performed by the control device shown in Figure 19. Figure 22 shows a graph of the characteristic data. Figure 23 is a flowchart illustrating yet another example of the direct teaching function performed by the control device shown in Figure 19. Figure 24 is a block diagram illustrating the method of generating instructions for the actuator. Figure 25 is a block diagram showing another function of the robot system shown in Figure 2. Figure 26 is a flowchart illustrating an example of the direct teaching function performed by the control device shown in Figure 25. Figure 27 is a flowchart illustrating another example of the direct teaching function performed by the control device shown in Figure 25. Figure 28 is a block diagram showing another function of the robot system shown in Figure 2. Implementation
[0014] Forms used to implement inventions The embodiments disclosed herein will be described in detail below based on the drawings. Furthermore, in the various embodiments described below, the same symbols will be used for the same elements, and repeated descriptions will be omitted. First, a robot system 10 of one embodiment will be described with reference to Figures 1 and 2. The robot system 10 includes a robot 12, a force sensor 14 (Figure 2), a control device 16, and a teaching device 18. In this embodiment, the robot 12 is a vertical articulated robot, having a robot base 20, a rotating body 22, a lower arm 24, an upper arm 26, a wrist 28, and an end-connector 30. The robot base 20 is fixed to the floor of a work cell or to an automated guided vehicle (AGV).
[0015] The rotating body 22 is mounted on the robot base 20 in a manner that allows it to rotate around a vertical axis. The lower arm portion 24 is mounted on the rotating body 22 in a manner that allows it to rotate around a horizontal axis, and the upper arm portion 26 is rotatably mounted on the front end of the lower arm portion 24. The wrist portion 28 has: a wrist base 28a, which is mounted on the front end of the upper arm portion 26 in a manner that allows it to rotate around two mutually orthogonal axes; and a wrist flange 28b, which is rotatably mounted on the wrist base 28a.
[0016] A plurality of actuators 31 (Fig. 2) are respectively provided on the robot base 20, the rotating body 22, the lower arm 24, the upper arm 26, and the wrist 28. These actuators 31 have servo motors, etc., and rotate the movable components of the robot 12 (i.e., the rotating body 22, the lower arm 24, the upper arm 26, the wrist 28, and the wrist flange 28b) in response to commands from the control device 16, thereby moving the terminator 30.
[0017] Each actuator 31 is provided with a rotation detection sensor 33. The rotation detection sensor 33 has, for example, an encoder or a Hall element, to detect the rotational position (or rotation angle) of the output shaft 31a of the actuator 31 (specifically, a servo motor). The rotation detection sensor 33 supplies the detected rotational position data as feedback FB to the control device 16.
[0018] Terminator 30 is detachably mounted on wrist flange 28b. Terminator 30 has, for example, a robot hand, welding gun, laser processing head or cutting tool, to perform predetermined operations (workpiece handling, welding, laser processing or cutting, etc.) on a workpiece (not shown).
[0019] Force sensor 14 detects the external force F applied to robot 12. In this embodiment, force sensor 14 has a plurality of torque sensors 14A respectively disposed on the output shaft 31a of a plurality of actuators 31. Each torque sensor 14A has at least one sensing element (e.g., strain gauge or piezoelectric element) to detect the torque τ applied to the output shaft 31a of the actuator 31 (servo motor) as the force component of the external force F. Each torque sensor 14A supplies the detection data DDτ of the detected torque τ to control device 16.
[0020] The control device 16 controls the movements of the robot 12. As shown in Figure 2, the control device 16 is a computer with a processor 32, a memory 34, and an I / O interface 36. The processor 32 has a CPU or GPU, etc., and can be communicatively connected to the memory 34 and the I / O interface 36 through a bus 38.
[0021] The processor 32 communicates with the memory 34 and the I / O interface 36 while performing calculations to execute various functions FN of the robot 12, such as the safety function FN1 and the direct teaching function FN2, which will be described later. Specifically, in order to execute the functions FN of the robot 12, the processor 32 generates instructions (e.g., position instructions, speed instructions, torque instructions) for each actuator 31 (servo motor), and drives each actuator 31 according to these instructions. In this way, the robot 12 can position the terminator 30 to any position. Furthermore, in this document, "position" sometimes refers to both position and posture.
[0022] The memory 34 may contain RAM or ROM, etc., to temporarily or permanently store various data. The memory 34 may also be a computer-readable recording medium such as semiconductor memory, magnetic recording media, or optical recording media. The I / O interface 36 has, for example, an Ethernet port, a USB port, a fiber optic connector, or an HDMI terminal, to communicate data with external machines via wired or wireless means under instructions from the processor 32. The force sensor 14 (torque sensor 14A), the teaching device 18, and the actuator 31 described above are connected to the I / O interface 36 via wired or wireless communication.
[0023] The control device 16 is provided with an input device 40 and a display device 42. The input device 40 includes buttons, switches, keyboards, mice, or touch panels, etc., to receive data input from the operator. The display device 42 includes liquid crystal displays or organic EL displays, etc., and displays various data in a visually identifiable manner under the instructions from the processor 32.
[0024] The display device 42 and the input device 40 are communicatively connected to the I / O interface 36. Furthermore, the display device 42 and the input device 40 can also be integrated into the housing of the control device 16, or be externally connected to the housing as a separate computer (PC, etc.) from the housing of the control device 16.
[0025] The teaching device 18 is a computer, such as a pendant or tablet terminal, that teaches actions to the robot 12. Specifically, the teaching device 18 has a processor (not shown), memory (not shown), a display device 44, an input device 46, and an enable switch. The display device 44 has a liquid crystal display or an organic EL display to display various data. The input device 46 has buttons, switches, or touch panels to accept data input from the operator.
[0026] The operator operates the input device 46 to execute various functions FN of the robot 12, such as the teaching function FN3, the automatic operation function FN4, and the action confirmation function FN5. The teaching function FN3 is a function FN used to teach the robot 12 actions for tasks (workpiece handling, welding, laser processing, or cutting).
[0027] During the execution of this teaching function FN3, the operator can operate the input device 46 and, through the control device 16, cause the robot 12 to perform jog movements to position the terminator 30 to the desired teaching position TP. The processor of the teaching device 18 obtains teaching data such as the teaching position TP and the speed V that causes the terminator 30 to move towards the teaching position TP. Based on this teaching data, it creates an action program PG1 that defines the teaching position TP and the speed V as command codes. The processor 32 of the control device 16 obtains the created action program PG1 from the teaching device 18 and stores it in the memory 34.
[0028] Furthermore, the automatic operation function FN4 is a function FN that automatically operates the robot 12 to perform workpiece operations according to the pre-made motion program PG1. The operator operates the input device 46, thereby instructing the processor 32 of the control device 16 to start the automatic operation function FN4. After this automatic operation function FN4 starts, the processor 32 generates instructions for each actuator 31 according to the motion program PG1 stored in the memory 34, so as to automatically make the robot 12 move to perform workpiece operations.
[0029] Furthermore, in the automatic operation function FN4, for some tasks, the robot 12 can also cooperate with the operator to perform the task. Specifically, the processor 32 can also execute the direct teaching function FN2 (described later) for some tasks, causing the robot 12 to move in response to the operating force Fh applied to the robot 12 by the operator.
[0030] The action confirmation function FN5 is a function FN that confirms the action taught to the robot 12 through the teaching function FN3, and allows the robot 12 to test the action. The operator can use the operation input device 46 to instruct the processor 32 of the control device 16 to execute the action confirmation function FN5.
[0031] After the motion confirmation function FN5 is started, the processor 32 experimentally causes the robot 12 to execute the motion program PG1', which is an incomplete motion program generated during the teaching process of the teaching function FN3. In this way, the operator confirms whether the motion taught to the robot 12 (i.e., whether the motion program PG1' is appropriate) is suitable.
[0032] Furthermore, a switch SW (not shown) may also be provided on the control device 16 or the teaching device 18. The aforementioned switch SW switches between the teaching function FN3, the automatic operation function FN4, and the action confirmation function FN5 of the robot 12. This switch SW may also be a physical switch or a virtual switch on the software displayed on the display device 42 or 44.
[0033] The enable switch 48 is a physical switch that allows the operator to manually move the robot 12. Specifically, the enable switch 48 can be switched between the following positions: initial position P0, first press position P1 from the initial position P0 by a predetermined press amount, and second press position P2 from the first press position P1 by a predetermined press amount.
[0034] When the operator presses the enable switch 48 to the first pressed position P1, the enable switch 48 becomes ON, and the processor of the teaching device 18 becomes capable of performing the teaching function FN3 or other direct teaching functions FN2' described later, allowing the robot 12 to move through the control device 16.
[0035] Additionally, when the enable switch 48 returns to its initial position P0 or is further pressed to the second pressed position P2 during the operation of robot 12, the enable switch 48 becomes OFF, and the processor of teaching device 18 sends an enable switch OFF signal to control device 16. Upon receiving the enable switch OFF signal, the processor 32 of control device 16 executes an emergency stop action ES.
[0036] As one example of an emergency stop action ES, the processor 32 stops sending commands (torque commands, etc.) to each actuator 31, thereby stopping the movement of the robot 12. As another example of an emergency stop action ES, the processor 32 actuates a braking mechanism (not shown) that brakes the output shaft of each actuator 31, thereby forcibly stopping the movement of the robot 12.
[0037] Next, an example of the motion flow of the robot system 10 will be described with reference to FIG3. When the processor 32 of the control device 16 receives an action start command (e.g., a power ON command) from the operator (i.e., input device 40 or 46), the host controller, or the computer program PG2, the flow shown in FIG3 is initiated.
[0038] In step S1, the processor 32 determines whether a direct teaching function start command has been received. Specifically, the processor of the teaching device 18 generates a direct teaching image 100 for inputting the direct teaching function start command and displays it on the display device 44 of the teaching device 18. Figure 4 shows an example of the direct teaching image 100.
[0039] In the example shown in Figure 4, the direct teaching image 100 includes a direct teaching start button image 102 and a direct teaching end button image 104. The operator can select the direct teaching start button image 102 or the direct teaching end button image 104 by clicking on the direct teaching start button image 102 or the direct teaching end button image 104 displayed on the direct teaching image 100 through the operation input device 46.
[0040] When the processor of the teaching device 18 receives input indicating the selection of the Direct Teaching Start button image 102, it sends a Direct Teaching Function Start command to the control device 16. Similarly, when the processor of the teaching device 18 receives input indicating the selection of the Direct Teaching End button image 104, it sends a Direct Teaching Function End command to the control device 16. Furthermore, the Direct Teaching Function Start command can be an ON (or "1") signal, and the Direct Teaching Function End command can be an OFF (or "0") signal.
[0041] When the processor 32 of the control device 16 receives a direct teaching function start command in step S1, it determines that it is yes, and enables the direct teaching function FN2 (for example, by setting the direct teaching function FN2 to "ON" or setting the execution flag of the direct teaching function FN2), and begins the following steps S2 and S3 and proceeds to step S4. Alternatively, when the processor 32 does not receive a direct teaching function start command, it determines that it is no and proceeds to step S6.
[0042] In step S4, the processor 32 determines whether the direct teaching function termination instruction has been received. If the processor 32 receives the direct teaching function termination instruction, it determines that it is yes and proceeds to step S5; if it determines that it is no, it loops through step S4. In step S5, the processor 32 disables the direct teaching function FN2 (for example, by setting the direct teaching function FN2 to "OFF" or by removing the execution flag of the direct teaching function FN2).
[0043] In step S6, processor 32 determines whether an action end command (e.g., a power-off command) has been received from the operator (i.e., input device 40 or 46), the host controller, or computer program PG2. If processor 32 receives an action end command, it determines it is yes and terminates the process shown in Figure 3. Conversely, if processor 32 determines it is no, it returns to step S1.
[0044] In this embodiment, when the processor 32 determines in step S1 that the direct teaching function FN2 is enabled, it executes the security function FN1 in step S2 and the direct teaching function FN2 in step S3 in parallel. Referring to FIG5, an example of the flow of the security function FN1 executed in step S2 will be described below.
[0045] In step S11, the processor 32 obtains the motion parameters OP of the robot 12. The motion parameters OP include at least one of the contact force Fc applied to the robot 12 during the motion, the velocity V of the robot 12, and the acceleration a of the robot 12. Regarding the contact force Fc, the processor 32 obtains the external force F applied to any part of the robot 12 (e.g., the lower arm 23, the upper arm 26, the wrist 28, or the end connector 30) based on the detection data DD of the force sensor 14.
[0046] Specifically, the processor 32 acquires the detection data DDτ from each torque sensor 14A and detects the external force based on this data. The processor 32 can calculate the magnitude of the external force F applied to the robot 12 by performing a predetermined calculation CL1 using the detection data DDτ from each torque sensor 14A. The processor 32 then uses the calculated external force F as the contact force Fc applied to the robot 12 when it comes into contact with surrounding objects (operator, environmental objects, etc.) during operation.
[0047] Regarding velocity V and acceleration a, the processor 32 obtains feedback FB (i.e., the rotational position or rotational angle of the actuator 31) from the rotation detection sensors 33 disposed on each actuator 31. Then, the processor 32 performs time differentiation on the feedback FB to obtain the velocity V of the robot 12 (specifically the terminator 30).
[0048] Furthermore, the processor 32 performs a time derivative on the velocity V to obtain the acceleration a of the robot 12. Thus, the processor 32 obtains at least one of the contact force Fc, velocity V, and acceleration a as the motion parameter OP. The following describes the case where the processor 32 obtains all of the contact force Fc, velocity V, and acceleration a as the motion parameter OP.
[0049] In step S12, the processor 32 determines whether the operation parameters OP (i.e., the contact force Fc, the speed V, and the acceleration a) obtained in the most recent step S11 exceed a predetermined threshold value. Specifically, the processor 32 determines whether the most recently obtained contact force Fc exceeds the threshold value Fcth predetermined for the contact force Fc (i.e., Fc ≥ Fcth).
[0050] Furthermore, the processor 32 determines whether the most recently obtained speed V exceeds the threshold value vth predetermined for the speed V (i.e., V ≥ Vth), and determines whether the most recently obtained acceleration a exceeds the threshold value ath predetermined for the acceleration a (i.e., a ≥ ath). In this step S12, when Fc ≥ Fcth, V ≥ Vth, or a ≥ ath, the processor 32 determines it as being affirmative and proceeds to step S13. On the other hand, when Fc < Fcth, V < Vth, and a < ath, the processor 32 determines it as being negative and proceeds to step S14.
[0051] In step S13, the processor 32 stops the operation of the robot 12. Specifically, the processor 32 executes the above-described emergency stop operation ES, thereby causing the operation of the robot 12 to be stopped emergently. In this step S13, since the robot 12 can be stopped when it collides with an operator (or an environmental object), the safety of the operator can be ensured.
[0052] <Next, referring to FIG. 6, the direct teaching function FN2 of step S3 will be described. In step S21, the processor 32 obtains the operating force Fh applied to the robot. Specifically, the operator applies the operating force Fh to any part of the robot 12 (for example, the lower arm 24, the upper arm 26, the wrist 28, or the end effector 30). Furthermore, an operating handle (not shown) can also be provided at any part of the robot 12 that the operator wants to operate. In this case, the operator can apply the operating force Fh to any part of the robot 12 by operating the operating handle.
[0055] Based on the detection data DD of the force sensors 14, the processor 32 obtains the external force F applied to any part of the robot 12. In the present embodiment, the processor 32 obtains the detection data DDτ of each torque sensor 14A, and detects the external force F based on the detection data DDτ.
[0056] Specifically, the processor 32 can perform a predetermined operation CL2 using the detection data DDτ of each torque sensor 14A to obtain the magnitude and direction of the external force F applied to the robot 12, and specify the part of the robot 12 to which the external force F is applied. The processor 32 obtains the obtained external force F as the operating force Fh applied by the operator to the robot 12.
[0057] In step S22, the processor 32 determines whether the magnitude of the operating force Fh obtained in the most recent step S21 exceeds a predetermined threshold value Fhth (that is, Fh≧Fhth). This threshold value Fhth is set to a value less than the above-mentioned threshold value Fcth (Fhth<Fcth). When Fh≧Fhth, the processor 32 determines that it is yes and proceeds to step S23, and when it determines that it is no, it proceeds to step S24.
[0058] In step S23, the processor 32 moves the robot 12 according to the operating force Fh. Specifically, the processor 32 generates an instruction to move the part of the robot 12 (for example, the end effector 30) to which the operating force Fh obtained in the most recent step S21 is applied in the direction of the operating force Fh, and drives each actuator 31 according to the instruction. As a result, the robot 12 moves the part to which the operator has applied the operating force Fh in the direction of the operating force Fh.
[0059] Furthermore, in this step S23, the processor 32 can also move the part of the robot 12 to which the operating force Fh is applied by a predetermined distance d in the direction of the operating force Fh. In this case, when the operator releases the operating force Fh on the robot 12 after step S23 (that is, releases the robot 12), the robot 12 will automatically stop after moving the predetermined distance d.
[0060] Furthermore, when the processor 32 causes the robot 12 to move in this step S23, if step S12 in the parallel-executed step S2 (Figure 5) is determined to be yes, step S13 in step S2 is executed first to stop the robot 12. Subsequently, the processor 32 may also be prevented from executing this step S23 until step S12 in step S2 is determined to be no (or until a predetermined time has elapsed).
[0061] In step S24, similar to step S14 above, processor 32 determines whether the direct teaching function FN2 in step S5 was set to invalid. If processor 32 determines that it is, it terminates the direct teaching function FN2 in step S3. As a result, robot 12 stops the operation of the direct teaching function FN2. Alternatively, if processor 32 determines that it is not, it returns to step S21.
[0062] Thus, processor 32 executes direct teaching function FN2, which repeatedly executes the cycle of steps S21 to S24 until it is determined to be true in step S24, thereby causing robot 12 to move according to the operating force Fh applied to robot 12. Therefore, processor 32 functions as direct teaching execution unit 52 (Fig. 2) that executes direct teaching function FN2.
[0063] As described above, in this embodiment, the processor 32 executes the safety function FN1 of step S2 and the direct teaching function FN2 of step S3 in parallel. Furthermore, the processor 32 can also execute the loop of steps S11 to S14 in step S2 and the loop of steps S21 to S24 in step S3 synchronously (or alternately) with a predetermined control cycle (e.g., 1 [msec]).
[0064] Alternatively, in step S21 of step S3, the processor 32 can calculate the operating force Fh based on the detection data DDτ used to obtain the contact force Fc in step S11 of step S2. Alternatively, in step S21 of step S3, the processor 32 can also calculate the operating force Fh based on detection data DDτ obtained at a different time point than the detection data DDτ used to obtain the contact force Fc in step S11 of step S2.
[0065] In this embodiment, during the execution of the direct teaching function FN2 in step S3, the processor 32 obtains the velocity V and acceleration a of the robot 12 in step S11 of step S2. Therefore, the processor 32 functions as a motion parameter acquisition unit 54 (Fig. 2) that obtains the motion parameters V and acceleration a during the execution of the direct teaching function FN2.
[0066] As described above, in this embodiment, the control device 16 includes a safety function execution unit 50 that executes a safety function FN1. The aforementioned safety function FN1 monitors at least one of the contact force Fc applied to the robot 12 in motion, the speed V of the robot 12, and the acceleration a. When the at least one of (Fc, V, a) exceeds a predetermined threshold (Fcth, Vth, ath), the robot 12 stops moving.
[0067] Furthermore, the control device 16 includes a direct teaching execution unit 52, which executes a direct teaching function FN2 in parallel with the safety function FN1 executed by the safety function execution unit 50. The direct teaching function FN2 causes the robot 12 to move according to the operating force Fh applied to the robot 12. With this configuration, the direct teaching function FN2 can be executed without using the aforementioned enable switch 48.
[0068] More specifically, in another direct teaching function FN2', from the point of view of ensuring operator safety, when the processor 32 detects that the operator has set the enable switch 48 to ON, it disables the safety function FN1 and then executes the direct teaching function FN2'.
[0069] In this embodiment, the processor 32 executes the direct teaching function FN2 in parallel with the safety function FN1, eliminating the need for the enable switch 48, and the safety function FN1 can adequately ensure the safety of the operator during the execution of the direct teaching function FN2. Furthermore, another direct teaching function FN2' will be described later.
[0070] Furthermore, in this embodiment, the safety function execution unit 50 and the direct teaching execution unit 52 execute the safety function FN1 and the direct teaching function FN2 respectively based on the detection data DDτ from the common force sensor 14 (specifically, the torque sensor 14A). With this configuration, both the safety function FN1 and the direct teaching function FN2 can be executed with high precision.
[0071] Furthermore, by commonalizing the force sensor 14 in both the safety function FN1 and the direct teaching function FN2, costs can be reduced. Additionally, the control cycles of the safety function FN1 (specifically, the cycle of steps S11-S14 described above) and the direct teaching function FN2 (specifically, the cycle of steps S21-S24 described above) can be synchronized, allowing the safety function FN1 and the direct teaching function FN2 to be executed in parallel based on the same (i.e., common) detection data DDτ.
[0072] Furthermore, in this embodiment, the following situation is described: In step S11, the processor 32 acquires the contact force Fc during the execution of the direct teaching function FN2, and functions as the motion parameter acquisition unit 54 to acquire the velocity V and acceleration a. However, it is not limited to this; in step S11, the processor 32 may also acquire the contact force Fc without acquiring the velocity V and acceleration a. In this case, the motion parameter acquisition unit 54 can be omitted from the control device 16.
[0073] Furthermore, when obtaining the contact force Fc in step S11, the processor 32 can also execute a different operation CL1 than the operation CL2 executed in step S21, thereby obtaining only the magnitude of the contact force Fc. Alternatively, the processor 32 can also execute the same operation CL1 (=CL2) as the operation CL2 executed in step S21 in S11, thereby specifying the magnitude and direction of the contact force Fc, and the part of the robot 12 to which the contact force Fc is applied.
[0074] Furthermore, in this embodiment, the following situation is described: the force sensor 14 has a plurality of torque sensors 14A, and the safety function execution unit 50 and the direct teaching execution unit 52 execute the safety function FN1 and the direct teaching function FN2 based on the detection data DDτ of the common torque sensors 14A.
[0075] However, it is not limited to this. The force sensor 14 may also have a plurality of torque sensors 14A and a force sensor 14B capable of detecting forces in six axial directions. The force sensor 14B is disposed at any part of the robot 12 (e.g., robot base 20) and can detect external forces F applied to a part of the robot 12 located at a position further forward than the position where the force sensor 14B is disposed.
[0076] In this case, the safety function execution unit 50 may execute the safety function FN1 based on the detection data DDf of the force sensor 14B (or the detection data DDτ of the torque sensor 14A), while the direct teaching execution unit 52 may execute the direct teaching function FN2 based on the detection data DDτ of the torque sensor 14A (or the detection data DDf of the force sensor 14B).
[0077] Furthermore, in this embodiment, the processor of the teaching device 18 generates a direct teaching image 100 and displays it on the display device 44 of the teaching device 18. However, it is not limited to this; the processor 32 of the control device 16 may also generate the direct teaching image 100 and display it on the display device 42.
[0078] In this case, the operator can also operate the input device 40 to select the direct teaching start button image 102 or the direct teaching end button image 104 from the direct teaching image 100 displayed on the display device 42. When the operator selects the direct teaching start button image 102, the processor 32 of the control device 16 will receive the direct teaching function start command via the input device 40.
[0079] Furthermore, in this embodiment, the following situation is described: the operator selects the Direct Teaching Start Button Image 102 or the Direct Teaching End Button Image 104 displayed on the Direct Teaching Image 100, thereby transmitting the Direct Teaching Function Start Instruction or the Direct Teaching Function End Instruction to the processor 32.
[0080] However, it is not limited to this; it can also be configured such that a physical switch (or physical button) is provided on the control device 16 or the teaching device 18, and the direct teaching function start command or direct teaching function end command is transmitted by operating the physical switch. Alternatively, the operator can lightly tap any part of the robot 12 to send a direct teaching function start command or direct teaching function end command to the processor 32. The processor 32 can detect the tapping operation of the robot 12 by the operator from the detection data DD of the force sensor 14. Furthermore, the enable switch 48 is not limited to being provided on the teaching device 18, but can also be provided on the control device 16, etc.
[0081] Next, another example of the operation flow of the robot system 10 will be described with reference to FIG7. In the flow shown in FIG7, the processor 32 executes the aforementioned direct teaching function FN2 and another direct teaching function FN2' using the enable switch 48. Furthermore, in the flow shown in FIG7, the same step numbers are assigned to the same processes as in FIG3, and repeated descriptions are omitted. In the flow shown in FIG7, if the processor 32 determines no in step S1, or after the execution of step S5, it proceeds to step S31.
[0082] In step S31, the processor 32 determines whether the enable switch 48 is ON (in other words, pressed to the first pressed position P1). Specifically, when the enable switch 48 is ON, the processor of the teaching device 18 sends an ON signal to the control device 16. When the processor 32 receives the ON signal, it determines that it is ON, sets the direct teaching function FN2' to ON (sets the direct teaching function FN2' to "ON" or sets the execution flag), begins step S3' (described later), and proceeds to step S32. Alternatively, if the processor 32 determines that it is NOT ON, it proceeds to step S6.
[0083] In step S32, the processor 32 determines whether the enable switch 48 is OFF (in other words, returned to the initial position P0, or pressed to the second pressed position P2). Specifically, when the enable switch 48 is OFF, the processor of the teaching device 18 sends an enable switch OFF signal to the control device 16. When the processor 32 of the control device 16 receives the enable switch OFF signal, it determines that it is OFF and proceeds to step S33. Alternatively, if the processor 32 determines that it is OFF, it repeats step S32.
[0084] In step S33, the processor 32 disables the direct teaching function FN2' (sets the direct teaching function FN2' to "OFF" or removes the execution flag). In this embodiment, when the processor 32 determines in step S31 that the direct teaching function FN2' is enabled, it executes the direct teaching function FN2' in step S3' while the aforementioned security function FN1 is disabled (i.e., the security function FN1 is not executed).
[0085] Referring to Figure 8, this step S3' is explained. The process shown in Figure 8 differs from that shown in Figure 6 in step S24'. In step S24', the processor 32 determines whether the direct teaching function FN2' was set to invalid in step S33 above. If the processor 32 determines yes, it executes the emergency stop action ES to stop the robot 12's movement and ends the direct teaching function FN2' in step S3'. Alternatively, if the processor 32 determines no, it returns to step S21.
[0086] Thus, in another direct teaching function FN2', the processor 32 executes the direct teaching function FN2' while the operator sets the enable switch 48 to ON, and terminates the direct teaching function FN2' when the enable switch 48 becomes OFF. In other words, in order to execute the other direct teaching function FN2', the operator must continue to set the enable switch 48 to ON and continuously send the enable switch ON signal to the control device 16.
[0087] Referring again to Figure 7, if the determination in step S4 is negative, in step S34, the processor 32 determines whether the enable switch 48 is set to ON, similar to step S31 above. If the determination is positive, the processor 32 proceeds to step S35; if the determination is negative, it returns to step S4.
[0088] In step S35, processor 32 similarly disables the direct teaching function FN2 as described in step S5. As a result, processor 32 determines that steps S14 (Fig. 5) and S24 (Fig. 6) are correct, and terminates the security function FN1 in step S2 and the direct teaching function FN2 in step S3. On the other hand, processor 32 enables the direct teaching function FN2', starts step S3', and proceeds to step S32.
[0089] Thus, in this embodiment, when the enable switch 48 is set to ON during the execution of steps S2 and S3 (determined to be ON in step S34), the processor 32 will preferentially execute another direct teaching function FN2' using the enable switch 48 in step S3'.
[0090] Based on this configuration, the operator can selectively perform the following depending on the application: a direct teaching function FN2 that is executed in parallel with the safety function FN1 without using the enable switch 48; or another direct teaching function FN2' that uses the enable switch 48. This improves the convenience for the operator.
[0091] Furthermore, in this embodiment, the processor 32 functions as a direct instruction execution unit 52. After receiving the instruction to execute the direct instruction function FN2 in step S3 and starting the direct instruction function FN2, it will continue to execute the direct instruction function FN2 without receiving the instruction again.
[0092] More specifically, when the processor 32 receives the direct teaching function start instruction from the operator in step S1 and starts the direct teaching function FN2 in step S3, it does not need to receive any further instructions (such as the direct teaching function start instruction or the enable switch ON signal) to execute the direct teaching function FN2 again, but will continue to execute the direct teaching function FN2 until the direct teaching function end instruction is received in step S4.
[0093] In other words, the operator does not need to operate the input device 40 or 46 or the enable switch 48 to input any instructions to continue the direct teaching function FN2 (such as the direct teaching function start instruction or the enable switch ON signal) during the execution of the direct teaching function FN2.
[0094] In contrast, in another direct teaching function FN2', as described above, in order to continue the direct teaching function FN2', the operator must keep the enable switch 48 ON and continuously send the enable switch ON signal to the control device 16. Therefore, the operation of the operator can be simplified by using the direct teaching function FN2 in step S3.
[0095] Next, other functions of the robot system 10 will be explained with reference to FIG. 9. In this embodiment, the operator can select whether the safety function FN1 is enabled or disabled. Specifically, the processor 32 of the teaching device 18 generates a safety function setting image 106 and displays it on the display device 44 of the teaching device 18. FIG. 10 shows an example of the safety function setting image 106.
[0096] In the example shown in Figure 10, the safety function setting image 106 includes a valid button image 108 and a invalid button image 110. The operator operates the input device 46 to click on the valid button image 108 or the invalid button image 110 displayed on the safety function setting image 106, thereby selecting the valid button image 108 or the invalid button image 110.
[0097] When the processor of the teaching device 18 receives the input of the selection valid button image 108, it sends a safety function valid instruction to the control device 16 to set the safety function FN1 to valid. When it receives the input of the selection invalid button image 110, it sends a safety function invalid instruction to the control device 16 to set the safety function FN1 to invalid.
[0098] The processor 32 of the control device 16 sets the security function FN1 to be enabled or disabled in response to a security function enable command or a security function disable command. Thus, in this embodiment, the processor 32 functions as a function switching unit 56 (FIG. 9), which switches the security function FN1 executed by the security function execution unit 50 to be enabled or disabled.
[0099] When safety function FN1 is disabled, processor 32 will not execute safety function FN1 as safety function execution unit 50. For example, sometimes the operator wants to fully leave robot 12 to ensure safety before executing the aforementioned automatic operation function FN4 to make robot 12 perform high-speed movements. In this case, the operator disables safety function FN1 to make robot 12 perform high-speed movements, thereby shortening the cycle time of the operation.
[0100] Next, the operation flow performed by the control device 16 shown in FIG9 will be explained with reference to FIG11. Furthermore, in the flow shown in FIG11, the same step numbers are assigned to the same processes as in FIG3, and repeated descriptions are omitted. In the flow shown in FIG11, when the processor 32 determines that it is yes in step S1, it proceeds to step S41 before activating the direct teaching function FN2.
[0101] In step S41, processor 32 determines whether security function FN1 is enabled or disabled. If security function FN1 is enabled, processor 32 determines it as enabled and proceeds to step S43; if security function FN1 is disabled, processor 32 determines it as disabled and proceeds to step S42.
[0102] Thus, in this embodiment, when the processor 32 receives an instruction to start the direct teaching function (i.e., the aforementioned direct teaching function start instruction), it functions as a security function determination unit 58 (Fig. 9) to determine whether the security function FN1 is valid or invalid.
[0103] In step S42, the processor 32 generates a warning signal AL1. For example, the processor 32 generates a warning signal AL1 with the following image or sound: "Safety function is disabled. Please enable the safety function." Then, the processor 32 displays the generated warning signal AL1 on the display device 42 (or the display device 44 of the teaching device 18), or outputs it via a speaker provided on the control device 16 (or the teaching device 18).
[0104] After step S42, the processor 32 returns to step S41. Thus, in this embodiment, during the period when step S41 is determined to be NO, the processor 32 will not start the safety function FN1 of step S2 and the direct teaching function FN2 of step S3.
[0105] In step S43, the processor 32 switches the thresholds Fcth, Vth, and ath used in the safety function FN1 referenced in step S12 (Figure 5) from the first thresholds Fcth1, Vth1, and ath1 to the second thresholds Fcth2, Vth2, and ath2. Here, the processor 32 sometimes executes the safety function FN1 in parallel with the aforementioned teaching function FN3, automatic operation function FN4, or action confirmation function FN5. The first thresholds Fcth1, Vth1, and ath1 are referenced in the safety function FN1 executed in parallel with functions FN such as the teaching function FN3, automatic operation function FN4, or action confirmation function FN5, other than the direct teaching function FN2.
[0106] Additionally, the second thresholds Fcth2, Vth2, and ath2 are referenced in the safety function FN2 of step S2 in Figure 11 and are predetermined to be greater than the first thresholds Fcth1, Vth1, and ath1 (i.e., Fcth2>Fcth1, Vth2>Vth1, ath2>ath1).
[0107] After step S43, processor 32 enables the direct teaching function FN2, starts steps S2 and S3, and proceeds to step S4. Then, processor 32 executes steps S2 and S3 in parallel. In step S12 of step S2, it determines whether the motion parameters OP (contact force Fc, velocity V, and acceleration a) exceed the second threshold Fcth2, Vth2, and ath2 switched in step S43.
[0108] Subsequently, the processor 32, for example, when executing step S5 in FIG11 (or when step S6 is yes), switches the thresholds Fcth, Vth and ath used by the security function FN1 from the second thresholds Fcth2, Vth2 and ath2 to the first thresholds Fcth1, Vth1 and ath1.
[0109] Thus, in this embodiment, the processor 32 functions as a threshold switching unit 60 (FIG. 9), which switches the thresholds Fcth, Vth, and ath between the first thresholds Fcth1, Vth1, and ath1 used in functions FN3, FN4, and FN5 other than the direct teaching function FN2, and the second thresholds Fcth2, Vth2, and ath2 that are greater than the first thresholds Fcth1, Vth1, and ath1.
[0110] As described above, in this embodiment, the control device 16 further includes: a function switching unit 56, which switches the safety function FN1 of the safety function execution unit 50 to be active or inactive; and a safety function determination unit 58, which determines whether the safety function FN1 is active or inactive when the direct teaching execution unit 52 executes the direct teaching function FN2. Specifically, when the safety function determination unit 58 receives an instruction to start the direct teaching function FN2 (i.e., a direct teaching function start instruction) (if determined to be active in step S1), it determines whether the safety function FN1 is active or inactive (step S41).
[0111] Then, when the safety function determination unit 58 determines that safety function FN1 is invalid (no in step S41), the direct teaching execution unit 52 does not execute the direct teaching function FN2 (step S3). Based on this configuration, step S3 in FIG11 can reliably prevent the accidental execution of the direct teaching function FN2 without enabling safety function FN1. Therefore, operator safety can be reliably ensured.
[0112] Furthermore, in this embodiment, the control device 16 further includes a threshold switching unit 60, which switches the thresholds Fcth, Vth, and ath between a first threshold Fcth1, Vth1, and ath1, and a second threshold Fcth2, Vth2, and ath2 that are greater than the first threshold Fcth1, Vth1, and ath1. Then, when the direct teaching execution unit 52 starts the direct teaching function FN2, the threshold switching unit 60 switches the thresholds Fcth, Vth, and ath from the first threshold Fcth1, Vth1, and ath1 to the second threshold Fcth2, Vth2, and ath2 (step S43).
[0113] Based on this configuration, when executing steps S2 and S3 in parallel, it is possible to reliably avoid the situation where the operator's operating force Fh applied to the robot 12 in step S12 of step S2 is inadvertently determined to be correct. Therefore, it is possible to avoid unnecessary stopping of the robot 12's movements during direct instruction FN2, and the operator's safety can be reliably ensured through the safety function FN1.
[0114] Furthermore, in this embodiment, the processor of the teaching device 18 generates a safety function setting image 106 and displays it on the display device 44 of the teaching device 18. However, it is not limited to this; the processor 32 of the control device 16 may also generate the safety function setting image 106 and display it on the display device 42.
[0115] In this case, the operator can also operate the input device 40 to select either the valid button image 108 or the invalid button image 110 from the safety function setting image 106 displayed on the display device 42. When the operator selects the valid button image 108, the processor 32 of the control device 16 will process the safety function valid command via the input device 40.
[0116] Furthermore, in this embodiment, the operator manually inputs the selection of safety function FN1 as enabled or disabled to the processor of teaching device 18 (or the processor 32 of control device 16). However, it is not limited to this; the processor 32 of control device 16 may also function as a function switching unit 56, automatically setting safety function FN1 to enabled or disabled without accepting input from the operator.
[0117] For example, the robot system 10 further includes an object detection sensor (camera, laser scanner, etc.) that can detect objects (such as an operator) present around the robot 12. In this case, the processor 32 functions as a function switching unit 56, which activates the safety function FN1 when the object detection sensor detects an object around the robot 12.
[0118] On the other hand, when the object detection sensor detects that the object has moved away from the robot 12, the processor 32 can also disable the safety function FN1 and set the maximum speed VMAX of the robot 12 to a higher value. This allows the robot 12 to perform high-speed movements, for example, when executing the automatic operation function FN4.
[0119] Furthermore, step S43 of FIG11 can be executed before step S41 (i.e., when step S1 determines that it is true). Alternatively, steps S41 and S42 can be omitted from the flowchart of FIG11. In this case, the function switching unit 56 can be omitted from the control device 16 shown in FIG9.
[0120] As an alternative, step S43 can be omitted from the flowchart in FIG11. In this case, the threshold switching unit 60 can be omitted from the control device 16 shown in FIG9. Furthermore, it should be understood that steps S41 to S43 of FIG11 can be applied to the flowchart shown in FIG7 (i.e., after step S1 is determined to be yes).
[0121] Furthermore, when executing step S3 (direct teaching function FN2) in FIG11, the processor 32 can also function as a safety function determination unit 58 to determine whether the safety function FN1 is valid or invalid. If it is invalid, the direct teaching function FN2 is terminated. FIG12 shows the flow of this direct teaching function FN2.
[0122] In the process of step S3 shown in Figure 12, if the determination is negative in step S24, in step S25, the processor 32 functions as the security function determination unit 58, and determines whether the security function FN1 is effective or ineffective in the same way as in step S41 above.
[0123] When the processor 32 determines that the condition is yes, it returns to step S21; when the condition is no (i.e., when safety function FN1 is disabled), it terminates the direct teaching function FN2 in step S3. Thus, when safety function FN1 is disabled during the execution of direct teaching function FN2, terminating direct teaching function FN2 more reliably ensures operator safety. Furthermore, if the condition is no in step S25, the processor 32 can also execute the aforementioned step S42 to generate warning signal AL1.
[0124] Furthermore, the processor 32 can also omit step S43 from the flowchart in FIG11. When executing steps S2 (safety function FN1) and S3 (direct teaching function FN2) in FIG11, it functions as a threshold switching unit 60. When the action parameters OP (contact force Fc, velocity V, and acceleration a) exceed the third thresholds Fcth3, Vth3, and ath3, it switches the thresholds Fcth, Vth, and ath referenced in step S12 of step S2 from the first thresholds Fcth1, Vth1, and ath1 to the second thresholds Fcth2, Vth2, and ath2. The flowchart of this step S2 is shown in FIG13.
[0125] In the process of step S2 shown in FIG. 13, after step S11, at step S15, the processor 32 determines whether the motion parameters OP (contact force Fc, speed V, and acceleration a) obtained in the most recent step S11 are less than the third threshold values Fcth3, Vth3, and ath3.
[0126] These third threshold values Fcth3, Vth3, and ath3 are set to values less than the threshold values Fcth, Vth, and ath referred to in step S12 (specifically, the above-mentioned first threshold values Fcth1, Vth1, and ath1, and the second threshold values Fcth2, Vth2, and ath2) (that is, Fcth3 < Fcth1 < Fcth2, Vth3 < Vth1 < Vth2, ath3 < ath1 < ath2).
[0127] When Fc < Fcth3, V < Vth3, and a < ath3, the processor 32 determines that it is yes and proceeds to step S16. When Fc ≥ Fcth3, V ≥ Vth3, or a ≥ ath3 (that is, when at least one of the motion parameters OP exceeds the third threshold values Fcth3, Vth3, or ath3), the processor 32 determines that it is no and proceeds to step S17. Furthermore, the processor 32 can also determine in this step S15 whether the speed V and acceleration a among the motion parameters OP are less than the third threshold values Vth3 and ath3.
[0128] At step S16, the processor 32 functions as the threshold switching unit 60 and sets the threshold values Fcth, Vth, and ath to be referred to in step S12 as the first threshold values Fcth1, Vth1, and ath1.
[0129] On the other hand, when it is determined to be no at step S15 (that is, when the motion parameters OP exceed the third threshold values Fcth3, Vth3, or ath3), at step S17, the processor 32 functions as the threshold switching unit 60 and sets the threshold values Fcth, Vth, and ath to be referred to in step S12 as the second threshold values Fcth2, Vth2, and ath2. Furthermore, the processor 32 can also set the threshold value Fcth for the contact force Fc to the second threshold value Fcth at this step S17, while maintaining the threshold value Vth for the speed V and the threshold value ath for the acceleration a at the first threshold values Vth1 and ath1.
[0130] Subsequently, in step S12, the processor 32 refers to the first threshold Fcth1, Vth1 or ath1 or the second threshold Fcth2, Vth2 and ath2 set at that time point to determine whether the action parameter OP exceeds the first threshold Fcth1, Vth1 and ath1 or the second threshold Fcth2, Vth2 and ath2.
[0131] Thus, in the process shown in Figure 13, when at least one of the action parameters OP exceeds the third threshold Fcth3, Vth3 or ath3, the processor 32 switches the thresholds Fcth, Vth and ath to be referenced in step S12 from the first thresholds Fcth1, Vth1 and ath1 to the second thresholds Fcth2, Vth2 and ath2 (step S17).
[0132] On the other hand, when the action parameter OP is less than the third threshold Fcth3, Vth3 or ath3 (that is, it is determined to be true in step S15), the processor 32 switches the thresholds Fcth, Vth and ath to be referenced in step S12 from the second thresholds Fcth2, Vth2 and ath2 to the first thresholds Fcth1, Vth1 and ath1.
[0133] Here, in step S3 (direct teaching function FN2), which is executed in parallel with step S2, when the operating force Fh applied by the operator to the robot 12 increases, the motion parameters OP (velocity V, acceleration a) also increase. Furthermore, the external force F detected by the force sensor 14 also includes a component of the operating force Fh.
[0134] According to this embodiment, by switching the thresholds Fcth, Vth, and ath in response to the motion parameter OP as described above, the situation where the robot 12 is determined to be "yes" in step S12 due to the operator applying the operating force Fh can be reliably avoided, resulting in the accidental execution of step S13. On the other hand, when the motion parameter OP is small, the situation where the robot 12 comes into contact with surrounding objects can be detected more reliably.
[0135] Furthermore, in one example of this embodiment, in step S15, the processor 32 determines whether the velocity V or acceleration a in the motion parameter OP is less than the third threshold Vth3 or ath3. Then, in steps S16 and S17, the processor 32 switches the threshold Fcth for the contact force Fc between the first threshold Fcth1 and the second threshold Fcth2 according to the velocity V or acceleration a.
[0136] Then, in step S12, the processor 32 refers to the first threshold Fcth1 or the second threshold Fcth2 set at this time point to determine whether the contact force Fc obtained as the action parameter OP exceeds the first threshold Fcth or the second threshold Fcth2.
[0137] That is, in this case, the processor 32 determines in step S15 whether one of the motion parameters OP (velocity V, acceleration a) is less than the third threshold (Vth3, ath3), and in steps S16 and S17, switches the threshold (Fcth) for the other motion parameter OP (contact force Fc) between the first threshold (Fcth1) and the second threshold (Fcth2).
[0138] Then, in step S12, the processor 32 determines whether the other motion parameter OP exceeds the threshold (Fcth1 or Fcth2) after the switch. Based on this configuration, the situation where step S13 is accidentally executed due to the operating force Fh applied to the robot 12 can be more reliably avoided in the direct teaching function FN2.
[0139] Furthermore, the processor 32 can also execute step S43 in the flowchart of FIG11, and execute the flowchart of FIG13 in step S2 of FIG11. In this case, in step S16 of FIG13, the processor 32 functions as a threshold switching unit 60, setting the thresholds Fcth, Vth and ath to be referenced in step S12 to the second thresholds Fcth2, Vth2 and ath2 switched in step S43.
[0140] Furthermore, in step S17 of Figure 13, the processor 32 functions as a threshold switching unit 60, setting the thresholds Fcth, Vth, and ath to be referenced in step S12 as fourth thresholds Fcth4, Vth4, and ath4. These fourth thresholds Fcth4, Vth4, and ath4 are set to values greater than the second thresholds Fcth2, Vth2, and ath2 (i.e., Fcth4 > Fcth2, Vth4 > Vth2, ath4 > ath2).
[0141] That is, in this case, the processor 32 functions as a threshold switching unit 60, switching between thresholds Fcth, Vth, and ath that are referenced in step S12, according to the motion parameter OP, between thresholds Fcth2, Vth2, and ath2 (first threshold) and thresholds Fcth4, Vth4, and ath4 (second threshold). In this case, the processor 32 can also determine in step S15 whether one of the motion parameters OP (velocity V, acceleration a) is less than the third threshold (Vth3, ath3), and in steps S16 and S17, switch between the first threshold (Fcth2) and the second threshold (Fcth4) for the other motion parameter OP (contact force Fc) threshold (Fcth).
[0142] Next, various configurations of the force sensor 14 will be described with reference to Figures 14 and 15. The force sensor 14 may have at least one of the torque sensor 14A and the force sensor 14B described above. Figure 14 shows an embodiment of the torque sensor 14A. The torque sensor 14A is disposed on the output shaft 31a of the actuator 31. Specifically, the torque sensor 14A has: a cylindrical body portion 150 having a central axis A1, and a pair of sensing elements 152a and 152b built into the body portion 150. The body portion 150 is coaxially fitted into the output shaft 31a in a manner that surrounds and encloses the output shaft 31a.
[0143] Each of the pair of sensing elements 152a and 152b has, for example, a strain gauge such as a semiconductor strain gauge or a metal foil strain gauge, a proximity sensor, a light sensor, a laser or capacitive displacement gauge, or an optical or magnetic encoder. The sensing elements 152a and 152b convert the strain, deformation, or displacement generated in the body portion 150 due to the torque τ applied to the output shaft 31a into electrical signals, and output them as detection data DDτa and DDτb, respectively.
[0144] The detection data DDτa output from sensor element 152a is supplied to control device 16 via signal line L1. Sensor element 152a and signal line L1 constitute the detection unit 154a of the first system. Furthermore, the detection data DDτb output from sensor element 152b is supplied to control device 16 via signal line L2, which is independent (specifically insulated) from signal line L1. Sensor element 152b and signal line L2 constitute the detection unit 154b of the second system.
[0145] Furthermore, signal lines L1 and L2 can be wired or wireless (i.e., wireless communication transmission paths). Thus, in this embodiment, the detection data DDτa of sensor element 152a and the detection data DDτb of sensor element 152b are individually supplied to the control device 16 via independent signal lines L1 and L2.
[0146] In order to detect a force in one direction (specifically, the circumferential torque τ applied to the body 150 from the output shaft 31a), a pair of sensor elements 152a and 152b are arranged adjacent to each other at the same location on the body 150. Therefore, the detection data DDτa of sensor element 152a and the detection data DDτb of sensor element 152b will be approximately equal. For example, sensor elements 152a and 152b may also be arranged overlapping each other (or parallel). Thus, in this embodiment, the detection units 154a and 154b of the two separate systems will detect a force (torque τ) in one direction together, and each will individually supply the detection data DDτa and DDτb to the control device 16.
[0147] Figure 15 shows an embodiment of a force sensor 14B. The force sensor 14B is a 6-axis force sensor, disposed, for example, on a robot base 20. Specifically, the force sensor 14B has: a cylindrical body portion 160 having a central axis A2, and a plurality of pairs of sensor elements 162a and 162b disposed on the body portion 160. The body portion 160 has: a pair of ring portions 160a and 160b extending in the circumferential direction and spaced apart from each other in the axial direction; and a plurality of column portions 160c extending between the ring portions 160a and 160b, arranged at approximately equal intervals in the circumferential direction.
[0148] In the example shown in Figure 15, a pair of sensor elements 162a and 162b are respectively provided in the ring portion 160a and the column portion 160c. Similar to the aforementioned sensor elements 152a and 152b, each of the pair of sensor elements 162a and 162b has a strain gauge such as a semiconductor strain gauge or a metal foil strain gauge, a proximity sensor, a light sensor, a laser or capacitive displacement gauge, or an optical or magnetic encoder, etc. The sensor elements 162a and 162b convert the strain, deformation, or displacement generated in the body portion 152 due to the force f acting on the body portion 162 into electrical signals, and output them as detection data DDfa and DDfb, respectively.
[0149] To detect a force in one direction (specifically, the axial force f applied to the ring portion 160a), a pair of sensor elements 162a and 162b disposed on the ring portion 160a are arranged adjacent to each other at the same location on the ring portion 160a. Similarly, to detect a force in one direction (specifically, the force f applied to the column portion 160c in the direction about axis A2), a pair of sensor elements 162a and 162b disposed on the column portion 160c are arranged adjacent to each other at the same location on the column portion 160c. The detection data DDfa of sensor element 162a and the detection data DDfb of sensor element 162b are approximately equal. For example, sensor elements 162a and 162b may also be arranged overlapping each other (or parallel to each other).
[0150] The detection data DDfa output from each sensor element 162a is supplied to the control device 16 via signal line L1. The sensor elements 162a and signal line L1 constitute the detection unit 164a of the first system. Based on the detection data DDfa from each sensor element 162a, the control device 16 detects the forces in the following six axes by executing a predetermined calculation CL3: the force fx in the x-axis direction, the force fy in the y-axis direction, and the force fz in the z-axis direction of the sensor coordinate system C3 set on the body part 160 of the force sensor 14B; the torque τx around the x-axis; the torque τy around the y-axis; and the torque τx around the z-axis.
[0151] The sensor coordinate system C3 is a control coordinate system used to calculate the external force F applied to the robot 12 by means of the detection data DDf from the force sensor 14B. For example, the sensor coordinate system C3 is set for the body 160 such that its origin is located on the central axis A2 of the body 160 (e.g., the center point), and its z-axis is aligned with the central axis A2 of the body 160. The control device 16 can determine the magnitude and direction of the external force F applied to the robot 12 from the forces fx, fy, fz, τx, τy, and τx in the six-axis directions thus calculated, and can identify the part of the robot 12 to which the external force F is applied.
[0152] Furthermore, the detection data DDfb output from each sensor element 162b is supplied to the control device 16 via signal line L2. The sensor elements 162b and signal line L2 constitute the detection unit 164b of the second system. The control device 16 can perform a predetermined calculation CL3 based on the detection data DDfb of each sensor element 162b to calculate the forces fx, fy, fz, τx, τy, and τx in the six-axis directions, thereby identifying the magnitude and direction of the external force F applied to the robot 12, and the location of the robot 12 to which the external force F is applied. Thus, in this embodiment, the detection units 164a and 164b of the two separate systems jointly detect the force f in one direction, and each separately supplies the detection data DDfa and DDfb to the control device 16.
[0153] Next, referring to FIG16, the safety function FN1 and direct teaching function FN2 performed based on the detection data DDτa and DDτb of the torque sensor 14A in FIG14 will be explained. In this embodiment, the safety function execution unit 50 (specifically the processor 32) performs the following safety functions in parallel: the first safety function FN1a, which monitors the first contact force Fca calculated based on the detection data DDτa of the detection unit 154a (i.e., one of the sensor elements 152a) of the first system; and the second safety function FN1b, which monitors the second contact force Fcb calculated based on the detection data DDτb of the detection unit 154b (i.e., the other sensor element 152b) of the second system. Each of the first safety function FN1a and the second safety function FN1b is, for example, the flow of step S2 shown in FIG5.
[0154] That is, as the first safety function FN1a, the safety function execution unit 50 executes the process of step S2 based on the detection data DDτa, which is obtained from one of the sensing elements 152a of each torque sensor 14A via the signal line L1. As the second safety function FN1a, in parallel with the first safety function FN1a, the safety function execution unit 50 executes the process of step S2 based on the detection data DDτb, which is obtained from the other sensing element 152b of each torque sensor 14A via the signal line L2. Therefore, when either step S12 executed as the first safety function FN1a or step S12 executed as the second safety function FN1b is determined to be true, the robot 12 will be stopped (step S13).
[0155] Thus, based on the detection data DDτa and DDτb of the separate system detection units 154a and 154b (i.e., different sensor elements 152a and 152b), the first safety function FN1a and the second safety function FN1b are executed individually. Therefore, even if the detection unit 154a of one system (e.g., sensor element 152a) fails, the detection data DDτb of the detection unit 154b of the other system (e.g., sensor element 152b) can still be used to continue executing the second safety function FN1b. Therefore, operator safety can be further reliably ensured.
[0156] Furthermore, the direct teaching execution unit 52 (processor 32) executes the direct teaching function FN2 (step S3 shown in FIG. 6) in parallel with the first safety function FN1a and the second safety function FN1b executed by the safety function execution unit 50. Specifically, the direct teaching execution unit 52 executes the process of step S3 based on the detection data DDτa, which is obtained from one of the sensing elements 152a of each torque sensor 14A via the signal line L1. At this time, the direct teaching execution unit 52 calculates the operating force Fh based on the detection data DDτa of the detection unit 154a of one of the systems (i.e., one of the sensing elements 152a) in step S21 of step S3.
[0157] Furthermore, the safety functions FN1a and FN1b, and the direct teaching function FN2, performed based on the detection data DDfa and DDfb of the force sensor 14B shown in FIG. 15, are the same as those performed using the torque sensor 14A. Specifically, the safety function execution unit 50 performs the following safety functions in parallel: the first safety function FN1a (flow in FIG. 5), which monitors the first contact force Fca calculated based on the detection data DDfa of the detection unit 164a of the first system (i.e., each of the sensor elements 162a); and the second safety function FN1b (flow in FIG. 5), which monitors the second contact force Fcb calculated based on the detection data DDfb of the detection unit 164b of the second system (i.e., each of the other sensor elements 162b).
[0158] Furthermore, in parallel with the first safety function FN1a and the second safety function FN1b, the direct teaching execution unit 52 calculates the operating force Fh based on the detection data DDfa of the detection unit 164a of the first system obtained from each of the sensor elements 162a of the force sensor 14B via the signal line L1, thereby executing the direct teaching function FN2 (flow of FIG6).
[0159] Furthermore, the processor 32 of the control device 16 shown in FIG16 can also execute the process shown in FIG3 or FIG7. When executing the process of FIG7, in step S3', the processor 32 functions as a direct teaching execution unit 52, and executes the process of the direct teaching function FN2' shown in FIG8 based on the detection data DDτa or DDfa of the detection unit 154a or 164a of the first system obtained from one of the sensor elements 152a or 162a.
[0160] Furthermore, the processor 32 can also execute the following cycles synchronously (or alternately) with a predetermined control cycle (e.g., 1 [msec]): the cycle of steps S11 to S14 in step S2 executed as the first safety function FN1a; the cycle of steps S11 to S14 in step S2 executed as the second safety function FN1b; and the cycle of steps S21 to S24 in step S3 executed as the direct teaching function FN2.
[0161] Furthermore, the processor 32 may also include: a first processor 32A, which executes the first security function FN1a and the direct instruction function FN2; and a second processor 32B, which executes the second security function FN1b. This configuration is illustrated in Figure 17. In this configuration, the first processor 32A and the second processor 32B function as security function execution units 50, while the first processor 32A functions as a direct instruction execution unit 52.
[0162] Furthermore, not limited to the configuration shown in FIG17, the processor 32 may also include: a first processor 32A, which executes a first security function FN1a; a second processor 32B, which executes a second security function FN1b; and a third processor 32C, which executes a direct teaching function FN2.
[0163] Furthermore, the direct instruction execution unit 52 can also calculate the operating force Fh in the direct instruction function FN2 based on both the detection data DDτa (or DDfa) of the detection unit 154a (or 164a) of the first system and the detection data DDτb (or DDfb) of the detection unit 154b (164b) of the second system.
[0164] For example, when the torque sensor 14A in Figure 14 is used to perform the direct teaching function FN2, the direct teaching execution unit 52 can also calculate the average value DDτAVE of the detection data DDτa of one of the sensor elements 152a and the detection data DDτb of another sensor element 152b, and calculate the operating force Fh based on the average value DDτAVE.
[0165] As an alternative, the processor 32 may also select the larger (or smaller) of the detection data DDτa (or DDfa) of the detection unit 154a (or 164a) of the first system and the detection data DDτb (or DDfb) of the detection unit 154b (or 164b) of the second system, and use the selected larger (or smaller) one to calculate the operating force Fh.
[0166] Furthermore, the processor 32 of the control device 16 shown in FIG. 16 or FIG. 17 can also execute the fault detection function FN6 in parallel while executing the first safety function FN1a and the second safety function FN1b. The aforementioned fault detection function FN6 detects whether any of the detection units 154a or 164a of the first system (e.g., one of the sensor elements 152a or 162a) and the detection units 154b or 164b of the second system (e.g., another sensor element 152b or 162b) are faulty. This fault detection function FN6 will be explained with reference to FIG. 18.
[0167] The processor 32 begins the process shown in FIG18 when the fault detection function FN6 is enabled. This fault detection function FN6 can also be automatically enabled by the processor 32, for example, when safety function FN1 (first safety function FN1a and second safety function FN1b) is started. The fault detection function FN6 when the force sensor 14 has a torque sensor 14A is described below.
[0168] In step S51, the processor 32 acquires detection data DDτa and DDτb from the detection units 154a and 154b of the two systems (specifically, a pair of sensor elements 152a and 152b). For example, in this step S51, the processor 32 acquires detection data DDτa and DDτb detected by the pair of sensor elements 152a and 152b at the same time point (or very close time points).
[0169] In step S52, processor 32 determines whether the detection data DDτa and DDτb obtained in the most recent step S51 are different. For example, if the difference ΔD between the detection data DDτa and DDτb exceeds a predetermined threshold ΔDth (ΔD≧ΔDth), processor 32 determines that the detection data DDτa and DDτb are different (i.e., they are). If the determination is yes, processor 32 proceeds to step S54; if the determination is no, it proceeds to step S53.
[0170] In step S53, the processor 32 determines whether the fault detection function FN6 is set to invalid. If the processor 32 determines that it is, the fault detection function FN6 is terminated; if it determines that it is not, it returns to step S51.
[0171] Additionally, if the determination is yes in step S52, in step S54, the processor 32 generates a warning signal AL2. For example, the processor 32 may also generate the following image or sound warning signal AL2: "The force sensor may be faulty. Please maintain the force sensor.", and output it to the display device 42 or 44, or the speaker.
[0172] Furthermore, when the determination is yes in step S52, the processor 32 can also execute the aforementioned emergency stop action ES to stop the robot 12. Additionally, the processor 32 can also execute the following cycles synchronously (or alternately) with a predetermined control cycle (e.g., 1 [msec]): the cycle of steps S11 to S14 in step S2 executed as safety function FN1 (first safety function FN1a and second safety function FN1b); and the cycle of steps S51 to S53 executed as fault detection function FN6.
[0173] Next, another function of the robot system 10 will be described with reference to Figures 19 and 20. In this embodiment, as a direct teaching function FN2_1 in another embodiment, the control device 16 executes the process shown in Figure 20. Furthermore, in the process shown in Figure 20, the same step numbers are assigned to the same processes as those shown in Figure 6, and repeated descriptions are omitted.
[0174] In the process shown in Figure 20, the processor 32 functions as the direct instruction execution unit 52, executing steps S21 to S23, and then steps S61 to S66. In step S61, the processor 32 functions as the action parameter acquisition unit 54, acquiring the action parameter OP.
[0175] In this embodiment, in step S61, the processor 32 obtains at least one of the robot 12's velocity V and acceleration a as the motion parameter OP. The following describes the case where the processor 32 obtains the velocity V as the motion parameter OP in step S61.
[0176] In step S62, the processor 32 determines whether the operation parameter OP (speed V) obtained in the most recent step S61 is within the first range. Specifically, the processor 32 determines whether the speed V obtained in the most recent step S61 is within the first range [Vth11 ≦ V < Vth12]. The threshold values Vth11 and Vth12 defining this first range can be determined in advance by the operator. Furthermore, the minimum threshold value Vth11 is set to, for example, zero. When Vth11 ≦ V < Vth12, the processor 32 determines that it is yes and proceeds to step S63, and when it determines that it is no (that is, Vth12 ≦ V), it proceeds to step S64.
[0177] In step S63, the processor 32 sets the resistance RF relative to the operating force Fh applied to the robot 12 to the first resistance RF1. Here, an acceleration setting value α that defines the maximum value of the acceleration a of the robot 12 is preset in the control device 16. The larger this acceleration setting value α is, the greater the acceleration a of the robot 12 may be when operating according to the operating force Fh. In this case, since the response of the robot 12 to the operating force Fh applied by the operator is speeded up (in other words, the operating feeling becomes lighter), the resistance RF relative to the operating force Fh becomes lower.
[0178] Conversely, the smaller the acceleration setting value α is, the smaller the acceleration a of the robot 12 will be when operating according to the operating force Fh. In this case, since the response of the robot 12 to the operating force Fh applied by the operator is slowed down (in other words, the operating feeling becomes heavier), the resistance RF relative to the operating force Fh increases.
[0179] Therefore, in the present embodiment, the processor 32 changes the acceleration setting value α according to the speed V obtained in step S61, thereby changing the resistance RF relative to the operating force Fh. In this step S63, the processor 32 sets the acceleration setting value α to the first acceleration setting value α1, thereby setting the resistance RF relative to the operating force Fh to the first resistance RF1 corresponding to the first acceleration setting value α1. Furthermore, the first acceleration setting value α1 may also be an initial value (or preset value) set at the start time of the direct teaching function FN2_1.
[0180] Further, when the determination in step S62 is NO, in step S64, the processor 32 determines whether the operation parameter OP (speed V) obtained in the most recent step S61 is within a second range greater than the first range. Specifically, the processor 32 determines whether the speed V obtained in the most recent step S61 is within the second range [Vth12 ≤ V < Vth13]. The threshold value Vth13 defining the upper limit of the second range can be determined in advance by the operator. When Vth12 ≤ V < Vth13, the processor 32 determines YES and proceeds to step S65, and when the determination is NO (i.e., when Vth13 ≤ V), it proceeds to step S66.
[0181] In step S65, the processor 32 sets the resistance RF relative to the operation force Fh applied to the robot 12 to the second resistance RF2 (>RF1). Specifically, the processor 32 sets the acceleration set value α to the second acceleration set value α2 (<α1), whereby the resistance RF relative to the operation force Fh can be set to the second resistance RF2 greater than the first resistance RF1.
[0182] Further, when the determination in step S64 is NO, in step S66, the processor 32 sets the resistance RF relative to the operation force Fh applied to the robot 12 to the third resistance RF3 (>RF2). Specifically, the processor 32 sets the acceleration set value α to the third acceleration set value α3 (<α2), whereby the resistance RF relative to the operation force Fh can be set to the third resistance RF3 greater than the second resistance RF2.
[0183] In this way, the processor 32 can change the acceleration set value α to α1, α2, or α3 by executing steps S63, S65, and S66, whereby the resistance RF relative to the operation force Fh can be changed in response to the speed V obtained in step S61. Therefore, the processor 32 functions as a resistance control unit 62 (FIG. 19) that changes the resistance RF relative to the operation force Fh. After the processor 32 executes step S63, S65, or S66 as the resistance control unit 62, it proceeds to step S24 to determine whether the direct teaching function FN2_1 is set to invalid.
[0184] In this way, the processor 32 executes steps S61 to S66 during the execution of the direct teaching function FN2_1, and controls the resistance RF relative to the operation force Fh in response to the operation parameter OP (specifically, the speed V). Furthermore, although detailed description is omitted, it should be understood that when the processor 32 obtains the acceleration a as the operation parameter OP in step S61, steps S62 to S66 can be similarly executed based on the acceleration a.
[0185] As described above, in this embodiment, the control device 16 includes: a direct teaching execution unit 52; a motion parameter acquisition unit 54, which acquires the speed V (or acceleration a) of the robot 12 during the execution of the direct teaching function FN2_1; and a resistance control unit 62, which changes the resistance RF relative to the operating force Fh in response to the speed V (or acceleration a) acquired by the motion parameter acquisition unit 54.
[0186] Based on this configuration, if the velocity V (or acceleration a) of robot 12 increases during the execution of the direct teaching function FN2_1, the drag RF can be used to provide feedback to the operator's perception of robot 12, allowing the operator to intuitively identify this. This avoids the situation where the velocity V (or acceleration a) increases excessively during the execution of the direct teaching function FN2_1.
[0187] Furthermore, in this embodiment, the resistance control unit 62 changes the acceleration setting value α, which specifies the maximum value of acceleration a, to α1, α2, or α3 based on the velocity V (or acceleration a) obtained by the motion parameter acquisition unit 54, so as to change the resistance RF. Based on this configuration, the processor 32 can quickly change the resistance RF using a relatively simple algorithm.
[0188] Next, referring to FIG21, another embodiment of the direct teaching function FN2_2 will be described. As the direct teaching function FN2_2, the control device 16 shown in FIG19 executes the process shown in FIG21. Furthermore, in the process shown in FIG21, the same step numbers are assigned to the same processes as those shown in FIG20, and repeated descriptions are omitted.
[0189] In the process flow shown in Figure 21, when the processor 32 determines "yes" in step S22, it executes step S71. In step S71, the processor 32 functions as the direct instruction execution unit 52, determining the acceleration setpoint α by applying the operating force Fh obtained in the most recent step S21 to the characteristic data CD. The characteristic data CD is data (in other words, a graph) representing the relationship between the operating force Fh and the acceleration setpoint α. Figure 22 shows an example of the characteristic data CD.
[0190] In the example shown in Figure 22, the first characteristic data CD1, the second characteristic data CD2, and the third characteristic data CD3 are represented. The first characteristic data CD1 has the largest slope δα / δFh. Therefore, according to the first characteristic data CD1, the acceleration setting value α relative to the operating force Fh (that is, the maximum value of the acceleration α of robot 12 when the direct teaching function FN2_2 is executed) is greater than the second characteristic data CD2 and the third characteristic data CD3.
[0191] Therefore, since the robot 12's response to the operating force Fh applied by the operator will be faster (in other words, the operating feel will be lighter), the resistance RF relative to the operating force Fh will be lower than the second characteristic data CD2 and the third characteristic data CD3. Furthermore, the first characteristic data CD1 can also be set as the initial data (or preset value) of characteristic data CD at the start time of the direct teaching function FN2_2.
[0192] Furthermore, the slope δα / δFh of the third characteristic data CD3 is the smallest. Therefore, based on the third characteristic data CD3, the acceleration setting value α relative to the operating force Fh is less than that of the first characteristic data CD1 and the second characteristic data CD2. Therefore, since the response of robot 12 relative to the operating force Fh applied by the operator will be slower (in other words, the operation feels heavier), the resistance RF relative to the operating force Fh will be greater than that of the first characteristic data CD1 and the second characteristic data CD2.
[0193] Then, based on the second characteristic data CD2, the resistance RF becomes the value between the first characteristic data CD1 and the third characteristic data CD3. Thus, the characteristic data CD1, CD2, and CD3 are related to the resistance RF relative to the operating force Fh. These characteristic data CD1, CD2, and CD3 are pre-stored in memory 34.
[0194] In order to make the robot 12 move in step S23 of Figure 21, one of these characteristic data CD1, CD2 and CD3 is selected and set as characteristic data CD used to determine the acceleration setpoint α. For example, assume that the first characteristic data CD1 has been set at the beginning of this step S71. In this case, in this step S71, the processor 32 functions as a direct teaching execution unit 52, and determines the acceleration setpoint α by applying the operating force Fh obtained in the most recent step S21 to the first characteristic data CD1 shown in Figure 22.
[0195] Then, in step S23, the processor 32 functions as the direct instruction execution unit 52, using the acceleration setpoint α determined in the most recent step S71, to move the robot 12 in response to the operating force Fh obtained in the most recent step S21. At this time, the acceleration α of the moving robot 12 is controlled below the acceleration setpoint α.
[0196] Furthermore, if the determination is yes in step S62, in step S72, the processor 32 functions as the resistance control unit 62, setting the resistance RF relative to the operating force Fh as the first resistance RF1. Specifically, the processor 32 sets the aforementioned characteristic data CD as the first characteristic data CD1 in FIG22. As mentioned above, characteristic data CD1, CD2, and CD3 are related to the resistance RF. Therefore, by selecting the first characteristic data CD1, the resistance RF can be set to the first resistance RF1 corresponding to the first characteristic data CD1.
[0197] Furthermore, if the determination is yes in step S63, in step S73, the processor 32 functions as the resistance control unit 62, setting the resistance RF relative to the operating force Fh as the second resistance RF2. Specifically, the processor 32 sets the aforementioned characteristic data CD as the second characteristic data CD2 in FIG22.
[0198] Therefore, the resistance RF can be set to the second resistance RF2 corresponding to the second characteristic data CD2. Here, as mentioned above, the second resistance RF2 in the second characteristic data CD2 is greater than the first resistance RF1 in the first characteristic data CD1 (RF2>RF1).
[0199] Furthermore, if the determination in step S63 is negative, in step S74, the processor 32 functions as the resistance control unit 62, setting the resistance RF relative to the operating force Fh as the third resistance RF2. Specifically, the processor 32 sets the aforementioned characteristic data CD as the third characteristic data CD3 in FIG22.
[0200] Therefore, the resistance RF can be set to the third resistance RF2 corresponding to the third characteristic data CD3. As mentioned above, the third resistance RF3 in the third characteristic data CD3 is the largest (RF3>RF2>RF1). After the processor 32 executes steps S72, S73 or S74 as the resistance control unit 62, it proceeds to step S24 to determine whether the direct teaching function FN2_2 is set to invalid.
[0201] As described above, in this embodiment, the characteristic data CD (CD1, CD2, CD3) representing the relationship between the operating force Fh and the acceleration setpoint α are pre-memorized in memory 34. The direct teaching execution unit 52 determines the acceleration setpoint α when the direct teaching function FN2_2 is executed by applying the operating force Fh to the characteristic data CD (step S71).
[0202] Then, the resistance control unit 62 changes the characteristic data CD to the first characteristic data CD1, the second characteristic data CD2, or the third characteristic data CD3 according to the speed V (or acceleration a) obtained by the motion parameter acquisition unit 54, thereby changing the resistance RF (steps S72, S73, S74). According to this configuration, since the processor 32 can make the operator's robot 12's operating feel (i.e., the weight of the operating feel) change more smoothly, the operating feel can be improved.
[0203] Furthermore, in this embodiment, it is described that three characteristic data CD1, CD2, and CD3 are pre-stored in memory 34. However, it is also possible that one of the characteristic data CD1, CD2, and CD3 is stored in memory 34, and the processor 32 uses the characteristic data CD stored in memory 34 to calculate the other two characteristic data CD1, CD2, and CD3 through predetermined calculations.
[0204] For example, suppose the first characteristic data CD1 is pre-stored in memory 34. In this case, the processor 32 can also perform a predetermined operation in step S73 to reduce the slope δα / δFh of the first characteristic data CD1, thereby obtaining the second characteristic data CD2.
[0205] Furthermore, in step S74, processor 32 can also perform a predetermined operation to reduce the slope δα / δFh of the first characteristic data CD1 or the second characteristic data CD2, thereby obtaining the third characteristic data CD3. This eliminates the need to store many characteristic data CDn in memory 34. Moreover, although the example shown in Figure 22 illustrates three characteristic data CD1, CD2, and CD3, two or more characteristic data CDn can also be stored in memory 34.
[0206] Next, referring to FIG23, another embodiment of the direct teaching function FN2_3 will be described. As the direct teaching function FN2_3, the control device 16 shown in FIG19 executes the process shown in FIG23. Furthermore, in the process shown in FIG23, the same step numbers are assigned to the same processes as those shown in FIG20, and repeated descriptions are omitted.
[0207] In the flow shown in Figure 23, the processor 32 functions as the direct instruction execution unit 52, executing steps S21 to S23. Here, in step S23, the processor 32 generates instructions CM for the actuator 31 of the robot 12 in order to move the robot 12 according to the operating force Fh specified in the most recent step S21. The method for generating instructions CM will be explained below with reference to Figure 24.
[0208] As shown in Figure 24, the control device 16 includes a position command generation unit 64, a speed command generation unit 66, a torque command generation unit 68, a current control unit 70, a differentiator 72, subtractors 74 and 76, and an adder 78. The processor 32 is responsible for the computational processing to implement the functions of the position command generation unit 64, the speed command generation unit 66, the torque command generation unit 68, the current control unit 70, the differentiator 72, the subtractors 74 and 76, and the adder 78.
[0209] The position command generation unit 64 generates a position command CM1 that specifies the position of the robot 12 (e.g., the terminator 30) and outputs it to the subtractor 74. The subtractor 74 subtracts the feedback FB (rotational position) supplied from the rotation detection sensor 33 through the I / O interface 36 from the input position command CM1, and outputs it as the position deviation δp to the speed command generation unit 66.
[0210] The speed command generation unit 66 generates a speed command CM2 based on the position deviation δp and outputs it to the subtractor 76. Meanwhile, the differentiator 72 performs time differentiation on the feedback FB supplied to the self-rotation detection sensor 33 to calculate the speed V, and outputs it as speed feedback V to the subtractor 76. The subtractor 76 subtracts the speed feedback V from the input speed command CM2 and outputs it as speed deviation δv to the torque command generation unit 68.
[0211] The torque command generation unit 68 generates a torque command CM3 based on the speed deviation δv. The current control unit 70 generates a voltage signal CM4 (e.g., a PWM control signal) based on the torque command CM3 and sends it to the actuator 31 through the I / O interface 36. The position command CM1, speed command CM2, torque command CM3, and voltage signal CM4 constitute the command CM given to the actuator 31.
[0212] Thus, in step S23, the processor 32 generates instructions CM (position instruction CM1, speed instruction CM2, torque instruction CM3, and voltage signal CM4) for the actuator 31, and causes the robot 12 to move according to the operating force Fh. Referring again to FIG23, when it is determined to be yes in step S62, the processor 32 proceeds to step S24 to determine whether the direct teaching function FN2_3 is set to invalid.
[0213] Furthermore, when the determination is yes in step S64, in step S81, the processor 32 functions as the resistance control unit 62, modifying the instruction CM generated in step S23. Specifically, as shown in FIG24, the processor 32 functions as the resistance control unit 62, generating an instruction correction value CR1 and outputting it to the adder 78. This instruction correction value CR1 modifies the torque instruction CM3, so that a force acting in the opposite direction to the operating force Fh is generated in the actuator 31.
[0214] The adder 78 generates a corrected torque command CM3' by adding the command correction value CR1 generated by the resistance control unit 62 to the torque command CM3 output from the torque command generation unit 68, and outputs it to the current control unit 70. In this way, by correcting the torque command CM3 with the command correction value CR1, a force opposite to the operating force Fh is generated in each movable component of the robot 12, thereby increasing the resistance RF relative to the operating force Fh.
[0215] Referring again to Figure 23, when the determination is negative in step S64, in step S82, the processor 32 functions as the resistance control unit 62 and modifies the instruction CM generated in step S23. Specifically, the processor 32 functions as the resistance control unit 62, generates an instruction correction value CR2 (Figure 24), and outputs it to the adder 78.
[0216] This instruction correction value CR2 is different from the instruction correction value CR1 generated in step S81, and is generated such that a force greater than the instruction correction value CR1 can be generated in the direction opposite to the operating force Fh. The adder 78 generates a corrected torque instruction CM3' by adding the instruction correction value CR2 generated by the resistance control unit 62 to the torque instruction CM3, and outputs it to the current control unit 70. As a result, the resistance RF relative to the operating force Fh can be increased even more than in step S81. After step S81 or S82, the processor 32 proceeds to step S24.
[0217] As described above, in this embodiment, the direct instruction execution unit 52 generates instructions CM (position instruction CM1, speed instruction CM2, torque instruction CM3 and voltage signal CM4) for the actuator 31 of the robot 12 in order to make the robot 12 move by the direct instruction function FN2_3.
[0218] Then, the resistance control unit 62 modifies the command CM (specifically, the torque command CM3) generated by the direct instruction execution unit 52 in response to the velocity V (acceleration a) obtained by the motion parameter acquisition unit 54, thereby changing the resistance RF (steps S81 and S82). Based on this configuration, the resistance RF relative to the operating force Fh can be controlled quickly and precisely.
[0219] Furthermore, in this embodiment, the resistance control unit 62 is described as correcting the torque command CM3 using the command correction value CR1 or CR2. However, it is not limited to this; as long as the resistance RF relative to the operating force Fh can be changed, the resistance control unit 62 can also correct the position command CM1, the speed command CM2, or the voltage signal CM4.
[0220] Furthermore, the flow of the direct teaching function FN2_1 shown in Figure 20, the direct teaching function FN2_2 shown in Figure 21, or the direct teaching function FN2_3 shown in Figure 23 can also be applied to the above steps S3 or S3'. That is, in this case, the control device 16 shown in Figure 2 or Figure 9 further includes a resistance control unit 62. Also, when the processor 32 determines that step S64 in Figure 20, Figure 21, or Figure 23 is not correct, it can generate the following visual or auditory warning signal AL3: "Speed or acceleration is too high. Please reduce the operating force." and output it to the display device 42 or 44, or the speaker.
[0221] Next, another function of the robot system 10 will be described with reference to Figures 25 and 26. The control device 16 shown in Figure 25 further includes a timing unit 80. The timing unit 80 is communicatively connected to the processor 32 via bus 38, and calculates the elapsed time t from a certain point in time in response to instructions from the control device 16.
[0222] The control device 16 shown in Figure 25 executes the direct teaching function FN2_4 shown in Figure 26. Furthermore, in the process shown in Figure 26, the same step numbers are assigned to the same procedures as those shown in Figure 6, and repeated descriptions are omitted. The process shown in Figure 26 begins at time t0 when the processor 32 receives the instruction to start the direct teaching function FN2_4.
[0223] In step S91, processor 32 begins calculating the elapsed time t from time point t0 in the flow of Figure 26. Specifically, processor 32 sends a timing command to timing unit 80 at time point t0, and in response to the timing command, timing unit 80 begins calculating the elapsed time t from time point t0. Afterward, processor 32 functions as direct teaching execution unit 52, executing steps S21-23. In step S24, it determines whether the direct teaching function FN2_4 is set to invalid.
[0224] If the determination in step S24 is negative, in step S92, the processor 32 determines whether the elapsed time t calculated by the timing unit 80 exceeds a predetermined threshold tth1 (i.e., t≧tth1). If the processor 32 determines that t≧tth1 is positive, it proceeds to step S94; if the determination is negative, it proceeds to step S93.
[0225] In step S93, the processor 32 determines whether it has received an instruction for a function FN other than the currently executing direct teaching function FN2_4. Here, during the execution of the direct teaching function FN2_4, the operator may wish to temporarily interrupt the application of the operating force Fh to the robot 12 to execute a function FN other than the direct teaching function FN2_4, such as the teaching function FN3, the automatic operation function FN4, or the action confirmation function FN5.
[0226] As an example, when the processor 32 is executing the direct teaching function FN2_4 of Figure 26, the operator operates the input device 46 of the teaching device 18 to input the instruction CM5, which is used to make the robot 12 perform micro-motions through the teaching function FN3, into the teaching device 18. As another example, during the execution of the direct teaching function FN2_4, the operator operates the input device 46 of the teaching device 18 to input the instruction CM6, which is used to make the robot 12 perform automatic operation (or test action) through the automatic operation function FN4 or (action confirmation function FN5), into the teaching device 18.
[0227] As another example, during the execution of the direct teaching function FN2_4, the operator operates the input device 46 of the teaching device 18 to input the instruction CM7 into the teaching device 18. The aforementioned instruction CM7 can cause the display device 44 to display the input image used for executing the teaching function FN3, the automatic operation function FN4, or the action confirmation function FN5.
[0228] The processor of the teaching device 18 will receive the operator's instructions CM5, CM6 or CM7 and supply them to the control device 16. Furthermore, the operator can also operate the input device 40 of the control device 16 to directly input the instructions CM5, CM6 or CM7 used for the teaching function FN3, the automatic operation function FN4 or the action confirmation function FN5 into the control device 16.
[0229] In step S93, when the processor 32 of the control device 16 receives the instruction CM5, CM6, or CM7 used by the teaching function FN3, the automatic operation function FN4, or the action confirmation function FN5, it determines that it is yes and proceeds to step S94. Alternatively, when the processor 32 does not receive the instruction CM5, CM6, or CM7, it determines that it is no and returns to step S21.
[0230] When the determination is yes in steps S24, S92, or S93, in step S94, the processor 32 terminates the direct teaching function FN2_4 and generates a notification signal SG indicating that the direct teaching function FN2_4 has been terminated. For example, the processor 32 may also generate a notification signal SG with the following image or sound: "Direct teaching function has been automatically terminated.", and output it to the display device 42 or 44, or the speaker. Thus, in this embodiment, the processor 32 functions as a notification signal generation unit 53 (FIG. 25) that generates the notification signal SG. Then, the processor 32 terminates the process shown in FIG. 26.
[0231] Thus, processor 32 repeatedly executes the loop of steps S21~S24, S92, and S93, continuing to execute the direct teaching function FN2_4 until the determination in step S24, S92, or S93 is yes. In other words, during the period when the determination in steps S24, S92, and S93 is no, processor 32 continues to execute the direct teaching function FN2_4 until the elapsed time t reaches the threshold tth1 (i.e., the elapsed period tth1). When the elapsed time t exceeds the threshold tth1 (the period tth1 has passed), the direct teaching function FN2_4 automatically ends.
[0232] As described above, in this embodiment, the direct teaching execution unit 52 terminates the direct teaching function FN2_4 (step S94) when the elapsed time t, calculated from the time t0 from the time of receiving the instruction to start the direct teaching function FN2_4, has exceeded the predetermined threshold tth1 (when it is determined to be so in step S92).
[0233] Here, after the operator starts the direct teaching function FN2_4, there may be situations where the operator leaves the work unit for an extended period of time for various reasons. In such a case, if a third party accidentally presses the robot 12 while the operator is away, the robot 12 may move unintentionally due to the direct teaching function FN2_4.
[0234] According to this embodiment, after the direct teaching function FN2_4 starts, it automatically ends after a predetermined period tth1 has elapsed, thereby preventing the robot 12 from acting unintentionally as described above. Furthermore, in this embodiment, the control device 16 further includes a timing unit 80 for calculating the elapsed time t. With this configuration, the processor 32 can reliably and without delay execute the calculation of the elapsed time t.
[0235] Furthermore, in this embodiment, when the direct teaching execution unit 52 receives instructions CM5, CM6, or CM7 from functions FN3, FN4, or FN5 other than the direct teaching function FN2_4 during the execution of the direct teaching function FN2_4 (if determined to be yes in step S93), the direct teaching function FN2_4 is terminated (step S94).
[0236] Based on this configuration, when the operator wants to interrupt the direct teaching function FN2_4 to perform, for example, the instruction function FN3, the automatic operation function FN4, or the action confirmation function FN5, the direct teaching function FN2_4 can be automatically terminated and the operation can be smoothly transferred to the instruction function FN3, the automatic operation function FN4, or the action confirmation function FN5.
[0237] Then, the processor of the teaching device 18 (or the processor 32 of the control device 16) responds to the operator's instructions CM5, CM6 or CM7 to make the robot 12 perform micro-motion, automatic operation or test action, or to display the input image on the display device 44, and accept the input for performing the teaching function FN3, the automatic operation function FN4 or the action confirmation function FN5.
[0238] Furthermore, in this embodiment, the control device 16 further includes a notification signal generation unit 53, which generates a notification signal SG indicating the end of the direct teaching function FN2_4 when the direct teaching execution unit 52 terminates the direct teaching function. Based on this configuration, the operator can easily identify when the direct teaching function FN2_4 has automatically ended.
[0239] Furthermore, in this embodiment, the following situation is described: the aforementioned time point t0 is the time point at which the instruction to start the direct teaching function FN2_4 is received, and it is also the time point at which the flow of the direct teaching function FN2_4 shown in FIG26 begins. However, strictly speaking, a time delay may occur between the time point t0_1 at which the instruction to start the direct teaching function FN2_4 is received, and the time point t0_2 at which the processor 32 receives the instruction and begins the direct teaching function FN2_4 of FIG26.
[0240] In this case, the processor 32 can also instruct the timing unit 80 to calculate the elapsed time t from either time point t0_1 or time point t0_2. That is, in this case, the processor 32 functions as the direct teaching execution unit 52, and terminates the direct teaching function FN2_4 when the elapsed time t from time point t0_1 or t0_2 exceeds a predetermined threshold tth1.
[0241] Furthermore, the timing unit 80 can be omitted from the control device 16, and its function can be obtained from an external machine. For example, an external electronic clock (or a timing unit built into another computer) can be connected to the I / O interface 36 of the control device 16, and the processor 32 can obtain the elapsed time t by referring to the time calculated by the electronic clock.
[0242] Next, referring to Figure 27, another direct instruction function FN2_5 will be explained. As the direct instruction function FN2_5, the control device 16 shown in Figure 25 executes the process shown in Figure 27. Furthermore, in the process shown in Figure 27, the same step numbers are assigned to the same procedures as those shown in Figure 26, and repeated descriptions are omitted.
[0243] After the process in Figure 27 begins, the processor 32 functions as the direct instruction execution unit 52, executing steps S21 to S23. In step S24, it determines whether the direct instruction function FN2_5 has been set to invalid. After step S23, in step S101, the processor 32 obtains the operating force Fh in the same way as in step S21.
[0244] In step S102, similar to step S22 above, processor 32 determines whether the magnitude of the operating force Fh obtained in the most recent step S101 exceeds a predetermined threshold Fhth. If the determination is yes, processor 32 returns to step S23; if the determination is no, it proceeds to step S103.
[0245] In step S103, the processor 32 determines whether the robot 12 has stopped moving. Here, the robot 12 will automatically stop when the operator releases the operating force Fh on the robot 12. The processor 32 can determine whether the robot 12 has stopped based on feedback FB from the rotation detection sensor 33. If the processor 32 determines that the robot 12 has stopped moving (i.e., it has), it proceeds to step S104; otherwise, it returns to step S101.
[0246] In step S104, the processor 32 begins to calculate the elapsed time t from the time point t1 determined in step S103 (i.e., the time point when the robot has stopped). Specifically, the processor 32 sends a timing command to the timing unit 80 at time point t1, and in response to the timing command, the timing unit 80 begins to calculate the elapsed time t from time point t1.
[0247] In step S105, the processor 32 determines whether the elapsed time t calculated by the timing unit 80 exceeds a predetermined threshold tth2 (i.e., t≧tth2). This threshold tth2 can also be set to a time less than (or greater than) the aforementioned threshold tth1. When t≧tth2, the processor 32 determines that it is yes and proceeds to step S94; when it determines that it is no, it proceeds to step S93.
[0248] If the determination in step S105 is negative, the processor 32 executes step S93 to determine whether it has received an instruction (e.g., instruction CM5, CM6, or CM7) for a function FN other than the currently executing direct teaching function FN2_5 (e.g., teaching function FN3, automatic operation function FN4, or action confirmation function FN5). If the determination is positive, the processor 32 proceeds to step S94; otherwise, it proceeds to step S106.
[0249] In step S106, similar to step S24 above, processor 32 determines whether the direct teaching function FN2_5 is set to invalid. If the determination is yes, proceed to step S94, and if the determination is no, proceed to step S107.
[0250] In step S107, processor 32 acquires the operating force Fh in the same manner as in step S21. In step S108, similar to step S22, processor 32 determines whether the magnitude of the operating force Fh acquired in the most recent step S107 exceeds a predetermined threshold Fhth. If the determination is yes, processor 32 returns to step S23; otherwise, it returns to step S105.
[0251] Furthermore, when the determination is yes in steps S105, S93, or S106, the processor 32 executes step S94, terminates the direct teaching function FN2_5 of FIG27, and generates a notification signal SG indicating that the direct teaching function FN2_5 has been terminated. Then, the processor 32 terminates the process of FIG27.
[0252] Thus, when the determination in step S103 is yes (i.e., robot 12 has stopped), the processor 32 repeats the loop of steps S105, S93, S106 to S108 during the periods when the determinations in steps S105, S93, S106 and S108 are no. Then, when the elapsed time t from the time point t1 when the determination in step S103 is yes exceeds the threshold tth2 (when the period tth2 has passed), the processor 32 automatically terminates the direct teaching function FN2_5 in step S94.
[0253] Thus, in this embodiment, the direct teaching execution unit 52 terminates the direct teaching function FN2_5 when the elapsed time t, calculated from the time t1 when the robot 12, which is operated by the direct teaching function FN2_5, has stopped (i.e., the time when it is determined to be yes in step S103), exceeds a predetermined threshold tth2. Based on this configuration, it is possible to prevent the robot 12 from unintentionally operating due to a third party accidentally pressing it during the execution of the direct teaching function FN2_5 when the operator is not present.
[0254] Furthermore, the flow of the direct teaching function FN2_4 shown in FIG26 or the direct teaching function FN2_5 shown in FIG27 can also be applied to the above steps S3 or S3'. That is, in this case, the control device 16 shown in FIG2 or FIG9 further includes a timing unit 80.
[0255] For example, when the direct teaching function FN2_4 shown in Figure 26 is applied to step S3, the time point t0 at which the process of Figure 26 begins will be the time point at which the direct teaching function start command is received (that is, the time point at which it is determined to be true in step S1). Furthermore, when the direct teaching function FN2_4 shown in Figure 26 is applied to step S3', the time point t0 at which the process of Figure 26 begins will be the time point at which the enable switch ON signal is received (that is, the time point at which it is determined to be true in step S31 or S34).
[0256] Furthermore, step S93 can be omitted from the flowchart of Figure 26 or Figure 27. Also, in step S94 of Figure 26 or Figure 27, the processor 32 can also terminate the direct teaching function FN2_4 or FN2_5 without generating the notification signal SG. That is, in this case, the notification signal generation unit 53 can be omitted from the control device 16 shown in Figure 25.
[0257] Furthermore, the functions of the control device 16 shown in Figures 2, 9, 19, and 25 can be combined. This configuration is shown in Figure 28. The control device 16 shown in Figure 28 includes a safety function execution unit 50, a direct teaching execution unit 52, a motion parameter acquisition unit 54, a function switching unit 56, a safety function determination unit 58, a threshold switching unit 60, a resistance control unit 62, and a timing unit 80, and selectively executes the processes shown in Figures 3, 5-8, 11-13, 18, 20, 21, 23, 26, and 27.
[0258] Furthermore, the processes in Figures 3, 5-8, 11-13, 18, 20, 21, 23, 26, and 27 can be combined. For example, steps S61-S66 in Figure 20 can be executed after step S23 in Figure 27, thereby combining them into the process of Figure 27. The processes in Figures 21 and 23 can also be combined into the process of Figure 27 in the same way. Moreover, the processes in Figures 3, 5-8, 11-13, 18, 20, 21, 23, 26, and 27 are just one example; the procedures in these processes can be appropriately modified or deleted, or any other procedures can be added.
[0259] Furthermore, the processor 32 can also execute the processes shown in Figures 3, 5-8, 11-13, 18, 20, 21, 23, 26, and 27 according to the computer program PG2. This computer program PG2 is pre-memorized in memory 34. Additionally, the functions of the safety function execution unit 50, direct teaching execution unit 52, motion parameter acquisition unit 54, function switching unit 56, safety function determination unit 58, threshold switching unit 60, and resistance control unit 62 executed by the processor 32 can also be functional modules implemented by the computer program PG.
[0260] Furthermore, robot 12 is not limited to a vertical multi-joint robot, but can also be any type of robot such as a horizontal multi-joint robot or a parallel link robot. The present disclosure has been described above by way of embodiments, but the above embodiments do not limit the scope of the invention claimed.
[0261] 10: Robotic Systems 12: Robot 14: Force sensor 14A: Torque Sensor 14B: Force sensor 16: Control device 18: Teaching device 20: Robot Base 22:Spiral body 24: Lower arm 26: Upper arm 28: Wrist 28a: Wrist base 28b: Wrist flange 30: Terminator 31: Actuator 31a: Output shaft 32: Processor 32A: Processor No. 1 32B: Second Processor 32C: Third Processor 33: Rotation Detection Sensor 34: Memory 36:I / O interface 38: Busbar 40, 46: Input devices 42, 44: Display devices 48: Enable Switch 50: Safety Function Execution Unit 52: Direct Instruction Implementation Department 53: Notification Signal Generation Department 54: Motion Parameter Acquisition Section 56: Function Switching Section 58: Safety Function Determination Department 60: Threshold switching unit 62: Resistance Control Section 64: Position Command Generation Unit 66: Speed Command Generation Department 68: Torque Command Generation Unit 70: Current Control Unit 72: Differentiator 74, 76: Subtractors 78: Adder 80: Timing Department 100: Direct Teaching Images 102: Direct Teaching Start Button Image 104: Direct End of Teaching Button Image 106: Security Feature Setting Image 108: Valid button images 110: Invalid button image 150,160: Main body part 152a, 152b, 162a, 162b: Sensor elements 154a, 164a: Detection section of system 1 154b, 164b: Detection section of the second system 160a, 160b: Ring section 160c: Column a: Acceleration A1, A2: Central axis AL1, AL2, AL3: Warning signals ath, Fcth, Fhth, tth1, tth2, vth, Vth11, Vth12, Vth13: Thresholds C3: Sensor Coordinate System CD, CDn: Feature Data CD1: First Feature Data CD2: Second Feature Data CD3: Third Feature Data CL1, CL2, CL3: Operations CM, CM5, CM6, CM7: Instructions CM1: Position Command CM2: Speed Command CM3: Torque Command CM3': Torque correction command CM4: Voltage signal CR1, CR2: Instruction correction values d: distance DD,DDf,DDfa,DDfb,DDτ,DDτa,DDτb: Detection data DDτAVE: Average value ES: Emergency Stop Action F: External force f, fx, fy, fz, τx, τy, τx: force FB: Feedback Fc: Contact force Fca: First contact force Fcb: Second contact force Fcth1,Vth1,ath1: The first threshold Fcth2,Vth2,ath2: Second threshold Fcth3,Vth3,ath3: The third threshold Fh: Operating force FN: Function FN1: Safety Function FN1a: First Safety Function FN1b: Second Security Function FN2,FN2',FN2_1,FN2_2,FN2_3,FN2_4,FN2_5: Direct teaching function FN3: Teaching Function Fh: Operating force FN4: Automatic operation function FN5: Action Confirmation Function FN6: Fault Detection Function L1, L2: Signal lines P0: Initial position P1: First pressed position P2: Second press position PG1,PG1': Action Programming PG2: Computer Program OD: Detection data OP: Action Parameters RF: Resistance RF1: First resistance RF2: Second resistance RF3: Third resistance S1~S6, S11~S17, S21~S25, S31~S36, S41~S43, S51~S54, S61~S66, S71~S74, S81, S82, S91~S94, S101~S108, S3', S24': Steps SG: Notification signal SW: Switch t: Time elapsed t0,t1,t0_1,t0_2,t1,FN2_4: Time points TP: Teaching Location V: Speed VMAX: Maximum speed x, y, z: axes α: Acceleration setpoint α1: First acceleration setting value α2: Second acceleration setting value α3: Third acceleration setting value τ,τx,τy,τz: Torque δp: Position deviation δv: velocity deviation
Claims
1. A robot control device for controlling the movement of a robot, the robot control device comprising: a direct teaching execution unit that performs a direct teaching function, the direct teaching function causing the robot to move according to an operating force applied to the robot; a motion parameter acquisition unit that acquires the speed or acceleration of the robot during the execution of the direct teaching function; and a resistance control unit that, in response to the speed or acceleration acquired by the motion parameter acquisition unit, changes the resistance relative to the operating force, wherein when the speed or acceleration acquired by the motion parameter acquisition unit reaches or exceeds a predetermined threshold, the resistance control unit switches an acceleration setting value that specifies the maximum value of the acceleration from a first acceleration setting value to a second acceleration setting value that is smaller than the first acceleration setting value, thereby changing the resistance.
2. The control device of the robot as claimed in claim 1, wherein when the speed or acceleration obtained by the motion parameter acquisition unit becomes smaller than the threshold value, the aforementioned resistance control unit switches the aforementioned acceleration setting value from the aforementioned second acceleration setting value to the aforementioned first acceleration setting value, thereby causing the aforementioned resistance to change.
3. A robot control method, which is a method for controlling the movement of a robot, wherein the robot control method comprises a processor that: executes a direct teaching function, wherein the direct teaching function causes the robot to move according to an operating force applied to the robot; during the execution of the direct teaching function, the processor acquires the speed or acceleration of the robot; and when the acquired speed or acceleration becomes above a predetermined threshold, the processor switches an acceleration setting value that specifies the maximum value of the acceleration from a first acceleration setting value to a second acceleration setting value that is smaller than the first acceleration setting value, thereby changing the resistance relative to the operating force.
4. The robot control method of claim 3, wherein when the aforementioned speed or the aforementioned acceleration becomes smaller than the aforementioned threshold, the aforementioned processor switches the aforementioned acceleration setting value from the second acceleration setting value to the aforementioned first acceleration setting value, thereby causing the aforementioned resistance relative to the aforementioned operating force to change.
Citation Information
Patent Citations
Human-cooperative industrial robot with lead-through function
CN104972473A
Control device for robot
JP1999058278A
JPH6-90648B2
