Robot controller, control method and control program
The robot controller automates the determination of motion start positions, reducing labor and time in teaching processes by using offset margins and reverse operations, optimizing movements for various work types.
Patent Information
- Application Number
- JP2021083349
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-05-17
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2041-05-17
AI Technical Summary
The existing robot systems require time-consuming and labor-intensive teaching processes to set motion trajectories, which is inefficient and cumbersome, especially when changes in work types occur.
A robot controller that automatically determines the motion start position from the motion completion position, utilizing a determination unit to offset a predetermined margin or perform a reverse operation, and includes modules for controlling forces and tilting to optimize movements.
Reduces the effort and time required for teaching by allowing the robot to adapt to different work types without manual input of motion start positions, enhancing efficiency and reliability.
Smart Images

Figure 0007600856000001 
Figure 0007600856000002 
Figure 0007600856000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a robot controller, a control method for a robot controller, and a control program for controlling a robot controller. [Background technology]
[0002] The use of robots in production sites is becoming more and more widespread. For example, industrial robots in charge of production processes are often set and controlled to perform predetermined operations for each product. In order to control robots with precision, advance setting, known as teaching, is an important step. factor It becomes.
[0003] For example, Japanese Patent Laid-Open Publication No. 2017-177279 (Patent Document 1) discloses a robot system that can improve the machining accuracy of a workpiece. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2017-177279 A Summary of the Invention [Problem to be solved by the invention]
[0005] In the robot system disclosed in JP 2017-177279 A (Patent Document 1), it is necessary to teach the motion trajectory of the robot by moving the tip of the end effector attached to the robot arm along a target trajectory. Teaching such a motion trajectory of the robot takes time and effort.
[0006] One object of the present invention is to provide a robot controller, a control method, and a control program that can reduce the effort involved in teaching. [Means for solving the problem]
[0007] A robot controller for controlling a robot according to one example of the present invention includes an operation control unit that causes the robot holding a workpiece to perform a series of operations including at least a first operation and a second operation, and a determination unit that determines an operation start position, which indicates the position and posture before starting the first operation, from an operation completion position, which indicates the position and posture after completion of the series of operations.
[0008] According to this configuration, the start position can be determined from the end position after the series of operations is completed, so there is no need for the user to teach the start position. Therefore, even if the type of workpiece is changed, the time required to handle the new workpiece can be reduced.
[0009] The determination unit may determine the operation start position by offsetting a predetermined margin from the operation completion position. According to this configuration, by setting the margin, it is possible to deal with various disturbances occurring to the workpiece.
[0010] The determination unit may determine the movement start position by performing a reverse movement corresponding to a predetermined margin from the movement completion position. With this configuration, it is possible to determine the movement start position according to the actual movement.
[0011] The first operation may include an operation of moving the workpiece held by the robot along a first direction, and the second operation may include an operation of moving the workpiece along a second direction different from the first direction. With this configuration, a process of inserting another workpiece into a workpiece having an opening can be appropriately performed.
[0012] The movement control unit may control the robot so that a predetermined force is generated in a first direction in the first movement, and so that a predetermined force is generated in a second direction in the second movement. With this configuration, by controlling so that the predetermined forces are generated, the completion of the first movement and the second movement can be reliably detected.
[0013] The robot controller may further include a height determination unit that calculates a clearance by varying the height of the operation start position and moving the workpiece in both the first direction and the second direction, and determines the height at which the calculated clearance can ensure an offset as the operation start position. With this configuration, the height of the operation start position can be optimized, thereby shortening the time required to complete the first operation and the second operation.
[0014] The operation control unit may tilt the workpiece at the operation start position by a predetermined operation start tilt. According to this configuration, by performing the first operation and the second operation after tilting the workpiece by the operation start tilt, it becomes possible to more reliably detect the external force generated in the workpiece even when, for example, the clearance is relatively small. This reduces the possibility of the operation failing.
[0015] The robot controller may further include a tilt determination unit that changes the motion start tilt to a larger value when any motion included in the sequence of motions fails. With this configuration, by changing the motion start tilt to a larger value, it is possible to reduce the possibility that the first motion and the second motion will fail.
[0016] A control method for controlling a robot according to another example of the present invention includes the steps of causing the robot holding a workpiece to perform a series of operations including at least a first operation and a second operation, and determining an operation start position indicating a position and posture before starting the first operation from an operation completion position indicating a position and posture after completion of the series of operations.
[0017] A control program for controlling a robot according to yet another example of the present invention causes a computer to execute the steps of causing the robot holding a workpiece to perform a series of operations including at least a first operation and a second operation, and determining an operation start position indicating the position and posture before starting the first operation from an operation completion position indicating the position and posture after completion of the series of operations. Effect of the Invention
[0018] According to one aspect of the present invention, the effort involved in teaching can be reduced. [Brief description of the drawings]
[0019] [Figure 1] FIG. 1 is a schematic diagram showing an application example of a robot system according to an embodiment of the present invention. [Diagram 2] FIG. 1 is a schematic diagram illustrating a configuration example of a robot system according to an embodiment of the present invention. [Diagram 3] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a robot system according to the present embodiment. [Figure 4] FIG. 1 is a schematic diagram showing an example of an application using the robot system according to the present embodiment. [Diagram 5] FIG. 2 is a schematic diagram showing an example of a control structure for realizing an application using the robot system according to the present embodiment. [Figure 6] 10 is a flowchart showing a processing procedure of an application using the robot system according to the present embodiment. [Figure 7] 10 is a schematic diagram for explaining a processing procedure relating to determination of an operation start position in the robot system according to the present embodiment. FIG. [Figure 8] 10 is a flowchart showing a processing procedure relating to determination of an operation start position in the robot system according to the present embodiment. [Figure 9] 11A and 11B are diagrams for explaining the influence of the height of the operation start position in the robot system according to the embodiment. [Figure 10] 13 is a flowchart showing a processing procedure for determining a height component of an operation start position in the robot system according to the present embodiment. [Figure 11] 10A and 10B are diagrams for explaining the influence of an operation start tilt in the robot system according to the present embodiment. [Figure 12] 10 is a flowchart showing a processing procedure for determining an operation start tilt in the robot system according to the present embodiment.
Best Mode for Carrying Out the Invention
[0020] Embodiments of the present invention will be described in detail with reference to the drawings. For the same or corresponding parts in the drawings, the same reference numerals are given and their descriptions are not repeated.
[0021] <A. Application Example> First, an example of a scenario to which the present invention is applied will be described.
[0022] FIG. 1 is a schematic diagram showing an application example of a robot system 1 according to the present embodiment. Referring to FIG. 1, a robot controller 100 controls a robot (see FIG. 2 etc.). The robot controller 100 includes, as main functional components, an operation control module 160, a positioning module 162, a height determination module 164, and an inclination determination module 166. These modules may be realized by a processor of the robot controller 100 executing a program.
[0023] As an application example, assume a process of scanning a workpiece 60 inside an opening 72 of a workpiece 70. The operation control module 160 of the robot controller 100 places the workpiece 60 held by the robot at the operation start position. Then, the operation control module 160 of the robot controller 100 causes the robot holding the workpiece to perform a series of operations including at least a first operation and a second operation. In the example shown in FIG. 1, the operation control module 160 performs a first operation of moving the workpiece 60 along a first direction and, after completion of the first operation, a second operation of moving the workpiece 60 along a second direction different from the first direction.
[0024] In this specification, "operation" means a unit of movement that occurs to a robot or a workpiece held by the robot. For example, as shown in FIG. 1, the movement of moving the workpiece 60 held by the robot along the same direction can be regarded as one "operation". For example, even if it is the movement of moving the workpiece 60 held by the robot along the same direction, when the moving speed is changed, it can also be regarded as different operations before and after the change of the moving speed. That is, the change of the moving speed may also delimit an "operation". Thus, the "operation" in this specification is a term that includes a unit of movement delimited by changes in elements such as the moving direction, moving speed, and posture.
[0025] In this specification, "a series of operations" is a term that includes a set of multiple "operations". Usually, it is assumed that the multiple "operations" included in "a series of operations" are executed serially. However, the multiple "operations" included in "a series of operations" may be executed in parallel.
[0026] The positioning module 162 determines the operation start position indicating the position and posture before starting the first operation from the operation completion position indicating the position and posture after the completion of a series of operations.
[0027] In this way, since the operation start position can be automatically determined from the operation completion position, the user does not need to accurately teach the operation start position, etc.
[0028] The height determination module 164 determines or changes the height of the operation start position. The inclination determination module 166 determines or changes the magnitude of the operation start inclination.
[0029] For the sake of convenience of explanation, an example in which a series of operations consists of two operations will be described below, but a series of operations may include three or more operations. There is no limit to the number of operations included in a series of operations.
[0030] <B. Configuration Example of Robot System 1> 2 is a schematic diagram showing a configuration example of a robot system 1 according to the present embodiment. With reference to FIG. 2, the robot system 1 includes an articulated robot (hereinafter simply referred to as "robot 10") and a robot controller 100 that controls the robot 10.
[0031] The robot 10 includes a base 11 and a plurality of movable parts 12, 13, 14, 15, 16, and 17. The movable parts 12, 13, 14, 15, 16, and 17 correspond to joints of the robot 10. Each of the movable parts 12, 13, 14, 15, 16, and 17 drives a link constituting the robot 10 along a rotation axis as shown in FIG. 2. An end effector 18 is attached to the tip of the arm of the robot 10. A load sensor 19 that detects a load generated on the end effector 18 is provided at a portion of the arm of the robot 10 where the end effector 18 is attached. The load sensor 19 outputs a detection result indicating the magnitude of the generated load and the direction in which the load is generated. The detection result of the load sensor 19 may be output in the form of a kind of vector.
[0032] The end effector 18 is provided with grippers 20 for gripping a workpiece. The distance between the grippers 20 changes in accordance with a command from the robot controller 100, whereby any workpiece placed between the grippers 20 can be gripped.
[0033] Any mechanism may be used as long as the robot 10 can hold a workpiece. That is, the mechanism is not limited to the gripper 20 shown in Fig. 2, and may be configured to adsorb a workpiece using negative pressure or to hold a workpiece using electromagnetic force.
[0034] In the following description, the operation of the robot 10 will be mainly described based on a coordinate system XYZ (hereinafter also referred to as the "TCP coordinate system") based on the end effector 18. In the TCP coordinate system, the vertical direction of the end effector 18 corresponds to the Z axis. In other words, the Z axis corresponds to the direction in which the workpiece gripped by the gripper 20 is inserted.
[0035] More specifically, the load sensor 19 outputs as detection results the load in the X-axis direction (X), the Y-axis direction (Y), and the Z-axis direction (Z) of the TCP coordinate system, as well as a load (moment) in a rotational direction about the X-axis (RX), a load (moment) in a rotational direction about the Y-axis (RY), and a load (moment) in a rotational direction about the Z-axis (RZ).
[0036] The robot 10 includes a teaching pendant 38 for teaching, etc. The teaching pendant 38 may be configured to be detachable from the robot 10.
[0037] Fig. 3 is a schematic diagram showing an example of a hardware configuration of the robot system 1 according to the present embodiment. Referring to Fig. 3, the robot 10 includes motors 31, 32, 33, 34, 35, 36, and 37 respectively associated with the movable parts 12, 13, 14, 15, 16, and 17, and drivers 21, 22, 23, 24, 25, 26, and 27 which drive the motors 31, 32, 33, 34, 35, 36, and 37, respectively. The robot 10 includes a servo driver 28 which drives the gripper 20.
[0038] The drivers 21 , 22 , 23 , 24 , 25 , 26 , and 27 , the servo driver 28 , the load sensor 19 , and the teaching pendant 38 are electrically connected to the robot controller 100 via an interface 40 .
[0039] The robot controller 100 is a type of computer, and includes, as its main hardware components, a processor 102, a memory 104, an interface 106, and a storage 110. These components are electrically connected via a bus 108.
[0040] The processor 102 is typically configured with a central processing unit (CPU) or a micro-processing unit (MPU). The memory 104 is typically configured with a volatile storage device such as a dynamic random access memory (DRAM) or a static random access memory (SRAM). The storage 110 is typically configured with a non-volatile storage device such as a solid state disk (SSD) or a flash memory. The storage 110 stores a system program 112 for implementing basic processing and a control program 114. The control program 114 includes computer-readable instructions for controlling the robot 10. The processor 102 reads out the system program 112 and the control program 114 stored in the storage 110, expands them in the memory 104, and executes them to implement processing for controlling the robot 10, as described below.
[0041] The interface 106 is responsible for exchanging signals and / or data between the robot controller 100 and the robot 10. In the robot system 1, commands for controlling the drivers 21, 22, 23, 24, 25, 26, and 27 and the servo driver 28 are sent from the robot controller 100 to the robot 10, and the detection result by the load sensor 19 is sent from the robot 10 to the robot controller 100.
[0042] FIG. 3 shows an example of a configuration in which the necessary processing is provided by the processor 102 executing a program, but some or all of the provided processing may be implemented using a dedicated hardware circuit (e.g., an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array)).
[0043] FIG. 3 shows an example in which the robot controller 100 is configured independently of the robot 10. However, part or all of the functions and processes provided by the robot controller 100 may be incorporated into the robot 10. In this case, the robot controller 100 may be implemented as a controller dedicated to robot control, or may be implemented using a general-purpose PLC (programmable logic controller) or a personal computer.
[0044] Furthermore, part or all of the functions and processes provided by the robot controller 100 may be realized using computing resources on a network called a so-called cloud.
[0045] As described above, the robot system 1 according to the present embodiment may be implemented in any manner.
[0046] <C. Application Example of Robot System 1> Next, an application example of the robot system 1 will be described.
[0047] FIG. 4 is a schematic diagram showing an example of an application using the robot system 1 according to the present embodiment. FIG. 4 shows an example of an application in which a rod-shaped workpiece 60 is inserted into a workpiece 70 having an opening. For convenience of explanation, the physical relationship between the workpiece 60 and the opening of the workpiece 70 is exaggeratedly drawn, but in actuality, the interval between the cross-sectional shape of the workpiece 60 and the cross-sectional shape of the opening of the workpiece 70 is often relatively small.
[0048] The robot 10 grips the workpiece 60 arranged on the workpiece placement table 50 with the gripper 20 and inserts it into the workpiece 70 arranged on the workpiece placement table 52. More specifically, the robot 10 grips the workpiece 60 and moves it to the operation start position (step S1). In this state, the robot 10 grips the workpiece 60 with a predetermined inclination with respect to the depth direction of the opening of the workpiece 70.
[0049] Next, the robot 10 moves the workpiece 60 along one of the inner surfaces of the workpiece 70 (step S2). For convenience, the operation of step S2 may be referred to as a "single-face contact operation." The single-face contact operation corresponds to a first operation in which the workpiece 60 held by the robot 10 is moved along a first direction. The operation start position indicates the position and posture before starting the single-face contact operation (first operation).
[0050] When it is determined that the workpiece 60 has come into contact with the adjacent inner surface of the workpiece 70 (when it is determined that the one-face contact operation has been completed), the robot 10 moves the workpiece 60 along the contacted inner surface (step S3). For convenience, the operation of step S3 may be referred to as a "two-face contact operation." The two-face contact operation corresponds to a second operation in which, after the one-face contact operation is completed, the workpiece 60 held by the robot 10 is moved along a second direction different from the first direction.
[0051] When it is determined that the workpiece 60 has come into contact with the adjacent inner surfaces of the workpiece 70 (when it is determined that the two-face contact operation is completed), the workpiece 60 is considered to be in a state of contact with both of the two faces. In other words, the workpiece 60 is considered to be in a state of being placed in contact with the corner defined by the two inner faces of the workpiece 70.
[0052] Then, the robot 10 adjusts the posture of the workpiece 60 so that the workpiece 60 matches the insertion direction (step S4). For convenience, the operation of step S4 may be referred to as a "standing up operation." Next, the robot 10 inserts the workpiece 60 toward the inside of the workpiece 70 (the back side of the opening) (step S5). For convenience, the operation of step S5 may be referred to as an "insertion operation."
[0053] Through the above-described processing procedure, insertion of the workpiece 60 into the workpiece 70 by the robot 10 is completed.
[0054] As an example of the "motion", the one-face contact motion and the two-face contact motion in which the workpiece 60 is moved along the inner surface of the workpiece are exemplified. 70It is not always necessary to align it along the inner surface. When applying it to applications other than the above-described applications, the work 60 will be moved in a direction corresponding to the application.
[0055] <D. Control Structure and Processing Procedure of Robot System 1> Next, the control structure and processing procedure of the robot system 1 will be described.
[0056] FIG. 5 is a schematic diagram showing an example of a control structure for realizing an application using the robot system 1 according to the present embodiment. Referring to FIG. 5, the robot controller 100 of the robot system 1 includes, as a control structure, a position control logic 130, a force control logic 140, and an impedance control logic 150.
[0057] The robot controller 100 can arbitrarily select and execute position control, force control, and impedance control for each of the six axes (X, Y, Z, RX, RY, RZ). For convenience of explanation, FIG. 5 schematically shows a control system for a specific one axis.
[0058] Referring to FIG. 5(A), the position control logic 130 outputs an angle command (target angle) to one or more related drivers (drivers 21, 22, 23, 24, 25, 26, 27) so that the target axis becomes a position command (target position). More specifically, the position control logic 130 includes a differentiator 132, an inverse kinematics calculation unit 134, and a kinematics calculation unit 136.
[0059] The differentiator 132 calculates the difference (position deviation) between the position command and the position result from the kinematics calculation unit 136.
[0060] The inverse kinematics calculation unit 134 has a model of the robot 10 including joints and links, and calculates the angles of the motors 31, 32, 33, 34, 35, 36, and 37 corresponding to the input position. More specifically, the inverse kinematics calculation unit 134 calculates the angle deviations of the motors 31, 32, 33, 34, 35, 36, and 37 according to the position deviations from the difference calculator 132. The angle deviations calculated by the inverse kinematics calculation unit 134 are output to the corresponding drivers.
[0061] The kinematics calculation unit 136, like the inverse kinematics calculation unit 134, has a model of the robot 10 including joints and links, and calculates positions corresponding to the input angles of the motors 31, 32, 33, 34, 35, 36, and 37. More specifically, the kinematics calculation unit 136 calculates the actual position of the robot 10 according to the actual angles of the motors 31, 32, 33, 34, 35, 36, and 37.
[0062] 5(B), the force control logic 140 outputs an angle command (target angle) to one or more associated drivers (drivers 21, 22, 23, 24, 25, 26, 27) so that the force generated in the target axis becomes the force command (target force). More specifically, the force control logic 140 includes a difference calculator 142, a virtual internal model 144, and a position control logic 130.
[0063] The difference calculator 142 calculates the difference (force deviation) between the force command and the actual force from the load sensor 19 .
[0064] The virtual internal model 144 has a model that mathematically calculates the force generated by the robot 10, and calculates a position command (position correction value) corresponding to the input force deviation. The position command calculated by the virtual internal model 144 is input to the position control logic 130. The processing of the position control logic 130 is similar to that described above.
[0065] 5(C), the impedance control logic 150 controls the robot 10 in response to the load detected by the load sensor 19. More specifically, the impedance control logic 150 includes a virtual internal model 154 and a position control logic 130.
[0066] The virtual internal model 154 responds to the input of the actual force from the load sensor 19 and calculates a position command (position correction value) indicating the amount of movement of the robot 10. The position command calculated by the virtual internal model 154 is input to the position control logic 130. The processing of the position control logic 130 is similar to that described above.
[0067] 6 is a flowchart showing a processing procedure of an application using the robot system 1 according to the present embodiment. Typically, each step shown in FIG. 6 is realized by the processor 102 of the robot controller 100 executing the control program 114.
[0068] 6, the robot controller 100 issues a command to the robot 10 to grip the workpiece 60 and move to an operation start position (step S10). The process of step S10 corresponds to step S1 shown in Fig. 4. In step S10, the robot controller 100 generates a command for position control for each axis.
[0069] Here, it is assumed that the operation start position and orientation (X, Y, Z, RX, RY, RZ) are determined in advance by tuning or the like.
[0070] Next, the robot controller 100 issues a command to the robot 10 to tilt the workpiece 60 to a predetermined motion start tilt (step S12). In this manner, the robot controller 100 tilts the workpiece 60 by the predetermined motion start tilt at the motion start position.
[0071] Next, the robot controller 100 issues a command to the robot 10 so that the workpiece 60 moves along one of the inner surfaces of the workpiece 70 (step S14). Then, the robot controller 100 determines whether or not the load in the X-axis direction exceeds a predetermined threshold value (step S16).
[0072] The processes of steps S14 and S16 correspond to the one-face contact operation of step S2 shown in Fig. 4. At the operation start position, the workpiece 60 is placed in a posture such that the one-face contact operation corresponds to movement in the X-axis direction, and the two-face contact operation corresponds to movement in the Y-axis direction. In step S14, the robot controller 100 generates commands by force control for X, Y, Z, and RZ, and generates commands by impedance control for RX and RY. That is, the robot controller 100 controls the robot 10 so that a predetermined force is generated in the movement direction (X-axis direction) of the one-face contact operation.
[0073] If the load in the X-axis direction does not exceed a predetermined threshold value (NO in step S16), the processes in step S14 and thereafter are repeated.
[0074] If the load in the X-axis direction exceeds a predetermined threshold value (YES in step S16), it is determined that the one-face contact operation is completed. Then, the robot controller 100 issues a command to the robot 10 so that the workpiece 60 moves along another inner surface of the workpiece 70 (step S18). Then, the robot controller 100 determines whether the load in the Y-axis direction exceeds a predetermined threshold value (step S20).
[0075] The processes of steps S18 and S20 correspond to the two-face contact operation of step S3 shown in Fig. 4. In step S18, the robot controller 100 generates commands for X, Y, Z, and RZ using force control, and generates commands for RX and RY using impedance control. That is, the robot controller 100 controls the robot 10 so that a predetermined force is generated in the movement direction (Y-axis direction) of the two-face contact operation.
[0076] If the load in the Y-axis direction does not exceed a predetermined threshold value (NO in step S20), the processes in step S18 and thereafter are repeated.
[0077] If the load in the Y-axis direction exceeds a predetermined threshold value (YES in step S20), it is determined that the two-face contact operation is completed. Then, the robot controller 100 issues a command for the rotation direction about the X-axis (RX) and the rotation direction about the Y-axis (RY) so that the workpiece 60 is in a horizontal position (step S22). Then, the robot controller 100 determines whether the rotation angles of the X-axis and the Y-axis match the predetermined target angles (step S24). That is, the robot controller 100 issues a command to the robot 10 so that the rotation angles of the X-axis and the Y-axis match the predetermined target angles.
[0078] The processes in steps S22 and S24 correspond to the standing up motion in step S4 shown in Fig. 4. In steps S22 and S24, the robot controller 100 generates commands for X, Y, Z, and RZ using force control, and generates commands for RX and RY using position control.
[0079] If the rotation angles of the X-axis and Y-axis do not match the predetermined target angles (NO in step S24), the processes from step S22 onwards are repeated.
[0080] If the rotation angles of the X-axis and Y-axis match the predetermined target angles (YES in step S24), it is determined that the standing up motion is completed. Then, the robot controller 100 issues a command to the robot 10 to insert the workpiece 60 into the workpiece 70 (step S26). Next, the robot controller 100 determines whether the load in the Z-axis direction exceeds a predetermined threshold value (step S28). If the load in the Z-axis direction does not exceed the predetermined threshold value (NO in step S28), the processing from step S26 onwards is repeated.
[0081] If the load in the Z-axis direction exceeds a predetermined threshold value (YES in step S28), the robot controller 100 determines whether the workpiece 60 is inserted to a predetermined position in the Z-axis direction (step S30). If the workpiece 60 is not inserted to the predetermined position in the Z-axis direction (NO in step S30), the robot controller 100 gives an instruction to the robot 10 to pull out the workpiece 60 by a predetermined distance from the workpiece 70 (step S32). Then, the processes below step S26 are repeated. That is, step S32 corresponds to a process of once pulling out the workpiece 60 and then inserting it again when the workpiece 60 is inserted in a tilted state (so-called jammed state) with respect to the workpiece 70.
[0082] The processes of steps S26 to S32 correspond to the insertion operation of step S5 shown in FIG. 4. In steps S26 to S32, the robot controller 100 generates instructions by force control for X, Y, and RZ, generates instructions by position control for Z, and generates instructions by impedance control for RX and RY.
[0083] If the workpiece 60 is inserted to a predetermined position in the Z-axis direction (YES in step S30), it is determined that the insertion operation is completed.
[0084] Through the above processing procedure, the process of gripping the workpiece 60 and inserting it into the workpiece 70 is completed.
[0085] <E. Determination of the operation start position> Next, a processing example for determining the operation start position will be described.
[0086] FIG. 7 is a schematic diagram for explaining a processing procedure related to the determination of the operation start position in the robot system 1 according to the present embodiment.
[0087] 7(A), first, the user operates the teaching pendant 38 to place the workpiece 60 held by the robot 10 near the workpiece 70. After that, upon completion of teaching by the user, the robot controller 100 lowers the workpiece 60 until it comes into contact with the surface of the workpiece 70. Then, as shown in FIG. 7(B), the robot 10 stops operating with the workpieces 60 and 70 in contact with each other.
[0088] Next, as shown in Fig. 7(C), the user operates the teaching pendant 38 to place the workpiece 60 held by the robot 10 near the opening 72 of the workpiece 70. As shown in Fig. 7(C), the state in which the workpiece 60 is placed near the opening 72 of the workpiece 70 corresponds to a so-called tentative operation start position.
[0089] When the teaching by the user is completed, the robot controller 100 executes the one-face contact operation, the two-face contact operation, and the standing operation. More specifically, as shown in Fig. 7(D), the robot controller 100 moves the workpiece 60 along the inner surface 74 of the workpiece 70 (step S2), and when it is determined that the workpiece 70 has contacted the inner surface 76, moves the workpiece 60 along the inner surface 76 of the workpiece 70 (step S3). Finally, the robot controller 100 adjusts the attitude of the workpiece 60 (step S4). When the adjustment of the attitude of the workpiece 60 is completed, the robot controller 100 determines the operation start position from the current position and attitude (hereinafter also referred to as "operation completion position").
[0090] In this way, the robot controller 100 acquires an operation completion position indicating the position and posture after a series of operations including a one-face contact operation (first operation) and a two-face contact operation (second operation) are completed, and determines an operation start position from the acquired operation completion position.
[0091] Here, the operation completion position and the operation start position will be described. In the example shown in FIG. 7, the operation completion position means the position and posture at which the insertion operation of the workpiece 60 is started. Ideally, the time required for the one-face contact operation, the two-face contact operation, and the insertion operation can be shortened by setting a position close to the operation completion position as the operation start position. On the other hand, there are various errors such as variations in the shapes of the workpieces 60 and 70, variations in the gripping position of the workpiece 60 by the robot 10, and variations in the placement position of the workpiece 70. Therefore, if the operation start position is too close to the operation completion position, such errors may prevent the one-face contact operation, the two-face contact operation, and the insertion operation from being performed appropriately.
[0092] Therefore, the motion start position is determined with a margin for the motion end position that takes into consideration disturbances, etc. The method for determining the motion start position will be described in detail later.
[0093] 8 is a flowchart showing a process for determining an operation start position in the robot system 1 according to the present embodiment. Each step shown in FIG. 8 is typically realized by the processor 102 of the robot controller 100 executing the control program 114.
[0094] 8, the robot controller 100 places the workpiece 60 held by the robot 10 near the workpiece 70 in accordance with a teaching operation by a user (step S100) (see FIG. 7(A)).
[0095] The robot controller 100 judges whether or not a user operation for completing teaching has been received (step S102). If a user operation for completing teaching has not been received (NO in step S102), the processing from step S100 onwards is repeated.
[0096] If a user operation to complete teaching has been received (YES in step S102), the robot controller 100 issues a command to the robot 10 to press the workpiece 60 in the Z-axis direction (step S104). In step S104, the robot controller 100 generates commands for X and Y using position control, for Z using force control, and for RX and RY using impedance control. Then, the robot controller 100 determines whether the load in the Z-axis direction has exceeded a predetermined threshold value (step S106).
[0097] If the load in the Z-axis direction does not exceed a predetermined threshold value (NO in step S106), the processing from step S104 onwards is repeated. If the load in the Z-axis direction exceeds a predetermined threshold value (YES in step S106), the robot controller 100 determines whether the moment in the rotational direction (RX) about the X-axis is less than a threshold value and the moment in the rotational direction (RY) about the Y-axis is less than a threshold value (step S108).
[0098] If the moment in the rotation direction (RX) about the X axis is equal to or greater than the threshold value, or if the moment in the rotation direction (RY) about the Y axis is equal to or greater than the threshold value (NO in step S108), the processing from step S104 onwards is repeated.
[0099] If the moment in the rotation direction (RX) about the X axis is less than the threshold value and the moment in the rotation direction (RY) about the Y axis is less than the threshold value (YES in step S108), the robot controller 100 stops the operation of the robot 10 (step S110). In this state, it is determined that the workpieces 60 and 70 are in face-to-face contact as shown in FIG. 7B.
[0100] The robot controller 100 places the workpiece 60 held by the robot 10 near the opening 72 of the workpiece 70 in accordance with a teaching operation by the user (step S112) (see FIG. 7(C)).
[0101] The robot controller 100 judges whether or not a user operation for completing the teaching has been received (step S114). If a user operation for completing the teaching has not been received (NO in step S114), the processing from step S112 onwards is repeated.
[0102] If a user operation to complete teaching has been received (YES in step S114), the robot controller 100 issues a command to the robot 10 to tilt the workpiece 60 to a predetermined motion start tilt (step S116). In this manner, the robot controller 100 tilts the workpiece 60 by the predetermined motion start tilt at the motion start position (or a tentative motion start position).
[0103] Then, the robot controller 100 issues a command to the robot 10 to move the workpiece 60 closer to the workpiece 70 by a predetermined distance along the Z-axis direction (step S118). After that, the one-face contact operation and the two-face contact operation are executed.
[0104] That is, the robot controller 100 performs a first operation of moving the workpiece 60 held by the robot 10 along the X-axis direction (first direction). More specifically, the robot controller 100 issues a command to the robot 10 so that the workpiece 60 moves along one inner surface of the workpiece 70 (step S120). Then, the robot controller 100 judges whether or not the load in the X-axis direction exceeds a predetermined threshold value (step S122). In step S120, the robot controller 100 generates commands by force control for X, Y, Z, and RZ, and generates commands by impedance control for RX and RY. That is, the robot controller 100 controls the robot 10 so that a predetermined force is generated in the movement direction (X-axis direction) of the one-face contact operation.
[0105] If the load in the X-axis direction does not exceed a predetermined threshold value (NO in step S122), the processes in step S120 and thereafter are repeated.
[0106] If the load in the X-axis direction exceeds a predetermined threshold value (YES in step S122), it is determined that the one-face contact operation is completed.
[0107] After completing the one-face contact operation, the robot controller 100 performs a second operation of moving the workpiece 60 along a second direction, a Y-axis direction (second direction) different from the X-axis direction (first direction). More specifically, the robot controller 100 issues a command to the robot 10 so that the workpiece 60 moves along another inner surface of the workpiece 70 (step S124). Then, the robot controller 100 judges whether the load in the Y-axis direction exceeds a predetermined threshold value (step S126). In step S124, the robot controller 100 generates commands by force control for X, Y, Z, and RZ, and generates commands by impedance control for RX and RY. That is, the robot controller 100 controls the robot 10 so that a predetermined force is generated in the moving direction (Y-axis direction) of the two-face contact operation.
[0108] If the load in the Y-axis direction does not exceed the predetermined threshold value (NO in step S126), the processes in step S124 and thereafter are repeated.
[0109] If the load in the Y-axis direction exceeds a predetermined threshold (YES in step S126), it is determined that the double-sided contact operation is completed. Then, the robot controller 100 gives commands regarding the rotation direction (RX) around the X-axis and the rotation direction (RY) around the Y-axis so that the workpiece 60 assumes a horizontal posture (step S128). Then, the robot controller 100 determines whether the rotation angles of the X-axis and the Y-axis match a predetermined target angle (step S130). That is, the robot controller 100 gives commands to the robot 10 so that the rotation angles of the X-axis and the Y-axis match the predetermined target angles. In steps S128 and S130, the robot controller 100 generates commands by force control for X, Y, Z, and RZ, and generates commands by position control for RX and RY.
[0110] If the rotation angles of the X-axis and the Y-axis do not match the predetermined target angles (NO in step S130), the processes below step S128 are repeated.
[0111] If the rotation angles of the X-axis and the Y-axis match the predetermined target angles (YES in step S130), it is determined that the standing-up operation is completed.
[0112] Then, the robot controller 100 determines the operation start position from the position and posture (operation completion position) of the workpiece 60 in step S130 (step S132). In this way, the robot controller 100 determines the operation start position indicating the position and posture before starting the single-sided contact operation (first operation) from the operation completion position indicating the position and posture after a series of operations including the single-sided contact operation (first operation) and the double-sided contact operation (second operation).
[0113] Finally, the robot controller 100 stores the determined operation start position (step S134). Through the processing procedure as described above, the process of determining the operation start position is completed.
[0114] <F. Method for Determining Operation Start Position> Next, a method for determining the motion start position from the motion completion position will be described.
[0115] (f1: margin offset) One method for determining the motion start position is to offset the motion completion position by a predetermined margin.
[0116] For example, if the operation completion position is (Xe, Ye, Ze, RXe, RYe, RZe), a predetermined margin (ΔX, ΔY, ΔZ, 0, 0, 0) can be added to determine (Xe+ΔX, Ye+ΔY, Ze+ΔZ, RXe, RYe, RZe) as the operation start position.
[0117] That is, the horizontal positional deviation amount (ΔX, ΔY) and the height deviation amount (ΔZ) may be taken into consideration as a margin.
[0118] Examples of the margin include (1) variation in the shape of the workpiece 60, (2) variation in the shape of the workpiece 70, (3) variation in the position at which the robot 10 holds the workpiece 60, and (4) variation in the placement position of the workpiece 70.
[0119] The margin may be input by the user as an arbitrary value, or may be calculated based on design data, etc. For example, the shape variation of the workpiece 60 and / or the workpiece 70 can be calculated or estimated from the machining tolerance in the part design. Furthermore, when multiple parts are combined, the margin can be calculated or estimated from the assembly tolerance in the assembly drawing, etc. In particular, the worst value may be estimated from the product of the number of parts to be combined and the machining tolerance of each part.
[0120] Alternatively, the margin may be determined based on values obtained by actually measuring the actual workpiece 60 and / or workpiece 70.
[0121] In general, the margin does not need to include a rotational component (tilt) (ΔRXe=ΔRYe=ΔRZe=0), but may include one or more rotational components (tilts) as necessary.
[0122] In this manner, the robot controller 100 may determine the operation start position by offsetting a predetermined margin from the operation completion position.
[0123] (f2: Reverse action) As another method for determining the motion start position, the motion start position may be determined by performing a reverse motion corresponding to a predetermined margin and motion start inclination from the motion completion position.
[0124] More specifically, the robot 10 is moved in the opposite direction (i.e., moved back to the operation start position) by a margin (ΔX, ΔY, ΔZ, 0, 0, 0) from the operation completion position (Xe, Ye, Ze, RXe, RYe, RZe). As a result, the position of the robot 10 after the movement becomes (Xe+ΔX, Ye+, Ze+ΔZ, RXe, RYe, RZe). This position and orientation after the movement (Xe+ΔX, Ye+, Ze+ΔZ, RXe, RYe, RZe) may be determined as the operation start position.
[0125] Furthermore, the tilt may be corrected by a predetermined operation start tilt (RXs, RYs, 0) (only the rotation component about the X axis and the rotation component about the Y axis).
[0126] In this case, the position and posture after the movement (Xe+ΔX, Ye+, Ze+ΔZ, RXe-RXs, RYeRYs, RZe) may be determined as the operation start position.
[0127] In this way, the robot controller 100 may determine the motion start position by performing a reverse motion equivalent to a predetermined margin from the motion completion position.
[0128] (f3: Automatically determine the height component (Z) of the operation start position) Next, a method for automatically determining the height component of the motion start position will be described.
[0129] 9 is a diagram for explaining the influence of the height of the operation start position in the robot system 1 according to the present embodiment. FIG 9 shows a side view of the process of inserting the workpiece 60 into the opening 72 of the workpiece .
[0130] 9A, if the operation start position of the workpiece 60 is too far away from the opening 72 of the workpiece 70, the time required for the workpiece 60 to descend becomes excessively long. As a result, more processing time is required.
[0131] 9B, if the operation start position of the workpiece 60 is too close to the opening 72 of the workpiece 70, the workpieces 60 and 70 are likely to interfere with each other when the workpiece 60 descends. As a result, the possibility of failure in inserting the workpiece 60 into the workpiece 70 increases.
[0132] 9(C), the optimum height component of the operation start position may be automatically determined by evaluating the clearance of the workpiece 60 from the workpiece 70 in the horizontal direction (XY plane). In other words, the height at which a predetermined clearance can be secured from the workpiece 70 may be determined as the height component of the operation start position.
[0133] 10 is a flowchart showing a processing procedure for determining the height component of the operation start position in the robot system 1 according to this embodiment. Each step shown in FIG. 10 is typically realized by the processor 102 of the robot controller 100 executing the control program 114.
[0134] 10, the robot controller 100 issues a command to the robot 10 to grip the workpiece 60 and move to the current operation start position (step S200). Next, the robot controller 100 issues a command to the robot 10 to tilt the workpiece 60 to a predetermined operation start tilt (step S202).
[0135] The robot controller 100 moves the workpiece 60 in the horizontal direction to obtain the contact position with the workpiece 70 (step S204). In step S204, the robot controller 100 moves the workpiece 60 oscillatingly along the X-axis and also moves the workpiece 60 oscillatingly along the Y-axis. By oscillating the workpiece 60 on each of the X-axis and Y-axis, the clearance to the workpiece 70 can be calculated. Then, the robot controller 100 calculates the clearance in the X-axis direction and the clearance in the Y-axis direction (step S206). That is, the robot controller 100 calculates the difference between the maximum value and the minimum value of the position where the workpiece 70 contacts the workpiece 70 on the X-axis as the clearance in the X-axis direction. Similarly, the robot controller 100 calculates the difference between the maximum value and the minimum value of the position where the workpiece 70 contacts the workpiece 70 on the Y-axis as the clearance in the Y-axis direction.
[0136] The robot controller 100 determines whether the clearance in the X-axis direction and the clearance in the Y-axis direction are greater than the X component (ΔX) and the Y component (ΔY) of a predetermined margin, respectively (step S208).
[0137] If the clearance in the X-axis direction and the clearance in the Y-axis direction are greater than the X component (ΔX) and the Y component (ΔY) of the predetermined margin, respectively (YES in step S208), the robot controller 100 issues a command to the robot 10 to move the workpiece 60 closer to the workpiece 70 along the Z-axis direction by a predetermined distance (step S210). Then, the processing from step S204 onwards is repeated.
[0138] On the other hand, if the clearance in the X-axis direction and the clearance in the Y-axis direction are equal to or less than the X component (ΔX) and the Y component (ΔY) of the predetermined margin (NO in step S208), the robot controller 100 determines the current Z-axis position as the height component (Z) of the operation start position (step S212), and the process ends.
[0139] As described with reference to FIGS. 9 and 10, for the workpiece 60 that descends at a predetermined operation start slope, the height that can secure a clearance for the horizontal component (XY plane) of the predetermined margin can be determined as the operation start position. That is, the robot controller 100 calculates the clearance by moving the workpiece 60 in either the first direction (X-axis direction) or the second direction (Y-axis direction) with different heights of the operation start position, and determines the height of the operation start position as the height at which the calculated clearance can secure the offset.
[0140] By adopting a function that can automatically determine the height component (Z) of such an operation start position, the labor of user input can be reduced. In addition, since the height of the operation start position can be optimized, it is possible to prevent the processing time from becoming excessively long.
[0141] <G. Method for Determining Operation Start Slope> Next, a method for automatically determining the operation start slope will be described.
[0142] FIG. 11 is a diagram for explaining the influence of the operation start slope in the robot system 1 according to the present embodiment. FIG. 11 shows a side view of the process of inserting the workpiece 60 into the opening 72 of the workpiece 70.
[0143] As shown in FIG. 11(A), when the operation start slope of the workpiece 60 is small, the contact area between the workpiece 60 and the workpiece 70 becomes small, and the load detected by the load sensor 19 also becomes small. Therefore, the possibility of failing to judge the contact between the workpiece 60 and the workpiece 70 becomes high.
[0144] On the other hand, as shown in FIG. 11(B), when the operation start slope of the workpiece 60 is large, in the standing-up operation, the time required to return the inclination of the workpiece 60 becomes long. As a result, more processing time is required.
[0145] For this reason, it is preferable to optimize the magnitude of the motion start gradient. More specifically, it is preferable to adopt the smallest possible motion start gradient without causing failure in the series of motions.
[0146] Fig. 12 is a flowchart showing a processing procedure for determining an operation start tilt in the robot system 1 according to this embodiment. Each step shown in Fig. 12 is typically realized by the processor 102 of the robot controller 100 executing the control program 114. The flowchart shown in Fig. 12 is obtained by adding the processes of steps S123, S127, S140, and S142 to the flowchart shown in Fig. 8.
[0147] In step S123, the robot controller 100 determines whether the one-face contact operation has failed or not, and in step S127, the robot controller 100 determines whether the two-face contact operation has failed or not.
[0148] If the one-face contact operation has failed (YES in step S123) or if the two-face contact operation has failed (YES in step S127), the robot controller 100 increases the current motion start tilt by a predetermined angle (step S140). Then, the robot controller 100 issues a command to the robot 10 to return the workpiece 60 to the position taught by the user (step S142). Then, the processing from step S116 onwards is repeated.
[0149] In this way, the robot controller 100 may change the movement start slope to a larger value when any of the movements in the series of movements fails.
[0150] The process of determining or changing the motion start tilt shown in FIG. 12 may be executed when a motion fails in the process of an application using the robot system 1 shown in FIG.
[0151] As described with reference to FIGS. 11 and 12, when the operation fails, by changing the operation start slope and then executing the process again, it is possible to determine the operation start slope at which the operation does not fail. By adopting a function that can automatically determine such an operation start slope, it is possible to automatically determine an appropriate operation start slope according to the work type, margin, etc. In addition, since the operation start slope can be optimized, it is possible to prevent the processing time from becoming excessively long.
[0152] <H. Advantages> According to the present embodiment, since the operation start position can be automatically determined from the operation completion position, the user does not need to accurately teach the operation start position or the like.
[0153] <I. Supplementary Note> The present embodiment as described above includes the following technical ideas.
[0154] [Configuration 1] A robot controller (100) for controlling a robot (10), An operation control unit (160) that causes the robot holding the work to perform a series of operations including at least a first operation and a second operation, And a determination unit (162) that determines an operation start position indicating a position and posture before starting the first operation from an operation completion position indicating a position and posture after completion of the series of operations. A robot controller.
[0155] [Configuration 2] The robot controller according to Configuration 1, wherein the determination unit determines the operation start position by offsetting a predetermined margin from the operation completion position.
[0156] [Configuration 3] The robot controller according to Configuration 1, wherein the determination unit determines the operation start position by performing an operation opposite to a predetermined margin from the operation completion position.
[0157] [Configuration 4] The first operation includes an operation of moving a workpiece held by the robot along a first direction, 4. The robot controller according to any one of configurations 1 to 3, wherein the second operation includes an operation of moving the workpiece along a second direction different from the first direction.
[0158] [Configuration 5] The operation control unit is controlling the robot so that a predetermined force is generated in the first direction in the first motion; The robot controller of configuration 4, which controls the robot so that a predetermined force is generated in the second direction during the second action.
[0159] [Configuration 5] The robot controller according to configuration 4, further comprising a height determination unit (164) that calculates a clearance by varying the height of the operation start position and moving the workpiece in both the first direction and the second direction, and determines a height at which the calculated clearance can ensure the offset as the height of the operation start position.
[0160] [Configuration 6] The robot controller according to configuration 4 or 5, wherein the motion control unit tilts the workpiece at the motion start position by a predetermined motion start tilt.
[0161] [Configuration 7] 8. The robot controller according to configuration 7, further comprising a slope determination unit (166) that changes the motion start slope to a larger value when any of the motions in the sequence of motions fails.
[0162] [Configuration 8] A control method for controlling a robot (10), comprising: A step (S120, S122, S124, S126) of causing the robot holding the workpiece to perform a series of operations including at least a first operation and a second operation; and determining (S132) a motion start position indicating a position and posture before starting the first motion from a motion completion position indicating a position and posture after completion of the series of motions.
[0163] [Configuration 10] A control program (114) for controlling a robot (10), the control program being configured to cause a computer (100) to: A step (S120, S122, S124, S126) of causing the robot holding the workpiece to perform a series of operations including at least a first operation and a second operation; and determining (S132) a motion start position indicating the position and posture before the first motion is started from a motion completion position indicating the position and posture after the series of motions is completed.
[0164] The embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present invention is defined by the claims, not the above description, and is intended to include all modifications within the scope and meaning equivalent to the claims. [Explanation of symbols]
[0165] 1 Robot system, 10 Robot, 11 Base, 12, 13, 14, 15, 16, 17 Moving part, 18 End effector, 19 Load sensor, 20 Gripper, 21, 22, 23, 24, 25, 26, 27 Driver, 28 Servo driver, 31, 32, 33, 34, 35, 36, 37 Motor, 38 Teaching pendant, 40, 106 Interface, 50, 52 Work placement table, 60, 70 Work, 72 Opening, 74, 76 Inner surface, 100 Robot controller, 102 Processor, 104 Memory, 108 Bus, 110 Storage, 112 System program, 114 Control program, 130 Position control logic, 132, 142 Differentiator, 134 Inverse kinematics calculation unit, 136 Kinematics calculation unit, 140 force control logic, 144,154 virtual internal model, 150 impedance control logic, 160 motion control module, 162 position determination module, 164 height determination module, 166 tilt determination module.
Claims
1. A robot controller for controlling a robot, an operation control unit that causes the robot holding a workpiece to perform a series of operations including at least a first operation and a second operation; a determination unit that determines a motion start position, which indicates a position and posture before starting the first motion, from a motion completion position, which indicates a position and posture after the series of motions is completed.
2. The robot controller according to claim 1 , wherein the determination unit determines the motion start position by offsetting a predetermined margin from the motion completion position.
3. The first operation includes an operation of moving a workpiece held by the robot along a first direction, The robot controller according to claim 2 , wherein the second operation includes an operation of moving the workpiece along a second direction different from the first direction.
4. The operation control unit is controlling the robot so that a predetermined force is generated in the first direction in the first motion; The robot controller according to claim 3 , further comprising: a controller configured to control the robot so that a predetermined force is generated in the second direction during the second motion.
5. 5. The robot controller according to claim 3, further comprising a height determination unit that calculates a clearance by varying the height of the operation start position and moving the workpiece in both the first direction and the second direction, and determines a height at which the calculated clearance can ensure the offset as the height of the operation start position.
6. The robot controller according to claim 1 , wherein the determination unit determines the motion start position by performing a reverse motion from the motion completion position by a predetermined margin.
7. The robot controller according to claim 1 , wherein the operation control unit tilts the workpiece at the operation start position by a predetermined operation start tilt.
8. The robot controller according to claim 7 , further comprising a gradient determination unit that changes the motion start gradient to a larger value when any one of the series of motions fails.
9. A control method for controlling a robot, comprising: causing the robot holding the workpiece to perform a series of operations including at least a first operation and a second operation; determining a motion start position, which indicates a position and posture before starting the first motion, from a motion completion position, which indicates a position and posture after the series of motions is completed.
10. A control program for controlling a robot, the control program being programmed to a computer to: causing the robot holding the workpiece to perform a series of operations including at least a first operation and a second operation; determining a motion start position, which indicates a position and posture before the first motion is started, from a motion completion position, which indicates a position and posture after the series of motions is completed.
Citation Information
Patent Citations
Assembly device
JP1992025329A
Robot system for fitting
JP2009125904A
Robot system and robot controlling method
JP2017177279A
