Dispersion simulation device and method

The distributed simulation device addresses inefficiencies in resource utilization and inconsistent results by using independent simulation time advancement and recalculations, achieving high-speed and consistent simulation outcomes.

JP2025009574APending Publication Date: 2025-01-20KAWASAKI JUKOGYO KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023112670
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-07
Publication Date
2025-01-20

AI Technical Summary

Technical Problem

Existing distributed simulation systems face inefficiencies in resource utilization due to differences in computing power among individual simulation programs, leading to slowed simulation speeds and inconsistent results.

Method used

A distributed simulation device utilizing first and second simulators that advance simulation time independently at different rates, with a condition change detection and recalculation control mechanism to synchronize and recalibrate simulation times when necessary, ensuring efficient resource use and consistent results.

Benefits of technology

Enables high-speed simulation calculations by optimizing resource utilization and preventing inconsistent results through independent time advancement and recalculations when conditions change.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025009574000001_ABST
    Figure 2025009574000001_ABST
Patent Text Reader

Abstract

To provide a dispersion simulation device capable of achieving efficient utilization of computer resources and high speed calculation.SOLUTION: A first simulator and a second simulator independently advance a simulation time at a speed higher than an advance speed of a real time, in performing simulation calculation. A change of a condition of the simulation calculation of the second simulator, which is caused by a simulation calculation result of the first simulator, is detected. When the simulation time of the second simulator is earlier than a condition change simulation time indicating a simulation time at which the condition of the simulation calculation of the second simulator is changed, the second simulator returns the simulation time to the condition change simulation time or previous simulation time, for performing again, the simulation calculation.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to distributed simulation. [Background technology]

[0002] Patent Document 1 discloses a simulation program that executes a distributed simulation in a distributed environment in order to simulate the operation of a large-scale LSI circuit.

[0003] In Patent Document 1, an LSI circuit system is divided into multiple parts, and each part is modeled. Each model is simulated using a simulation program. The multiple simulation programs communicate with each other to synchronize time and data.

[0004] In Patent Document 1, a scheduler thread is executed to realize a time synchronization function between each simulation program. Each simulation program is managed by the scheduler thread so that the time is synchronized. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2012-63872 A Summary of the Invention [Problem to be solved by the invention]

[0006] In the configuration of the above-mentioned Patent Document 1, the scheduler thread functions to prevent inconsistencies in the simulation results between the individual simulation programs. However, for example, if there is a difference in the execution environment of each simulation program, even a simulation program in an environment with high computing power must wait until the execution of a simulation program in an environment with low computing power is completed, and the speed is limited by the side with low computing power. Therefore, the conventional configuration has room for improvement in terms of effective use of computer resources.

[0007] The present disclosure has been made in consideration of the above circumstances, and has an object to realize a distributed simulation that is capable of high-speed calculation and makes effective use of computer resources. [Means for solving the problem]

[0008] The problem to be solved by the present disclosure is as described above. Next, the means for solving this problem and the effects thereof will be described.

[0009] According to a first aspect of the present disclosure, there is provided a distributed simulation device having the following configuration. That is, the distributed simulation device includes a first simulator, a second simulator, a condition change detection unit, and a recalculation control unit. The first simulator performs a simulation calculation of a first robot while progressing a simulation time at a speed faster than the progress speed of real time. The second simulator performs a simulation calculation of a second robot while progressing a simulation time at a speed faster than the progress speed of real time, independent of the simulation time of the first simulator. The condition change detection unit detects a change in a condition of the simulation calculation of the second simulator caused by a result of the simulation calculation of the first simulator. When the simulation time of the second simulator precedes a condition change simulation time indicating a simulation time at which a condition of the simulation calculation of the second simulator changes, the recalculation control unit returns the simulation time of the second simulator to the condition change simulation time or a simulation time earlier than the condition change simulation time, and causes the second simulator to perform the simulation calculation again from the returned simulation time.

[0010] As a result, by performing simulation calculations in a distributed manner while independently advancing the simulation time in each of the multiple simulators, it is possible to avoid waiting processes and obtain simulation results at high speed. Therefore, computer resources related to the simulators can be used efficiently. Furthermore, if robot interaction occurs during simulation calculations, the simulation time of the affected side is set back and recalculated, thereby preventing inconsistent simulation results from occurring.

[0011] According to a second aspect of the present disclosure, there is provided a distributed simulation device having the following configuration. That is, the distributed simulation device includes a first simulator, a second simulator, a copy storage unit, a condition change detection unit, and a recalculation control unit. The first simulator performs a simulation calculation of a first robot while progressing a simulation time at a speed faster than the progress speed of real time. The second simulator performs a simulation calculation of a second robot while progressing a simulation time at a speed faster than the progress speed of real time, independent of the simulation time of the first simulator. The copy storage unit can store a copy of the second simulator at an appropriate timing. The condition change detection unit detects a change in a condition of the simulation calculation of the second simulator caused by a result of the simulation calculation of the first simulator. The recalculation control unit, when the simulation time of the second simulator precedes a condition change simulation time indicating a simulation time at which a condition of the simulation calculation of the second simulator changes, causes the copy holding a state of the simulation time before the condition change simulation time to perform a simulation calculation again.

[0012] As a result, by performing simulation calculations in a distributed manner while independently advancing the simulation time in each of the multiple simulators, it is possible to avoid waiting processes and obtain simulation results at high speed. Therefore, computer resources related to the simulators can be utilized efficiently. Furthermore, if robot interaction occurs in the simulation calculations, the simulation calculations can be performed using a copy of the simulation calculation unit previously stored in the affected simulator, so that the simulation can essentially be recalculated from the condition change simulation time with simple processing. As a result, it is possible to prevent inconsistent simulation results from occurring. Effect of the Invention

[0013] According to the present disclosure, it is possible to realize a distributed simulation that enables high-speed calculation and makes effective use of computer resources. [Brief description of the drawings]

[0014] [Figure 1] FIG. 1 is a schematic diagram illustrating an example in which a distributed simulation apparatus according to an embodiment of the present disclosure is applied to a transfer robot. [Diagram 2] FIG. 1 is a block diagram of a distributed simulation device. [Diagram 3] Graph illustrating the progress of simulation calculations performed by two controllers. [Figure 4] 10 is a graph illustrating another example of control for performing a simulation calculation again. [Diagram 5] A schematic diagram showing an example in which the robot is positioned differently from that in Figure 1. [Figure 6] 6 is a graph illustrating the progress of simulation calculations performed by two controllers in the case of FIG. 5. [Figure 7] 11 is a flowchart illustrating a simulation process. [Figure 8] FIG. 11 is a block diagram of a distributed simulation apparatus according to a first modified example. [Figure 9] FIG. 11 is a block diagram of a distributed simulation apparatus according to a second modified example. [Figure 10] FIG. 13 is a schematic diagram showing a modified example in which the distributed simulation device is applied to a welding robot. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] Next, an embodiment of the present disclosure will be described with reference to the drawings. Fig. 1 is a schematic diagram showing an example in which a distributed simulation device 50 according to an embodiment of the present disclosure is applied to a transport robot. Fig. 2 is a block diagram of the distributed simulation device 50.

[0016] In this embodiment, a distributed simulation device 50 is applied to a transport system 51 including two robots 11 and 12. Each of the robots 11 and 12 can transport a workpiece (not shown). Hereinafter, the robot 11 may be referred to as a first robot, and the robot 12 may be referred to as a second robot.

[0017] The robot 11 and the robot 12 are configured as transport robots. Each of the two robots 11 and 12 can travel along a track 10 having a loop portion and a retractable portion.

[0018] The robot 11 includes sensors and motors (not shown). The sensors may include, for example, a position sensor and a speed sensor. The motor may include, for example, a traction motor. The robot 11 includes a controller 61. The controller 61 controls the operation of the motors based on signals from the sensors.

[0019] Similarly, the robot 12 includes sensors and motors (not shown). The robot 12 includes a controller 62. The controller 62 controls the operation of the motors based on signals from the sensors.

[0020] Each of the controllers 61, 62 is configured as a known computer and includes a CPU, a RAM, an auxiliary storage device, etc. The controllers 61, 62 can communicate with each other, for example, wirelessly. The controller 61 of the robot 11 acquires information from the controller 62 of the other robot 12 and performs control for the purpose of collision avoidance, etc. The controller 62 of the robot 12 acquires information from the controller 61 of the other robot 11 and performs control for the purpose of collision avoidance, etc. The number of robots 11, 12 is arbitrary as long as there is more than one, and can be three or more. The number of controllers 61, 62 is the same as the number of robots.

[0021] As a method for avoiding collisions between moving robots 11, 12, it is known to define a plurality of sections so as to divide the track 10 on which the robots 11, 12 travel, and control so that there is always one or less robots 11, 12 in each section (blocking control). In the example of FIG. 1, sections a to d are set so as to divide the loop portion of the track 10 into four. Each of the robots 11, 12 can travel cyclically in one direction on the loop portion, such as section a, section b, section c, section d, section a, .... A section e is set in the siding of the track 10. The siding (section e) is connected to a midway portion of section b of the loop portion.

[0022] The controller 61 includes a simulator 72 as shown in Fig. 2. The simulator 72 has a simulation calculation function. The simulator 72 sets the current state of the robot 11 as an initial state and performs simulation calculation. This simulation makes it possible to predict the future state of the robot 11. The controller 61 determines the current operation of the robot 11 based on the predicted future state.

[0023] The controller 62 includes a simulator 72, similar to the controller 61. The simulator 72 has a simulation calculation function. This simulation calculation function is substantially similar to that of the simulator 72 included in the controller 61, and therefore a description thereof will be omitted.

[0024] In this embodiment, two simulators 72 configure the distributed simulation device 50. Hereinafter, the simulator 72 included in the controller 61 may be referred to as a first simulator 72A, and the simulator 72 included in the controller 62 may be referred to as a second simulator 72B. The electrical configurations of the two controllers 61 and 62 will be described in detail later.

[0025] The first simulator 72A predicts the state of the robot 11 at a time in the future from the actual time by simulation calculation. Similarly, the second simulator 72B predicts the state of the robot 12 at a time in the future from the actual time by simulation calculation. In the following, the calculation time that is the subject of the simulation calculation is referred to as simulation time t S It is sometimes called.

[0026] The first simulator 72A starts from the above-mentioned initial state and performs simulation at simulation time t S The simulation calculation is performed while advancing at a predetermined time interval. The second simulator 72B is similar. In each simulation calculation, the simulation time t S The speed at which the R This allows predictions of the future to be made by performing simulation calculations based on the current state.

[0027] The first simulator 72A and the second simulator 72B perform simulation calculations in a distributed manner. The simulation calculation processes performed by the two simulators 72 are independent of each other, and at a simulation time t S The first simulator 72A and the second simulator 72B are not continuously synchronized with each other. This makes it possible to realize high-speed simulation calculation. Each of the first simulator 72A and the second simulator 72B is a processing unit of the distributed simulation, and therefore can also be called a simulation calculation unit.

[0028] Due to the computational processing capabilities of the controllers 61 and 62, the complexity of the simulation calculations, etc., the progress speeds of the simulation calculations performed by the first simulator 72A and the second simulator 72B are different. S The progress speed of the simulation calculation can be considered to represent the progress speed of the simulation calculation. Since no synchronization process is performed, in the simulation calculation performed by the two simulators 72, the simulation time t S The progression speeds of each are different.

[0029] 2 is a block diagram showing the electrical configuration of the controllers 61 and 62. Since the two controllers 61 and 62 have substantially the same configuration, the following description will be given of the controller 61 as a representative.

[0030] The controller 61 includes a control unit 71, a simulator 72 (first simulator 72A), a condition change detection unit 73, a condition change transmission unit 74, and a recalculation control unit 75.

[0031] Specifically, the controller 61 includes the above-mentioned hardware (CPU, etc.), and a control program and a simulation program are installed in the auxiliary storage device. The cooperation of the hardware and software allows the controller 61 to function as a control unit 71, a simulator 72, a condition change detection unit 73, a condition change transmission unit 74, and a recalculation control unit 75.

[0032] The control unit 71 controls the operation of the motor based on signals from sensors provided in the robot 11.

[0033] The simulator 72 (first simulator 72A) predicts future operations of the robot 11 through simulation calculations using a model representing the robot 11. Control of the robot 11 in the simulation is performed so as to simulate the control of the control unit 71. The results of this simulation calculation are used for the control in the control unit 71.

[0034] The condition change detection unit 73 detects a change in the condition of the simulation calculation performed by the second simulator 72B when the condition of the simulation calculation performed by the first simulator 72A changes. For example, when the result of the simulation calculation performed by the first simulator 72A is a change in the condition of the simulation calculation performed by the second simulator 72B at a certain simulation time t SConsider a case where the section in which the robot 11 exists has changed among sections a to e. This change changes the section in which the robot 12 is not permitted to exist, and therefore changes the conditions of the simulation calculation performed by the second simulator 72B. Taking this into consideration, the condition change detection unit 73 detects the change when the section in which the robot 11 exists changes in the simulation calculation.

[0035] When the condition change detection unit 73 detects that the simulation calculation conditions of the second simulator 72B belonging to another controller 62 change due to the simulation calculation results of the first simulator 72A, the condition change transmission unit 74 transmits information about the condition change to the controller 62 to which the second simulator 72B belongs. The information about the condition change includes the content of the condition change and the simulation time t when the condition change occurred. S And, it includes.

[0036] When the controller 61 receives information on a condition change from the condition change transmission unit 74 of the other controller 62, the recalculation control unit 75 causes the first simulator 72A to perform the simulation calculation again as necessary.

[0037] As described above, the progress speed of the simulation calculation is different between the first simulator 72A and the second simulator 72B. For the sake of simplicity, the simulation calculation performed by the first simulator 72A is performed at a simulation time t S The progression speed of the simulation time t S Let us consider the case where the speed of progression is 20 times faster than the actual speed of progression.

[0038] In the following, the actual time when the simulation calculation starts is called t R = 0. The timing when the actual control of the robots 11 and 12 starts is also t R = 0. However, the simulation calculation may be started at any timing before the start of the actual control.

[0039] Consider the example shown in Figure 1 as the initial state. Figure 1 shows the initial state at time (t R 4 shows the states of the robots 11 and 12 at time t1 (=0).

[0040] Robot 11 is in section a, and t R At time t = 0, the vehicle is traveling at a specified speed. R If the robot 11 continues running from the time t = 0, the robot 11 R At timing =10, move from section a to section b.

[0041] Robot 12 is in section e and t R At time t = 0, the vehicle is traveling at a specified speed. R If the robot 12 continues running from the time t = 0, the robot 12 R At timing =12, move from section e to section b.

[0042] In this description, the first simulator 72A and the second simulator 72B are R = 0. However, the simulation calculations may be started at different times.

[0043] As shown in graph G1 of FIG. 3, the first simulator 72A starts a simulation calculation at a simulation time t S is initialized to 0. Next, the first simulator 72A starts the simulation at a simulation time t S Set the initial value (t S =0) to a given time interval Δt S While increasing the robot 11 at the simulation time t S The process of performing simulation calculations at time intervals Δt S can be set arbitrarily, for example, to 1 second.

[0044] As shown in graph G1 of FIG. 3, the second simulator 72B starts a simulation calculation at a simulation time t S is initialized to 0. Next, the second simulator 72B starts the simulation at a simulation time t S Set the initial value (t S =0) to a given time interval Δt S While increasing the simulation time t S The process of performing simulation calculations at time intervals Δt S can be set arbitrarily, for example, to 1 second.

[0045] Hereinafter, the simulation calculation of the robot 11 performed by the first simulator 72A may be referred to as a first simulation calculation, and the simulation calculation of the robot 12 performed by the second simulator 72B may be referred to as a second simulation calculation.

[0046] As described above, in the second simulation calculation, at simulation time t S The rate of progress is the actual time t R Therefore, as shown in graph G2, t R At timing t = 0.6, the simulation time is t S = 12. At this point, the condition change detection unit 73 of the controller 62 detects that the robot 12 moves from section e to section b in the simulation.

[0047] If the robot 12 moves from section e to section b, this may affect the movement of the robot 11. Therefore, the condition change transmission unit 74 of the controller 62 transmits to the controller 61 a notification that the section in which the robot 12 exists will change from section e to section b, as well as the simulation time (t S =12).

[0048] The controller 61 receives the information RAt the timing of t = 0.6, the simulation time in the first simulation calculation is t S = 6, and the simulation time (t S =12), therefore, the simulation calculation by the first simulator 72A continues as is.

[0049] As shown in graph G3, t R At the timing of t = 1.0, the simulation time in the first simulation calculation is t S = 10. At this point, the condition change detection unit 73 of the controller 61 detects that the robot 11 moves from section a to section b in the simulation.

[0050] If the robot 11 moves from section a to section b, this may affect the movement of the robot 12. Therefore, the condition change transmission unit 74 of the controller 61 transmits to the controller 62 a notification that the section in which the robot 11 exists will change from section a to section b, and a simulation time (t S =10).

[0051] The controller 62 receives the information R At the timing of t = 1.0, the simulation time in the second simulation calculation is t S = 20, and the simulation time (t S Therefore, the recalculation control unit 75 of the controller 62 controls the second simulator 72B to detect the change in the robot 11 existence zone after the simulation time (t S Then, the simulation time of the simulation calculation is returned to t = 10, and the second simulator 72B is made to perform the simulation calculation again. R Of the simulation results that were completed at t = 1.0, S The part after 10 is discarded.

[0052] Graph G4 shows the time t R The recalculated simulation is different from the initial simulation, in that the robot 11 is assumed to be present in the section b ahead of the robot 11. Therefore, in the second simulation, which is performed again, the simulation time t S At simulation time t S After =12, the robot 12 stops in section e at a position just before entering section b.

[0053] The recalculation control unit 75 of the controller 62 may determine whether or not recalculation of the simulation is necessary, and only when recalculation is necessary, the simulation calculation may be performed by the second simulator 72B. More specifically, when the recalculation control unit 75 of the controller 62 receives information regarding a change in the area in which the robot 11 exists from the condition change transmission unit 74 of the controller 61, the recalculation control unit 75 of the controller 62 may transmit the simulation time (t S =10) to the current simulation time (t S =20), whether robot 12 was in section b or not, R Check the results of the second simulation calculation that was completed at the time when =1.0.

[0054] In the second simulation result, at simulation time t S From time t = 12 onwards, the robot 12 is present in section b. This is not permitted from the viewpoint of blockage control, so the recalculation control section 75 of the controller 62 performs a recalculation process on the robot 12 at time t just before a situation contrary to blockage control occurs, as shown by the graph G3x in FIG. S Simulation time t = 11 S After returning the simulation time t S After =12, the robot 12 stops in section e.

[0055] In this way, the multiple simulators 72 run at simulation time t S When the simulation results of the simulators 72 are carried out independently and simultaneously in parallel, if the simulation results of one simulator 72 affect the simulation results of the other simulators 72, the simulator 72 that is affected will go back in time and perform the simulation calculation again. Therefore, by efficiently utilizing each resource, it is possible to perform distributed simulation calculations at high speed and obtain consistent simulation results.

[0056] In the situation shown in FIG. 1, the robot 11 enters the section b before the robot 12. Next, as shown in FIG. 5, a case is considered in which the robot 12 is expected to enter the section b before the robot 11. FIG. 5 shows a case in which the robot 11 enters the section b before the robot 12. R This shows the state at time 0.

[0057] In the situation shown in FIG. 5, the robot 11 is in section a, and R At time t = 0, the vehicle is traveling at a specified speed. R If the robot 11 continues running from the time t = 0, the robot 11 R At timing =10, move from section a to section b.

[0058] In the situation shown in FIG. 5, the robot 12 is in section e and R At time t = 0, the vehicle is traveling at a specified speed. R If the robot 12 continues running from the time t = 0, the robot 12 R At time t = 8, the robot 12 moves from section e to section b. If the robot 12 continues to move at a predetermined speed, the robot 12 moves from section e to section b at time t R At timing =24, move from section b to section c.

[0059] In the situation of FIG. 5, the first simulator 72A and the second simulator 72B are RConsider the case where the simulation calculations are started simultaneously at the timing of t = 0. Graph G5 in Figure 6 shows the case where the simulation calculations are started simultaneously at the timing of t R This shows the timing of =0.

[0060] In the second simulation, at simulation time t S The rate of progress of t is 20 times faster than the rate of progress of real time. Therefore, as shown in graph G6, R At the timing of t = 0.4, the simulation time is t S = 8. At this point, the condition change detection unit 73 of the controller 62 detects that the robot 12 moves from section e to section b in the second simulation calculation.

[0061] If the robot 12 moves from section e to section b, this may affect the movement of the robot 11. Therefore, the condition change transmission unit 74 of the controller 62 immediately transmits to the controller 61 a notification that the section in which the robot 12 exists will change from section e to section b, as well as the simulation time (t S =8).

[0062] The controller 61 receives the information R At the timing of =0.4, in the first simulation calculation, the simulation time is t S = 4. At this simulation time (t S =4) is the simulation time (t S =8), so the first simulator 72A continues the simulation calculation as is.

[0063] In the first simulation, at simulation time t S The rate of progress of time is 10 times faster than the rate of progress of real time. R The timing of t = 1.0 is shown. In this timing, the simulation time in the first simulation calculation is t S= 10, the robot 11 tries to move from section a to section b. However, the robot 12 is already in section b, so t R This is known from the information received from the controller 62 at the timing of simulation time t S After =10, the robot 11 stops in section a at a position immediately before entering section b.

[0064] Graph G8 is t R This timing shows the timing of t = 1.2 in the second simulation calculation. S = 24. Therefore, at this point, the condition change transmission unit 74 of the controller 62 detects that the robot 12 will move from section b to section c in the second simulation calculation. The condition change transmission unit 74 of the controller 62 immediately transmits to the controller 61 a notification that the section in which the robot 12 exists will change from section b to section c, as well as the simulation time (t S =24).

[0065] The controller 61 receives the information R At the timing of =1.2, in the first simulation calculation, the simulation time is t S = 12. At this simulation time (t S =12) is the simulation time (t S =24), therefore, the first simulator 72A continues the simulation calculation as is.

[0066] Graph G9 shows t R This timing shows the timing of t = 2.4 in the first simulation calculation. S = 24. Simulation time is t S The robot 12 moves from section b to section c at time t = 24. RThis is known from the information received from the controller 62 at the timing of t = 1.2. Therefore, the first simulator 72A performs the first simulation calculation using S At time t = 24, the stopped robot 11 is made to start moving, and the robot 11 is moved from section a to section b. Accordingly, a change in the section in which the robot 11 exists in the first simulation calculation is detected by the condition change detection unit 73 of the controller 61. Therefore, the condition change transmission unit 74 of the controller 61 immediately transmits to the controller 62 a notification that the section in which the robot 11 exists will change from section a to section b, as well as information on the simulation time when the change will occur (t S =24).

[0067] t shown in graph G9 R At the timing of =2.4, in the second simulation calculation, the simulation time is t S The recalculation control unit 75 of the controller 62 judges whether or not it is necessary to recalculate the simulation. S Since the robot 12 moves from section b to section c at the timing of t = 24, the blockage control is not violated. Therefore, it is determined that the second simulation calculation does not need to be redone, and the simulation time (t S =48) is not returned. Graph G10 shows the time t R Timing for =2.8 is shown.

[0068] Hereinafter, the processing performed in the controller 61 and the controller 62 will be described with reference to the flowchart of Fig. 7. Since the processing performed by the two controllers 61, 62 is the same, the following description will focus on the processing performed by the controller 61.

[0069] When the simulation calculation is started, the first simulator 72A performs a simulation at a simulation time t S is initialized (step S101 in FIG. 7).

[0070] The first simulator 72A is S time pitch Δt S (step S102), and the new simulation time t S The movement of the robot 11 in the above is simulated (step S103).

[0071] The condition change detection unit 73 judges whether the section in which the robot 11 exists has changed from the previous time in the latest simulation result performed by the first simulator 72A (step S104). If the section in which the robot 11 exists has changed, the condition change transmission unit 74 transmits to the other controller 62 the change in the section in which the robot 11 exists and the simulation time t S is transmitted as information (step S105).

[0072] The controller 61 determines whether or not information regarding a change in the zone in which the other robot 12 exists has been received from the other controller 62 (step S106). If no information has been received, the process returns to step S102.

[0073] If it is determined in step S106 that the information has been received, the recalculation control unit 75 of the controller 61 calculates the simulation time t S is the current simulation time t S It is determined whether the received simulation time t S is the current simulation time t S If so, the process returns to step S102.

[0074] In step S107, the controller 61 determines whether the simulation time t S is the current simulation time t SIf it is before , it means that the conditions have been changed after the fact for the simulation calculation that has already been completed. Therefore, the recalculation control unit 75 of the controller 61 judges whether or not the first simulator 72A needs to perform the simulation calculation again in accordance with the change in the conditions (step S108). The necessity of re-executing the simulation is judged based on how the section in which the other robots 12 exist has changed, etc. If it is not necessary to perform the simulation calculation again, the process returns to step S102.

[0075] When it is determined in step S108 that the simulation calculation needs to be performed again, the recalculation control unit 75 of the controller 61 performs a recalculation process for the simulation time t S Simulation of the change in time interval t S Or, the process returns to the time immediately before that (step S109). Then, the process returns to step S103. As a result, the returned simulation time t S From this, the simulation calculation is performed again by the first simulator 72A.

[0076] Next, a modified example of the distributed simulation device will be described with reference to Fig. 8. In the following description of this modified example, the same or similar members as those in the above embodiment are denoted by the same reference numerals in the drawings, and the description thereof may be omitted.

[0077] 8 includes a simulation control device 81 which is hardware separate from the controllers 61 and 62. The simulation control device 81 comprehensively controls the recalculation of the simulation performed in a distributed manner in the two controllers 61 and 62.

[0078] The simulation control device 81 is configured as a known computer, and includes a CPU, a RAM, an auxiliary storage device, etc. The simulation control device 81 can communicate with each of the controllers 61 and 62, for example, wirelessly.

[0079] Any method may be used to realize the simulation control device 81. For example, the simulation control device 81 may be configured using a cloud service and connected to the controllers 61 and 62 via the Internet. The simulation control device 81 may also be configured as a local computer connected to the controllers 61 and 62 via a LAN.

[0080] The simulation control device 81 includes a condition change detection unit 73 and a recalculation control unit 75. Accordingly, in the controller 61 and the controller 62, the condition change detection unit 73, the condition change transmission unit 74, and the recalculation control unit 75 are omitted.

[0081] The first simulation calculation result by the first simulator 72A is S At the same time, the controller 61 transmits the second simulation calculation result to the simulation control device 81 at any time. Similarly, the second simulation calculation result by the second simulator 72B is transmitted at a simulation time t S The first simulator 72A and the second simulator 72B perform simulation calculations independently and asynchronously. S are not synchronized.

[0082] The condition change detection unit 73 included in the simulation control device 81 monitors changes in the conditions of one simulation calculation resulting from the results of the other simulation calculation. When detecting a change in the conditions of the simulation calculation, the condition change detection unit 73 outputs information on the above-mentioned condition change to the recalculation control unit 75. The information output from the condition change detection unit 73 to the recalculation control unit 75 includes information for identifying which of the simulation calculations, the first simulator 72A or the second simulator 72B, has had its conditions changed.

[0083] When the information regarding the condition change is input from the condition change detection unit 73, the recalculation control unit 75 detects the current simulation time t S Rather, the condition change simulation time t S If the result of this determination is affirmative, the recalculation control unit 75 determines whether the simulation time t S The condition change simulation time t S or earlier simulation time t S The simulator 72 on the side where the conditions have changed is controlled so that the simulation calculation is performed again by returning the simulation result to the original value.

[0084] This modified configuration can also achieve the same effects as the above-described embodiment. In this modified configuration, the re-execution of simulation calculations is centrally controlled, so that the control of the distributed simulation can be simplified.

[0085] Next, a modified example in which the controllers 61 and 62 have a replica function of the simulator 72 will be described with reference to FIG.

[0086] The control unit 71 provided in each of the controllers 61, 62 may have many internal variables (e.g., moment of inertia, acceleration, etc. in addition to position and speed) and may be configured to perform complex control of the robots 11, 12. Since the simulator 72 simulates the control of the control unit 71, when the control unit 71 performs complex control, the simulation calculations performed by the simulator 72 also become complex. In such a situation, during the execution of a series of instructions, the simulation time t S It may be difficult to configure the simulator 72 so that it can be recalculated.

[0087] In consideration of such a case, it is preferable that the simulator 72 is capable of duplicating itself in its entirety at an appropriate timing and storing the duplicate in a RAM, an auxiliary storage device, etc. In a distributed simulation device 50x2 of a modified example shown in FIG.

[0088] The timing when the replica storage unit 76 stores the replica of the simulator 72 may be, for example, a timing when the simulator 72 is in an initial state, a timing when the real robot to be controlled or the robot in the simulation calculation is stopped and there is spare computer resources, etc., but is not limited to this. When the simulator 72 is implemented as an object of a class, for example, the replica of the simulator 72 can be realized by creating a clone of the object. The replicated simulator 72 is stored at the simulation time t at the time of replication. S It serves as a snapshot that holds the state of the robot at

[0089] In this modified example, when it is determined that the simulation calculation needs to be performed again, the recalculation control unit 75 performs the simulation calculation at the simulation time t S Previous simulation time t S This makes it possible to reflect changes in conditions and essentially redo the simulation calculation.

[0090] 2 includes the first simulator 72A, the second simulator 72B, the condition change detection unit 73, and the recalculation control unit 75. The first simulator 72A included in the controller 61 calculates a real time t R At a simulation time t SThe second simulator 72B of the controller 62 performs a simulation calculation of the robot 11 while proceeding with the simulation time t S Independently of the actual time t R At a simulation time t S The controller 62 performs a simulation calculation of the robot 12 while proceeding with the simulation of the first simulator 72A. The condition change detection unit 73 included in the controller 61 detects a change in the conditions of the simulation calculation of the second simulator 72B caused by the results of the simulation calculation of the first simulator 72A. The recalculation control unit 75 included in the controller 62 detects a change in the conditions of the simulation calculation of the second simulator 72B caused by the results of the simulation calculation of the first simulator 72A. S However, at the simulation time t S Simulation of change in conditions at time t S When the simulation time t S The condition change simulation time t S or earlier simulation time t S The simulation time t S Then, the second simulator 72B performs the simulation calculation again.

[0091] As a result, the simulation calculation is performed in each of the multiple simulators 72 at simulation time t S By performing the simulation independently and in a distributed manner, it is possible to avoid waiting and obtain simulation results at high speed. Therefore, it is possible to efficiently utilize the computer resources related to each simulator 72. In addition, when robot interaction occurs in the simulation calculation, the simulation result of the affected side is obtained at the simulation time t S By going back and recalculating, you can prevent inconsistent simulation results.

[0092] In the distributed simulation apparatus 50, 50x1, the recalculation control unit 75 included in the controller 62 performs a simulation calculation at a simulation time t S However, when the condition changes, the simulation time t S (step S107), and if it becomes necessary to redo the simulation calculation due to a change in conditions (step S108), S The condition change simulation time t S or earlier simulation time t S The simulation time t S Then, the second simulator 72B performs the simulation calculation again.

[0093] This allows the simulation calculation to be performed again when the premise of the simulation result calculated up until now is lost due to new conditions after the change, and therefore the frequency of redoing the simulation calculation can be reduced, so that the simulation result can be obtained more quickly.

[0094] In the distributed simulation device 50, a recalculation control unit 75 that causes the second simulator 72B to perform the simulation calculation again is provided in the same computer (that is, the controller 62) that is physically the same as the second simulator 72B.

[0095] This allows recalculation to commence quickly.

[0096] In the distributed simulation device 50x1, a recalculation control unit 75 that causes the second simulator 72B to perform the simulation calculation again is provided in a computer (that is, a simulation control device 81) that is physically different from both the first simulator 72A and the second simulator 72B.

[0097] This facilitates centralized control of the recalculation of simulations that are performed in a distributed manner by a plurality of simulators.

[0098] 9, the controller 62 includes a copy storage unit 76 that can store a copy of the second simulator 72B at an appropriate timing. The recalculation control unit 75 included in the controller 62 is configured to perform a recalculation of the simulation calculation of the second simulator 72B at a simulation time t S However, the above-mentioned condition change simulation time t S If the condition change simulation time t S Previous simulation time t S The replica that holds the state of the simulation is then re-run.

[0099] As a result, in the second simulator 72B, the simulation time t S Even if it is difficult to return to an arbitrary timing, a simple configuration is available to return the simulation time t S can be returned to the appropriate time and recalculated.

[0100] Next, a modified example of the robot will be described with reference to Fig. 10. In the modified example of Fig. 10, the above-described distributed simulation device 50 is applied to a robot system 52 that performs work on a workpiece 1 using multiple robots 11, 12, 13, and 14.

[0101] The robot system 52 includes robots 11, 12, 13, and 14, and controllers 61, 62, 63, and 64.

[0102] The workpiece 1 is transported by a conveyor 2 and stops at a predetermined position surrounded by four robots 11, 12, 13, and 14. The four robots 11, 12, 13, and 14 can simultaneously perform work on the workpiece 1. The robots 11, 12, 13, and 14 are industrial robots, and are configured, for example, as vertical articulated robots with six degrees of freedom of movement. The work performed by the robots is arbitrary, and possible examples include welding, assembly, painting, etc. The number of robots is arbitrary as long as there is more than one, and the configuration of each robot is not limited.

[0103] The four robots 11, 12, 13, and 14 are equipped with controllers 61, 62, 63, and 64. The electrical configuration of each of the controllers 61, 62, 63, and 64 is similar to the configuration of the controller 61 (62) shown in FIG.

[0104] Since the robots 11 and 12 are disposed adjacent to each other, their available working spaces partially overlap, which may cause mechanical interference. In order to prevent the two robots 11 and 12 from colliding with each other, for example, the available working spaces of the two robots 11 and 12 are divided into a plurality of spaces, and the two robots 11 and 12 are controlled so as not to work in the same space at the same time. The same applies to the remaining robots 13 and 14. The simulators 72 provided in each of the four controllers 61, 62, 63, and 64 perform simulation calculations in a distributed manner, taking into account the above-mentioned control for avoiding collisions.

[0105] Although the preferred embodiment and modified examples of the present disclosure have been described above, the above configurations can be modified, for example, as follows. A single modification may be made, or multiple modifications may be made in any combination.

[0106] The process of step S108 shown in FIG. 7 can be omitted. In this case, the determination in step S107 is that the condition change simulation time t S is the current simulation time t S If it is earlier than simulation time t S is the simulation time t S Or, the simulation time t is returned to the previous time (step S109). S Then, the simulator 72 performs simulation calculations again.

[0107] Simulation calculations for multiple robots may be performed in one physical computer. For example, by using a multi-process or multi-thread technique, multiple simulators 72 shown in Fig. 2 or Fig. 9 can be constructed in one computer, and multiple simulation calculations can be performed simultaneously in parallel.

[0108] Each of the controllers 61 and 62 in Fig. 8 may include a copy storage unit 76 shown in Fig. 9. In this case, a simulation control device 81 controls the re-execution of the simulation calculation by the copy of the simulator 72.

[0109] In the above example, in the simulation calculation performed by the controllers 61 and 62, the simulation time t S The rate of progress is the actual time t R However, since the load of the simulation calculation varies depending on the situation, the simulation time t S The same is true for the simulation calculations performed by the controller 62.

[0110] The functions of the elements disclosed herein can be performed using circuits or processing circuits, including general purpose processors, special purpose processors, integrated circuits, Application Specific Integrated Circuits (ASICs), conventional circuits, and / or combinations thereof, configured or programmed to perform the disclosed functions. Processors are considered processing circuits or circuits because they include transistors and other circuits. In this disclosure, a circuit, unit, or means is hardware that performs the recited functions or hardware that is programmed to perform the recited functions. The hardware may be hardware disclosed herein or other known hardware that is programmed or configured to perform the recited functions. In the case where the hardware is a processor, which is considered a type of circuit, the circuit, means, or unit is a combination of hardware and software, and the software is used to configure the hardware and / or the processor. [Explanation of symbols]

[0111] 11 Robot (First Robot) 12 Robot (Second Robot) 50, 50x1, 50x2 Distributed Simulation Device 61,62 Controller 72A No. 1 Simulator 72B No. 2 Simulator 73 Condition change detection unit 74 Condition Change Transmitter 75 Recalculation Control Section t S Simulation Time

Claims

1. a first simulator that performs a simulation calculation of the first robot while progressing a simulation time at a speed faster than a speed at which real time progresses; a second simulator that performs a simulation calculation of a second robot while progressing a simulation time at a speed faster than a speed at which real time progresses, independently of a simulation time of the first simulator; a condition change detection unit that detects a change in a condition of the simulation calculation of the second simulator caused by a result of the simulation calculation of the first simulator; a recalculation control unit that, when a simulation time of the second simulator precedes a condition change simulation time indicating a simulation time at which a condition of a simulation calculation of the second simulator changes, returns the simulation time of the second simulator to the condition change simulation time or an earlier simulation time and causes the second simulator to perform a simulation calculation again from the returned simulation time; A distributed simulation device comprising:

2. 2. The distributed simulation device according to claim 1, the recalculation control unit, when the simulation time of the second simulator precedes the condition change simulation time and it becomes necessary to redo the simulation calculation of the second simulator due to a change in conditions, reverts the simulation time of the second simulator to the condition change simulation time or an earlier simulation time, and causes the second simulator to perform the simulation calculation again from the returned simulation time, the distributed simulation device.

3. 3. The distributed simulation device according to claim 1, A distributed simulation apparatus, wherein the recalculation control unit is provided in the same computer as the second simulator.

4. 3. The distributed simulation device according to claim 1, A distributed simulation apparatus, wherein the recalculation control unit is provided in a computer that is physically different from the first simulator and the second simulator.

5. a first simulator that performs a simulation calculation of the first robot while progressing a simulation time at a speed faster than a speed at which real time progresses; a second simulator that performs a simulation calculation of a second robot while progressing a simulation time at a speed faster than a speed at which real time progresses, independently of a simulation time of the first simulator; a copy storage unit capable of storing a copy of the second simulator at an appropriate timing; a condition change detection unit that detects a change in a condition of the simulation calculation of the second simulator caused by a result of the simulation calculation of the first simulator; a recalculation control unit that, when a simulation time of the second simulator precedes a condition change simulation time indicating a simulation time at which a condition of a simulation calculation of the second simulator changes, causes the replica that holds a state at a simulation time prior to the condition change simulation time to perform a simulation calculation again; A distributed simulation device comprising:

6. a first simulator that performs a simulation calculation of the first robot while progressing a simulation time at a speed faster than a speed at which real time progresses; a second simulator that performs a simulation calculation of a second robot while progressing a simulation time at a speed faster than a speed at which real time progresses, independently of a simulation time of the first simulator; A distributed simulation method for performing a simulation calculation in a distributed manner, comprising: Detecting a change in the conditions of the simulation calculation of the second simulator caused by the result of the simulation calculation of the first simulator; A distributed simulation method, in which, when the simulation time of the second simulator precedes a condition change simulation time indicating a simulation time at which a condition of a simulation calculation of the second simulator changes, the second simulator is controlled so as to return the simulation time of the second simulator to the condition change simulation time or an earlier simulation time and perform the simulation calculation again.

7. 7. A distributed simulation method according to claim 6, comprising: A distributed simulation method, in which, when the simulation time of the second simulator precedes the simulation time of the condition change and it becomes necessary to redo the simulation calculation of the second simulator due to a change in conditions, the second simulator is controlled so as to return the simulation time of the second simulator to the simulation time of the condition change or an earlier simulation time and perform the simulation calculation again.

8. a first simulator that performs a simulation calculation of the first robot while progressing a simulation time at a speed faster than a speed at which real time progresses; a second simulator that performs a simulation calculation of a second robot while progressing a simulation time at a speed faster than a speed at which real time progresses, independently of a simulation time of the first simulator; A distributed simulation method for performing a simulation calculation in a distributed manner, comprising: storing a copy of the second simulator at an appropriate time; Detecting a change in the conditions of the simulation calculation of the second simulator caused by a result of the simulation calculation of the first simulator; A distributed simulation method, in which, when the simulation time of the second simulator precedes a condition change simulation time indicating the simulation time at which a condition of the simulation calculation of the second simulator changes, the replica that holds the state at the simulation time prior to the condition change simulation time is caused to perform a simulation calculation.

Citation Information

Patent Citations

  • Simulation program, simulation device and simulation method

    JP2012063872A