Simulation device, simulation method, and computer program
The simulation device and method address the limitations of conventional simulation techniques by generating a database of component positions over time, allowing for flexible and cost-effective simulation of industrial machine operations without relying on dedicated software.
Patent Information
- Application Number
- PCT/JP2023/042229
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-24
- Publication Date
- 2025-05-30
AI Technical Summary
Conventional methods for simulating the operation of industrial machines require dedicated software, which is often expensive and has complex data structures, limiting flexibility and accessibility.
A simulation device and method that acquire simulation data for component models, extract positions at multiple time points, and generate a database associating these positions with component models and time points, allowing for simulation reproduction without dedicated software.
Enables efficient simulation of industrial machine operations using a simpler data structure, reducing the need for expensive dedicated software and improving data handling convenience.
Smart Images

Figure JP2023042229_30052025_PF_FP_ABST
Abstract
Description
Simulation device, simulation method, and computer program
[0001] The present disclosure relates to a simulation device, a simulation method, and a computer program for simulating the operation of industrial machinery.
[0002] A simulation device for the operation of industrial machinery is known (for example, Patent Document 1).
[0003] Japanese Patent Application Laid-Open No. 2002-373018
[0004] Conventionally, when reproducing a simulation of the operation of industrial machinery, it was necessary to use dedicated software.
[0005] In one aspect of the present disclosure, a simulation device for the operation of an industrial machine including a plurality of components includes a data acquisition unit that acquires simulation data for operating a plurality of component models, each of which models a plurality of components, over time in a virtual space; a data extraction unit that extracts positions of the plurality of component models in the virtual space at a plurality of points in time based on the simulation data; and a database generation unit that generates a database that stores the positions extracted by the data extraction unit in association with the component models and the points in time.
[0006] A method for simulating the operation of industrial machinery that includes multiple components acquires simulation data that causes multiple component models, each of which models a multiple number of components, to operate over time in a virtual space, extracts positions in the virtual space of the multiple component models at multiple points in time based on the simulation data, and generates a database that stores the extracted positions in association with the component models and points in time from which the positions were extracted.
[0007] 1 is a block diagram of a computer on which a simulation device according to an embodiment is implemented. It is a schematic diagram showing an industrial machine according to an embodiment and a component model in which components of the industrial machine are modeled. It is a flowchart of a simulation method according to an embodiment. It shows an example of position data extracted in step S2 in FIG. 3. It is a flowchart showing an example of the flow of step S3 in FIG. 3. It is a flowchart showing an example of the flow of step S12 in FIG. 5. It schematically shows a state in which one coordinate is stored in the database shown in FIG. 7, which schematically shows an example of a database. It shows a database generated as a result of step S23 in FIG. 6. It shows another example of position data extracted in step S2 in FIG. 3. It shows a state in which an upper arm model picks up a workpiece model in a virtual space. It shows a state in which the workpiece model is hidden after pickup in the virtual space shown in FIG. 11. It shows a state in which one workpiece model before pickup is displayed while the other workpiece model after pickup is hidden in a simulation in which two workpiece models are prepared, while the other workpiece model is hidden after pickup. It shows a state in which one workpiece model before pickup is hidden while the other workpiece model is displayed after pickup in the simulation shown in FIG. 13. It shows position data related to the two workpiece models shown in FIGS. 13 and 14. 17 is a block diagram of a computer in which a simulation device according to another embodiment is implemented. FIG. 17 is a flowchart of a simulation method according to another embodiment. FIG. 17 shows an example of a data file output in step S4 in FIG. 17. FIG. 17 shows an example of image data for reproducing a simulation. FIG. 17 shows a state in which a line of sight is set in a virtual space. FIG. 17 is a block diagram of a computer to which a VR system is connected. FIG. 17 shows an example of the flow of step S5 in FIG. 17. FIG. 17 is a block diagram of a computer according to another embodiment.
[0008] Embodiments of the present disclosure will be described in detail below with reference to the drawings. In the various embodiments described below, like elements are designated by like reference numerals, and redundant description will be omitted. First, a simulation device 50 according to one embodiment will be described with reference to FIG. 1 . The simulation device 50 is used to simulate the operation of industrial machinery and includes a data acquisition unit 52, a data extraction unit 54, a database generation unit 56, and a difference calculation unit 58. In this embodiment, the functions of the simulation device 50 (i.e., the data acquisition unit 52, the data extraction unit 54, the database generation unit 56, and the difference calculation unit 58) are implemented in a computer 10. The functions of the simulation device 50 will be described later.
[0009] The computer 10 has a processor 12, a memory 14, and an I / O interface 16. The processor 12 has a CPU or a GPU, etc., and is communicatively connected to the memory 14 and the I / O interface 16 via a bus 18, and performs calculations to realize the functions of the simulation device 50 while communicating with these components.
[0010] The memory 14 includes RAM, ROM, or the like, and temporarily or permanently stores various data. The memory 14 may be configured from a computer-readable non-transitory storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium. The I / O interface 16 includes, for example, an Ethernet (registered trademark) port, a USB port, an optical fiber connector, or an HDMI (registered trademark) terminal, and communicates data with external devices via wired or wireless connection under instructions from the processor 12.
[0011] The computer 10 is provided with a display device 20 and an input device 22. The display device 20 has a liquid crystal display, an organic EL display, or the like, and visibly displays various data under instructions from the processor 12. The input device 22 has a push button, a switch, a joystick, a keyboard, a mouse, a touch panel, or the like, and receives data input from an operator. The display device 20 and the input device 22 may be integrated into the housing of the computer 10, or may be provided separately from the housing of the computer 10 and connected to the I / O interface 16.
[0012] The processor 12 functions as a simulation device 50 (a data acquisition unit 52, a data extraction unit 54, a database generation unit 56, and a difference calculation unit 58) to generate a database 100 for simulating the operation of the industrial machine. Figure 2 shows an industrial machine 30 according to one embodiment. The industrial machine 30 includes a robot 32, a conveyor 34, and a workpiece 36.
[0013] The robot 32 has a base 38, a rotating body 40 rotatably mounted on the base 38, a lower arm 42 rotatably mounted on the rotating body 40, and an upper arm 44 rotatably mounted at the tip of the lower arm 42. The robot 32 is provided with a plurality of servo motors (not shown), and the rotating body 40, the lower arm 42, and the upper arm 44 are operated by driving the servo motors to rotate. On the other hand, the conveyor 34 has a timing belt, a servo motor that drives the timing belt to rotate, and the like, and transports the workpiece 36.
[0014] For example, the robot 32 operates the rotating body 40, the lower arm 42, and the upper arm 44 to perform an operation of using the upper arm 44 to pick up a workpiece 36 being transported by the conveyor 34. The base 38, the rotating body 40, the lower arm 42, the upper arm 44, the conveyor 34, and the workpiece 36 constitute a component CO of the industrial machine 30. Of the components CO of the industrial machine 30, the base 38 is a fixed component, while the rotating body 40, the lower arm 42, the upper arm 44, the conveyor 34, and the workpiece 36 are movable components.
[0015] Next, a method for simulating the operation of the industrial machine 30 will be described with reference to Fig. 3. The processor 12 starts the flow of Fig. 3 when it receives a simulation start command from an operator, a host controller, or a computer program PG. In step S1, the processor 12 acquires simulation data SD. The simulation data SD is configured to execute a simulation in which component models COM, which are modeled respectively of components CO, are operated in a simulated manner over time t in a virtual space 200.
[0016] 2, the simulation data SD constructs a virtual space 200 in which a base model 38M, a rotating body model 40M, a lower arm model 42M, an upper arm model 44M, a conveyor model 34M, and a workpiece model 36M are arranged, each of which is a model of the base 38, the rotating body 40, the lower arm 42, the upper arm 44, the conveyor model 34, and the workpiece 36. The base model 38M, the rotating body model 40M, the lower arm model 42M, the upper arm model 44M, the conveyor model 34M, and the workpiece model 36M are, for example, three-dimensional CAD models, and constitute a component model COM.
[0017] For example, the simulation data SD is generated in the virtual space 200 at a start time t 0 ~End time t e The simulation data SD is configured to simulate a series of imitation operations in which the upper arm model 44M picks up the workpiece model 36M being transported by the conveyor model 34M, for a time t until the time t. The simulation data SD includes, for example, model data MD (three-dimensional CAD data) of the base model 38M, the rotating body model 40M, the lower arm model 42M, the upper arm model 44M, the conveyor model 34M, and the workpiece model 36M, operation parameters OP (TCP teaching points, rotational positions and movement speeds of each servo motor, etc.) for the actual robot 32 to perform the task of picking up the workpiece 36 on the conveyor 34, and data on the time t of the simulation.
[0018] As an example, the processor 12 may generate the simulation data SD based on the model data MD and the operation parameters OP. In this case, the processor 12 may acquire the model data MD from a design support system (a so-called CAD / CAM system) installed outside the computer 10. The processor 12 may also acquire the operation parameters OP from a control device CR (not shown) that controls the robot 32 and the conveyor 34.
[0019] As another example, the simulation data SD may be created in advance by a computer (such as a PC, a control device CR, or a CAD / CAM system) other than the computer 10, and the processor 12 may obtain the previously created simulation data SD through the I / O interface 16. In this way, the processor 12 obtains the simulation data SD by newly generating it or by obtaining it from an external computer. Therefore, the processor 12 functions as a data acquisition unit 52 ( FIG. 1 ) that acquires the simulation data SD.
[0020] In step S2, the processor 12 calculates a plurality of time points t within a time t in the simulation data SD. i 2, a position P of each of the multiple component models COM in the virtual space 200 is extracted. In this embodiment, as shown in FIG. 2, model coordinate systems C1, C2, C3, C4, C5, and C6 are set for the base model 38M, the rotating torso model 40M, the lower arm model 42M, the upper arm model 44M, the conveyor model 34M, and the workpiece model 36M, respectively. The model coordinate system C1 is set for the base model 38M and represents the position P of the base model 38M in the virtual space 200. The origin of the model coordinate system C1 is located at a feature point (center, center of gravity, vertex, etc.) of the base model 38M.
[0021] Similarly, model coordinate system C2 is set for the rotating torso model 40M, model coordinate system C3 is set for the lower arm model 42M, model coordinate system C4 is set for the upper arm model 44M, model coordinate system C5 is set for the conveyor model 34M, and model coordinate system C6 is set for the workpiece model 36M. These model coordinate systems C2, C3, C4, C5, and C6 represent positions P in virtual space 200 of the rotating torso model 40M, lower arm model 42M, upper arm model 44M, conveyor model 34M, and workpiece model 36M, respectively. Note that in this document, "position" may refer to position and posture.
[0022] Meanwhile, a world coordinate system C7 is set in the virtual space 200. Positions P in the virtual space 200 of the base model 38M, the rotating torso model 40M, the lower arm model 42M, the upper arm model 44M, the conveyor model 34M, and the workpiece model 36M are represented as coordinates Pc (x, y, z, w, p, r) of the model coordinate systems C1 to C6 in the world coordinate system C7.
[0023] Of the coordinates Pc, the coordinates (x, y, z) indicate the position in the world coordinate system C7 of the origin of the model coordinate systems C1 to C6 (e.g., the centers of gravity of the base model 38M, the rotating torso model 40M, the lower arm model 42M, the upper arm model 44M, the conveyor model 34M, and the workpiece model 36M). On the other hand, the coordinates (w, p, r) indicate the directions of the axes of the model coordinate systems C1 to C6 in the world coordinate system C7 (i.e., the attitudes of the base model 38M, the rotating torso model 40M, the lower arm model 42M, the upper arm model 44M, the conveyor model 34M, and the workpiece model 36M).
[0024] The processor 12 analyzes the simulation data SD and calculates the start time t 0 ~End time t e Multiple time points t within time t 0 , t 1 , t 2 , t 3 ,...t eThen, the coordinates Pc in the world coordinate system C7 are extracted as the position P of each component model COM during the simulation. The position data 102 of the position P extracted in step S2 is shown in FIG.
[0025] In the position data 102 shown in FIG. 4, the base model 38M, the rotating body model 40M, the lower arm model 42M, the upper arm model 44M, the conveyor model 34M, and the workpiece model 36M each have an identification code ID 1 , ID 2 , ID 3 , ID 4 , ID 5 and ID 6 Each component model COM is assigned an identification code ID n (n=1, 2, 3, ... 6).
[0026] For example, the identification code ID 3 At time t 3 The position P in the world coordinate system C7 is the coordinate Pc of the model coordinate system C3. 3_3 (x 3_3 , y 3_3 , z 3_3 , w 3_3 , p 3_3 , r 3_3 In this embodiment, the identification code ID 1 The base model 38M identified by is a fixed component model that is immovable within the virtual space 200. Therefore, the coordinates Pc of the base model 38M are 1_0 (x 1_0 , y 1_0 , z 1_0 , w 1_0 , p 1_0 , r 1_0 ) remains the same throughout the period.
[0027] In this way, the processor 12 calculates the time t in the simulation data SD at multiple points in time t i (i=0, 1, 2, 3, . . . e), the position P (specifically, the coordinates Pc n_iTherefore, the processor 12 functions as a data extractor 54 (FIG. 1) that extracts the position P of each component model COM.
[0028] The processor 12 calculates the time t i At time t 0 ~t e At every predetermined period τ of time t until n_i ) may be extracted. In other words, in this case, consecutive time points t i From time t i+1 The time t until the i+1 -t i Here, in the actual industrial machine 30, when the robot 32 is caused to perform the task of picking up a workpiece 36, the control device CR feedback-controls the servo motors of the robot 32 and the conveyor 34 at a predetermined control period τ1 (for example, τ1=10 [mmsec]).
[0029] Specifically, as a feedback control, the processor 12 acquires feedback (position feedback, speed feedback, drive current, etc.) from the encoder of each servo motor, and generates commands (position command, speed command, torque command, etc.) for each servo motor based on the feedback, repeatedly executing the operation in a control cycle τ1. In this embodiment, the position P (coordinate Pc n_i The period τ for extracting the signal τ may be set to the control period τ1 for executing the feedback control (τ=τ1).
[0030] Alternatively, the operator may operate the input device 22 to provide the processor 12 with an input IP1 that sets the period τ to a control period τ1 (or an arbitrary period τ2). The processor 12 may set the period τ to τ = τ1 (or τ2) in response to the input IP1. Alternatively, the processor 12 may obtain the control period τ1 from the control device CR through the I / O interface 16 and automatically set the period τ to τ = τ1.
[0031] In step S2, the processor 12 also calculates the time t iFor each component model COM (base model 38M, rotating torso model 40M, lower arm model 42M, upper arm model 44M, conveyor model 34M, and workpiece model 36M), model coordinate systems C1 to C6 may be set. Alternatively, the model coordinate systems C1 to C6 may be set in advance for the component models COM included in the simulation data SD.
[0032] In step S3, the processor 12 executes a database generation process. This step S3 will be described with reference to Fig. 5. In step S1, the processor 12 executes a database generation process. n , ID 1 In step S12, the identification code ID n This step S12 will be described later.
[0033] In step S13, the processor 12 receives the identification code ID of the component model COM. n , ID n+1 In step S14, the processor 12 sets the identification code ID n The processor 12 determines whether the number n of the number of the first and second inputs has become greater than 6 (n>6). If the processor 12 determines YES, it ends the flow of Fig. 5, thereby ending the flow of Fig. 3. On the other hand, if the processor 12 determines NO, it returns to step S12.
[0034] In this way, while the determination in step S14 is NO, the processor 12 repeats the loop of steps S12 to S14, and n Step S12 is repeatedly executed for the component model COM of the first loop. If step S12 is executed in the first loop, n=1, so the processor 12 executes the identification code ID 1 On the other hand, when step S12 of the third loop is executed, n=3, so the processor 12 executes step S12 for the base model 38M of the identification code ID 3Step S12 is executed for the lower arm model 42M.
[0035] Step S12 will be described below with reference to Fig. 6. In step S21, the processor 12 extracts the time t i At time t 0 In step S22, the processor 12 extracts the identification code ID from the position data 102 extracted in step S2. n For the component model COM, at time t i = t 0 Position P (coordinates Pc n_0 If, at the start of step S22, the identification code ID n is set to n=3, the processor 12 executes the 0 Identification code ID 3 : Coordinates Pc of the lower arm model 42M 3-0 Get.
[0036] In step S23, the processor 12 generates the database 100. Fig. 7 shows an example of the data structure of the database 100. In the database 100 shown in Fig. 7, the identification code ID n (n=1 to 6) component models COM (that is, the base model 38M, the rotating body model 40M, the lower arm model 42M, the upper arm model 44M, the conveyor model 34M, and the workpiece model 36M) n_i But at time t i The database 100 shown in FIG. n_i 10A and 10B are schematic diagrams showing a state in which the
[0037] If n=1 and i=0 are set at the start of step S23, the processor 12 calculates the time t 0 Identification code ID 1 : Coordinates Pc of base model 38M 1_0is stored in the database 100. As a result, the identification code ID 1 And at time t 0 In the data area of 1_0 will be stored.
[0038] In step S24, the processor 12 i At time t i+1 In step S25, the processor 12 sets the currently set time t i is the time t e If the processor 12 determines that the count has reached YES, the processor 12 ends the flow of Fig. 6 and proceeds to step S13 in Fig. 5. On the other hand, if the processor 12 determines that the count has reached NO, the processor 12 proceeds to step S26.
[0039] In step S26, the processor 12 extracts the identification code ID set at this time from the position data 102 extracted in step S2. n For the component model COM, at time t i Position P (coordinates Pc n_i If, at the start of step S26, the identification code ID n is set to n=3, and at time t i If i is set to i=3, the processor 12 3 Identification code ID 3 : Coordinates Pc of the lower arm model 42M 3_3 Get.
[0040] In step S27, the processor 12 calculates the difference δ between the position P obtained in the immediately preceding step S26 and the position P obtained before that. Specifically, the processor 12 calculates the difference δ between the coordinate Pc obtained in the immediately preceding step S26 and the position P obtained before that. n_i (x n_i , y n_i , z n_i , w n_i , p n_i , r n_i ) and the coordinate Pc acquired in the previous step S22 or S26 n_i-1 (x n_i-1 , yn_i-1 , z n_i-1 , w n_i-1 , p n_i-1 , r n_i-1 ) and the difference δ n_i Ask for.
[0041] Coordinates Pc n_i (x n_i , y n_i , z n_i , w n_i , p n_i , r n_i ) is the identification code ID in step S2. n For a component model COM identified by i The coordinate Pc is the position P extracted at (first time point). n_i-1 (x n_i-1 , y n_i-1 , z n_i-1 , w n_i-1 , p n_i-1 , r n_i-1 ) is the identification code ID in step S2. n For a component model COM identified by i-1 This is the position P extracted at (the second time point).
[0042] As an example, the processor 12 may calculate two coordinates Pc n_i and Pc n_i-1 The difference in position δ between n_i The difference in x-coordinates is δ n_i_x = x n_i -x n_i-1 and the difference in y coordinate δ n_i_y = y n_i -y n_i-1 and the difference in z coordinates δ n_i_z = z n_i -z n_i-1 Alternatively, the processor 12 may determine the position difference δ n_i As δ n_i_d = {(x n_i -x n_i-1 ) 2 +(y n_i -y n_i-1 ) 2 +(z n_i -z n_i-1 ) 2} 1/2 The difference δn_i_d is the coordinate Pc n_i and Pc n_i-1 Indicates the distance between.
[0043] The processor 12 also calculates the coordinates Pc n_i and Pc n_i-1 The difference in posture between n_i As a result, the difference in w coordinates is δ n_i_w and the difference δ between the p coordinates n_i_p and the difference in r coordinate δ n_i_r For example, the difference in posture δ n_i_w is the coordinate Pc n_i The vector represented by the w coordinate of the coordinate Pc n_i-1 Similarly, the difference δ n_i_P is the coordinate Pc n_i The vector represented by the p-coordinate of the coordinate Pc n_i-1 The difference is calculated as the dot product (or angle) of the vector represented by the p-coordinate of n_i_r is the coordinate Pc n_i The vector represented by the r coordinate of the coordinate Pc n_i-1 The vector may be calculated as an inner product (or angle) of the vector represented by the r coordinate of the vector.
[0044] Thus, in this embodiment, the processor 12 i The first position P (coordinates Pc n_i ) and the time t i Time t before i-1 The second position P (coordinates Pc n_i-1 ) and the difference δ n_i (δ n_i_x , δ n_i_y , δ n_i_z , δ n_i_d , δ n_i_w , δ n_i_p , δ n_i_r ) functions as the difference calculation unit 58 (FIG. 1).
[0045] In step S28, the processor 12 calculates the difference δ calculated in the previous step S27. n_i is a predetermined threshold δ th As an example, the processor 12 determines whether the position difference δ is equal to or less than then_i_x , δ n_i_y and δ n_i_z and the difference in posture δ n_i_w , δ n_i_p and δ n_i_r In this case, the processor 12 calculates the calculated difference δ n_i_x , δ n_i_y , δ n_i_z , δ n_i_w , δ n_i_p and δ n_i_r All of these are within the threshold δ th_x , δ th_y and δ th_z , δ th_w , δ th_p and δ th_r Below (i.e., δ n_i_x ≦δ th_x , δ n_i_y ≦δ th_y , δ n_i_z ≦δ th_z , δ n_i_w ≦δ th_w , δ n_i_p ≦δ th_p , and δ n_i_r ≦δ th_r ) the result is YES.
[0046] As another example, the position difference δ n_i_d Then, the processor 12 calculates δ n_i_d ≦δ th_d , δ n_i_w ≦δ th_w , δ n_i_p ≦δ th_p , and δ n_i_r ≦δ th_r If the result of the determination is YES, the processor 12 proceeds to step S24. On the other hand, the processor 12 n_i_x , δ n_i_y , δ n_i_z , δ n_i_d , δ n_i_w , δ n_i_p and δ n_i_r At least one of the thresholds δ th If the result of the determination is NO, the processor 12 proceeds to step S23 and n_iThe identification code ID of the database 100 n And at time t i Store it in the data area.
[0047] In this way, every time step S23 is executed, the processor 12 calculates the position P (coordinates Pc n_i ) to the component model COM (or the identification code ID n ) and time t i and stores the data in the database 100 in association with the above, thereby generating the database 100. Thus, the processor 12 functions as the database generating unit 56 (FIG. 1) that generates the database 100.
[0048] On the other hand, if the determination in step S28 is YES, the processor 12 does not execute step S23, and therefore, the coordinates Pc obtained in the most recent step S26 are n_i The identification code ID is not stored in the database 100. This point will be explained with reference to FIG. 3 (Lower arm model 42M) at time t i The coordinates Pc extracted by 3_i and the previous time t i-1 The coordinates Pc extracted by 3_i-1 Difference δ 3_i But δ 3_i ≦δ th Let's say that was the case.
[0049] In this case, the processor 12 calculates the coordinate Pc 3_i 9. As a result, the determination in step S28 is YES, and step S23 is not executed. 3 And at time t i As shown in the blank data area, the coordinates Pc 3_i is not stored in the database 100. 3_i But δ 3_i ≦δ th In this case, in the simulation performed using the simulation data SD, the lower arm model 42M is i-1 ~t i In this embodiment, in this case, the coordinate Pc3_i is not stored in the database 100, but at time t i Coordinates Pc of the lower arm model 42M 3_i At an earlier time t i-1 The coordinates Pc stored in the database 100 are 3_i-1 is considered to be the same as
[0050] Thereafter, the processor 12 receives the identification code ID 3 (lower arm model 42M) at the next time point t i+1 Specifically, in step S27, the processor 12 executes steps S26 to S28 for the time t i+1 The coordinates Pc extracted by 3_i+1 and the previous time t i The coordinates Pc extracted by 3_i Difference δ 3_i+1 Ask for.
[0051] At this time, the processor 12 calculates the coordinate Pc 3_i At time t i-1 Coordinates Pc 3_i-1 Using the difference δ 3_i+1 = PC 3_i+1 -Pc 3_i-1 The difference δ 3_i+1 If the determination in step S28 is YES, the processor 12 executes step S28 using the identification code ID 3 And at time t i+1 The data area is shown as blank, so the coordinates Pc 3_i+1 is not stored in the database 100.
[0052] Furthermore, thereafter, in step S27, the processor 12 i+2 The coordinates Pc extracted by 3_i+2 and time t i-1 Coordinates Pc 3_i-1 Difference δ 3_i+2 = PC 3_i+2 -Pc 3_i-1 The difference δ 3_i+2 If the result of step S28 is NO (i.e., δ 3_i+2 >δ th ), the processor 12 determines that the identification code ID3 And at time t i+2 As shown in the data area of the coordinate Pc 3_i+2 are stored in the database 100.
[0053] As described above, the coordinates Pc of the base model 38M, which is a fixed component model, 1_0 are the same, the difference δ calculated in step S27 1_i is δ 1_i = 0 ≦ δ th Therefore, the identification code ID 1 For the base model 38M, at time t 1 ~t e During this period, coordinate Pc 1_i are not stored, and therefore these data areas are blank as shown in FIG.
[0054] Thus, the processor 12 receives the identification code ID n For each of the component models COM (n=1 to 6), multiple time points t i For each (i = 0 to e), the position P (coordinates Pc n_i ) is selectively stored in the database 100. In the database 100 thus generated, the position P (coordinates Pc n_i ) is a component model (identification code ID n ) and time t i is stored in association with
[0055] As described above, in this embodiment, the processor 12 functions as a simulation device 50 including a data acquisition unit 52, a data extraction unit 54, a database generation unit 56, and a difference calculation unit 58. In this simulation device 50, the data acquisition unit 52 acquires simulation data SD that causes a plurality of component models COM (base model 38M, rotating body model 40M, lower arm model 42M, upper arm model 44M, conveyor model 34M, workpiece model 36M) that respectively model a plurality of components CO (base 38, rotating body 40, lower arm 42, upper arm 44, conveyor 34, workpiece 36) to operate over time t in virtual space 200 (step S1).
[0056] The data extracting unit 54 extracts a plurality of time points t within the time t based on the simulation data SD. i The position P (coordinates Pc n_i ) (step S2). Then, the database generating unit 56 extracts the position P extracted by the data extracting unit 54 from the component model COM (for example, the identification code ID n ) and time t i A database 100 is generated in which the above-mentioned items are stored in association with each other (step S23, FIG. 9).
[0057] Conventionally, when reproducing a simulation included in simulation data SD as an image, it was necessary to use software SW1 dedicated to simulation, which was relatively expensive and had a complex data structure. In this embodiment, by generating a database 100 with a simpler data structure, it is possible to reproduce the simulation included in the simulation data SD without using the dedicated software SW1. The reproduction of the simulation will be described later.
[0058] In the simulation device 50, the data extraction unit 54 extracts the data at a plurality of time points t iand extracts the position P at every predetermined period τ within the time t. For example, the predetermined period τ is set to a control period τ1 for controlling the component CO operating in the industrial machine 30. With this configuration, the operation of the actual industrial machine 30 can be simulated with higher accuracy.
[0059] In the simulation device 50, the difference calculation unit 58 calculates the difference between the first time point t i The first position P (coordinates Pc n_i ), and the data extraction unit 54 extracts the first time point t i At a second time t before i-1 The second position P (coordinates Pc n_i-1 ) and the difference δ n_i (Step S27). Then, the database generating unit 56 calculates the difference δ n_i is a predetermined threshold δ th If it is equal to or smaller than this (if it is determined as YES in step S28), the first position P (coordinates Pc n_i ) is not stored in the database 100. According to this configuration, for component models COM that do not substantially move in the simulation, storing the position P in the database 100 is omitted, thereby making it possible to reduce the amount of data in the database 100.
[0060] The above-mentioned period τ is not limited to the control period τ1 of the industrial machine 30, and may be set to any period. i 6. Steps S26 to S28 may be omitted from the flow of FIG. 6. In this case, when the processor 12 determines NO in step S25, the processor 12 may return to step S22. That is, in this case, the processor 12 extracts the position P non-periodically within the time t every time step S22 is executed. i Position P (coordinates Pc n_i ) is acquired, and all the positions P acquired in step S22 are stored in the database 100.
[0061] The threshold value δ referred to in step S28 thFor example, the upper arm model 44M (identification code ID 4 ), the first threshold δ th_4 is set, while the rotating body model 40M (identification code ID 2 ), the first threshold δ th_4 a second threshold δ that is smaller than th_2 may be set (δ th_4 >δ th_2 ).
[0062] Next, another example of the position data 102 will be described with reference to Fig. 10. In this embodiment, the processor 12 extracts the position data 102 shown in Fig. 10 from the simulation data SD in step S2 in Fig. 3. In this position data 102, for each component model COM, i For each coordinate Pc n_i The display data 104 is extracted together with the component model COM. In the simulation data SD, at least one component model COM may be displayed or hidden in the virtual space 200 as time t passes.
[0063] For example, suppose a simulation is performed in which an upper arm model 44M picks up a workpiece model 36M on a conveyor model 34M in the simulation data SD, as shown in Fig. 11. In such a simulation, after the upper arm model 44M picks up the workpiece model 36M, the workpiece model 36M may be hidden, as shown in Fig. 12. The display data 104 is data that determines whether such a component model COM is displayed or hidden.
[0064] In step S2 of FIG. 3, the processor 12 functions as the data extractor 54 and extracts the simulation data SD at a plurality of time points t i 10, the display data 104 of the workpiece model 36M is extracted at time t 0 ~t i-1During the period, it is "displayed", while at time t i ~t e That is, in this case, in the simulation included in the simulation data SD, the workpiece model 36M is "hidden" from the time t 0 ~t i-1 During the period, the image is displayed in the virtual space 200, while at the time t i ~t e This means that the image is not displayed in the virtual space 200 during the period.
[0065] In step S2, the processor 12 calculates the time t i For each coordinate Pc n_i 6, the processor 12 functions as the database generating unit 56 and generates the extracted display data 104 as a component model COM (identification code ID n ) and time t i In association with this, position P (coordinates Pc n_i ) and stored in the database 100.
[0066] In the simulation of picking up the workpiece model 36M on the conveyor model 34M with the upper arm model 44M, the workpiece model 36M on the conveyor model 34M before being picked up by the upper arm model 44M is used as the workpiece model 36M. 1 and the workpiece model 36M grasped by the upper arm model 44M after being picked up by the upper arm model 44M. 2 Two models may be provided:
[0067] This embodiment will be described with reference to Figures 13 and 14. In this embodiment, a workpiece model 36M is placed on a conveyor model 34M. 1 and a work model 36M placed at the tip of the upper arm model 44M. 2 In FIG. 13, the workpiece model 36M on the conveyor model 34M before pickup is included in the simulation data SD. 1is displayed in the virtual space 200, while the work model 36M at the tip of the upper arm model 44M is 2 On the other hand, in FIG. 14, the workpiece model 36M on the conveyor model 34M is hidden. 1 While the upper arm model 44M is hidden, the work model 36M is picked up by the upper arm model 44M. 2 is displayed in the virtual space 200.
[0068] This work model 36M 1 and 36M 2 The position data 102 extracted in step S2 for the time t 0 ~t i-1 During this period, as shown in FIG. 6_1 Work model 36M 1 is displayed, while the identification code ID 6_2 Work model 36M 2 is hidden. i ~t e During this period, as shown in FIG. 6_1 Work model 36M 1 is hidden, while the identification code ID 6_2 Work model 36M 2 will be displayed.
[0069] In step S2, the processor 12 functions as the data extraction unit 54 to extract the position data 102 shown in FIG. 15. Then, in step S23, the processor 12 functions as the database generation unit 56 to generate the workpiece model 36M. 1 and 36M 2 Display data 104 that determines whether to display or not is stored in the database 100.
[0070] When the display data 104 is extracted in step S2, the processor 12 extracts the identification code ID set at this time from the position data 102 in steps S22 and S26 in FIG. n For the component model COM, at time t iIn step S28, the processor 12 may further acquire the display data 104 of the display data 104 acquired in the immediately preceding step S26. i However, the display data 104 acquired in the previous step S22 or S26 i-1 It may further be determined whether the value has changed since the previous value.
[0071] For example, display data 104 i and 104 i-1 If both of the display data 104 indicate "display" (or "non-display"), the processor 12 i and 104 i-1 In this case, in step S28, the processor 12 determines that the difference δ calculated in step S27 has not changed. n_i But δ n_i ≦δ th and the display data 104 i and 104 i-1 If there is no change, the result may be YES.
[0072] On the other hand, the display data 104 i indicates "display" (or "non-display"), while display data 104 i-1 In this case, the processor 12 uses the display data 104 i and 104 i-1 In this case, the processor 12 determines that the difference δ has changed in step S28. n_i is δ n_i >δ th and the display data 104 i and 104 i-1 If at least one of the conditions that the coordinate Pc has changed is satisfied, the result is determined to be NO. n_i and display data 104 i is stored in the database 100.
[0073] In this step S23, δ n_i >δ thWhile satisfying the condition, the display data 104 i and 104 i-1 If the result is NO because the condition that the coordinate Pc has changed is not satisfied, the processor 12 stores the coordinate Pc n_i while storing display data 104 i On the other hand, in the immediately preceding step S28, δ n_i >δ th While the condition is not satisfied, the display data 104 i and 104 i-1 If the result is NO because the condition that the display data 104 has changed is satisfied, the processor 12 stores the display data 104 in the database 100. i While storing the coordinate Pc n_i does not need to be stored.
[0074] As described above, in this embodiment, the simulation data SD includes at least one component model COM (for example, the workpiece models 36M and 36M 1 , 36M 2 ) is displayed or hidden in the virtual space 200 as time t passes, and the data extraction unit 54 extracts data from the simulation data SD at multiple times t i The display data 104 that determines whether the component model COM is to be displayed or not is further extracted.
[0075] The database generation unit 56 then converts the display data 104 extracted by the data extraction unit 54 into the component model COM (identification code ID n ) and time t i and further stores the component model COM in the database 100. According to this configuration, a specific component model COM can be selectively displayed in the simulation, and therefore the visibility of the simulation can be improved when the simulation is visualized.
[0076] Next, a simulation device 60 according to another embodiment will be described with reference to Fig. 16. The simulation device 60 further includes a simulation reproducing unit 62 and an input accepting unit 64 in addition to the data acquiring unit 52, data extracting unit 54, database generating unit 56, and difference calculating unit 58 described above. Below, the functions of the simulation device 60 will be described with reference to Fig. 17. In the flow shown in Fig. 17, processes that are similar to those in the flow of Fig. 3 are assigned the same step numbers, and duplicated explanations will be omitted.
[0077] After generating the database 100 in step S3, in step S4 the processor 12 outputs the database 100 as a single data file 106. An example of the data structure of the data file 106 is shown in Figure 18. The data file 106 shown in Figure 18 is a single data file with the extension ".abc", for example, and includes a model data storage area 108 and a database storage area 110.
[0078] The model data storage area 108 contains an identification code ID n The database storage area 110 stores model data MD for each of the component models COM (base model 38M, rotating torso model 40M, lower arm model 42M, upper arm model 44M, conveyor model 34M, and workpiece model 36M) to which the model data MD is assigned. Meanwhile, the database storage area 110 stores the database 100 generated in step S3. The processor 12 outputs a data file 106 and applies it to image playback software SW2. This image playback software SW2 is a more general-purpose software of a different type from the above-mentioned simulation-specific software SW1, and is stored in advance in the memory 14.
[0079] In step S5, the processor 12 generates image data 112 that reproduces the simulated operation of the component model COM in the virtual space 200 shown in the simulation data SD, based on the database 100 generated in step S3. Specifically, the processor 12 executes the image reproduction software SW2 using the data file 106 output in step S3, and obtains the database 100 and the component model COM from the data file 106.
[0080] Then, the processor 12, in accordance with the image reproduction software SW, retrieves the time t i And the identification code ID n The component model COM is set to the coordinates Pc of the world coordinate system C7. n_i An example of the image data 112 is shown in FIG. 19. The processor 12 generates image data 112 of the virtual space 200 in which each component model COM is arranged. n ) associated with time t i At the time t i The coordinate Pc associated with n_i The component model COM to be displayed in the image data 112 is displayed at time t i As a result, the time t passes in the virtual space 200 (i.e., at time t 0 , t 1 , t 2 ,...t e ) and a simulation that simulates the operation of the component model COM is reproduced in the image data 112.
[0081] As an example, when the database 100 shown in FIG. 9 is generated in step S3, the processor 12 i-1 And the identification code ID 1 The base model 38M is 0 Similarly, the coordinates Pc of the world coordinate system C6 1_0 On the other hand, the processor 12 continues to display the i-1 And the identification code ID 3The lower arm model 42M is set to the coordinates Pc 3_i-1 The identification code ID is displayed in the position 4 The upper arm model 44M is set to the coordinates Pc 4_i-1 Display in the position of other identification code ID 2 , ID 5 and ID 6 Regarding the rotating body model 40M, the conveyor model 34M, and the workpiece model 36M, the processor 12 calculates the coordinates Pc stored in the database 100. 2_i-1 , Pc 5_i-1 and Pc 6_i-1 The image data 112 is displayed according to the above.
[0082] The processor 12 then calculates the next time point t i And the identification code ID 1 The base model 38M is set to the coordinates Pc in the world coordinate system C6. 1_0 The identification code ID is displayed continuously at the position 3 The lower arm model 42M is i-1 Similarly, the coordinates Pc of the world coordinate system C6 3_i-1 On the other hand, the processor 12 continues to display the i And the identification code ID 4 The upper arm model 44M is i-1 The coordinates Pc of the world coordinate system C6 are different from 4_i Display it at the position.
[0083] As another example, when the database 100 storing the display data 104 shown in FIG. 10 is generated in step S3, the processor 12 i-1 And the identification code ID 4 The upper arm model 44M is set to the coordinates Pc 4_i-1 The identification code ID is displayed in the position 6 The workpiece model 36M is placed at the coordinates Pc of the world coordinate system C6. 6_i-1 Then, the processor 12 displays the next time point t i And the identification code ID 4 The upper arm model 44M is set to the coordinates Pc 4_i While displaying the identification code ID6 The workpiece model 36M is hidden.
[0084] The processor 12 outputs the image data 112 thus generated to the display device 20 and displays it on the display device 20. This allows the operator to visually confirm the simulation displayed in the image data 112. In this manner, in this embodiment, the processor 12 functions as a simulation playback unit 62 that generates the image data 112.
[0085] In step S5, the processor 12 may also receive an input IP2 that displaces the line of sight VL, with which the component model COM displayed in the image data 112 is viewed, within the virtual space 200. Specifically, the operator operates the input device 22 (e.g., a mouse) to provide the processor 12 with an input IP2 that specifies the position and direction of the line of sight VL in the virtual space 200, as shown in Fig. 20. The processor 12 receives the input IP2 through the input device 22. In this way, in this embodiment, the processor 12 functions as an input receiving unit 64 (Fig. 16) that receives the input IP2.
[0086] The processor 12 displaces the position and direction of the line of sight VL within the virtual space 200 in accordance with the received input IP2, and newly sets the displaced line of sight VL in the world coordinate system C7. The position and direction of the line of sight VL are expressed as coordinates in the world coordinate system C7. The processor 12 then functions as the simulation playback unit 62 and generates image data 112 ( FIG. 19 ) to display the component model COM as seen along the displaced line of sight VL. In this way, the processor 12 updates the image data 112 each time the line of sight VL is displaced in accordance with the input IP2.
[0087] As described above, in the simulation device 60, the simulation playback unit 62 generates image data 112 that plays back the simulated operation of the component model COM in the virtual space 200 shown in the simulation data SD, based on the database 100 generated by the database generation unit 56 (step S5).
[0088] Then, the simulation reproducing unit 62 reproduces the component model COM at the time t i At the time t i Position P (coordinates Pc n_i ) the component model COM to be displayed in the image data 112 at time t i According to this configuration, the simulation of the operation of the component model COM can be visualized by using the more general-purpose image reproduction software SW2, without using the software SW1 dedicated to simulation.
[0089] In the simulation device 60, the database generation unit 56 outputs the database 100 to the simulation replay unit 62 as a single data file 106 (step S4). The simulation replay unit 62 then obtains the database 100 from the received single data file 106. With this configuration, a huge number of positions P (coordinates Pc n_i ) can be consolidated into a single data file 106, thereby improving the convenience of data handling.
[0090] Furthermore, in the simulation device 60, the input receiving unit 64 receives an input IP2 that displaces the line of sight VL for viewing the component model COM displayed in the image data 112 within the virtual space 200. Then, the simulation playback unit 62 generates the image data 112 in accordance with the input IP2 received by the input receiving unit 64 so as to display the component model COM as seen along the line of sight VL after the displacement. With this configuration, the operator can visually recognize a simulation of the operation of the component model COM from a desired line of sight VL within the virtual space 200.
[0091] Next, other functions of the simulation device 60 will be described with reference to FIGS. 21 and 22 . In this embodiment, a virtual reality (VR) system 70 is connected to the I / O interface 16 of the computer 10. The VR system 70 includes VR goggles 72 and an input device 22. The VR goggles 72 are configured to be wearable on the operator's head and include a left-eye display device 20A, a right-eye display device 20B, and a sensor 74. The left-eye display device 20A includes a liquid crystal display, an organic EL display, or the like, and is disposed in front of the left eye of the operator wearing the VR goggles 72. Meanwhile, the right-eye display device 20B includes a liquid crystal display, an organic EL display, or the like, and is disposed in front of the right eye of the operator wearing the VR goggles 72.
[0092] The sensor 74 has, for example, a gyro sensor or an acceleration sensor, and detects the facial orientation (i.e., the gaze direction of both eyes) of the operator wearing the VR goggles 72. The sensor 74 supplies the detected facial orientation detection data to the processor 12 as an input IP2 that displaces the direction of the gaze VL with which the operator views the component model COM through the VR goggles 72 within the virtual space 200.
[0093] On the other hand, the input device 22 is a portable VR controller device that is held in the operator's hand and has push buttons, a joystick, etc. In response to an input operation by the operator on the push buttons or joystick, the input device 22 supplies the processor 12 with an input IP2 that displaces the position of the line of sight VL with which the operator views the component model COM through the VR goggles 72 within the virtual space 200. In this way, the VR system 70 supplies the processor 12 with the input IP2 that displaces the position and direction of the line of sight VL with which the operator views the component model COM within the virtual space 200, and the processor 12 functions as an input receiving unit 64 to receive the input IP2.
[0094] In this embodiment, the processor 12 executes the flow shown in Fig. 17 and executes the flow shown in Fig. 22 as step S5 in Fig. 17. After starting step S5, in step S31, the processor 12 starts reproducing the simulation. Specifically, the processor 12 executes the image reproduction software SW2 using the data file 106 output in the immediately preceding step S4 (Fig. 17), and reproduces the identification code ID n The component model COM is i The coordinates Pc of the world coordinate system C7 are n_i In this simulation, the position P of each component model COM in the virtual space 200 is updated every period τ (for example, control period τ1), and the simulated operation of each component model COM is thereby reproduced.
[0095] In step S32, the processor 12 functions as the input receiving unit 64 and receives an input IP2 (specifically, the detection data of the sensor 74 and the input data to the input device 22) from the VR system 70. In accordance with the input IP2, the processor 12 sets a line of sight VL1 for the left eye and a line of sight VL2 for the right eye in a world coordinate system C7 that defines the virtual space 200.
[0096] The position and direction of line of sight VL1 in virtual space 200 differ from the position and direction of line of sight VL2, and the positional relationship between them (the distance between their positions, the angle between their directions, etc.) is known in advance. Each time processor 12 executes step S32, it displaces line of sight VL1 and VL2 within virtual space 200 in accordance with input IP2.
[0097] In step S33, the processor 12 functions as the simulation playback unit 62 and generates image data 112. Specifically, the processor 12 generates image data 112A for the left eye and image data 112B for the right eye. The image data 112A for the left eye is image data of the component model COM in the virtual space 200 viewed along the line of sight VL1 for the left eye set in the virtual space 200 in the immediately preceding step S32. On the other hand, the image data 112B for the right eye is image data of the component model COM viewed along the line of sight VL2 for the right eye set in the virtual space 200 in the immediately preceding step S32.
[0098] The processor 12 then outputs the generated image data 112A to the left-eye display device 20A and causes it to be displayed on the left-eye display device 20A. Meanwhile, the processor 12 outputs the generated image data 112B to the right-eye display device 20B and causes it to be displayed on the right-eye display device 20B. In this way, the operator can view different image data 112A and 112B with his or her left and right eyes, and can view the component model COM in the virtual space 200 more three-dimensionally along the desired lines of sight VL1 and VL2.
[0099] In step S34, the processor 12 determines whether or not the playback of the simulation has ended. If the processor 12 determines YES, the flow of Fig. 22 ends, and thus the flow of Fig. 17 ends. On the other hand, if the processor 12 determines NO, the processor 12 returns to step S32. Thus, while the processor 12 determines NO in step S34, it repeatedly executes the loop of steps S32 to S34, displaces the lines of sight VL1 and VL2 in accordance with the input IP2 in step S32, and updates the image data 112A and 112B, respectively, in order to display the component model COM as seen along the lines of sight VL1 and VL2 after the displacement in step S33.
[0100] The processor 12 may execute the loop of steps S32 to S34 at a predetermined cycle T. Meanwhile, in the simulation started in step S31, the processor 12 updates the position P of the component model COM displayed in the image data 112 at a cycle τ (for example, control cycle τ1) as described above. The cycles τ and T may be the same. In this case, the processor 12 may execute the process of displacing the line of sight VL in the virtual space 200 and the process of updating the position P of the component model COM in synchronization with each other.
[0101] Alternatively, the periods τ and T may be different from each other. Furthermore, the processor 12 may receive an input IP3 for setting the period T. When the processor 12 receives the input IP3 with the period T, the processor 12 repeatedly executes a loop of steps S32 to S34 with the received period T in accordance with the received input IP3.
[0102] As described above, in this embodiment, the simulation playback unit 62 generates first image data 112A viewed along the first line of sight VL1 for the left eye and second image data 112B viewed along the second line of sight VL2 for the right eye (step S33). The simulation playback unit 62 then outputs the first image data 112A to the left-eye display device 20A provided in the VR goggles 72, while outputting the second image data 112B to the right-eye display device 20B provided in the VR goggles 72. This configuration allows the operator to stereoscopically view the simulation of the component model COM along the desired lines of sight VL1 and VL2. This allows the operator to more intuitively confirm and verify the played-back simulation in detail.
[0103] 3 or 17 in accordance with the computer program PG. The functions of the simulation device 50 or 60 (data acquisition unit 52, data extraction unit 54, database generation unit 56, difference calculation unit 58, simulation replay unit 62, and input reception unit 64) executed by the processor 12 may be functional modules realized by the computer program PG.
[0104] In the above-described embodiment, the functions of the simulation apparatuses 50 and 60 are implemented in one computer 10. However, this is not limiting, and the functions of the simulation apparatus 50 or 60 may be distributed and implemented in two computers 10A and 10B. Such a configuration is shown in Fig. 23. In the example shown in Fig. 23, the functions of the data acquisition unit 52, data extraction unit 54, database generation unit 56, and difference calculation unit 58 of the apparatus 60 are implemented in the computer 10A, while the functions of the simulation reproduction unit 62 and input acceptance unit 64 of the apparatus 60 are implemented in the computer 10B.
[0105] In this case, the processor 12 of the computer 10A functions as the data acquisition unit 52, the data extraction unit 54, the database generation unit 56, and the difference calculation unit 58 to execute steps S1 to S4 in Fig. 17, and in step S4 outputs the database 100 to the computer 10B as a data file 106. Then, the processor 12 of the computer 10B functions as the simulation playback unit 62 and the input reception unit 64 to execute step S5 shown in Fig. 17 or 22 based on the data file 106 received from the computer 10A. Note that a VR system 70 shown in Fig. 21 may be connected to the computer 10B.
[0106] The computer 10, 10A, or 10B may be any type of computer, such as the control device CR, a teaching device for the robot 32, a CAD / CAM system, or a desktop, notebook, or tablet PC. The work performed by the robot 32 is not limited to picking up the workpiece 36, but may be any work, such as welding, laser processing, or painting. The robot 32 may be any type of robot, such as a vertically articulated type, a horizontally articulated type, or a parallel sink type.
[0107] Although the present disclosure has been described in detail above, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the present disclosure or the spirit of the present disclosure derived from the content of the claims and their equivalents. These embodiments can also be implemented in combination. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these. The same applies when numerical values or mathematical expressions are used in the description of the above-described embodiments.
[0108] The present disclosure describes the following aspects: (Aspect 1) A simulation device 50, 60 for the operation of an industrial machine 30 including a plurality of components CO (34, 36, 38, 40, 42, 44), the simulation device including a data acquisition unit 52 that acquires simulation data SD for operating a plurality of component models COM (34M, 36M, 38M, 40M, 42M, 44M) that respectively model the plurality of components CO in a virtual space 200 over time t; i a data extraction unit 54 that extracts positions P of a plurality of component models COM in the virtual space 200, and a data extraction unit 54 that extracts the positions P of the component models COM and the time t i and a database generating unit generating a database storing the data in association with the plurality of time points t. iThe simulation device 50, 60 according to aspect 1, wherein the position P is extracted at every predetermined period τ as a function of the period τ. (Aspect 3) The simulation device 50, 60 according to aspect 2, wherein the predetermined period τ is set to a control period τ1 for controlling a component CO operating in the industrial machine 30. (Aspect 4) In the simulation data SD, at least one component model COM is displayed or hidden in the virtual space 200 as time t passes, and the data extraction unit 54 extracts the position P at each of a plurality of time points t in the simulation data SD. i The database generating unit 56 further extracts the display data 104 that determines whether the component model COM is displayed or not, and the database generating unit 56 converts the display data 104 extracted by the data extracting unit 54 into the component model COM and the time t i The simulation device 50, 60 according to any one of aspects 1 to 3 stores the data in the database 100 in association with the first time point t i The first position P (Pc n_i ), and the data extraction unit 54 extracts the first time point t i At a second time t before i-1 The second position P (Pc n_i-1 ) and the difference δ n_i The database generating unit 56 further includes a difference calculation unit 58 for calculating the difference δ n_i is a predetermined threshold δ th If the first position P(Pc n_i The simulation device (50, 60) according to any one of aspects 1 to 4, further comprising a simulation playback unit (62) that generates image data (112) for playing back the behavior of the component model (COM) in the virtual space (200) shown in the simulation data (SD) based on the database (100) generated by the database generation unit (56), and the simulation playback unit (62) stores the component model (COM) at a time t associated with the component model (COM). i At the time t i The component model COM to be displayed in the image data 112 is displayed at a position P associated with the time t iThe simulation device 60 according to any one of Aspects 1 to 5, wherein the database generation unit 56 outputs the database 100 to the simulation reproduction unit 62 as a single data file 106, and the simulation reproduction unit 62 obtains the database 100 from the received single data file 106. (Aspect 8) The simulation device 60 according to Aspect 6 or 7, further comprising an input acceptance unit 64 that accepts an input IP2 that displaces within the virtual space 200 lines of sight VL, VL1, VL2 for viewing the component model COM displayed in the image data 112, and the simulation reproduction unit 62 generates the image data 112 so as to display the component model COM as seen along the displaced lines of sight VL, VL1, VL2, in accordance with the input IP2 accepted by the input acceptance unit 64. (Aspect 9) The simulation device 60 according to Aspect 8, wherein the simulation playback unit 62 generates first image data 112A viewed along a first line of sight VL1 for the left eye and second image data 112B viewed along a second line of sight VL2 for the right eye, and outputs the first image data 112A to a display device 20A for the left eye provided in the VR goggles 72, while outputting the second image data 112B to a display device 20B for the right eye provided in the VR goggles 72. (Aspect 10) A method for simulating the operation of an industrial machine 30 including a plurality of components CO (34, 36, 38, 40, 42, 44), the method comprising: acquiring simulation data SD for operating a plurality of component models COM (34M, 36M, 38M, 40M, 42M, 44M) each modeling the plurality of components CO in a virtual space 200 over time t; i The positions P of the plurality of component models COM in the virtual space 200 are extracted, and the extracted positions P, the component models COM from which the positions P were extracted, and the time t i and (a) generating a database 100 storing the above-mentioned data in association with each other. (Aspect 11) A computer program PG that causes a processor 12 to execute the method according to aspect 10.
[0109] 10, 10A, 10B Computer 12 Processor 20, 20A, 20B Display device 30 Industrial machine 50, 60 Simulation device 52 Data acquisition unit 54 Data extraction unit 56 Database generation unit 58 Difference calculation unit 62 Simulation playback unit 64 Input reception unit 72 VR goggles 100 Database 104 Display data 106 Data file 112 Image data 200 Virtual space
Claims
1. A simulation device for the operation of an industrial machine including a plurality of components, comprising: a data acquisition unit that acquires simulation data for operating a plurality of component models, each of which models the plurality of components, in a virtual space over time; a data extraction unit that extracts, based on the simulation data, positions of the plurality of component models in the virtual space at a plurality of time points within the time; and a database generation unit that generates a database storing the positions extracted by the data extraction unit in association with the component models and the time points.
2. The simulation device according to claim 1, wherein the data extraction unit extracts the positions at predetermined intervals as the plurality of time points.
3. The simulation device according to claim 2, wherein the predetermined interval is set to a control cycle for controlling the components operating in the industrial machine.
4. In the simulation data, at least one of the component models is displayed or hidden in the virtual space over time. The data extraction unit further extracts, from the simulation data, display data defining the display or non - display of the component models at the plurality of time points. The database generation unit stores the display data extracted by the data extraction unit in the database in association with the component models and the time points.
5. The simulation device according to claim 1, further comprising a difference calculation unit that calculates a difference between a first position extracted by the data extraction unit at a first time point and a second position extracted by the data extraction unit at a second time point before the first time point. The database generation unit does not store the first position in the database when the difference is equal to or less than a predetermined threshold.
6. The simulation apparatus according to claim 1, further comprising a simulation playback unit that generates image data for playing back the operation of the component model in the virtual space shown in the simulation data based on the database generated by the database generation unit, wherein the simulation playback unit updates the component model to be displayed in the image data for each time point so as to display the component model at the position associated with the time point at the time point associated with the component model.
7. The database generation unit outputs the database as a single data file to the simulation playback unit, and the simulation playback unit obtains the database from the received single data file. The simulation apparatus according to claim 6.
8. The simulation apparatus according to claim 6, further comprising an input reception unit that receives an input for displacing a line of sight for viewing the component model displayed in the image data within the virtual space, wherein the simulation playback unit generates the image data so as to display the component model viewed along the displaced line of sight in response to the input received by the input reception unit.
9. The simulation playback unit generates first image data viewed along a first line of sight for the left eye and second image data viewed along a second line of sight for the right eye, outputs the first image data to a left-eye display device provided in the VR goggles, and outputs the second image data to a right-eye display device provided in the VR goggles. The simulation apparatus according to claim 8.
10. A simulation method for the operation of an industrial machine including a plurality of components, the method comprising: obtaining simulation data for operating a plurality of component models, each modeling one of the plurality of components, in a virtual space over time; extracting positions of the plurality of component models in the virtual space at a plurality of time points among the time; and generating a database storing the extracted positions in association with the component models and the time points at which the positions are extracted.
11. A computer program that causes a processor to execute the method according to claim 10.
Citation Information
Patent Citations
Robot teaching system and method for displaying simulation result of operation of robot
JP2010042466A
Game device and program
JP2017119032A
Programming device for generating operation program, and program generating method
JP2019018250A
Simulation device, simulation method, and program
JP2020187610A
Information processing device, control method of information processing device, and manufacturing method of article
JP2021024028A