Arithmetic device and simulation method for robot system
A computing device uses a mathematical model to adjust robot joint loads across multiple work points by optimizing the tool coordinate system's position and orientation, addressing the cumbersome threshold adjustment issue and ensuring loads remain within limits.
Patent Information
- Application Number
- PCT/JP2024/026304
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-23
- Publication Date
- 2026-01-29
AI Technical Summary
Adjusting the load on each joint of a robot to be below a predetermined threshold when performing tasks at multiple work points is cumbersome and time-consuming, requiring separate parameter settings for each work point.
A computing device simulates a robot system using a mathematical model to estimate loads and deformation amounts, searching for common parameters that keep loads equal to or less than a threshold across multiple work points, adjusting the tool coordinate system's position and orientation relative to the robot's coordinate system.
Facilitates easy adjustment of loads on robot joints across multiple work points, reducing processing time and ensuring loads remain within allowable limits, while accurately estimating loads including those from the nut runner and workpiece.
Smart Images

Figure JP2024026304_29012026_PF_FP_ABST
Abstract
Description
Arithmetic device and simulation method for robot system
[0001] The present disclosure relates to a computing device and a simulation method for a robot system.
[0002] A simulation device is known that calculates the load acting on each joint of a robot, taking into account the contact force caused by contact between the robot and a workpiece as the robot moves (see, for example, Patent Document 1).
[0003] JP 2018-030210 A
[0004] When the load acting on each joint of the robot calculated by the simulation device is large, it is necessary to adjust the load so that it is smaller than a predetermined threshold. However, when the robot performs work on multiple work points, it is cumbersome and time-consuming to set separate parameters for each work point so that the load acting on the robot does not exceed a threshold.
[0005] Therefore, when a robot performs work on a plurality of work points, it is desirable to easily adjust the load acting on each joint of the robot at the plurality of work points.
[0006] One aspect of the present disclosure is a computing device that simulates a robot system including a robot having a plurality of joints and a tool that is attached to the robot and performs a predetermined task on a work object at a plurality of working points, and in which the task is performed by applying at least one of a force and a torque generated by either the tool or the work object to the other, the computing device including at least one processor and at least one memory, the memory storing a mathematical model, the processor using the mathematical model stored in the memory to estimate a load or a deformation amount on at least one of the robot, the tool, and the work object, and based on the estimated load or the deformation amount, searching for common parameters that make the load or the deformation amount corresponding to two or more of the working points equal to or less than a predetermined threshold.
[0007] 5 is a side view showing a robot system to which a computing device according to an embodiment of the present disclosure is applied. FIG. 1 is a perspective view showing a nut runner of the robot system of FIG. 1. FIG. 2 is a block diagram showing a computing device according to an embodiment of the present disclosure. FIG. 3 is a schematic view showing a mechanical model corresponding to the robot system of FIG. 1. FIG. 4 is a side view showing an example of the posture of a robot tightening a screw using the nut runner of the robot system of FIG. 1. FIG. 5 is a side view showing a change in the posture of the robot due to a change in the attachment of the nut runner to the robot of FIG. 5. FIG. 6 is a front view showing a display device of a computing device according to an embodiment of the present disclosure. FIG. 13 is a flowchart illustrating a first simulation method using a computing device according to an embodiment of the present disclosure. FIG. 14 is a flowchart illustrating a subroutine for calculating load ratios in the flowchart of FIG. 8. FIG. 15 is a diagram showing an example display of load ratios for each working point and each joint calculated for the first working point by the simulation method of FIG. 8. FIG. 16 is a flowchart illustrating a subroutine for searching parameters in the flowchart of FIG. 8. FIG. 17 is a diagram showing an example display of a parameter setting screen in the simulation method of FIG. 8, and parameters used in the search and load ratios for each joint. FIG. 18 is a flowchart illustrating a second simulation method using a computing device according to an embodiment of the present disclosure. FIG. 19 is a flowchart illustrating a subroutine for searching parameters in the flowchart of FIG. 13.
[0008] A computing device 1 and a simulation method for a robot system 10 according to an embodiment of the present disclosure will be described below with reference to the drawings. First, the robot system 10 to which the computing device 1 and the simulation method according to the present embodiment are applied will be described.
[0009] 1, the robot system 10 is a screw tightening system that includes a robot 20 fixed to a horizontal floor surface F and a nut runner (tool) 30 attached to the robot 20. The robot system 10 also includes a work object 40 that is fixed to the floor surface F and to which screws 50 are fastened at a plurality of work points PW by the nut runner 30. In other words, the robot 20, nut runner 30, work object 40, and floor surface F that make up the robot system 10 form a closed loop.
[0010] The robot 20 is, for example, a six-axis articulated robot, and includes a base 21 installed on the floor F and a rotating body 22 supported rotatably relative to the base 21 about a vertical first axis J1. The robot 20 also includes a first arm 23 supported rotatably relative to the rotating body 22 about a horizontal second axis J2, and a second arm 24 supported rotatably relative to the tip of the first arm 23 about a horizontal third axis J3. The robot 20 also includes a three-axis wrist unit 25 supported at the tip of the second arm 24.
[0011] The wrist unit 25 includes a first wrist element 25a supported rotatably relative to the second arm 24 about a fourth axis J4 extending along a plane perpendicular to the third axis J3. The wrist unit 25 also includes a second wrist element 25b supported rotatably relative to the first wrist element 25a about a fifth axis J5 perpendicular to the fourth axis J4. The wrist unit 25 also includes a third wrist element 25c supported rotatably relative to the second wrist element 25b about a sixth axis J6 perpendicular to the fifth axis J5 and intersecting the fourth axis J4. That is, the robot 20 includes three basic joints A1 to A3 and three wrist joints A4 to A6.
[0012] 1, the nut runner 30 includes a main body 31 fixed to a flange surface at the tip of the third wrist element 25c, and a socket 35 connected to the tip of the main body 31. As shown in FIG. 2, the main body 31 includes a motor 32, a drive shaft 33 rotated about axis B by the motor 32, and a box-shaped frame 34 surrounding the drive shaft 33. A mounting portion 34a having a mounting hole 34h extending in a direction perpendicular to axis B is fixed to the base end of the frame 34. By fitting and fixing the outer periphery of the flange at the tip of the third wrist element 25c of the robot 20 into the mounting hole 34h, the nut runner 30 is attached to the robot 20 in an orientation in which axis B is perpendicular to the sixth axis J6.
[0013] 2, the socket portion 35 includes a housing 36 that extends along the axis B and is coaxially connected to the tip of the drive shaft 33. A hole (not shown) having the axis B as its center axis is provided at the tip of the housing 36, and a tool S corresponding to the screw 50 to be fastened to the workpiece 40 is detachably fitted into this hole. That is, when the motor 32 of the main body 31 is operated, the housing 36 and the tool S rotate integrally with the drive shaft 33 around the axis B. The socket portion 35 also includes a screw supply mechanism (not shown) that supplies screws 50 one by one to the tip of the tool S and engages the head of the screw 50 with the tip of the tool S.
[0014] 1 and 2, a tip coordinate system C1 having its origin at the center point of the flange is set at the tip of the wrist unit 25 of the robot 20. Furthermore, a tool coordinate system C2 having a Z2 axis coinciding with the axis B is set at the tip of the screw 50 to be attached to the socket portion 35 of the nut runner 30. In the example shown in FIGS. 1 and 2, the tool coordinate system C2 fixed to the nut runner 30 has a position and orientation obtained by translating the tip coordinate system C1 of the robot 20 in the X and Z directions.
[0015] To fasten the screws 50 to each work point PW of the workpiece 40, it is necessary to place the tool coordinate system C2 at a predetermined position and attitude relative to each work point PW. That is, it is necessary to align the origin position of the tool coordinate system C2 with the work point PW and adjust the attitude of the tool coordinate system C2 so that the Z2 axis of the tool coordinate system C2 coincides with the axis of the female thread formed at the work point PW.
[0016] 1, the robot system 10 operates each of the joints A1 to A6 of the robot 20 to position the tool coordinate system C2 at a predetermined position and orientation relative to each work point PW. This allows the screw 50 attached to the tool S to be positioned at a predetermined fastening position in the workpiece 40. Then, in this state, the motor 32 of the nut runner 30 is operated to rotate the tool S about the axis B, thereby performing a screw tightening operation in which the screw 50 is fastened to the workpiece 40 with a predetermined fastening torque.
[0017] Next, a description will be given of the arithmetic device 1 according to this embodiment. The arithmetic device 1 is, for example, an offline computer that simulates the operation of the robot system 10. As shown in Fig. 3 , the arithmetic device 1 includes an input device 2, at least one memory 3 such as a ROM or a RAM, at least one processor 4 such as a CPU, and a display device 5.
[0018] The input device 2 is configured with, for example, a keyboard, a touch panel, an operation panel, etc., and receives input information entered by an operator. The input information includes, for example, the installation positions of the robot 20 and the workpiece 40, the position and orientation of the tool coordinate system C2 relative to the tip coordinate system C1 of the robot 20, and the positions and directions of multiple working points PW. Information regarding the magnitude and direction of the tightening torque of the motor 32 of the nut runner 30 is also entered as input information.
[0019] Further, additional search conditions for searching parameters, which will be described later, may be included as other input information input by the operator to the input device 2. The additional search conditions include a three-dimensional search range and step size when the parameter is a position, and an angle range and step size to search when the parameter is an angle.
[0020] The memory 3 stores in advance a mathematical model corresponding to the robot system 10 and basic information about the robot system 10. The mathematical model is set based on a dynamic model constructed by defining the robot system 10 by a plurality of elastic elements connected to each other, as shown in Fig. 4, for example.
[0021] The basic information of the robot system 10 includes, for example, the distances between the joints A1 to A6 of the robot 20, elastic coefficients indicating the rigidity of the joints A1 to A6, and elastic coefficients indicating the rigidity of the nut runner 30 and the workpiece 40. The basic information also includes the center of gravity position coordinates and mass based on the tip coordinate system C1 fixed to the center of the mounting hole 34h of the mounting portion 34a of the nut runner 30.
[0022] The mechanical model shown in FIG. 4 represents each mechanism arranged between a base 21 fixed to a floor surface F and a work object 40 fixed to the floor surface F, using a plurality of rotational elastic elements and linear elastic elements connected by rigid links.
[0023] More specifically, the dynamic model is such that six joints A1 to A6 of the robot 20 are each connected to a single rotational elastic element (elastic element) k J1 ~k J6 The nut runner 30 and the workpiece 40 are defined as follows: an input element M that generates a tightening torque, and three rotational elastic elements (elastic elements) k 1 ~k 3 and three linear elastic elements (elastic elements) k 4 ~k 6 That is, this dynamic model includes a robot domain T1 corresponding to the robot 20, and a nut runner domain T2 corresponding to the nut runner 30 and the workpiece 40.
[0024] Next, an example of a mathematical model derived based on the dynamic model shown in FIG. 4 is shown below. where f N is the linear elastic element k 4 ~k 6 is the force acting on m N is the rotational elastic element k 1 ~k 3 is the moment acting on I 3 is a third-order identity matrix. 6 is a sixth-order identity matrix. NR is the rotational elastic element k 1 ~k 3 and linear elastic element k 4 ~k 6 is the elastic matrix that indicates the stiffness of the rotational elastic element k J1 ~k J6 Enter the deformation amount of the rotational elastic element k 1 ~k 3 and linear elastic element k 4 ~k 6 is a Jacobian matrix whose output is the deformation amount of K RB is the rotational elastic element k J1 ~k J6 is the elastic matrix that indicates the stiffness of T is a vector value of the fastening torque input by the input element M.
[0025] where f n (n=1, ..., 6) is the force acting on the nth joint among the joints A1 to A6, f 7 is the force acting on the hand position of the robot 20. m n (n=1, ..., 6) is the moment acting on the nth joint among the joints A1 to A6, m 7 is the moment acting on the hand position of the robot 20. n (n=1, ..., 6) is the position of the nth joint among the joints A1 to A6, P 7 is the hand position of the robot 20.
[0026] Equation (1) is the rotational elastic element k of the nut runner region T2.1 ~k 3 and linear elastic element k 4 ~k 6 Force f acting on N and moment m N , the tightening torque M T and the elastic matrix K of the robot region T1 and the nut runner region T2. RB , K NR This equation (1) is expressed by the following equation: 1 ~k 6 Force f acting on N and moment m N and the rotational elastic element k 1 ~k 3 and linear elastic element k 4 ~k 6 The deformation amount is derived by solving the force balance equation, assuming that Hooke's law is obeyed.
[0027] In addition, the elastic element k of the nut runner region T2 calculated by the formula (1) 1 ~k 6 Force f acting on N and moment m N is the force f acting on the hand position of the robot 20 according to the law of action and reaction. 7 and moment m 7 As a result, each rotational elastic element k J1 ~k J6 By calculating the equations of balance for each link connecting the two in order from the hand end, the load acting on each joint A1 to A6 can be found.
[0028] In this case, the elastic matrix K in the above equation (1) RB is defined based on the elastic coefficients of the joints A1 to A6 included in the basic information of the robot system 10 stored in the memory 3. Similarly, the elastic matrix K NR is determined based on the elastic modulus of the nut runner 30 and the workpiece 40 included in the basic information of the robot system 10. Also, the tightening torque M Tis set based on the input information input by the operator. n is calculated geometrically based on the installation position of the robot 20, the coordinates of the working point PW, the direction of the axis of the female screw formed at the working point PW, the position and posture of the tool coordinate system C2 relative to the tip coordinate system C1, the angle of the tool coordinate system C2 around the axis of the female screw, and basic information included in the input information. n may be input directly by the user.
[0029] Furthermore, allowable values (predetermined threshold values) for the load acting on each of the joints A1 to A6 are stored in the memory 3. Each allowable value is determined by the load capacity set for the components that make up each of the joints A1 to A6, such as the motor, reducer, bearing, etc.
[0030] The processor 4 retrieves the mathematical model from the memory 3 and calculates the load acting on each of the joints A1 to A6 of the robot 20 by performing calculations using the retrieved mathematical model based on the input information input from the input device 2. The processor 4 also retrieves the allowable values for each of the joints A1 to A6 stored in the memory 3, compares them with the calculated load acting on each of the joints A1 to A6, and determines whether the load acting on each of the joints A1 to A6 exceeds the allowable value.
[0031] If the processor 4 determines that any of the calculated loads acting on the joints A1 to A6 exceeds the allowable value, it searches for parameters that will reduce the load that exceeds the allowable value to or below the allowable value. The parameters can include, for example, the relative position (ΔX, ΔY, ΔZ) between the position (X1, Y1, Z1) in the tip coordinate system C1 of the robot 20 and the position (X2, Y2, Z2) in the tool coordinate system C2. That is, (ΔX, ΔY, ΔZ) = (X2 - X1, Y2 - Y1, Z2 - Z1).
[0032] 5 and 6 show an example in which the installation positions of the robot 20 and workpiece 40, and the position and orientation of the working point PW are fixed, and only the position of the tool coordinate system C2 relative to the tip coordinate system C1 is changed. By changing the parameter of the position of the tool coordinate system C2 relative to the tip coordinate system C1, the posture of the robot 20 for tightening a screw at the same working point PW will differ. As a result, by changing the parameter, it is possible to change the load acting on each of the joints A1 to A6 of the robot 20.
[0033] The processor 4 transmits the parameters obtained as a result of the search, together with the ratio of the load of each joint A1 to A2 to the allowable value, to the display device 5. The display device 5 is, for example, a monitor. As shown in Fig. 7, the display device 5 displays the searched parameters transmitted from the processor 4, and also displays each ratio corresponding to the joints A1 to A6 for each working point PW.
[0034] Next, a simulation method using the thus configured arithmetic device 1 according to this embodiment will be described with reference to a flowchart, taking as an example a robot system 10 that performs screw tightening work by the operation of a nut runner 30 as shown in FIG.
[0035] 3 and 8, the operator operates the input device 2 to input input information for the robot system 10 (step S1). Specifically, setting information such as the installation positions of the robot 20 and the workpiece 40, the initial position and initial posture of the tool coordinate system C2 relative to the tip coordinate system C1, and the positions and directions of multiple work points PW is input. Also input as input information is the tightening torque M of the nut runner 30. T In addition, additional search conditions such as the search range and search step size are also entered.
[0036] Next, the processor 4 sets the first working point PW selected from the positions of the working points PW input in step S1 (step S2), and calculates the ratio of the load acting on each of the joints A1 to A6 of the robot 20 to the allowable value for the set working point PW (step S3).
[0037] 9, the processor 4 calculates the posture of the robot 20 during the screw tightening operation at the set working point PW, i.e., the angles of the joints A1 to A6 (step S31). That is, the processor 4 calculates the posture of the robot 20, which is set in accordance with the input information, so as to set the position and posture of the input tool coordinate system C2 based on the position and direction of the working point PW.
[0038] Next, the processor 4 retrieves the mathematical model stored in advance in the memory 3, and calculates the load acting on each of the joints A1 to A6 using the mathematical model (step S32).
[0039] Specifically, the processor 4 first calculates the elastic matrix K based on the calculated angles of the joints A1 to A6 of the robot 20 and the input information. RB , K NR , Jacobian matrix J and fastening torque M T Then, by calculating the formula (1), the acting force f N and moment m N , that is, the load acting on the hand position of the robot 20 is calculated.
[0040] Next, the processor 4 calculates the load acting on each of the joints A1 to A6 by calculating equation (2) in order, starting from the joint A6 at the tip side of the robot 20. Then, the processor 4 adds the load due to the weight of the robot 20 and the nut runner 30 to the calculated load acting on each of the joints A1 to A6.
[0041] By performing such calculations, the processor 4 calculates the magnitude of the load acting on each of the joints A1 to A6 of the robot 20 due to the reaction force of the fastening torque when the nut runner 30 operates.
[0042] Thereafter, the processor 4 retrieves the allowable values for each of the joints A1 to A6 from the memory 3, and calculates the ratio of the load acting on each of the joints A1 to A6 calculated using the mathematical model to each allowable value (step S33). The processor 4 records the calculated ratio for each of the joints A1 to A6 in the memory 3 (step S4). The processor 4 determines whether or not the simulation has been performed for all of the working points PW (step S5), and if not, repeats the process from step S2 for the next working point PW.
[0043] When the processor 4 determines that the simulation has been performed for all the working points PW, it transmits the load ratios for each of the joints A1 to A6 stored in the memory 3 to the display device 5 for display (step S6). The display device 5 displays the load ratios for each of the working points PW in association with the joints A1 to A6, as shown in Fig. 10, for example. In particular, if the ratio exceeds 100%, it displays it in a different color (for example, red).
[0044] The operator, viewing the display, determines whether a parameter search is necessary (step S7), and if it is determined that a parameter search is necessary, the processor 4 carries out the parameter search (step S8). The parameter search is started by checking the checkbox for selecting the working point PW for which a search is required (step S10) and pressing the search button, as shown in Figures 11 and 12.
[0045] When the search button is pressed, the processor 4 displays a search setting screen shown in Fig. 12 on the display device 5. The search setting screen displays search parameters such as the position X0, Y0, Z0 in the robot coordinate system C0, the position ΔX, ΔY, ΔZ in the tool coordinate system C2 relative to the tip coordinate system C1, and the search width of the orientation Δp, Δq, Δr, so that they can be entered.
[0046] The setting screen displays a check box for determining whether or not to search for each parameter, an input field for the search step size, and a search start button. In the example shown in Fig. 12, the positions X0, Y0 in the robot coordinate system C0 and the positions ΔX, ΔY in the tool coordinate system C2 relative to the tip coordinate system C1 are selected as parameters to be searched (step S11). 100 mm and 200 mm are entered in the input field for the search step size for each parameter to be searched.
[0047] 12, the symbol N indicates the number of conditions. In the example shown in FIG. 12, N=3 is selected, and the condition is set by decomposing the number entered in the search width input field into N, with plus and minus signs added to the two ends. For example, when the search width is 200 mm and N=3, processor 4 searches under three conditions: -200 mm, 0 mm, and +200 mm. When the search width is 200 mm and N=5, processor 4 searches under five conditions: -200 mm, -100 mm, 0 mm, +100 mm, and +200 mm.
[0048] Once the settings are complete, the operator presses the search start button, which determines search parameters for one or more parameters by varying the input search width (step S12). Next, processor 4 determines the next working point PW to be searched from among the working points PW selected in step S10 (step S13). Using the determined working point PW and parameters, the load ratios are calculated in the same manner as in step S3, and the calculated load ratios for each joint A1 to A6 are recorded in association with the parameters (step S14).
[0049] Next, processor 4 determines whether or not the search has been completed for all selected working points PW (step S15), and if not, repeats the process from step S13. If it is determined that the search has been completed for all working points PW, processor 4 extracts and records the maximum value of the load ratio for each of joints A1 to A6 for the parameters determined in step S12 (step S16).
[0050] The processor 4 determines whether the maximum load ratios for all combinations of parameters have been recorded (step S17), and if not, repeats the steps from step S12. When the processor 4 has recorded the maximum load ratios for all combinations of parameters, it transmits the parameters and the maximum load ratios to the display device 5 (step S18). The display device 5 displays the maximum load ratios and parameters for each of the joints A1 to A6 transmitted from the processor 4.
[0051] 12, for example, the maximum load ratios and parameters for each of the joints A1 to A6 for all selected working points PW are displayed in one row, and different parameters are displayed in different rows. This allows the operator to easily check the parameters for which the load ratios at all of the joints A1 to A6 for each working point PW do not exceed 100%.
[0052] Then, parameters for which the maximum load ratios at all joints A1 to A6 do not exceed 100% can be easily identified as common parameters that simultaneously reduce the loads at multiple working points PW below the allowable values. Note that an application button (not shown) may be provided so that the operator can select appropriate parameters and press the application button to reflect the selected parameters in the settings.
[0053] (Second Simulation Method) In the first simulation method, the operator is made to select parameters that do not cause the loads at all of the joints A1 to A6 to exceed the allowable values, but the processor 4 may also make the selection automatically.
[0054] 13, the load ratio may be calculated for each working point PW (steps S1 to S3), and the processor 4 may determine whether any of the joints A1 to A6 is subjected to a load exceeding the allowable value. That is, the processor 4 determines whether the ratio is greater than 1 (100%) (step S20).
[0055] If the result of the determination is that there are no joints A1 to A6 on which a load exceeding the allowable value acts, the working points PW, parameters, and the load ratio for each joint A1 to A6 are recorded (step S21). Then, it is determined whether processing has been completed for all working points PW (step S22). If not, the process is repeated from step S2.
[0056] If processing for all working points PW has been completed, the parameters recorded for each working point PW in step S21 and the load ratios for each joint A1 to A6 are transmitted to the display device 5 (step S23).The transmitted parameters and the load ratios for each joint A1 to A6 are then displayed for each working point PW on the display device 5 (step S24).
[0057] On the other hand, if the load acting on any of the joints A1 to A6 exceeds the allowable value in step S20, the processor 4 searches for parameters that will bring the load within the allowable value (step S25). The parameter search is performed as follows.
[0058] The position of the tool coordinate system C2 relative to the tip coordinate system C1 of the robot 20 is selected as a parameter. In this case, as shown in Fig. 14, the processor 4 sets the initial working point PW (step S41). Then, within the input search range, the processor 4 changes the parameter in three dimensions by the input step size (step S42).
[0059] Then, in the same manner as in step S3, the ratio of the load of each joint A1 to A6 to the allowable value is calculated (step S3). That is, as shown in Fig. 9, the angle of each joint A1 to A6 is calculated (step S31), the load acting on each joint A1 to A6 is calculated (step S32), and the ratio of each joint A1 to A6 is calculated (step S33).
[0060] Next, processor 4 determines whether the load ratio exceeds 1 (step S43). If the result of the determination is that there are no joints A1 to A6 whose ratio exceeds 1, processor 4 records the parameters and the ratio for each of joints A1 to A6 (step S44).
[0061] Then, processor 4 determines whether the search in the entire search range has been completed (step S45), and if not, repeats the steps from step S42. In this case, in step S42, processor 4 three-dimensionally varies the parameters within the input search range by the input step size.
[0062] On the other hand, in step S43, if there is one or more joints A1 to A6 whose load ratio exceeds 1, the process proceeds to step S45 without recording the parameters and load ratio. As a result, only when the load ratio is 1 or less, the parameters and load ratio at that time are recorded.
[0063] If it is determined in step S45 that the search has been completed for the entire search range, the processor 4 determines whether or not there are any parameters recorded in step S44 (step S46). If there are no recorded parameters, the processor 4 transmits to the display device 5 a message indicating that there are no valid parameters within the search range (step S47). That is, if there are no valid parameters within the search range at any working point PW, the message is displayed on the display device 5 (step S24), and the process ends.
[0064] On the other hand, if it is determined in step S46 that one or more parameters have been recorded in step S44, it is determined whether parameter search has been completed for all working points PW (step S48). If the determination result indicates that parameter search has not been completed for all working points PW, the process from step S41 onwards is repeated. In this case, the next working point PW is set in step S41.
[0065] If it is determined in step S48 that the search for parameters for all working points PW has been completed, the processor 4 selects one of the parameters common to all working points PW (step S49). The selected common parameter and the ratio of the load acting on each joint A1 to A6 for each working point PW in that case are transmitted to the display device 5 (step S50) and displayed on the display device 5 (step S24).
[0066] The display device 5 displays the parameters received from the processor 4, and also displays each ratio in percentage format, thereby displaying on the display device 5 that, for the plurality of working points PW, none of the loads acting on any of the joints A1 to A6 exceeds the allowable value.
[0067] If there are multiple parameters that are common to all of the working points PW, one of the parameters may be selected according to a predetermined criterion, such as the parameter closest to the initial setting, the parameter with the lowest average value of the ratio of the loads acting on all of the joints A1 to A6, or the parameter with the lowest ratio of the loads acting on a specific joint A1 to A6.
[0068] As described above, according to this embodiment, when one or more loads acting on each of the joints A1 to A6 calculated using the initially set parameters exceed the allowable value, a search for parameters is performed for all of the working points PW. Then, parameters for which the ratio of the load to the allowable value is 1 or less are extracted for each of the working points PW, so that common parameters for all of the working points PW that do not cause the loads acting on all of the joints A1 to A6 to exceed the allowable value can be searched for.
[0069] That is, according to the calculation device 1 of this embodiment, mechanical parameters that affect the magnitude of the load acting on each of the joints A1 to A6 at two or more working points PW are set as parameters to be searched for. Then, a common parameter that makes the load acting on each of the joints A1 to A6 at all of the working points PW equal to or less than the allowable value is searched for. Therefore, compared to the case where a parameter that does not affect the load acting on each of the joints A1 to A6 at other working points PW is searched for for each working point PW, there is an advantage in that the load can be adjusted more easily.
[0070] Furthermore, by displaying the searched parameters on the display device 5, it is possible to adopt a frame 34 that can achieve the displayed parameters, i.e., the position of the tool coordinate system C2 relative to the searched tip coordinate system C1. Furthermore, the ratio of the load acting on each of the joints A1 to A6 to the allowable value when the searched parameters are adopted can be displayed on the display device 5 for each working point PW, allowing the operator to easily check whether the parameters are appropriate.
[0071] Furthermore, according to this embodiment, it is possible to perform a simulation based on a dynamic model that includes not only the robot 20 but also the nut runner 30 and the workpiece 40. Therefore, even in the case of a robot system 10 in which the nut runner 30 operates as shown in FIG. 1, it is possible to accurately estimate the load acting on each of the joints A1 to A6 of the robot 20 due to that operation. This allows the operator to understand whether or not there is a possibility that an external force input unrelated to the operation of the robot 20 will cause an excessive load to act on each of the joints A1 to A6.
[0072] In this embodiment, all parameters for which the loads acting on all joints A1 to A6 are equal to or less than the allowable values are extracted for all working points PW, and then common parameters are selected. Instead, in step S42, the parameters recorded in step S44 can be selected for all working points PW previously searched. This has the advantage of eliminating the need to search for parameters that cause the loads acting on any of the joints A1 to A6 to exceed the allowable values, and allowing for efficient parameter search.
[0073] Furthermore, in this embodiment, parameters that make the loads acting on all joints A1 to A6 equal to or less than the allowable value are searched for for all working points PW, but instead, parameters may be searched for only two or more specific working points PW. Depending on the working point PW, it may be clear that the loads acting on each joint A1 to A6 are extremely small, and omitting the search for parameters for such working points PW can shorten the processing time.
[0074] Furthermore, when at least one of the position and orientation of the tool coordinate system C2 relative to the tip coordinate system C1 is changed, it may be determined whether the moment acting on the wrist joints A4 to A6 of the robot 20 is equal to or less than a permissible value. For example, the position of the center of gravity and the mass of the nut runner 30 may be stored in memory, and the moment acting on each of the wrist joints A4 to A6 may be calculated in accordance with the parameter settings in step S11.
[0075] This is because parameters that cause the moment acting on each of the wrist joints A4 to A6 to exceed the allowable value cannot be adopted even if the load acting on each of the joints A1 to A6 due to operation of the nut runner 30 is kept below the allowable value. If the moment acting on any of the wrist joints A4 to A6 exceeds the allowable value, the parameter can be updated without performing the ratio calculation in step S3, thereby shortening the time required for the parameter search process.
[0076] In addition, in this embodiment, the display device 5 displays the ratio of each load acting on each joint A1 to A6 to its allowable value calculated by the processor 4 in the form of a percentage, but this is not limited to this. For example, the display device 5 may simply display a message informing the user of the joints A1 to A6 on which a load exceeding the allowable value is acting, without displaying the ratio of each load acting on each joint A1 to A6 to its allowable value.
[0077] In the present embodiment, the display device 5 is a monitor for displaying each ratio calculated by the processor 4. Alternatively, the display device 5 may be a user interface such as a touch panel that also has the function of the input device 2, i.e., the function of accepting input information from an operator.
[0078] In this case, the display device 5 may, for example, divide the display area into two, with one displaying an icon for accepting input information and the input information being input, and the other displaying the calculated ratios. This allows the operator to confirm the results of the simulation in association with the input information used in the simulation. Furthermore, based on the confirmed simulation results, the operator can easily change the input information and perform the simulation again. Therefore, the operator can easily grasp the relationship between the input information and the load acting on each joint A1 to A6, and can easily review the conditions for the screw tightening operation of the robot system 10.
[0079] Furthermore, in this embodiment, the display device 5 may display a 3D model of the target robot system 10 or a mechanical model corresponding to the target robot system 10. This allows the operator to more intuitively grasp the joints A1 to A6 on which a load exceeding the allowable value is estimated to act, which facilitates review of the conditions for the screw tightening work, as described above.
[0080] In this embodiment, the mathematical model stored in the memory 3 is derived based on the dynamic model shown in FIG. 4, but the dynamic model for deriving the mathematical model is not limited to this. For example, if the dynamic model is such that each joint A1 to A6 of the robot 20 is connected to an elastic element k J1 ~k J6 and an elastic element in a direction intersecting each axis, i.e., in the axial tilt direction. This allows for more accurate simulation of the load acting on the robot 20.
[0081] In this embodiment, even if the nut runner 30 and the workpiece 40 in the dynamic model are not defined as elastic elements, calculation results that are not significantly different from those obtained when they are defined as elastic elements may be obtained. For example, in the dynamic model shown in FIG. 4, the rotational elastic element k 1 ~k 3 and linear elastic element k 4 ~k 6 Among these, those that are assumed to have a rigidity sufficiently greater than the rigidity of the robot 20 are replaced with rigid elements, that is, the elastic coefficient of the elastic element is set to infinity.
[0082] On the other hand, the rotational elastic element k 1 ~k 3 and linear elastic element k 4 ~k 6 Among these, those that are assumed to have a rigidity sufficiently smaller than that of the robot 20 are replaced with free elements, that is, the elastic coefficient of the elastic element is set to zero. 1 ~k 3 and linear elastic element k 4 ~k 6 If all of the above are replaced with rigid elements or free elements, a mechanical model is constructed in which the nut runner 30 and the workpiece 40 are not defined as elastic elements. By using such a mechanical model, the calculations of the mathematical model can be simplified.
[0083] In addition, in this embodiment, the processor 4 calculates the load acting on each of the joints A1 to A6, but instead, the processor 4 may calculate the deformation amount of each of the joints A1 to A6 defined as an elastic element. Then, when the calculated deformation amount exceeds an allowable value, the processor may search for parameters that make the deformation amount equal to or less than the allowable value.
[0084] Furthermore, in this embodiment, the processor 4 may calculate the load or deformation amount on members other than the joints A1 to A6 of the robot 20. The processor 4 may also calculate the load or deformation amount on the nut runner 30 or the work target 40. In this case, the processor 4 may derive the mathematical model based on a mechanical model in which the target location is defined by elastic elements.
[0085] In addition, the processor 4 may search for a posture of the robot 20 for each working point PW that further reduces the load acting on each of the joints A1 to A6, regardless of whether the parameters are set to such that the load acting on all of the joints A1 to A6 is below the allowable value.
[0086] In this case, the posture can be searched for using the following method. The robot system 10 can perform the screw tightening operation on the same screw 50 even if the nut runner 30 is rotated about the axis B. On the other hand, the robot 20 has six degrees of freedom, so it can assume a posture when the nut runner 30 is rotated about the axis B. Therefore, the processor 4 performs a simulation again for the posture of the robot 20 when the nut runner 30 is slightly rotated about the axis B, and compares the calculated load acting on each of the joints A1 to A6 with each allowable value.
[0087] By repeating this operation, it is possible to search for the posture of the robot 20 that minimizes the ratio of the load acting on each joint A1 to A6 to its allowable value. This allows the operator to easily review the posture of the robot 20 during screw tightening work based on the search results of the computing device 1.
[0088] In the above, the posture of the robot 20 that minimizes the ratio of the load acting on each of the joints A1 to A6 to its allowable value is searched for. Alternatively, a posture of the robot 20 that minimizes the change in posture of the robot 20 between adjacent working points PW may be searched for at each working point PW. This allows the robot 20 to move smoothly between working points PW during screw tightening work, thereby shortening the cycle time.
[0089] Furthermore, in this embodiment, the position of the tool coordinate system C2 relative to the tip coordinate system C1 is exemplified as a parameter to be searched, but this is not limiting. For example, the orientation of the tool coordinate system C2 relative to the tip coordinate system C1 may be used as a parameter. That is, the angle around each axis of the tool coordinate system C2 may be changed without changing the origin position of the tool coordinate system C2 relative to the tip coordinate system C1. This also makes it possible to change the orientation of the robot 20 so as to align the position and direction of the tool coordinate system C2 with the position and direction of each working point PW, potentially reducing the load acting on each joint A1 to A6.
[0090] Alternatively, the search parameters may be the relative position (X0, Y0, Z0) and orientation of the robot coordinate system C0 with respect to the working point PW. The parameters may be the installation position and orientation of the robot 20 with respect to the fixed work object 40, or the position and orientation of the work object 40 with respect to the fixed robot 20.
[0091] Furthermore, the parameters to be searched for are not limited to the above parameters, but may be any common parameters that affect the loads acting on each of the joints A1 to A6 of the robot 20 corresponding to the multiple working points PW. This makes it possible to automatically search for a single parameter that can keep all of the loads acting on each of the joints A1 to A6 of the robot 20 corresponding to the multiple working points PW below an allowable value. This has the advantage of eliminating the cumbersome task of having to set the parameter for each working point PW, as is the case with independent parameters that do not affect the loads acting on each of the joints A1 to A6 of the robot 20 corresponding to the multiple working points PW, and allowing for simple setting.
[0092] In this embodiment, when the actual measured values of the loads acting on the joints A1 to A6 can be obtained, the processor 4 may acquire the actual measured values. Then, the processor 4 calculates the elastic matrix K in the mathematical model so as to minimize the difference between the acquired actual measured values and the calculated loads acting on the joints A1 to A6. RB , K NR The value of is adjusted and the mathematical model is stored in the memory 3. This allows the processor 4 to further improve the accuracy of the next and subsequent simulations, that is, to be provided with a learning function.
[0093] In this embodiment, the processor 4 compares the load acting on each of the joints A1 to A6 with an allowable value determined by the load-bearing capacity of the members constituting each of the joints A1 to A6. Alternatively, the processor 4 may compare each load with a threshold value (predetermined threshold value) calculated based on the corresponding allowable value, for example, a value obtained by multiplying each allowable value by a safety factor greater than 0 and equal to or less than 1. Furthermore, a coefficient of 1 or greater may be applied to take into account the difference between the simulation and the actual machine.
[0094] This allows the operator to evaluate the load acting on each joint A1 to A6 while leaving a margin for tolerance, thereby reliably preventing each joint A1 to A6 from being subjected to a load exceeding the tolerance.
[0095] Furthermore, when screws are tightened at a plurality of working points PW, the processor 4 may calculate an average value of the load ratios of the joints A1 to A6 and use this as a score (evaluation value). As the score, in addition to the average value, any other evaluation value such as a median or variance may be used. Then, the processor 4 may search for parameters for reducing the load by giving priority to the joints A1 to A6 having the largest calculated score (highest load ratio).
[0096] Specifically, at least one parameter that is effective for reducing the load is stored for each of the joints A1 to A6 in the memory 3. Then, the processor 4 searches for the parameters stored corresponding to the joints A1 to A6, giving priority to the joints A1 to A6 with the largest evaluation values.
[0097] Furthermore, weighting may be applied to the working point PW or joints A1 to A6 for which load reduction is desired with priority. For example, when calculating the score, by multiplying the load of the most advanced joint A6 by a coefficient (weight) greater than the loads of the other joints A1 to A5, it is possible to preferentially search for conditions that are effective in reducing the load on the joint A6. If there are joints A1 to A6 that tend to have a high load in the actual machine, by preferentially searching for load reduction on those joints, it is possible to determine conditions that reduce the overall load when the simulation results are applied to the actual machine.
[0098] In addition, in this embodiment, the computing device 1 is intended for a screw tightening system in which the nut runner 30 is attached to the tip of the wrist of the robot 20, but the present invention is not limited to this. For example, the computing device 1 can also be applied to a robot system in which a tool equipped with a power source, such as a stamping machine, a grinding tool, or a drill, is attached to the tip of the wrist of the robot 20.
[0099] Furthermore, in this embodiment, the robot system 10 in which the nut runner 30 operates is the target, but instead, the robot system 10 in which the work object 40 operates to perform a specified task may be the target.
[0100] Furthermore, in this embodiment, the arithmetic device 1 is an offline computer, but instead, the arithmetic device 1 may be configured integrally with a control device that controls the robot system 10 .
[0101] Although the embodiments of the present disclosure have been described in detail above, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible to these embodiments without departing from the gist of the invention or the concept and spirit of the present invention derived from the content of the claims and their equivalents. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these.
[0102] The following supplementary notes are further disclosed regarding the above-described embodiments and modifications: (Supplementary Note 1) A computing device for simulating a robot system including a robot having multiple joints and a tool attached to the robot for performing a predetermined task on a workpiece at multiple working points, the task being performed by causing at least one of a force and a torque generated by either the tool or the workpiece to act on the other, the computing device for a robot system including at least one processor and at least one memory, the memory storing a mathematical model, the processor using the mathematical model stored in the memory to estimate a load or a deformation amount on at least one of the robot, the tool, and the workpiece, and searching for common parameters that make the loads or the deformation amounts corresponding to two or more of the working points equal to or less than a predetermined threshold, based on the estimated loads or deformation amounts.
[0103] (Supplementary Note 2) The computing device of the robot system according to Supplementary Note 1, wherein the processor acquires input information including arrangements of the robot and the work object, positions and directions of the tool and the work point, and magnitudes and directions of at least one of the force and the torque, and estimates the load or the deformation amount using the input information and the mathematical model.
[0104] (Supplementary Note 3) The arithmetic device of the robot system according to Supplementary Note 1 or Supplementary Note 2, wherein the mathematical model defines at least one of the robot, the tool, and the work object as an elastic element.
[0105] (Supplementary Note 4) The arithmetic device of the robot system according to Supplementary Note 3, wherein the mathematical model defines at least one of the joints as the element, and defines at least one of the tool and the work object as an elastic element.
[0106] (Supplementary Note 5) The arithmetic device of the robot system according to any one of Supplementary Note 1 to Supplementary Note 4, further comprising an input device operated by an operator, wherein the processor acquires at least one search condition for a search by the processor via the input device.
[0107] (Supplementary Note 6) The arithmetic device for a robot system according to any one of Supplementary Note 1 to Supplementary Note 5, wherein the memory stores at least one parameter effective for reducing the load for each of the joints, and the processor calculates an evaluation value of the load for each of the joints and searches through the parameters stored corresponding to the joints in descending order of the load indicated by the evaluation value.
[0108] (Supplementary Note 7) The computing device of the robot system according to Supplementary Note 6, wherein the memory stores weights corresponding to at least one of the joints, the working points, and the forces, and the processor calculates the evaluation value using the weights stored in the memory.
[0109] (Supplementary Note 8) The computing device for a robot system according to any one of Supplementary Note 1 to Supplementary Note 7, wherein the parameter is at least one of a position and an orientation of a tool coordinate system fixed to a tip point of the tool relative to a tip coordinate system fixed to the tip of the robot.
[0110] (Supplementary Note 9) The arithmetic device for a robot system according to any one of Supplementary Note 1 to Supplementary Note 8, wherein the parameter is the position of the working point relative to the origin of a robot coordinate system of the robot.
[0111] (Supplementary Note 10) A computing device for a robot system according to Supplementary Note 8, wherein the memory stores the position of the center of gravity and mass of the tool, and when the processor changes at least one of the position and orientation of the tool coordinate system relative to the tip coordinate system of the robot, it determines whether the loads of all the joints of the wrist of the robot to which the tool is attached are within allowable values based on the position of the center of gravity and mass of the tool stored in the memory.
[0112] (Supplementary Note 11) The arithmetic device for the robot system according to Supplementary Note 8 or Supplementary Note 9, wherein the processor searches for a posture of the robot that reduces the load for each of the working points.
[0113] (Supplementary Note 12) The arithmetic device for a robot system according to Supplementary Note 11, wherein the processor searches for a posture of the robot for each of the work points so as to reduce a change in posture of the robot between adjacent work points.
[0114] (Supplementary Note 13) A simulation method for a robot system comprising a robot having a plurality of joints and a tool attached to the robot for performing a predetermined task on a work object at a plurality of working points, wherein the task is performed by applying at least one of a force and a torque generated by either the tool or the work object to the other, the simulation method comprising: estimating a load or a deformation amount on at least one of the robot, the tool, and the work object using a mathematical model stored in a memory; and searching for a common parameter that makes the load or the deformation amount corresponding to two or more of the working points equal to or less than a predetermined threshold value based on the estimated load or the estimated deformation amount.
[0115] REFERENCE SIGNS LIST 1 arithmetic unit 3 memory 4 processor 5 display device 10 robot system 20 robot 30 nut runner (tool) 40 work object A1, A2, A3, A4, A5, A6 joint C1 tip coordinate system C2 tool coordinate system k J1 , k J2 , k J3 , k J4 , kJ5 , k J6 Rotational elastic element (elastic element) k 1 , k 2 , k 3 Rotational elastic element (elastic element) k 4 , k 5 , k 6 Direct acting elastic element (elastic element) PW Working point
Claims
1. A computing device for simulating a robot system comprising: a robot having a plurality of joints; and a tool attached to the robot for performing a predetermined task on a work object at a plurality of work points, the task being performed by applying at least one of a force and a torque generated by either the tool or the work object to the other, the computing device comprising: at least one processor and at least one memory; the memory stores a mathematical model; the processor: using the mathematical model stored in the memory to estimate a load or a deformation amount in at least one of the robot, the tool, and the workpiece; A computing device for a robot system that searches for common parameters that make the loads or deformation amounts corresponding to two or more of the work points below a predetermined threshold value based on the estimated loads or deformation amounts.
2. The robot system computing device according to claim 1, wherein the processor acquires input information including the arrangement of the robot and the work object, the position and direction of the tool and the work point, and the magnitude and direction of at least one of the force and the torque, and estimates the load or the deformation amount using the input information and the mathematical model.
3. The arithmetic device for a robot system according to claim 1, wherein the mathematical model defines at least one of the robot, the tool, and the workpiece as an elastic element.
4. The computing device for a robot system according to claim 3, wherein the mathematical model defines at least one of the joints as the elastic element, and defines at least one of the tool and the work object as the elastic element. an input device operated by an operator; The arithmetic device for a robot system according to claim 1 , wherein the processor acquires at least one search condition for a search by the processor via the input device. the memory stores at least one parameter effective for reducing the load for each of the joints; 6. The computing device for a robot system according to claim 1, wherein the processor calculates an evaluation value of the load for each joint and searches the parameters stored corresponding to the joints in descending order of the load indicated by the evaluation value. the memory stores weights corresponding to at least one of the joints, the work points, and the forces; The arithmetic device for a robot system according to claim 6 , wherein the processor calculates the evaluation value using the weights stored in the memory.
8. A computing device for a robot system according to claim 1, wherein the parameter is at least one of the position and orientation of a tool coordinate system fixed to the tip point of the tool relative to a tip coordinate system fixed to the tip of the robot.
9. The computing device for a robot system according to claim 1, wherein the parameter is the position of the working point relative to the origin of a robot coordinate system of the robot. The memory stores the center of gravity position and mass of the tool, 9. The robot system according to claim 8, wherein the processor, when changing at least one of the position and orientation of the tool coordinate system relative to the robot tip coordinate system, determines whether the loads of all the joints of the robot wrist to which the tool is attached are within allowable values based on the center of gravity position and mass of the tool stored in the memory.
10. The computing device for a robot system according to claim 8, wherein the processor searches for a posture of the robot that reduces the load for each of the working points. The computing device for a robot system according to claim 11 , wherein the processor searches for a posture of the robot for each of the work points so as to reduce a change in posture of the robot between adjacent work points. A simulation method for a robot system including a robot having a plurality of joints and a tool attached to the robot for performing a predetermined task on a work object at a plurality of work points, the task being performed by applying at least one of a force and a torque generated by either the tool or the work object to the other, the method comprising: using a mathematical model stored in a memory, to estimate a load or a deformation amount in at least one of the robot, the tool, and the workpiece; A simulation method including searching for common parameters that make the loads or deformation amounts corresponding to two or more of the working points below a predetermined threshold value based on the estimated loads or deformation amounts.
Citation Information
Patent Citations
Method of evaluating and correcting robot program and device for evaluating and correcting robot program
JP2007054942A
Control device for mobile robot
JP2016064454A
Robot device, robot control method, and robot control device
JP2019123051A
Acceleration adjustment device and acceleration adjustment program
JP2020011321A
Method for adjusting parameter set of robot, program, and information processing device
JP2022065759A