Robot control device for controlling a robot based on mechanism data and correction device for an operation program
The control and correction devices enhance robot precision by using mechanism error parameters to adaptively adjust robot operations, addressing accuracy issues caused by manufacturing errors and environmental factors.
Patent Information
- Application Number
- JP2023536309
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-07-21
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2041-07-21
AI Technical Summary
Existing robot control systems struggle to maintain high accuracy in position and orientation due to manufacturing errors and environmental factors, making it difficult to improve the precision of robot operations.
A control device and correction device that utilize mechanism error parameters to adjust robot operations by selecting and switching mechanism data based on the current state, work content, and tool or area, ensuring precise control through mechanisms like DH parameters and transformation matrices.
Enables robots to operate with high accuracy across varying states and conditions, improving the precision of their operations by dynamically adjusting mechanism data and operation programs.
Smart Images

Figure 0007704862000001 
Figure 0007704862000002 
Figure 0007704862000003
Abstract
Description
Technical Field
[0001] The present invention relates to a robot control device for controlling a robot based on mechanism data and a modification device for an operation program.
Background Art
[0002] A robot device includes a robot and a work tool attached to the robot. By driving the robot, various operations can be performed while changing the position and posture of the work tool. It is preferable that the position and posture of the robot exactly match the desired position and posture specified in the operation program. However, due to manufacturing errors of constituent members when manufacturing the robot and the influence of gravity when driving the robot, etc., the position and posture of the robot may deviate slightly from the desired position and posture.
[0003] As a cause of the actual position of the robot deviating from the desired position, an error in the length of the arm between joint axes, etc. can be considered. In the conventional technology, a method of setting such items as mechanism error parameters and setting values for each mechanism error parameter is known. For example, in an offline simulation device, etc., a cell including a plurality of robot devices can be formed. And, in a robot device, a method of setting mechanism error parameters is known (for example, Japanese Patent No. 6823024 and Japanese Patent No. 5531996).
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0005] The control device of the robot can control the drive motors for driving the respective components based on the mechanism data including the mechanism error parameters. By accurately setting the parameters included in the mechanism data corresponding to the robot, the actual position and orientation of the robot can be made closer to the desired position and orientation.
[0006] However, the optimal parameters of the mechanism data change according to the state in which the robot operates. The optimal parameters change, for example, according to the work content performed by the robot device, the area where the robot operates, and the load applied when the robot is driven. There are many states in which the robot operates. However, when driving the robot device with the mechanism data fixed, there has been a problem that it is difficult to improve the accuracy of the position and orientation of the robot. That is, there has been a problem that it is difficult to improve the accuracy of the work performed by the robot device.
Means for Solving the Problem
[0007] A first aspect of the present disclosure is a control device for a robot having joint portions. The control device includes an operation control unit that controls the operation of the robot based on mechanism error parameters including parameters for calculating the relationship between the angles at the joint portions of the robot and the tip position of the robot. The control device includes an acquisition unit that acquires a plurality of predetermined mechanism error parameters, and a selection unit that selects one mechanism error parameter from the plurality of mechanism error parameters. The control device includes a switching operation setting unit that sets the operation of the robot when changing the mechanism error parameters. The motion control unit controls the motion of the robot based on a motion program. The selection unit selects mechanism error parameters corresponding to the motion program used for the work of the robot.
[0008] A second aspect of the present disclosure is a correction device for an operation program of a robot having a joint portion. The correction device includes a storage unit that stores mechanism error parameters including parameters for calculating the relationship between the angle at the joint portion of the robot and the tip position of the robot. The correction device includes an acquisition unit that acquires a plurality of mechanism error parameters created in advance from the storage unit. The correction device includes a display unit including a region for displaying a plurality of mechanism error parameters and a region for displaying an operation program, and an input unit for an operator to operate an image displayed on the display unit. The correction device includes a selection unit that selects one mechanism error parameter from the plurality of mechanism error parameters according to an operation of the input unit by the operator, and a program correction unit that corrects the operation program based on the mechanism error parameter selected by the selection unit. The mechanism error parameters are parameters used in a calculation formula for calculating the rotational position of the drive motor of the robot from variables that define the position and orientation of the robot set in the motion program. A third aspect of the present disclosure is a control device for a robot having joint portions. The control device includes a motion control unit that controls the motion of the robot based on mechanism error parameters including parameters for calculating the relationship between the angle at the joint portion of the robot and the tip position of the robot. The control device includes an acquisition unit that acquires a plurality of predetermined mechanism error parameters, and a selection unit that selects one mechanism error parameter from the plurality of mechanism error parameters. The control device includes a switching operation setting unit that sets the motion of the robot when changing the mechanism error parameters. The motion control unit controls the motion of the robot based on a motion program. The motion program includes a command statement for specifying the mechanism error parameters. The selection unit selects the mechanism error parameters specified in the motion program.
Advantages of the Invention
[0009] According to one aspect of the present disclosure, it is possible to provide a control device for a robot and a correction device for an operation program that can drive the robot with high accuracy according to various states of the robot.
Brief Description of the Drawings
[0010]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Mode for Carrying Out the Invention
[0011] (Embodiment 1) With reference to FIGS. 1 to 10, the control device of the robot in Embodiment 1 will be described. FIG. 1 is a perspective view of the first robot device in the present embodiment. FIG. 2 is a block diagram of the first robot device in the present embodiment. With reference to FIGS. 1 and 2, the first robot device 3 includes a welding gun 5 as a working tool and a robot 1 that changes the position and posture of the welding gun 5. The robot device 3 includes a control device 2 that controls the robot 1 and the welding gun 5.
[0012] The first robot device 3 performs spot welding on the workpiece 98. The workpiece 98 in the present embodiment is an automobile body. The robot device 3 performs spot welding at predetermined welding points. Plate-like members facing each other are welded.
[0013] The robot can have one or more joints to change the orientation of the component members. The robot 1 of the present embodiment is an articulated robot including a plurality of joints. The robot 1 includes an upper arm 11 and a lower arm 12. The lower arm 12 is supported by a swivel base 13. The swivel base 13 is supported by a base 14. The robot 1 includes a wrist 15 connected to the end of the upper arm 11. The wrist 15 includes a flange 16 for fixing the welding gun 5. Component members such as the upper arm 11 and the lower arm 12 are connected via joints.
[0014] The robot 1 of the present embodiment includes a drive motor 21 for driving the component members of the robot 1. The drive motor 21 of the present embodiment is arranged for each of the swivel base 13, the upper arm 11, the lower arm 12, the wrist 15, and the flange 16 as component members. The welding gun 5 includes a tool drive device 22 for driving the welding gun 5. The tool drive device 22 of the present embodiment includes a motor for driving a movable electrode with respect to a fixed electrode of the welding gun 5.
[0015] The robot 1 of the present embodiment is a vertically articulated robot, but is not limited to this form. A robot that changes its position and orientation with any joint mechanism can be adopted. Further, the working tool of the present embodiment is a welding gun 5 for performing spot welding, but is not limited to this form. The operator can select a working tool according to the work performed by the robot device. For example, a hand for gripping a workpiece can be adopted as the working tool.
[0016] The control device 2 includes an arithmetic processing device 24 (computer) including a CPU (Central Processing Unit) as a processor. The arithmetic processing device 24 has a RAM (Random Access Memory) and a ROM (Read Only Memory) connected to each other via a bus to the CPU. The robot device 3 automatically drives the robot 1 and the welding gun 5 based on an operation program 41 created in advance.
[0017] The arithmetic processing unit 24 of the control device 2 includes a storage unit 42 that stores information related to the control of the robot device 3. The storage unit 42 can be configured with a non-temporary storage medium capable of storing information. For example, the storage unit 42 can be configured with a storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium. The operation program 41 for the robot device 3 to perform spot welding is stored in the storage unit 42.
[0018] Note that although the storage unit in this embodiment is built into the arithmetic processing unit 24 arranged in the main body of the control device 2, it is not limited to this form. A storage device such as a server functioning as the storage unit may be connected to the arithmetic processing unit via an electrical communication line.
[0019] The arithmetic processing unit 24 includes an operation control unit 43 that sends out operation commands. The operation control unit 43 in this embodiment controls the operation of the robot 1 based on the operation program 41 and the mechanism data 80. The operation control unit 43 sends an operation command for driving the robot 1 to the robot drive unit 44. The robot drive unit 44 includes an electric circuit for driving the drive motor 21. The robot drive unit 44 supplies electricity to the drive motor 21 based on the operation command. Also, the operation control unit 43 sends an operation command for driving the tool drive device 22 to the work tool drive unit 45. The work tool drive unit 45 includes an electric circuit for passing electricity through the electrode and an electric circuit for driving the motor of the movable electrode. The work tool drive unit 45 supplies electricity to the tool drive device 22 based on the operation command.
[0020] The operation control unit 43 corresponds to a processor that drives according to the operation program 41 of the robot device 3. By the processor loading the operation program 41 and implementing the control defined in the operation program 41, it functions as the operation control unit 43.
[0021] The arithmetic processing unit 24 includes a mechanism data changing unit 51 that changes mechanism data related to the robot. The mechanism data changing unit 51 includes an acquisition unit 52 that acquires a plurality of predetermined mechanism data 80 from the storage unit 42. The mechanism data changing unit 51 includes a selection unit 53 that selects one piece of mechanism data from the plurality of mechanism data, and a switching operation setting unit 54 that sets the operation of the robot when changing the mechanism data. The arithmetic processing unit 24 includes a display control unit 46 that controls the image to be displayed on the display unit 49b.
[0022] The mechanism data changing unit 51 and the display control unit 46 correspond to processors that are driven according to a predetermined program. Also, the acquisition unit 52, the selection unit 53, and the switching operation setting unit 54 included in the mechanism data changing unit 51 correspond to processors that are driven according to a predetermined program. By the processor reading the program and implementing the control defined in the program, they function as respective units.
[0023] The robot 1 includes a state detector for detecting the position and posture of the robot 1. The state detector in the present embodiment includes a rotational position detector 23 attached to the drive motor 21 of each joint axis. The rotational position detector 23 is constituted by, for example, an encoder. The position and posture of the robot 1 are detected by the output of the rotational position detector 23.
[0024] The control device 2 includes a teaching operation panel 49 as an operation panel for an operator to operate the robot device 3. The teaching operation panel 49 includes an input unit 49a for inputting information related to the robot 1 and the welding gun 5. The input unit 49a is constituted by operation members such as a keyboard, buttons, and a dial. The teaching operation panel 49 includes a display unit 49b for displaying information related to the control of the robot device 3. The display unit 49b is constituted by a display panel such as a liquid crystal display panel. When the teaching operation panel is provided with a touch panel type display panel, this display panel functions as both the input unit and the display unit.
[0025] In the robot device 3 of this embodiment, a fixed world coordinate system 71 is set when the position and orientation of the robot 1 change. The world coordinate system is also referred to as a reference coordinate system. In the example shown in FIG. 1, the origin of the world coordinate system 71 is arranged on the base 14 of the robot 1. The world coordinate system 71 has a fixed origin position and fixed coordinate axis directions. Even if the position and orientation of the robot 1 change, the position and orientation of the world coordinate system 71 do not change.
[0026] In the robot device 3, a tool coordinate system 72 having an origin set at an arbitrary position of the working tool is set. The tool coordinate system 72 changes in position and orientation together with the welding gun 5. In this embodiment, the origin of the tool coordinate system 72 is set at the tool tip point 72a (the tip point of the fixed electrode). In this embodiment, the position of the robot 1 corresponds to the position of the tool tip point (the position of the origin of the tool coordinate system 72). Also, the orientation of the robot 1 corresponds to the orientation of the tool coordinate system 72 with respect to the world coordinate system 71.
[0027] FIG. 3 shows a perspective view of the robot and the welding gun of this embodiment. In FIG. 3, joint axes J1 to JN at each joint part are shown. Since the robot 1 of this embodiment has six axes, joint axes J1 to J6 are shown. At each joint axis J1 to JN, joint angles DJ1 to DJN of the joint part are defined. For example, the joint angle corresponds to the angle between the constituent members in the joint part. Also, the joint angle corresponds to the rotational position of the drive motor 21 arranged corresponding to each joint part.
[0028] Referring to FIGS. 2 and 3, the position and orientation of the robot 1 may deviate from the desired position and orientation due to manufacturing errors of the constituent members of the robot 1, assembly errors when assembling the robot, and the influence of gravity, etc. In this embodiment, mechanism data 80 for adjusting the position and orientation of the robot 1 is set separately from the operation program 41.
[0029] The mechanism data 80 includes parameters for calculating the relationship between the angles of the joint parts of the robot 1 and the tip position of the robot. The mechanism data 80 is created in advance and stored in the storage unit 42.
[0030] The mechanism data 80 includes mechanism error parameters. The mechanism error parameters include DH parameters. The DH parameters are parameters in the DH method (Denavit Hartenberg method). In the DH method, a coordinate system is set for each joint axis, and the position and orientation of the robot can be expressed based on the relationship between the coordinate systems of adjacent joint axes. In the DH method, the parameters ai, αi, di, and θi are used. The parameter θi is the angle between links, the parameter di is the distance (link length) between links, the parameter ai is the distance between joint axes, and the parameter αi indicates the torsional angle between joint axes.
[0031] In addition, the mechanism error parameters include the error in the position of the origin of the world coordinate system 71, the error in the DH parameters, the amount of deflection of the constituent members due to torque around the joint axis, and the error in the gear ratio of the speed reducer, etc.
[0032] As parameters other than the mechanism error parameters included in the mechanism parameters, it includes the output value of the rotation position detector 23 when the position of the robot is arranged at a predetermined reference position. For example, the parameter includes the output value of the encoder pulses when the robot 1 is arranged at the zero position.
[0033] In addition, the mechanism data includes a matrix or relational expression indicating the relative positional relationship between adjacent joint parts in the robot. The mechanism data includes the transformation matrix T that defines the positional relationship between adjacent joint parts determined by the above DH parameters. The mechanism data also includes the relational expression obtained by expanding this transformation matrix T.
[0034] Referring to FIG. 3, the coordinate system 75 indicates the coordinate system at the k-th joint. The coordinate system 76 indicates the coordinate system at the (k + 1)-th joint adjacent to the k-th joint. The transformation matrix T for calculating the (k + 1)-th coordinate system from the k-th coordinate system k , and the transformation matrix T for calculating the tool coordinate system from the flange coordinate system UT are defined as follows. Then, the transformation matrix T for calculating the position P of the tool tip from the first coordinate system P can be expressed by the following equation (1). 1P
[0035] T 1P = T1T2... T n T UT …(1)
[0036] When the transformation matrix of Equation (1) is expanded, a relational expression for calculating the position P of the tool tip from the first coordinate system P can be obtained. This transformation matrix or relational expression may include an error with respect to the design value. For example, the mechanism data may be a transformation matrix or relational expression defined by parameters (ai + Δai) including an error Δai with respect to the parameter ai of the design value and parameters (αi + Δαi) including an error Δαi with respect to the parameter αi of the design value.
[0037] The mechanism data includes at least one parameter among the mechanism error parameter and the parameters other than the mechanism error. That is, the mechanism data includes at least one or more parameters for driving the robot 1 based on variables that define the position and orientation of the robot 1 specified in the operation program.
[0038] Referring to FIGS. 2 and 3, in the control device 2 of the present embodiment, a plurality of pieces of mechanism data are stored in the storage unit 42. Then, control for switching the mechanism data is performed according to the state in which the robot device 3 is driven, the configuration of the robot device 3, the operation program, and the like.
[0039] FIG. 4 shows a block diagram for explaining the first control of the first robot device according to the present embodiment. Referring to FIGS. 2 and 4, in the first control, control is performed to switch mechanism data according to the operation program used. In the first control, as the mechanism data 80, first mechanism data 81, second mechanism data 82, third mechanism data 83, and fourth mechanism data 84 are stored in the storage unit 42. Each of the mechanism data 81, 82, 83, 84 has been created in advance by an operator.
[0040] The first mechanism data 81 includes all the parameters necessary to drive the robot 1. In the first mechanism data 81, the error of all the parameters included in the mechanism data is 0. As each parameter, the ideal value when the robot 1 was designed is adopted. That is, all the parameters included in the first mechanism data 81 are design values.
[0041] In the second mechanism data 82, parameters applied to all areas where the robot 1 can operate are set. The second mechanism data 82 includes all the parameters necessary to drive the robot 1. The parameters of the second mechanism data 82 are set so that the accuracy of the position and posture of the robot 1 is improved on average over the entire area where the robot 1 operates. The first mechanism data 81 and the second mechanism data 82 may be created, for example, when the robot 1 is manufactured at a factory.
[0042] The operator can create a plurality of operation programs according to the operations performed by the robot device 3. In the example shown in FIG. 4, the first operation program and the second operation program are stored in the storage unit 42. The third mechanism data 83 is set to control the position and posture of the robot 1 with high accuracy when driving the robot device 3 with the first operation program. The fourth mechanism data 84 is set to control the position and posture of the robot 1 with high accuracy when driving the robot device 3 with the second operation program. The third mechanism data 83 and the fourth mechanism data 84 can be generated in advance by the operator according to the work content of the operation program, the operation speed of the robot, the work area, and the like.
[0043] Each of the third mechanism data 83 and the fourth mechanism data 84 in the present embodiment includes all the parameters for driving the robot 1. Alternatively, the third mechanism data 83 and the fourth mechanism data 84 may include some of the parameters for driving the robot 1. In this case, for the parameters not included in the third mechanism data 83 or the fourth mechanism data 84, the parameter values of the first mechanism data 81 or the parameter values of the second mechanism data 82 can be adopted.
[0044] In the first control of the first robot device 3, the acquisition unit 52 of the mechanism data change unit 51 acquires a plurality of mechanism data 81, 82, 83, 84 from the storage unit 42. The selection unit 53 selects one mechanism data from the plurality of mechanism data. In the first control, the selection unit 53 has an operation program determination unit 53a that determines the operation program to be used. Here, the case of using the first operation program will be taken as an example for explanation.
[0045] The operation program determination unit 53a identifies the operation program to be used in the current operation. The selection unit 53 selects mechanism data based on the operation program to be used. For example, the operation program determination unit 53a automatically determines to use the first operation program in the current operation based on the information described in the operation program. The selection unit 53 selects the third mechanism data 83 generated for the first operation program from among a plurality of mechanism data.
[0046] Alternatively, the operation program determination unit 53a may determine that the operation program to be used in the current operation is the first operation program based on the operation of the operator input unit 49a. When the mechanism data selected by the selection unit 53 is different from the current mechanism data, the switching operation setting unit 54 sets the operation of the robot 1 when changing the mechanism data.
[0047] FIG. 5 shows a block diagram for explaining the control when switching mechanism data. In the example here, the switching operation setting unit 54 switches from the first mechanism data 81 currently in use to the third mechanism data 83. The operation program 41 includes position data configured by variables that define the position and orientation of the robot at the teaching points. In the position data of the present embodiment, the angles of the respective joint portions are set as variables. The teaching angles DJ1 to DJN of the joint portions up to the N axis are specified in the position data. The angle of the joint portion corresponds to the rotational position of the drive motor 21 disposed on each joint axis. Note that the variables of the position data are not limited to the angles of the joint portions. For example, as the variables of the position data, the position and orientation of the tool coordinate system 72 may be specified by the coordinate values of the world coordinate system 71.
[0048] The switching operation setting unit 54 calculates the position and orientation (the position and orientation of the tool coordinate system 72) of the robot by forward kinematic transformation (forward kinematics) using the taught angles DJ1 to DJN of the joint part. For example, it calculates the orthogonal position of the tool tip point 72a in the world coordinate system 71. The switching operation setting unit 54 calculates the position and orientation of the robot by applying the first mechanism data 81 as the mechanism data before switching. The position and orientation of the robot calculated here become the position and orientation desired by the operator.
[0049] Next, the switching operation setting unit 54 calculates the angles DJ1' to DJN' of the joint part by performing inverse kinematic transformation (inverse kinematics) based on the position and orientation of the robot. At this time, the switching operation setting unit 54 applies the third mechanism data 83 after switching selected by the selection unit 53.
[0050] The switching operation setting unit 54 creates an operation command for the robot 1 so that the angles of the joint part change from the taught angles DJ1 to DJN to the angles DJ1' to DJN'. The motion control unit 43 changes the position and orientation of the robot 1 based on the command from the switching operation setting unit 54.
[0051] In this way, the switching operation setting unit 54 sets the operation of the robot 1 so that the position and orientation of the robot 1 change from the position and orientation based on the current mechanism data to the position and orientation calculated based on the mechanism data selected by the selection unit 53. Also in the subsequent control, similar to the above control, the motion control unit 43 controls the operation of the robot 1 using the first operation program and the third mechanism data 83 selected by the selection unit 53.
[0052] The operation program of the robot device defines the work to be performed by the robot device. Depending on the work of the robot device, the positions and postures that the robot can assume, the working range of the robot, and the work tools attached to the robot are determined. By using the mechanism data created according to the operation program, the position and posture of the robot for the work performed based on the operation program can be controlled with high precision. The mechanism data changing unit 51 can change the mechanism data to enable driving the robot with high precision corresponding to the operation program used in the current work.
[0053] In the above embodiment, the control for determining the operation program and mechanism data to be used was taken as an example for explanation, but it is not limited to this form. A command statement specifying the mechanism data can be included in the operation program. The selection unit 53 can select the mechanism data specified in the operation program. For example, a command statement using the third mechanism data can be described in the first part of the first operation program. The selection unit 53 can select the third mechanism data from a plurality of mechanism data based on the command statement.
[0054] Alternatively, the mechanism data can be switched during the period when the operation program is being executed. Among the command statements of the operations of a plurality of robots included in the operation program, a command statement specifying predetermined mechanism data can be described for the command statement of the operation of a specific robot. When executing the command statement of a specific operation, the mechanism data specified in the command statement is changed. And after the control by the specific command statement is completed, the robot can be driven using the original mechanism data.
[0055] FIG. 6 shows a block diagram for explaining the second control of the first robot device according to the present embodiment. In the second control, the mechanism data is switched according to the work tool attached to the robot 1. The mechanism data 80 for the second control includes, in addition to the first mechanism data 81 and the second mechanism data 82, a fifth mechanism data 85 for using the first work tool and a sixth mechanism data 86 for using the second work tool. The fifth mechanism data 85 is set with parameters so that the position and posture of the robot can be controlled with high accuracy when the first work tool is used. The sixth mechanism data 86 is set with parameters so that the position and posture of the robot can be controlled with high accuracy when the second work tool is used.
[0056] The acquisition unit 52 acquires the first mechanism data 81, the second mechanism data 82, the fifth mechanism data 85, and the sixth mechanism data 86 from the storage unit 42. The selection unit 53 includes a work tool determination unit 53b. The work tool determination unit 53b can determine the work tool to be used based on the information of the operation program. Alternatively, the work tool determination unit 53b may determine the work tool to be used according to the operation of the input unit 49a of the operator. Alternatively, when the work tool has a function of communicating with the work tool determination unit 53b, the work tool to be used may be automatically determined by communication with the work tool.
[0057] Here, an example of using the first work tool among the first work tool and the second work tool will be described. The work tool determination unit 53b determines to use the first work tool. The selection unit 53 selects the fifth mechanism data 85 corresponding to the first work tool from the plurality of mechanism data.
[0058] The switching operation setting unit 54 sets the operation of the robot 1 when changing from the currently selected mechanism data to the fifth mechanism data. The motion control unit 43 changes the position and posture of the robot based on the motion command from the switching motion setting unit 54. In the subsequent control, the motion control unit 43 controls the robot based on the fifth mechanism data 85 and the operation program 41.
[0059] When the work tool is replaced, the weight of the work tool and the center-of-gravity position of the work tool may change. Or, the range of the position and posture of the robot or the operating speed of the robot according to the work tool may change. In the second control, by switching to the mechanism data according to the work tool, the position and posture of the robot can be controlled with high accuracy.
[0060] FIG. 7 shows a block diagram for explaining the third control of the first robot device according to the present embodiment. In the third control, the mechanism data is switched according to the work area of the robot 1. The mechanism data 80 for the third control includes, in addition to the first mechanism data 81 and the second mechanism data 82, the sixth mechanism data 86 for the first specific area and the seventh mechanism data 87 for the second specific area different from the first specific area. Each of the mechanism data 86 and 87 is generated so that the robot 1 can be driven with high accuracy when the position of the robot 1 is arranged inside each specific area.
[0061] FIG. 8 shows a perspective view of the robot for explaining the specific area of the robot. A part of the area where the robot 1 is driven is predetermined as the specific area. In the example here, a spherical first specific area 101 is defined in the area where the tool tip point 72a of the robot device 3 moves. For example, the first specific area 101 is defined by the range of the position of the tool tip point 72a in terms of the coordinate values of the world coordinate system 71. Or, the specific area may be defined by the range of the angle of the joint part at each joint axis. Such a specific area can be specified, for example, by a command statement inside the operation program. Or, the condition for specifying the specific area may be included inside the mechanism data.
[0062] Referring to FIGS. 7 and 8, in this example, before switching the mechanism data, the robot 1 is driven using the second mechanism data 82 for all the operating areas of the robot 1. The acquisition unit 52 acquires a plurality of mechanism data 81, 82, 86, 87. The selection unit 53 in the third control has a current position determination unit 53c that determines the current position of the current robot 1. The current position determination unit 53c calculates the current position of the robot 1 based on the output of the rotational position detector 23 and the second mechanism data 82.
[0063] The current position determination unit 53c determines whether the position of the robot 1 is disposed inside the first specific area 101. If the position of the robot 1 is not disposed inside the first specific area 101, the current second mechanism data 82 is maintained. When the position of the robot 1 is disposed inside the first specific area 101, the selection unit 53 selects the sixth mechanism data 86 corresponding to the first specific area 101. The switching operation setting unit 54 sets the operation of the robot 1 when switching from the second mechanism data 82 to the sixth mechanism data 86. Then, the motion control unit 43 changes the position and posture of the robot 1 based on a command from the switching operation setting unit 54. Thereafter, the motion control unit 43 drives the robot based on the sixth mechanism data 86.
[0064] The current position determination unit 53c can determine the position of the robot 1 at predetermined time intervals. When the position of the robot 1 exits the specific area 101, the selection unit 53 selects the original second mechanism data 82. The switching operation setting unit 54 sets the operation of switching from the sixth mechanism data 86 to the second mechanism data 82. Further, when the position of the robot 1 is disposed inside the second specific area, the selection unit 53 selects the seventh mechanism data 87. The switching operation setting unit 54 can set the operation of switching from the current mechanism data to the seventh mechanism data 87.
[0065] In the third control, when it is desired to improve the control accuracy of the robot 1 in a specific area, mechanism data corresponding to the specific area can be adopted. For example, inside the specific area 101, the position and posture of the robot become close. Mechanism data corresponding to such a position and posture of the robot can be created in advance. In the third control, when the position of the robot is arranged inside the specific area, the accuracy of controlling the position and posture of the robot can be improved.
[0066] By the way, when the mechanism data is changed by the mechanism data changing unit 51, the position and posture of the robot 1 change. The switching operation setting unit 54 changes the position and posture of the robot 1 based on the mechanism data before the change and the mechanism data after the change. Here, if the position and posture of the robot 1 are changed suddenly, the robot 1 or the work tool may strongly contact the devices or objects arranged around the robot 1. As a result, the devices or objects arranged around the robot 1 may be damaged. Or, due to the weight of the robot and the weight of the work tool, a sudden load may be applied to the robot or a sudden load may be applied to the work tool. As a result, it may have an adverse effect on the robot or the work tool. In the fourth control of the present embodiment, when switching the mechanism data, the position and posture of the robot 1 are controlled so as to avoid a sudden movement of the robot 1.
[0067] Fig. 9 shows a graph of the position of the robot for explaining the fourth control of the first robot device of the present embodiment. Fig. 9 shows the position of the robot that moves when the mechanism data is switched. That is, it shows the change in position from the position of the robot based on the mechanism data before the change to the target position of the robot based on the mechanism data after the change.
[0068] In the fourth control, the switching operation setting unit 54 sets the operation of the robot 1 so as to gradually reach the position and posture of the robot 1 based on the mechanism data selected by the selection unit 53 at a predetermined time length t1. In the example shown in FIG. 9, it is set such that the change in the driving speed of the robot 1 is small in the vicinity of the start of driving of the robot 1 (immediately after the start) and in the vicinity of the end of driving of the robot 1 (immediately before the end). Then, the position and posture of the robot are gently changed over a predetermined time t1.
[0069] By performing the fourth control, it is possible to suppress the robot or the work tool from strongly contacting other devices or objects, or from being subjected to an excessive load. The time length t1 when the position of the robot moves from the current position to the target position based on the new mechanism data can be determined in advance. Alternatively, the amount of change in the speed over time and the amount of change in the acceleration over time when driving the robot may be determined in advance.
[0070] Here, when driving the robot 1, the switching operation setting unit 54 can set the operation of the robot so that the speed of a predetermined part of the robot 1 does not deviate from a predetermined determination range. For example, it can be controlled so that the absolute value of the speed is less than the determination value. Specifically, the operation of the robot can be set so that the moving speed of the tool tip point, the moving speed of the flange center point, or the moving speed of the list center point is within a predetermined speed range.
[0071] Also, determination values may be provided for the speeds decomposed for each coordinate axis of a predetermined coordinate system for each point and control may be performed. For example, when the tool tip point moves, the operation of the robot 1 may be controlled so that the speed does not exceed the determination value for each coordinate axis of the world coordinate system. Alternatively, the switching operation setting unit 54 may control so that the rotational speed of the drive motor 21 arranged on each joint axis does not deviate from a predetermined determination range.
[0072] Regarding acceleration, control similar to the speed limit can be implemented. When driving the robot, the switching operation setting unit 54 can set the operation of the robot so that the acceleration of a predetermined part of the robot does not deviate from a predetermined determination range. For example, control can be performed so that the absolute value of the acceleration is less than the determination value. Specifically, the operation of the robot can be set so that the acceleration of a predetermined point such as the tool tip end point is within a predetermined acceleration range. Other controls are the same as the control for limiting speed.
[0073] By performing such control to limit speed or control to limit acceleration, it is possible to suppress an excessive load from being applied to the robot or the work tool. Also, when the robot or the work tool contacts a peripheral device or object, it is possible to suppress damage to the robot, the work tool, or the peripheral device or object.
[0074] FIG. 10 shows an explanatory diagram of the fifth control of the first robot device according to the present embodiment. In the above-described control, when switching the mechanism data, the switching operation setting unit 54 changes the position and posture of the robot according to the mechanism data before the change and the mechanism data after the change. However, there are cases where changing the mechanism data may change the locus of the position and posture of the robot that has already been taught. For this reason, the operator may perform a re-teaching operation to correct the position and posture of the robot at the teaching point.
[0075] In the fifth control, when changing the mechanism data, the switching operation setting unit 54 maintains the state in which the robot has stopped. That is, the switching operation setting unit 54 controls to maintain the position and posture of the robot. Then, assuming that the position and posture of the robot 1 calculated using the mechanism data after the switching are correct, the current position and posture are corrected.
[0076] In the example shown in FIG. 10, the control when switching from the third mechanism data 83 for the first operation program to the fourth mechanism data 84 for the second operation program is shown. The position and orientation of the robot 1 calculated based on each mechanism data are shown as coordinate values in the world coordinate system 71.
[0077] By switching the mechanism data, for example, the coordinate value of the X-axis is changed from 1000 to 1001. However, the switching operation setting unit 54 corrects the current coordinate value of the X-axis to 1001 without driving the robot 1. For the Y-axis, Z-axis, W-axis, P-axis, and R-axis as well, alignment is performed assuming that the coordinate values calculated based on the fourth mechanism data are correct without driving the robot 1. As the coordinate values displayed on the display unit 49b of the teaching operation panel 49, the coordinate values when using the fourth mechanism data are displayed.
[0078] By performing the fifth control, it is possible to avoid the situation where the position and orientation of the robot change when the mechanism data is changed, resulting in contact with surrounding devices or objects, or excessive load being applied to the robot or the work tool.
[0079] (Embodiment 2) With reference to FIGS. 11 to 13, the correction device in Embodiment 2 will be described. The correction device in the present embodiment corrects the operation program based on the mechanism data corresponding to the operation program of the robot device.
[0080] FIG. 11 shows a block diagram of the second robot device according to the present embodiment. The second robot device 7 includes a robot 1, a welding gun 5, and a control device 6. The control device 6 includes an arithmetic processing unit 25 and a teaching operation panel 49. In the example here, the control device 6 of the robot functions as a correction device. The arithmetic processing unit 25 is configured by a computer having a CPU as a processor. The arithmetic processing unit 25 includes a program processing unit 56 that performs control for correcting the operation program 41. The arithmetic processing unit 25 has a configuration in which the program processing unit 56 is added to the arithmetic processing unit 24 of the control device 2 of the first robot device 3.
[0081] The program processing unit 56 has an acquisition unit 52 and a selection unit 53 similar to the mechanism data change unit 51 of the first robot device 3 in the first embodiment. The program processing unit 56 includes a program correction unit 58 that corrects the operation program based on the mechanism data selected by the selection unit 53. The program processing unit 56, the acquisition unit 52, the selection unit 53, and the program correction unit 58 correspond to processors that are driven based on a predetermined program. By the processor performing processing based on the predetermined program, they function as respective units.
[0082] FIG. 12 shows an example of an image displayed on the display unit of the teaching operation panel. In the first control of the correction device according to the present embodiment, control is performed to add a command sentence of mechanism data to be applied to the operation program to the operation program. The image displayed on the display unit 49b is controlled by the display control unit 46. The display area 89 of the display unit 49b has a display area 89a for displaying a plurality of pieces of mechanism data and a display area 89b for displaying a plurality of operation programs. Note that only one operation program may be displayed in the display area 89b. In the example here, images 81a, 82a, 83a, 84a of a plurality of pieces of mechanism data are displayed in the display area 89a. Images 91a, 92a, 93a, 94a of a plurality of operation programs are displayed in the display area 89b.
[0083] The operator can operate the image displayed on the display unit 49b by operating the input unit 49a. In the example here, the operator sets to use the first mechanism data for the second operation program. For example, after selecting the image 81a of the first mechanism data, the operator selects the image 92a of the second operation program. Then, the operator presses a predetermined button for setting the mechanism data. By performing this operation, as shown by the arrow 111, the selection unit 53 selects the first mechanism data for the second operation program. The selection unit 53 selects one mechanism data from a plurality of mechanism data according to the operation of the input unit 49a of the operator.
[0084] The program modification unit 58 modifies the operation program based on the first mechanism data selected by the selection unit 53. The program modification unit 58 adds a command statement for applying the first mechanism data selected by the selection unit 53 to the second operation program. The program modification unit 58 can add a command statement for applying the mechanism data selected by the selection unit 53 to the entire operation program. For example, a command statement for controlling the robot using the first mechanism data can be described in the first part of the second operation program. When the second operation program is executed, the first mechanism data can be automatically adopted.
[0085] Alternatively, the display control unit 46 can display the content of one operation program in the display area 89b for displaying the operation program. That is, all the command statements included in the operation program can be displayed. Then, by the operation of the input unit 49a of the operator, the selection unit 53 can select a specific command statement for applying one mechanism data. The program modification unit 58 can add a command statement for applying the mechanism data selected by the selection unit 53 to the operation program for the specific command statement.
[0086] In this way, in the first control of the correction device, the operation program can be corrected so that the desired mechanism data is applied to the entire operation program or a part of the operation program by the operator's operation. When driving the robot 1, the mechanism data changing unit 51 can control the robot 1 while reading the corrected operation program and setting or changing the mechanism data.
[0087] Next, the second control of the correction device according to the present embodiment will be described. FIG. 13 shows a block diagram for explaining the second control of the correction device. The operation program includes position data constituted by variables defining the position and posture of the robot at the teaching points. In the second control, control is performed to rewrite the variables of the position data of the operation program to values corresponding to the mechanism data. That is, the program correction unit 58 calculates variables defining the position and posture of the robot when using the mechanism data selected by the selection unit 53 and sets them in the position data.
[0088] Here, an example of applying the fourth mechanism data to the operation program will be described. The position data is constituted by the teaching angles DJ1 to DJN at each joint part. For example, the teaching angle DJ1 indicates the teaching angle at the joint part of the joint axis J1. The program correction unit 58 applies the first mechanism data which is the design value of the mechanism data. The program correction unit 58 calculates the position and posture of the robot based on forward kinematics. At this time, the first mechanism data with the error of all parameters being 0 is used. That is, the program correction unit 58 calculates the ideal position and posture of the robot using the mechanism data at the time of design.
[0089] Next, the program correction unit 58 calculates the angles DJ1' to DJN' of the joint parts as variables of the corrected position data by inverse kinematics based on the position and posture of the robot. At this time, the program correction unit 58 applies the fourth mechanism data. Then, the program correction unit 58 performs control to rewrite the teaching angles DJ1 to DJN of the joint parts of the position data of the operation program to the angles DJ1' to DJN' of the joint parts.
[0090] When actually driving the robot to perform operations, control can be implemented using an operation program including the corrected position data and mechanism data corresponding to the operation program. In the above example, by controlling the robot 1 using the angles DJ1' to DJN' of the joint part and the fourth mechanism data, the position and orientation of the robot can be brought closer to the desired position and orientation. In this case, it is not necessary to perform the forward transformation and inverse transformation controls shown in FIG. 5, and the robot can be controlled based on the corrected position data.
[0091] In this way, the program correction unit can correct the position data including the variables that define the position and orientation of the robot based on the mechanism data. The correction device of the present embodiment can generate an operation program for driving the robot with high accuracy.
[0092] Regarding the configuration, operation, and effects of the second robot device including other correction devices, they are the same as those of the first robot device of the first embodiment, so the description will not be repeated here.
[0093] (Embodiment 3) Referring to FIG. 14, the simulation device in Embodiment 3 will be described. FIG. 14 shows a block diagram of the simulation device of the present embodiment. The simulation device 4 of the present embodiment is an offline simulation device configured to simulate the operation of the first robot device 3 of the first embodiment.
[0094] The simulation device 4 arranges the three-dimensional model of the robot 1, the three-dimensional model of the welding gun 5, and the three-dimensional model of the workpiece 98 in the same virtual space to perform the simulation of the operation of the robot device 3.
[0095] The simulation device 4 is configured by an arithmetic processing unit (computer) including a CPU as a processor. The simulation device 4 includes a storage unit 63 that stores any information related to the simulation of the robot device 3. The storage unit 63 can be configured with a non-temporary storage medium capable of storing information. For example, the storage unit 63 can be configured with a storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium.
[0096] Three-dimensional shape data 69 of the robot 1, the welding gun 5, and the workpiece 98 is input to the simulation device 4. As the three-dimensional shape data 69, for example, data output from a CAD (Computer Aided Design) device can be used. The three-dimensional shape data 69 is stored in the storage unit 63. The operation program 41 of the robot device 3 for performing the simulation is input to the simulation device 4 and stored in the storage unit 63. Also, predetermined mechanism data 80 is stored in the storage unit 63.
[0097] The simulation device 4 includes an input unit 61 that inputs information related to the simulation of the robot device 3. The input unit 61 is configured by operation members such as a keyboard, a mouse, and a dial. The simulation device 4 includes a display unit 62 that displays information related to the simulation of the robot device 3. The display unit 62 displays an image of the model of the robot device 3, an image of the model of the workpiece 98, etc. The display unit 62 is configured by a display panel such as a liquid crystal display panel. When the simulation device includes a touch panel type display panel, the display panel functions as an input unit and a display unit.
[0098] The simulation device 4 includes an arithmetic processing unit 64 that performs arithmetic processing for the simulation of the robot device 3. The arithmetic processing unit 64 includes a model generation unit 65 that generates a model of the robot device and a model of the workpiece based on the three-dimensional shape data 69 including the three-dimensional shape data of the robot device 3 and the three-dimensional shape data of the workpiece 98. The arithmetic processing unit 64 includes a simulation execution unit 66 that performs a simulation of the operation of the robot device 3.
[0099] The simulation execution unit 66 has a function of moving the model of the robot device on the screen in response to an operation of the input unit 61 by an operator. Alternatively, the simulation execution unit 66 performs a simulation of the operation of the robot device 3 based on the operation program 41 created in advance.
[0100] The arithmetic processing unit 64, the model generation unit 65, and the simulation execution unit 66 correspond to a processor that is driven according to a simulation program. By the processor implementing the control defined in the program, they function as respective units.
[0101] The simulation device 4 includes a display control unit 67 that controls an image to be displayed on the display unit 62, a mechanism data change unit 51, and a program processing unit 56. The display control unit 67 of the present embodiment displays the result of the simulation on the display unit 62. The display control unit 67 and the mechanism data change unit 51 are the same as the display control unit and the mechanism data change unit of the first robot device 3 in the first embodiment. Also, the program processing unit 56 is the same as the program processing unit of the second robot device 7 in the second embodiment.
[0102] The simulation device 4 can also be provided with a mechanism data change unit 51 and a program modification unit 58. In the simulation device 4, it is possible to perform a simulation of the robot device whose mechanism data has been changed by the mechanism data change unit 51. Alternatively, the program processing unit 56 can modify the operation program based on the mechanism data.
[0103] When the mechanism data is changed by the mechanism data change unit or the operation program is modified by the program processing unit, the trajectory of the position and posture of the robot may change. The operator can confirm the operation of the robot by the simulation device. And when the trajectory of the position and posture of the robot is inappropriate, while performing the simulation by the simulation device 4, the variables that determine the position and posture of the robot at the teaching point can be adjusted.
[0104] Regarding the configurations, operations, and effects of other simulation devices, they are the same as those of the robot devices in Embodiment 1 and the robot devices in Embodiment 2, so the description will not be repeated here.
[0105] The above-described embodiments can be combined as appropriate. In each of the above-described figures, the same or equivalent parts are denoted by the same reference numerals. Note that the above-described embodiments are examples and do not limit the invention. Also, in the embodiments, changes to the embodiments shown in the claims are included.
Explanation of Reference Numerals
[0106] 1 Robot 2, 6 Control Device 3, 7 Robot Device 4 Simulation Device 21 Drive Motor 23 Rotation Position Detector 24, 25 Arithmetic Processing Unit 41 Operation Program 42 Storage Unit 43 Operation Control Unit 49 Teaching Operation Panel 49a Input Unit 49b Display Unit 51 Mechanism Data Change Unit 52 Acquisition Unit 53 Selection Unit 54 Switching Operation Setting Unit 56 Program Processing Unit 58 Program Modification Unit 61 Input section 62 Display section 63 Memory section 64 Arithmetic processing section 80, 81, 82, 83, 84, 85, 86, 87 Mechanism data 101 Specific area
Claims
1. A control device for a robot having a joint portion, comprising: an operation control unit that controls the operation of the robot based on mechanism error parameters including parameters for calculating the relationship between the angle at the joint portion of the robot and the tip position of the robot; an acquisition unit that acquires a plurality of predetermined mechanism error parameters; a selection unit that selects one mechanism error parameter from the plurality of mechanism error parameters; a switching operation setting unit that sets the operation of the robot so as to change the mechanism error parameter, wherein the operation control unit controls the operation of the robot based on an operation program, and the selection unit selects a mechanism error parameter corresponding to the operation program used for the work of the robot.
2. The control device according to claim 1, wherein the switching operation setting unit sets the operation of the robot so that the position and posture of the robot based on the mechanism error parameter selected by the selection unit are obtained from the position and posture of the robot based on the current mechanism error parameter.
3. The control device according to claim 2, wherein the switching operation setting unit sets the operation of the robot so as to gradually reach the position and posture of the robot based on the mechanism error parameter selected by the selection unit over a predetermined time length.
4. The control device according to claim 2 or 3, wherein the switching operation setting unit sets the operation of the robot so that the speed of a predetermined part of the robot does not deviate from a predetermined determination range when driving the robot.
5. The control device according to any one of claims 2 to 4, wherein the switching operation setting unit sets the operation of the robot so that the acceleration of a predetermined part of the robot does not deviate from a predetermined determination range when driving the robot.
6. The control device according to claim 1, wherein the switching operation setting unit maintains the position and posture of the robot when changing the mechanism error parameter.
7. The operation program includes a command statement for designating a mechanism error parameter, and the selection unit selects the mechanism error parameter designated in the operation program.
8. Mechanism error parameters corresponding to a specific area of a part of the area where the robot drives are predetermined. The control device according to claim 1, wherein the selection unit selects a mechanism error parameter corresponding to a specific area when the position of the robot is arranged inside the specific area.
9. The control device according to any one of claims 1 to 8, wherein the mechanism error parameter includes at least one parameter among a DH parameter, an error in the position of the origin of the world coordinate system, an error in the DH parameter, a deflection amount of a component due to torque around a joint axis, and an error in the gear ratio of a speed reducer.
10. A correction device for an operation program of a robot having joint parts, a storage unit that stores a mechanism error parameter including a parameter for calculating the relationship between the angle at the joint part of the robot and the tip position of the robot; an acquisition unit that acquires a plurality of mechanism error parameters created in advance from the storage unit; a display unit including an area for displaying a plurality of mechanism error parameters and an area for displaying the operation program; an input unit for an operator to operate an image displayed on the display unit; a selection unit that selects one mechanism error parameter from a plurality of mechanism error parameters according to the operation of the input unit by the operator; and a program correction unit that corrects the operation program based on the mechanism error parameter selected by the selection unit. The correction device, wherein the mechanism error parameter is a parameter used in a calculation formula for calculating the rotational position of a drive motor of the robot from variables that define the position and orientation of the robot set in the operation program.
11. The correction device according to claim 10, wherein the program correction unit describes a command statement for applying the mechanism error parameter selected by the selection unit in the operation program.
12. The correction device according to claim 11, wherein the program correction unit describes a command statement for applying the mechanism error parameter selected by the selection unit to the entire one operation program in the operation program.
13. The operation program includes position data configured by variables that define the position and orientation of the robot at a teaching point, The correction device according to claim 10, wherein the program correction unit calculates variables that define the position and orientation of the robot when the mechanism error parameter selected by the selection unit is used and sets them in the position data.
14. The correction device according to any one of claims 10 to 13, wherein the mechanism error parameter includes at least one parameter among DH parameters, an error in the position of the origin of the world coordinate system, an error in the DH parameters, a deflection amount of a component due to torque around a joint axis, and an error in the gear ratio of a speed reducer.
15. A control device for a robot having a joint part, an operation control unit that controls the operation of the robot based on a mechanism error parameter including a parameter for calculating the relationship between the angle at the joint part of the robot and the tip position of the robot; an acquisition unit that acquires a plurality of predetermined mechanism error parameters; a selection unit that selects one mechanism error parameter from the plurality of mechanism error parameters; and a switching operation setting unit that sets the operation of the robot when changing the mechanism error parameter. The operation control unit controls the operation of the robot based on an operation program, the operation program includes a command statement for specifying a mechanism error parameter, and the selection unit selects the mechanism error parameter specified in the operation program. A control device.
Citation Information
Patent Citations
Strain gauge and making method thereof
JP1980031996A
Control device of industrial robot
JP1984229609A
Robot displacement device
JP2015027730A
Information processing device and robot arm control system
JP2019081208A
Carrying device, semiconductor manufacturing device and carrying method
JP2020049568A