Multi-agent simulation system
By implementing time-based message filtering in the central controller of the multi-body simulation system, the problem of waste of communication resources is solved, and the message quantity is reduced and the simulation accuracy is maintained.
Patent Information
- Application Number
- CN202210629954.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-06-08
- Filing Date
- 2022-06-06
- Publication Date
- 2025-03-14
- Estimated Expiration
- 2042-06-06
AI Technical Summary
In a multi-body simulation system, the central controller publishes too much messages to the main simulator, resulting in unnecessary consumption of communication resources.
By implementing a message filtering mechanism in the central controller, the number of messages published is controlled according to the processing time intervals of each body simulator, reducing unnecessary message delivery.
It effectively reduces the amount of messages from the central controller to the main simulator, reduces the consumption of communication resources, and maintains simulation accuracy.
Smart Images

Figure CN115460285B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a multi-agent simulation (MAS) technology for simulating an object world in which multiple interacting agents (intelligent bodies, agents) exist. Background Art
[0002] Patent document 1 discloses a distributed simulation system in which multiple simulators exchange data via a network and perform simulation. The distributed simulation system includes a distributed simulation control device that controls data exchange between multiple simulators. The distributed simulation control device monitors data updates in each simulator and notifies each simulator of the data update content. Each simulator monitors data updates in other simulators notified by the distributed simulation control device. When data maintained by one's own simulator is updated in other simulators, access to the data maintained by one's own simulator is restricted. When referring to data with restricted access, one's own simulator imports the data updated in other simulators and updates the data of one's own simulator.
[0003] Patent Document 2 and Patent Document 3 are also cited as documents indicating the technical level at the time of filing the application in the technical field of the present disclosure.
[0004] Prior art literature
[0005] Patent Document 1: Japanese Patent Application Laid-Open No. 10-312369
[0006] Patent Document 2: Japanese Patent Application Publication No. 2006-079341
[0007] Patent Document 3: Japanese Patent Application Publication No. 2009-043077 Summary of the invention
[0008] Problems to be solved by the invention
[0009] Consider multi-agent simulation (Multi-AgentSimulation) that simulates an object world in which multiple agents interact with each other. In a multi-agent simulation, multiple agent simulators are set up, and the multiple agent simulators perform simulations of multiple agents respectively, and messages are exchanged between these multiple agent simulators. For this purpose, a central controller (center controller) is set between the multiple agent simulators. The central controller communicates with each agent simulator and publishes (forwards, transmits) messages received from a certain agent simulator to other agent simulators. In this configuration, if all messages are published from the central controller to each agent simulator, the communication volume from the central controller to the entire agent simulator will increase. Unnecessary increase in communication volume will lead to unnecessary consumption of communication resources.
[0010] An object of the present disclosure is to provide a technique capable of suppressing an unnecessary increase in communication volume in a multi-agent simulation.
[0011] Technical solutions to solve problems
[0012] One aspect of the present disclosure relates to a multi-agent simulation system that simulates an object world in which there are multiple interacting agents.
[0013] The multi-agent simulation system has:
[0014] a plurality of subject simulators that perform respective simulations of the plurality of subjects; and
[0015] A central controller that communicates with the plurality of subject simulators.
[0016] The object subject is a subject assigned to each of the plurality of subject simulators.
[0017] The central controller publishes at least one publication message indicating a state of at least one other subject different from the object subject to each subject simulator.
[0018] Each subject simulator,
[0019] Determine the state of the subject by simulating the subject based on the state of other subjects indicated by the published message;
[0020] A result message representing the state of the object body obtained as a result of the simulation is sent to the central controller.
[0021] The central controller publishes the result messages received from each subject simulator as new publish messages.
[0022] Multiple agent simulators including:
[0023] a first subject simulator that performs simulation of the first subject at a first processing time interval; and
[0024] The second subject simulator performs simulation of a second subject different from the first subject at a second processing time interval longer than the first processing time interval.
[0025] The central controller sets the number of second distribution messages distributed to the second agent simulator per unit time to be smaller than the number of first distribution messages distributed to the first agent simulator per unit time.
[0026] Effects of the Invention
[0027] According to the present disclosure, the central controller performs message filtering based on the processing time interval of each subject simulator. More specifically, the central controller sets a smaller number of published messages to be published per unit time to the subject simulator with a longer processing time interval. As a result, the amount of messages published from the central controller to the subject simulator is reduced as a whole. That is, it is possible to suppress unnecessary increase in communication volume and unnecessary consumption of communication resources. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] Figure 1 It is a diagram showing an overview of a multi-agent simulation system according to an embodiment of the present disclosure.
[0029] Figure 2 It is a diagram showing an overview of a multi-agent simulation system according to an embodiment of the present disclosure.
[0030] Figure 3 This is a diagram for explaining an example of message exchange in a multi-agent simulation system according to an embodiment of the present disclosure.
[0031] Figure 4 This is a diagram for explaining an example of message filtering based on a time perspective according to an embodiment of the present disclosure.
[0032] Figure 5 It is a block diagram for explaining message filtering based on a time perspective according to an embodiment of the present disclosure.
[0033] Figure 6 This is a block diagram showing a configuration example related to message filtering based on a time perspective according to an embodiment of the present disclosure.
[0034] Figure 7 This is a block diagram showing a configuration example related to message filtering based on a time perspective according to an embodiment of the present disclosure.
[0035] Figure 8 This is a conceptual diagram for explaining an overview of message filtering based on a spatial viewpoint according to an embodiment of the present disclosure.
[0036] Fig. 9 This is a block diagram for explaining an overview of message filtering based on a spatial perspective according to an embodiment of the present disclosure.
[0037] Fig.10 This is a diagram for explaining an overview of message filtering based on a spatial perspective according to an embodiment of the present disclosure.
[0038] Fig.11 This is a block diagram showing a first configuration example related to message filtering based on a spatial viewpoint according to an embodiment of the present disclosure.
[0039] Fig.12 This is a block diagram showing a second configuration example related to message filtering based on a spatial viewpoint according to an embodiment of the present disclosure.
[0040] Fig.13 This is a conceptual diagram for explaining an example of mode switching in the central controller involved in the embodiment of the present disclosure.
[0041] Fig.14 It is a block diagram showing the overall structure and information flow of a multi-agent simulation system involved in an embodiment of the present disclosure.
[0042] Fig.15 This is a block diagram showing the structure and information flow of an agent simulator for a pedestrian agent according to an embodiment of the present disclosure.
[0043] Fig.16 This is a block diagram showing the structure and information flow of a subject simulator for an autonomous mobile body according to an embodiment of the present disclosure.
[0044] Fig.17 This is a block diagram showing the structure and information flow of a subject simulator for a VR pedestrian subject according to an embodiment of the present disclosure.
[0045] Fig.18 This is a block diagram showing the configuration and information flow of a main body simulator for a roadside sensor main body according to an embodiment of the present disclosure.
[0046] Fig.19 It is a diagram showing an example of the physical configuration of a multi-agent simulation system according to an embodiment of the present disclosure.
[0047] Description of symbols
[0048] 2 simulation object world (virtual world); 4 subject; 10 computer; 100 multi-agent simulation system; 200 subject simulator; 210 transceiver (send and receive) controller; 220 3D physics engine (engine); 230 service system client simulator; 240 simulator core (core); 300 central controller; 310 mobile message dispatcher (dispatcher); 311 message filter (filter); 312 receiving queue (queue); 313 sending queue; 314 forwarding unit; 315 message filter; 320 simulation orchestrator (conductor); 400 back-end server for service system (back-end server); MR result message; MD release message; REF1 reference information; REF2 reference information. DETAILED DESCRIPTION
[0049] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.
[0050] 1. Overview of Multi-agent Simulation System
[0051] use Figures 1 to 3 The following is an overview of a multi-agent simulation system according to an embodiment of the present disclosure. Hereinafter, the multi-agent simulation system is abbreviated as a MAS system.
[0052] 1-1. Overview of MAS system
[0053] Figure 1 The general structure of the MAS system 100 of the present embodiment is shown. The MAS system 100 simulates a simulation object world 2 as a simulation object by allowing a plurality of subjects 4 to interact with each other. The simulation object world 2 is not particularly limited. For example, the simulation object world 2 is a world where people and mobile bodies (such as robots and vehicles) coexist and can receive various services provided by using the mobile bodies. For example, the simulation object world 2 is a city (street). As services provided in the simulation object world 2, for example, on-demand buses (buses) using autonomous driving vehicles, mobility services such as scheduled buses, and logistics services that use autonomous mobile robots to deliver goods (luggage) can be listed.
[0054] There are a large number of various subjects 4 in the simulation object world 2. The subjects 4 constituting the simulation object world 2 include subjects 4 representing moving objects and subjects 4 representing stationary objects. As moving objects represented as subjects 4, pedestrians, robots, slow-moving vehicles, vehicles, pedestrians participated by real people using a VR (virtual reality) system, elevators, etc. can be exemplified. As stationary objects represented as subjects 4, sensors including cameras, automatic doors, etc. can be exemplified.
[0055] exist Figure 1 In the example shown, there are three agents 4A, 4B, and 4C in the simulation object world 2. Among them, agents 4A and 4B represent robots, and agent 4C represents a pedestrian. In addition, although agents 4A and 4B belong to the same category of robots, they differ in size, shape, travel speed, movement, etc. Therefore, agents 4A and 4B differ in the visual information that pedestrians, i.e., agent 4C, can obtain from them.
[0056] In the following description, the simulation target world 2 which is a virtual world may be distinguished from the real world and referred to as the virtual world 2.
[0057] The MAS system 100 includes a plurality of subject simulators 200. The subject simulator 200 is provided for each subject 4 and performs simulation of each subject 4. Figure 1 In the example shown, the subject simulators 200-A, 200-B, and 200-C are provided for the subjects 4A, 4B, and 4C, respectively, and simulate the subjects 4A, 4B, and 4C, respectively. Each subject simulator 200 has a different configuration according to the type of subject to be used. For example, the subject simulators 200-A and 200-B for the subjects 4A and 4B related to the robot have similar configurations to each other, while the subject simulator 200-C for the subject 4C related to the pedestrian has a different configuration from the subject simulators 200-A and 200-B. The configuration of the subject simulator 200 that differs according to the type of subject 4 will be described in detail later.
[0058] Multiple subject simulators 200 enable multiple subjects 4 to interact with each other and simulate the states of multiple subjects 4 by exchanging messages. The messages exchanged between the subject simulators 200 include information related to the position / movement of the subject 4 in the virtual world 2 (movement information). The movement information includes information about the current situation and future plans related to the position / movement of the subject. Information about the current situation refers to, for example, the position, direction, speed, and acceleration at the current moment. Information about future plans refers to, for example, a list of positions, directions, speeds, and accelerations at future moments. Hereinafter, messages related to the position / movement of the subject 4 exchanged between the subject simulators 200 are referred to as movement messages.
[0059] Each subject simulator 200 calculates the state of the target subject (its own subject) based on the state of the subjects surrounding the target subject (its own subject) as the simulation object. The surrounding subjects are interactive subjects that exist around the own subject and interact with the own subject. In addition, the information indicating the state of the surrounding subjects is a mobile message. Each subject simulator 200 can grasp the state of the surrounding subjects by exchanging mobile messages with other subject simulators 200.
[0060] exist Figure 1 In the example shown, the subject simulator 200-A grasps the states of the subjects 4B and 4C based on the movement messages received from the subject simulators 200-B and 200-C, and updates the state of the subject 4A based on the states of the subjects 4B and 4C. Furthermore, the subject simulator 200-A sends the movement message indicating the updated state of the subject 4A to the subject simulators 200-B and 200-C. The same process is also performed in the subject simulators 200-B and 200-C. In this way, the states of the subjects 4A, 4B, and 4C are simulated while the subjects 4A, 4B, and 4C interact with each other.
[0061] Regarding the updating of the state of the subject by the subject simulator 200, there are two methods of updating at a certain time interval and updating when certain events are detected. However, even in the latter method, if the state is not updated for too long, it will have a great impact on the surrounding subjects, so an event is forced to occur at a certain time interval to update the state. The time interval for updating the state of the subject by the subject simulator 200 is called the time granularity.
[0062] There are a large number of subjects 4 in the virtual world 2 that is a simulation object of the MAS system 100. However, their time granularities are not the same. Assuming that the time granularity of all subjects 4 is the same, in order to maintain the execution performance of the MAS, it is necessary to set the time granularity of each subject 4 according to the object with the fastest state change speed. However, in this case, in the subject 4 whose state changes slowly, calculations will be performed at a time granularity smaller than the required time granularity. In the MAS, the interaction between the subjects 4 is carried out through the exchange of mobile messages, so if the time granularity becomes smaller, the time interval for sending mobile messages will also become shorter accordingly. As a result, as a system as a whole, the amount of mobile messages increases, which will waste computing resources.
[0063] Therefore, in the MAS system 100, the time granularity of the subject 4 may also be different depending on the type of subject 4. For example, the walking speed of pedestrians in the real world is about 1m / sec (meter / second). Therefore, when the subject 4 is a pedestrian, the time granularity can be on the order of 1sec or 100msec (milliseconds). On the other hand, when the subject 4 is a robot, a time granularity of the order of 100msec is desired, preferably a time granularity of the order of 10msec. This is because robots require faster and more accurate movements than pedestrians. In the real world, the faster the movement speed required of the robot, the control itself will become invalid if it is not controlled at shorter time intervals. This is also fully applicable to simulation. If the time granularity is not reduced according to the required movement speed, the required movement of the robot cannot be simulated.
[0064] exist Figure 1 In the example shown, the time granularity of the robot subjects 4A and 4B in the virtual world 2 is set to 20 msec, and the time granularity of the pedestrian subject 4C is set to 100 msec. Each subject simulator 200-A, 200-B, 200-C performs simulation in a control cycle corresponding to the time granularity of the subject 4A, 4B, 4C it is responsible for. Figure 1 The two robot bodies 4A and 4B shown have the same time granularity, but even if they are the same type of bodies, there are cases where the time granularity is set differently depending on their purposes.
[0065] In the MAS system 100, simulation is performed by exchanging mobile messages between the main body simulators 200. However, the mobile message exchange for simulation is not directly performed between the main body simulators 200. The MAS system 100 includes a central controller 300 that communicates with each main body simulator 200. The mobile message is relayed by the central controller 300 and exchanged between the main body simulators 200.
[0066] exist Figure 1 In the example shown, the central controller 300 receives the movement message output from the main body simulator 200-A. Furthermore, the central controller 300 sends the movement message of the main body simulator 200-A to the main body simulators 200-B and 200-C. Similarly, the movement message of the main body simulator 200-B is sent by the central controller 300 to the main body simulators 200-A and 200-C, and the movement message of the main body simulator 200-C is sent by the central controller 300 to the main body simulators 200-A and 200-B.
[0067] 1-2. Exchange of mobile messages in the MAS system
[0068] Figure 2 FIG. 1 shows an overview of the exchange of mobile messages in the MAS system 100. In the MAS system 100, each agent simulator 200 sends mobile messages to each other at a time interval corresponding to the time granularity of the simulated agent, not at the same time interval. Assume that the time granularity of each agent 4A, 4B, 4C is as follows: Figure 1 As shown, the subject simulators 200-A and 200-B send mobile messages at a time interval of 20 msec, and the subject simulator 200-C sends mobile messages at a time interval of 100 msec.
[0069] The central controller 300 that receives the mobile messages from the main body simulators 200-A, 200-B, and 200-C transmits the received mobile messages by broadcasting at the same time intervals. Thus, for the main body simulator 200-A, the mobile messages from the main body simulator 200-B are transmitted at a time interval of 20 msec, and the mobile messages from the main body simulator 200-C are transmitted at a time interval of 100 msec. Similarly, for the main body simulator 200-B, the mobile messages from the main body simulator 200-A are transmitted at a time interval of 20 msec, and the mobile messages from the main body simulator 200-C are transmitted at a time interval of 100 msec. In addition, for the main body simulator 200-C, the mobile messages from the main body simulators 200-A and 200-B are transmitted at a time interval of 20 msec.
[0070] As described above, in the MAS system 100, each agent simulator 200 transmits mobile messages between the agent simulators 200 at a transmission time interval corresponding to the time granularity of the simulated agent 4, not at the same transmission time interval. As a result, it is possible to suppress an increase in the amount of messages exchanged between the agent simulators 200 while maintaining the execution performance of the MAS. In addition, since the central controller 300 transmits the received mobile messages at the same time interval, it is possible to prevent an old mobile message from arriving at the destination agent simulator 200 before a new mobile message. Furthermore, by using broadcasting as a method for transmitting mobile messages by the central controller 300, the load of the central controller 300 can be reduced.
[0071] Furthermore, in the real world, the current state of a certain entity is determined by the relationship with the current states of other interacting entities. Therefore, in order to simulate the current state of the subject in the virtual world 2, it is necessary to obtain information related to the current states of the interacting surrounding subjects. However, in the MAS system 100, there are differences in the time intervals for sending mobile messages between the subject simulators 200 depending on the time granularity of the subject in charge. In addition, since the sending of mobile messages is discrete, even between the subject simulators 200 with the same sending time interval, there is a situation where the exchange timing of mobile messages is staggered (deviation). Furthermore, depending on the processing power of the CPU and the network capacity, there is also a situation where the sending and receiving of mobile messages between the subject simulators 200 via the central controller 300 causes time delays.
[0072] Therefore, in the MAS system 100, each agent simulator 200 performs the following first to sixth processes when simulating the current state of the agent it is responsible for.
[0073] In the first process, the agent simulator 200 generates the state of the surrounding agents at the time of obtaining the mobile message based on the mobile message sent from the central controller 300. In the second process, the agent simulator 200 stores the state of the surrounding agents generated in the first process in the memory.
[0074] In the third process, the subject simulator 200 estimates the current state of the surrounding subject based on the past state of the surrounding subject stored in the memory in the second process. When the number of past states of the surrounding subject stored in the memory is two or more, the subject simulator 200 estimates the current state of the surrounding subject by linear extrapolation based on the latest two or more past states of the surrounding subject. When the number of past states of the surrounding subject stored in the memory is one, the subject simulator 200 estimates the only past state of the surrounding subject as the current state of the surrounding subject.
[0075] In the fourth process, the subject simulator 200 simulates the current state of the subject using the current state of the surrounding subjects estimated in the third process. In the fifth process, the subject simulator 200 creates a mobile message based on the current state of the subject simulated in the fourth process. Then, in the sixth process, the subject simulator 200 sends the mobile message created in the fifth process to the central controller 300.
[0076] In the MAS system 100, the above processing is performed by each agent simulator 200. Therefore, even if there is a time delay in the transmission and reception of mobile messages between the agent simulators 200 via the central controller 300, the current state of each agent can be simulated with high accuracy. In addition, even if there is a deviation in the transmission timing of mobile messages between the agent simulators 200, the current state of each agent can be simulated with high accuracy. Furthermore, even if there is a difference in the transmission time interval of mobile messages between the agent simulators 200 due to the difference in time granularity between the agents, the current state of each agent can be simulated with high accuracy.
[0077] 1-3. Example of message exchange
[0078] Figure 3 FIG. 1 shows an example of the exchange of mobile messages between the agent simulators 200-A, 200-B, and 200-C in the MAS system 100. However, for the sake of simplicity, the central controller 300 that relays the transmission and reception of mobile messages between the agent simulators 200-A, 200-B, and 200-C is omitted. Assume that the time granularity of each agent 4A, 4B, and 4C is as follows: Figure 1 As shown, the subject simulators 200-A and 200-B send mobile messages at a time interval of 20 msec, and the subject simulator 200-C sends mobile messages at a time interval of 100 msec.
[0079] Here, a time delay of 12 msec is allowed between the main body simulator 200-A and the main body simulator 200-B. A time delay of 14 msec is allowed between the main body simulator 200-A and the main body simulator 200-C. Furthermore, a time delay of 10 msec is allowed between the main body simulator 200-B and the main body simulator 200-C.
[0080] Each of the subject simulators 200-A, 200-B, and 200-C starts the simulation at time t=0. However, the time of the internal clock of the computer functioning as the subject simulator 200-A, 200-B, and 200-C is not necessarily consistent. Therefore, the start time of the simulation may be different between the subject simulators 200-A, 200-B, and 200-C. In the MAS system 100, the exchange of mobile messages between the subject simulators 200-A, 200-B, and 200-C is performed based on the difference in the start time of the simulation.
[0081] In the following description, for simplicity, A[t] means a mobile message indicating the state of the agent 4A at time t. B[t] means a mobile message indicating the state of the agent 4B at time t. C[t] is a mobile message indicating the state of the agent 4C at time t. The following describes the processing performed by the agent simulators 200-A, 200-B, and 200-C in a time series.
[0082] First, each agent simulator 200-A, 200-B, 200-C sends a mobile message A[0], B[0], C[0] indicating the initial state of each agent 4A, 4B, 4C. In the initial state, each agent simulator 200-A, 200-B, 200-C cannot recognize the existence of surrounding agents, and therefore generates mobile messages A[0], B[0], C[0] assuming that there are no surrounding agents.
[0083] The next transmission time of the subject simulator 200-A is time t=20. The subject simulator 200-A receives the mobile messages B[0] and C[0] before time t=20. The subject simulator 200-A identifies the state of the subject 4B at time t=0 based on the mobile message B[0], and estimates the state of the subject 4B at time t=0 as the current state of the subject 4B. In addition, the subject simulator 200-A identifies the state of the subject 4C at time t=0 based on the mobile message C[0], and estimates the state of the subject 4C at time t=0 as the current state of the subject 4C. The subject simulator 200-A determines the state of the subject 4A at time t=20 by simulation using the estimated states of the subjects 4B and 4C, and sends the mobile message A
[20] .
[0084] The next transmission time of the subject simulator 200-A is time t=40. The subject simulator 200-A newly receives the mobile message B
[20] from the subject simulator 200-B before time t=40, but does not receive a new mobile message from the subject simulator 200-C. The subject simulator 200-A recognizes the state of the subject 4B at time t=20 based on the mobile message B
[20] , and estimates the current state of the subject 4B by linear interpolation based on the state of the subject 4B at time t=0 and time t=20. In addition, the subject simulator 200-A estimates the state of the subject 4C at time t=0 as the current state of the subject 4C. The subject simulator 200-A determines the state of the subject 4A at time t=40 through simulation using the estimated states of the subjects 4B and 4C, and sends the mobile message A
[40] .
[0085] The next transmission time of the subject simulator 200-A is time t=60. The subject simulator 200-A newly receives the mobile message B
[40] from the subject simulator 200-B before time t=60, but does not receive a new mobile message from the subject simulator 200-C. The subject simulator 200-A estimates the current state of the subject 4B by linear interpolation based on the state of the subject 4B at time t=20 and time t=40. In addition, the subject simulator 200-A estimates the state of the subject 4C at time t=0 as the current state of the subject 4C. The subject simulator 200-A determines the state of the subject 4A at time t=60 through simulation using the estimated states of the subjects 4B and 4C, and sends the mobile message A
[60] .
[0086] The next transmission time of the subject simulator 200-A is time t=80. The subject simulator 200-A newly receives the mobile message B
[60] from the subject simulator 200-B before time t=80, but does not receive a new mobile message from the subject simulator 200-C. The subject simulator 200-A estimates the current state of the subject 4B by linear extrapolation based on the state of the subject 4B at time t=40 and time t=60. In addition, the subject simulator 200-A estimates the state of the subject 4C at time t=0 as the current state of the subject 4C. The subject simulator 200-A determines the state of the subject 4A at time t=80 through simulation using the estimated states of the subjects 4B and 4C, and sends the mobile message A
[80] .
[0087] The next transmission time of the subject simulator 200-A is time t=100. The subject simulator 200-A newly receives the mobile message B
[80] from the subject simulator 200-B before time t=100, but does not receive a new mobile message from the subject simulator 200-C. The subject simulator 200-A estimates the current state of the subject 4B by linear extrapolation based on the state of the subject 4B at time t=60 and time t=80. In addition, the subject simulator 200-A estimates the state of the subject 4C at time t=0 as the current state of the subject 4C. The subject simulator 200-A determines the state of the subject 4A at time t=100 by simulation using the states of the subjects 4B and 4C estimated in this way, and sends the mobile message A
[100] .
[0088] The next transmission time of the subject simulator 200-A is time t=120. The subject simulator 200-A receives a new mobile message B
[100] from the subject simulator 200-B before time t=120, and also receives a new mobile message C
[100] from the subject simulator 200-C. The subject simulator 200-A recognizes the state of the subject 4B at time t=100 based on the mobile message B
[100] , and estimates the current state of the subject 4B by linear extrapolation based on the state of the subject 4B at time t=80 and time t=100. In addition, the subject simulator 200-A recognizes the state of the subject 4C at time t=100 based on the mobile message C
[100] , and estimates the current state of the subject 4C by linear extrapolation based on the state of the subject 4C at time t=0 and time t=100. The agent simulator 200-A determines the state of the agent 4A at time t=120 by performing a simulation using the states of the agents 4B and 4C estimated in this way, and transmits a movement message A
[120] .
[0089] The processing of the agent simulator 200-B is the same as that of the agent simulator 200-A. The agent simulator 200-B determines the state of the agent 4B at time t=20, 40, 60, 80, 100, 120, 140. The agent simulator 200-B sends mobile messages B
[20] , B
[40] , B
[60] , B
[80] , B
[100] , B
[120] , B
[140] indicating the state at each time.
[0090] The next transmission time of the main body simulator 200-C is time t=100. The main body simulator 200-C receives the mobile messages A[0], A
[20] , A
[40] , A
[60] , A
[80] from the main body simulator 200-A before time t=100. The main body simulator 200-C estimates the current state of the main body 4A by linear extrapolation based on the two latest past states of the main body 4A, that is, the states at time t=60 and time t=80. In addition, the main body simulator 200-C receives the mobile messages B[0], B
[20] , B
[40] , B
[60] , B
[80] from the main body simulator 200-B before time t=100. The main body simulator 200-C estimates the current state of the main body 4B by linear extrapolation based on the two latest past states of the main body 4B, that is, the states at time t=60 and time t=80. The agent simulator 200-C determines the state of the agent 4C at time t = 100 by performing a simulation using the states of the agents 4A and 4B estimated in this way. Then, the agent simulator 200-C transmits a movement message C
[100] .
[0091] 2. Message filtering
[0092] Hereinafter, the subject 4 assigned to each subject simulator 200-i (i=1 to N) will be referred to as the "object subject 4i". Here, N is the total number of subject simulators 200, which is an integer greater than 2. Each subject simulator 200-i simulates the assigned object subject 4i. As described above, messages are used in the simulation. For convenience, the message published from the central controller 300 to the subject simulator 200-i will be referred to as the "published message MD-i". On the other hand, the message indicating the state of the object subject 4i obtained as a result of the simulation in the subject simulator 200-i will be referred to as the "result message MR-i".
[0093] The central controller 300 issues a release message MD-i to the subject simulator 200-i. The release message MD-i issued to the subject simulator 200-i includes at least one result message MR-j indicating the state of at least one other subject 4j (j=1 to N, j≠i) different from the target subject 4i. The subject simulator 200-i simulates the target subject 4i based on the state of the other subject 4j indicated by the release message MD-i, and determines the state of the target subject 4i. Furthermore, the subject simulator 200-i sends the result message MR-i indicating the state of the target subject 4i obtained as a result of the simulation to the central controller 300. The central controller 300 issues (forwards) the result message MR-i received from the subject simulator 200-i as a new release message MD.
[0094] In this configuration, if all messages are published from the central controller 300 to each subject simulator 200-i, the communication volume from the central controller 300 to the subject simulator 200 as a whole will increase. Unnecessary increase in communication volume will lead to unnecessary consumption of communication resources. Therefore, in order to suppress unnecessary increase in communication volume, the central controller 300 involved in this embodiment performs a process of appropriately selecting result messages MR to be published (forwarded) as publish messages MD. This process is hereinafter referred to as "message filtering".
[0095] The message filtering involved in this embodiment is described below, and in particular, two types of message filtering based on a time perspective and message filtering based on a space perspective are described in detail.
[0096] 2-1. Message filtering based on time perspective
[0097] 2-1-1. Summary
[0098] First, the message filtering based on the time viewpoint is explained. As described above, the plurality of subject simulators 200 may include subject simulators with different processing time intervals (time granularity). In this case, for subject simulators 200 with a relatively long processing time interval, it is not necessary to publish all result messages MR as published messages MD, and message filtering can also be performed.
[0099] As an example, consider the above Figure 3 The situation shown in . The processing time interval TA of the subject simulator 200-A is 20msec. The processing time interval TB of the subject simulator 200-B is 20msec. The processing time interval TC of the subject simulator 200-C is 100msec. That is, the processing time interval TC of the subject simulator 200-C is relatively long. The subject simulator 200-C receives mobile messages A[0], A
[20] , A
[40] , A
[60] , A
[80] from the subject simulator 200-A, and receives mobile messages B[0], B
[20] , B
[40] , B
[60] , B
[80] from the subject simulator 200-B. However, the simulation of the object subject 4C uses mobile messages A
[60] , A
[80] , B
[60] , B
[80] . The other mobile messages A[0], A
[20] , A
[40] , B[0], B
[20] , B
[40] are not necessary for the simulation. That is, mobile messages A[0], A
[20] , A
[40] , B[0], B
[20] , B
[40] are issued to the agent simulator 200-C having a long processing time interval TC, causing the communication volume to increase unnecessarily.
[0100] So, if Figure 4As shown, the central controller 300 performs message filtering. That is, although the central controller 300 receives mobile messages A[0], A
[20] , A
[40] , A
[60] , and A
[80] from the main body simulator 200-A, it does not publish the mobile messages A[0], A
[20] , and A
[40] to the main body simulator 200-C, but selectively publishes (forwards) the mobile messages A
[60] and A
[80] to the main body simulator 200-C. Similarly, although the central controller 300 receives mobile messages B[0], B
[20] , B
[40] , B
[60] , and B
[80] from the main body simulator 200-B, it does not publish the mobile messages B[0], B
[20] , and B
[40] to the main body simulator 200-C, but selectively publishes (forwards) the mobile messages B
[60] and B
[80] to the main body simulator 200-C. This can suppress unnecessary increase in communication volume and unnecessary consumption of communication resources. In addition, even if such message filtering is performed, the simulation accuracy in the subject simulator 200-C does not change.
[0101] The summary is as follows. Consider Figure 5 The two subject simulators 200 shown are the first subject simulator 200-X and the second subject simulator 200-Y. The first subject simulator 200-X simulates the first subject (object subject) 4X at the first processing time interval TX. On the other hand, the second subject simulator 200-Y simulates the second subject (object subject) 4Y at the second processing time interval TY. The second processing time interval TY is longer than the first processing time interval TX. In this case, the central controller 300 sets the number of second release messages MD-Y issued to the second subject simulator 200-Y per unit time to be less than the number of first release messages MD-X issued to the first subject simulator 200-X per unit time. Thereby, unnecessary increase in communication volume can be suppressed.
[0102] In more detail, the first subject simulator 200-X sends the first result message MR-X related to the first subject 4X to the central controller 300 at the first frequency corresponding to the first processing time interval TX. The central controller 300 receives the first result message MR-X at the first frequency corresponding to the first processing time interval TX. However, it is not necessary to publish the first result message MR-X to the second subject simulator 200-Y having a longer processing time interval at the same first frequency. For the second subject simulator 200-Y, it is sufficient to publish the first result message MR-X at the second frequency corresponding to the second processing time interval TY. The second frequency corresponding to the second processing time interval TY is lower than the first frequency corresponding to the first processing time interval TX. The central controller 300 selects a part of the first result message MR-X received from the first subject simulator 200-X as the second publishing message MD-Y, and publishes the selected second publishing message MD-Y to the second subject simulator 200-Y. That is, the central controller 300 distributes the second distribution message MD-Y to the second agent simulator 200-Y at the second frequency which is lower than the first frequency.
[0103] The second subject simulator 200-Y determines the state of the second subject 4Y at the second processing time interval TY. The central controller 300 selects a part of the first result message MR-X received from the first subject simulator 200-X as the second published message MD-Y. At this time, the central controller 300 preferably selects the second published message MD-Y in a manner that includes at least the latest first result message MR-X before the timing at which the second subject simulator 200-Y determines the state of the second subject 4Y (see Figure 4 ).exist Figure 4 In the example shown, the two latest first result messages MR-X (e.g., A
[60] , A
[80] ) are selected as the second published message MD-Y. By selecting the second published message MD-Y so as to include at least the latest first result message MR-X, the simulation accuracy related to the second subject 4Y in the second subject simulator 200-Y is improved.
[0104] The second subject simulator 200-Y sends the second result message MR-Y related to the second subject 4Y to the central controller 300 at the second frequency corresponding to the second processing time interval TY. The central controller 300 receives the second result message MR-Y at the second frequency corresponding to the second processing time interval TY. The central controller 300 may also publish all the second result messages MR-Y as the first publishing message MD-X to the first subject simulator 200-X.
[0105] The central controller 300 holds "reference information REF1" indicating the processing time interval in each subject simulator 200-i. For example, the processing time interval in each subject simulator 200-i is preset, and the reference information REF1 is provided to the central controller 300 in advance. Based on the reference information REF1, the central controller 300 grasps the processing time interval in each subject simulator 200-i and adjusts the release message MD issued to each subject simulator 200-i. In other words, the central controller 300 selects the release message MD issued to each subject simulator 200-i according to the processing time interval in each subject simulator 200-i.
[0106] 2-1-2. Configuration example
[0107] Figure 6 FIG. 1 is a block diagram showing an example of a configuration associated with message filtering based on a time perspective. Figure 6 In the example shown, the central controller 300 includes a plurality of message filters 311-1 to 311-N. The plurality of message filters 311-1 to 311-N are respectively set for the plurality of subject simulators 200-1 to 200-N, and filter messages related to the plurality of subject simulators 200-1 to 200-N. That is, the plurality of message filters 311-1 to 311-N respectively adjust the number of published messages MD-1 to MD-N published to the plurality of subject simulators 200-1 to 200-N.
[0108] In more detail, the plurality of message filters 311-1 to 311-N respectively maintain information related to the processing time intervals T1 to TN of the plurality of subject simulators 200-1 to 200-N (reference information REF1). The message filter 311-i adjusts the number of published messages MD-i published to the subject simulator 200-i based on the information of the processing time interval Ti. Figure 5 In the example shown, the first message filter 311-X adjusts the number of first published messages MD-X published to the first subject simulator 200-X based on the information of the first processing time interval TX. The second message filter 311-Y adjusts the number of second published messages MD-Y published to the second subject simulator 200-Y based on the information of the second processing time interval TY. Each message filter 311-i includes a message queue for adjusting the number of published messages MD-i.
[0109] Figure 7An example of the configuration of the subject simulator 200 and the message filter 311 is shown. Multiple message filters 311-1 to 311-N are configured in the same subnet. The subject simulator 200 may also exist in the same subnet. The subject simulator 200 existing in the same subnet sends the result message MR to the multiple message filters 311-1 to 311-N by broadcasting. The subject simulator 200 existing outside the same subnet is connected to the subnet via the gateway 40. The gateway 40 receives the result message MR from the subject simulator 200, and sends the received result message MR to the multiple message filters 311-1 to 311-N by broadcasting. By using broadcasting, the result message MR can be efficiently distributed to each message filter 311-i.
[0110] 2-1-3. Effect
[0111] As described above, in one embodiment, the central controller 300 performs message filtering based on the processing time interval Ti of each subject simulator 200-i. More specifically, the central controller 300 sets a smaller number of published messages MD to be published per unit time to the subject simulator 200 with a longer processing time interval. As a result, the amount of messages published from the central controller 300 to the subject simulator 200 is reduced as a whole. That is, it is possible to suppress unnecessary increase in communication volume and unnecessary consumption of communication resources.
[0112] 2-2. Message filtering based on spatial perspective
[0113] 2-2-1. Summary
[0114] Next, the message filtering from a spatial perspective is described. The distances between agents 4 in the simulation target world 2 vary. Message filtering can be performed even between agents 4 that are far away, without exchanging all messages.
[0115] Here, a short distance between the subjects 4 means a high degree of interaction between the subjects 4, and a long distance between the subjects 4 means a low degree of interaction between the subjects 4. The distance between the subjects 4 can also be said to be the inverse of the degree of interaction between the subjects 4. For example, when two subjects 4 are in a line of sight environment (Line Of Sight), the "straight line distance (Euclidean distance)" or "Manhattan distance" between the two subjects 4 is used.
[0116] The distance between two subjects 4 in a non-line-of-sight environment is as follows. For example, in the case of a simulation based on seeing the other subject 4, since the two subjects 4 cannot see each other, the distance between them can also be considered infinite. As another example, in the case of a simulation based on hearing the sound emitted by the other subject 4, the propagation of the sound is simulated by ray tracing, and the length of the shortest ray (shortest propagation path length) is used as the distance.
[0117] The result message MR-i sent from each agent simulator 200-i to the central controller 300 includes the latest position information of each agent 4i in the simulation target world 2. The central controller 300 holds the spatial composition information of the simulation target world 2. Based on the spatial composition information and the position information of each agent 4i, the central controller 300 can calculate the distance between the agents 4 in the simulation target world 2.
[0118] Figure 8 as well as Fig. 9 This is a conceptual diagram for explaining the outline of message filtering based on a spatial viewpoint. Here, three agents 4X, 4Y, and 4Z and three agent simulators 200-X, 200-Y, and 200-Z are considered. In the simulation object world 2, the distance Dxz between the first agent 4X and the third agent 4Z is greater than the distance Dyz between the second agent 4Y and the third agent 4Z.
[0119] The first subject simulator 200-X simulates the first subject (target subject) 4X. The second subject simulator 200-Y simulates the second subject (target subject) 4Y. The third subject simulator 200-Z simulates the third subject (target subject) 4Z. The first subject simulator 200-X sends a first result message MR-X related to the first subject 4X to the central controller 300. The second subject simulator 200-Y sends a second result message MR-Y related to the second subject 4Y to the central controller 300. The central controller 300 receives the first result message MR-X from the first subject simulator 200-X, and publishes at least a part of the first result message MR-X as a third publication message MD-Z to the third subject simulator 200-Z. In addition, the central controller 300 receives the second result message MR-Y from the second subject simulator 200-Y, and publishes at least a part of the second result message MR-Y as a third publication message MD-Z to the third subject simulator 200-Z.
[0120] exist Figure 8 as well as Fig. 9In the example shown, the distance Dxz between the first subject 4X and the third subject 4Z is greater than the distance Dyz between the second subject 4Y and the third subject 4Z. In this case, the central controller 300 sets the frequency of issuing the first result message MR-X to the third subject simulator 200-Z to be lower than the frequency of issuing the second result message MR-Y to the third subject simulator 200-Z. As a result, it is possible to suppress unnecessary increase in communication volume and unnecessary consumption of communication resources. In addition, even if the frequency of issuing the first result message MR-X related to the distant first subject 4X becomes lower, the simulation accuracy in the third subject simulator 200-Z will not be reduced much.
[0121] like Fig. 9 As shown, the central controller 300 holds reference information REF2. The reference information REF2 includes spatial composition information of the simulated object world 2. The central controller 300 can grasp the distance between the subjects 4 based on the spatial composition information and the position information of each subject 4i included in the result message MR. Furthermore, the reference information REF2 includes function information indicating the correspondence between the distance between the subjects 4 and the publishing frequency. The function information is prepared in advance according to the user's policy (principle). The central controller 300 sets the publishing frequency corresponding to the distance between the subjects 4 based on the function information.
[0122] 2-2-2. Partition division
[0123] like Fig.10 As shown in FIG. 1 , the space of the simulated object world 2 can also be divided into a plurality of partitions P (voxels). The partition structure can be fixed or dynamically changed. For example, the partition structure can also be dynamically set according to the density of the subject 4. In this case, Fig.10 As shown in the example, the high-density area of the main body 4 is divided into more partitions P, and the size of each partition P becomes smaller. The partition structure is determined by a well-known space division algorithm.
[0124] The central controller 300 may also filter messages based on the distance between the partitions P, with the partitions P as the unit. The distance between two partitions P is, for example, the distance between the centers of gravity of the two partitions P. As another example, the distance between two partitions P is the maximum value of the distance between two points belonging to the two partitions P. As another example, the distance between two partitions P is the minimum value of the distance between two points belonging to the two partitions P.
[0125] The central controller 300 determines the partition composition using a well-known space division algorithm. In the above-mentioned reference information REF2, in addition to the spatial composition information of the simulated object world 2, the partition composition information is also added. The central controller 300 calculates the distance between the partitions P based on the reference information REF2. Furthermore, the reference information REF2 includes function information indicating the correspondence between the distance between the partitions P and the publishing frequency. The function information is pre-made according to the user's strategy. The central controller 300 sets the publishing frequency corresponding to the distance between the partitions P based on the function information.
[0126] As an example, consider Fig.10 The three partitions PX, PY, and PZ are shown. In the simulation object world 2, the distance between the first partition PX and the third partition PZ is greater than the distance between the second partition PY and the third partition PZ.
[0127] The central controller 300 receives a first result message MR-X from each subject simulator 200 that performs simulations of each subject 4 belonging to the first partition PX. In addition, the central controller 300 receives a second result message MR-Y from each subject simulator 200 that performs simulations of each subject 4 belonging to the second partition PY. The central controller 300 selects at least a portion of the first result message MR-X and the second result message MR-Y as a third publication message MD-Z for the third partition PZ. Furthermore, the central controller 300 publishes the third publication message MD-Z to each subject simulator 200 that performs simulations of each subject 4 belonging to the third partition PZ. Fig.10 In the example shown, the distance between the first partition PX and the third partition PZ is greater than the distance between the second partition PY and the third partition PZ. In this case, the central controller 300 sets the frequency of publishing the first result message MR-X as the third publishing message MD-Z to be lower than the frequency of publishing the second result message MR-Y as the third publishing message MD-Z.
[0128] For example, Fig.11As shown, the central controller 300 includes a first partition receiving queue 312-X, a second partition receiving queue 312-Y, and a third partition sending queue 313-Z. The first partition receiving queue 312-X stores the first result message MR-X received from each subject simulator 200 that performs simulation of each subject 4 belonging to the first partition PX. The second partition receiving queue 312-Y stores the second result message MR-Y received from each subject simulator 200 that performs simulation of each subject 4 belonging to the second partition PY. The third partition sending queue 313-Z stores the third publishing message MD-Z published to each subject simulator 200 that performs simulation of each subject 4 belonging to the third partition PZ. The central controller 300 forwards the required message in the first result message MR-X stored in the first partition receiving queue 312-X to the third partition sending queue 313-Z. In addition, the central controller 300 forwards the required message in the second result message MR-Y stored in the second partition receiving queue 312-Y to the third partition sending queue 313-Z. Fig.10 In the example shown, the distance between the first partition PX and the third partition PZ is greater than the distance between the second partition PY and the third partition PZ. In this case, the central controller 300 sets the forwarding frequency of the first result message MR-X from the first partition receiving queue 312-X to the third partition sending queue 313-Z to be lower than the forwarding frequency of the second result message MR-Y from the second partition receiving queue 312-Y to the third partition sending queue 313-Z.
[0129] In this way, when the space of the simulation target world 2 is divided into a plurality of partitions P, message filtering is performed in units of the partitions P. This can also suppress unnecessary increase in communication volume and unnecessary consumption of communication resources.
[0130] In addition, by filtering messages in units of partitions P, the computational processing load can be reduced. For example, consider a case where the total number of entities 4 is 1000 and the total number of partitions P is 10. When filtering messages for each entity 4, approximately 10 partitions are required to calculate the distance for all pairs of entities 4. 6 On the other hand, when message filtering is performed for each partition P, the number of calculation processes required to calculate the distance for all pairs of the partition P is 90 times. From the perspective of simulation speed and simulation cost, it is preferable to reduce the calculation processing load.
[0131] 2-2-3. Configuration example
[0132] Fig.111 is a block diagram showing a first configuration example associated with message filtering based on a spatial viewpoint. In the first configuration example, the central controller 300 is designed to perform message filtering based on a "Publish / Subscribe model". More specifically, the central controller 300 includes a plurality of receiving queues 312, a plurality of sending queues 313, and a forwarding unit 314.
[0133] A plurality of receiving queues 312 are respectively provided for a plurality of partitions P. Similarly, a plurality of sending queues 313 are respectively provided for a plurality of partitions P. That is, the receiving queue 312 and the sending queue 313 are provided for each partition P. Each receiving queue 312 stores result messages MR received from the subject simulator 200 that performs simulation of each subject 4 belonging to the corresponding partition P. Each sending queue 313 stores the publishing messages MD published to the subject simulator 200 that performs simulation of each subject 4 belonging to the corresponding partition P.
[0134] Each agent simulator 200-i sends a result message MR-i related to the agent 4i to the central controller 300 (Publish). The result message MR-i includes the location information of the agent 4i in the simulation object world 2. The central controller 300 identifies the partition P to which the agent 4i belongs based on the location information and partition structure of the agent 4i by means of a decision tree or the like. That is, the central controller 300 distributes the result message MR-i to the receiving queue 312 corresponding to the partition P to which the agent 4i belongs by means of a decision tree or the like.
[0135] In addition, each subject simulator 200-i obtains the publishing message MD-i (Subscribe) related to the subject 4i from the central controller 300. For example, each subject simulator 200-i identifies the partition P to which the subject 4i belongs based on the location information and partition structure of the subject 4i by means of a decision tree or the like. That is, each subject simulator 200-i identifies the sending queue 313 storing the publishing message MD-i related to the subject 4i by means of a decision tree or the like. Moreover, each subject simulator 200-i obtains the publishing message MD-i (Pull) related to the subject 4i from the sending queue 313. In addition, the Subscribe method is not limited to the Pull method. As another example, a Push method Subscribe can also be performed.
[0136] The forwarding unit 314 forwards the required message in the result message MR stored in each receiving queue 312 to the required sending queue 313. The function of the forwarding unit 314 is set based on the above-mentioned message filtering point of view. That is, the forwarding unit 314 sets the forwarding frequency of the result message MR according to the distance between the partitions P for each combination of the receiving queue 312 and the sending queue 313. As described above, the reference information REF2 includes information on the partition structure and function information indicating the correspondence between the distance between the partitions P and the publishing frequency. The central controller 300 can set the function of the forwarding unit 314 based on the reference information REF2.
[0137] In the above Fig.10 In the example shown, the distance between the first partition PX and the third partition PZ is greater than the distance between the second partition PY and the third partition PZ. In this case, the central controller 300 sets the forwarding frequency of the first result message MR-X from the first partition receiving queue 312-X to the third partition sending queue 313-Z to be lower than the forwarding frequency of the second result message MR-Y from the second partition receiving queue 312-Y to the third partition sending queue 313-Z. In addition, the forwarding frequency from the third partition receiving queue 312-Z to the third partition sending queue 313-Z is the highest.
[0138] Fig.12 This is a block diagram showing a second configuration example associated with message filtering based on a spatial viewpoint. In the second configuration example, the central controller 300 includes a plurality of message filters 315-1 to 315-N. The plurality of message filters 315-1 to 315-N are respectively provided for a plurality of subject simulators 200-1 to 200-N, and perform message filtering related to the plurality of subject simulators 200-1 to 200-N. That is, the plurality of message filters 315-1 to 315-N respectively adjust the number of published messages MD-1 to MD-N published to the plurality of subject simulators 200-1 to 200-N.
[0139] In more detail, each message filter 315-i receives result messages MR-1 to MR-N from a plurality of subject simulators 200-1 to 200-N. Each result message MR includes the position information of each subject 4. In addition, each message filter 315-i holds reference information REF2 (spatial composition information, function information). Each message filter 315-i calculates the distance between the target subject 4i and other subjects 4 based on the reference information REF2 (spatial composition information) and the position information included in the result message MR. Furthermore, each message filter 315-i sets a publishing frequency corresponding to the distance for each result message MR-1 to MR-N based on the reference information REF2 (function information). Moreover, each message filter 315-i publishes the result messages MR-1 to MR-N as published messages MD-i to the subject simulator 200-i according to the set publishing frequency. Each message filter 315-i includes a message queue for adjusting the number of published messages MD-i.
[0140] As an example of the configuration of the subject simulator 200 and the message filter 315, the above-mentioned Figure 7 Example shown.
[0141] 2-2-4. Effect
[0142] As described above, in one embodiment, the central controller 300 performs message filtering based on the distance between the subjects 4. More specifically, the central controller 300 sets the frequency of publishing the message MD to be lower between the subject simulators 200 that simulate the distant subjects 4. As a result, the amount of messages published from the central controller 300 to the subject simulators 200 is reduced as a whole. That is, it is possible to suppress unnecessary increase in communication volume and unnecessary consumption of communication resources.
[0143] The space of the simulation object world 2 can also be divided into a plurality of partitions P (refer to Fig.10 In this case, message filtering is performed in units of partition P (see Fig.11 ). In this case, it is also possible to suppress unnecessary increase in communication volume and unnecessary consumption of communication resources. Furthermore, by filtering messages in units of partitions P, it is possible to reduce the computational processing load. From the perspective of simulation speed and simulation cost, it is preferable to reduce the computational processing load.
[0144] 2-3. Mode Switching
[0145] The central controller 300 may also be configured to be able to turn message filtering on / off. In this case, the operation mode of the central controller 300 includes a "first mode" in which message filtering is not performed and a "second mode" in which message filtering is performed. In the first mode, the central controller 300 indiscriminately publishes the result message MR received from each subject simulator 200 as a new publishing message MD. On the other hand, in the second mode, the central controller 300 selectively publishes the result message MR received from each subject simulator 200 as a new publishing message MD.
[0146] The central controller 300 switches the operation mode between the first mode and the second mode according to the situation. For example, the central controller 300 switches the mode from the viewpoint of balancing "reducing the communication volume" and "reducing the processing load in the central controller 300".
[0147] Fig.13 3 is a conceptual diagram for explaining an example of mode switching in the central controller 300. Fig.13 In the example shown, the central controller 300 performs mode switching based on the number of result messages MR received by the central controller 300 per unit time.
[0148] In more detail, when the number of result messages MR received per unit time by the central controller 300 is small, even if the result message MR is published as a published message MD, the published message MD will not oppress the communication capacity. Therefore, when the number of result messages MR received per unit time by the central controller 300 is below the threshold, the central controller 300 selects the first mode in which message filtering is not performed. Specifically, the central controller 300 turns off the message filtering function described in Section 2-1 or Section 2-2 above. Since message filtering is not performed, the processing load in the central controller 300 can be suppressed.
[0149] On the other hand, when the number of result messages MR received per unit time by the central controller 300 is large, if the result message MR is published as a publishing message MD, the communication volume from the central controller 300 to the main simulator 200 as a whole will increase. Therefore, when the number of result messages MR received per unit time by the central controller 300 exceeds the threshold, the central controller 300 selects the second mode of message filtering. At this time, message filtering can be performed based on a time perspective (refer to Section 2-1) or a space perspective (refer to Section 2-2). Since message filtering is performed, the communication volume from the central controller 300 to the main simulator 200 as a whole can be effectively reduced.
[0150] When performing mode switching, the central controller 300 may also instruct the MAS system 100 to temporarily suspend the simulation as a whole. After the simulation is paused, the central controller 300 performs mode switching. After each subject simulator 200 is ready for recovery, it notifies the central controller 300 of recovery readiness. When the central controller 300 receives recovery readiness from all subject simulators 200, it instructs to restart the simulation.
[0151] The user of the MAS system 100 can also instruct the central controller 300 to switch modes. For example, the user instructs the central controller 300 to temporarily suspend the simulation. After the simulation is suspended, the user rewrites the mode setting file that specifies the working mode. Afterwards, the user instructs the central controller 300 to start the simulation again.
[0152] As described above, in one embodiment, the operation mode of the central controller 300 includes a first mode in which message filtering is not performed and a second mode in which message filtering is performed. The central controller 300 switches between the first mode and the second mode according to the situation. Thus, flexible operation can be performed from the perspective of suppressing the communication volume and the processing load.
[0153] 3. Example of overall configuration of MAS system
[0154] Below, use Fig.14 , the overall structure and information flow of the MAS system 100 are described. Fig.14 As shown, the MAS system 100 includes a plurality of subject simulators 200, a central controller 300, and a plurality of backend servers 400 for service systems. As will be described in detail later, these are dispersedly installed in a plurality of computers. That is, the MAS system 100 is a system based on parallel distributed processing based on a plurality of computers.
[0155] The central controller 300 has a mobile message distributor 310 and a simulation organizer 320 as its functions. The central controller 300 is an application software installed on a computer. The mobile message distributor 310 and the simulation organizer 320 are programs constituting the application software. Although the central controller 300 can also share a computer as hardware with one or more subject simulators 200, it is preferable to use a dedicated computer.
[0156] The mobile message distributor 310 relays the sending and receiving of mobile messages between the main simulators 200. The information flow indicated by the solid line between the main simulator 200 and the mobile message distributor 310 represents the flow of mobile messages. The mobile message distributor 310 performs the above-mentioned mobile message exchange function possessed by the central controller 300. The mobile message distributor 310 communicates with all the main simulators 200 constituting the MAS system 100. In addition, the mobile message distributor 310 has the above-mentioned message filtering function.
[0157] The simulation composer 320 performs initial settings for each main body simulator 200. In addition, the simulation composer 320 controls the simulation performed by the main body simulator 200 by exchanging simulation control messages with the main body simulator 200. The information flow indicated by the dotted line between the main body simulator 200 and the simulation composer 320 is the simulation control message flow. The simulation composer 320 communicates with all the main body simulators 200 constituting the MAS system 100 and exchanges simulation control messages. Unlike mobile messages that are exchanged between a plurality of main body simulators 200 via the mobile message distributor 310, simulation control messages are exchanged individually between the simulation composer 320 and each main body simulator 200. By exchanging simulation control messages, for example, simulation speed, simulation stop, simulation pause, simulation restart, and simulation time granularity are controlled. The simulation speed is controlled for the entire MAS system 100, whereas the simulation stop, simulation pause, simulation restart, and simulation time granularity are controlled for each main body simulator 200.
[0158] The backend server 400 is the same backend server as the server actually used in the service system in the real world. By bringing the backend server 400 in the real world into the virtual world, the service provided by the service system can be simulated with high accuracy. As the services simulated in the MAS system 100, for example, there can be listed on-demand buses using autonomous driving vehicles, mobile travel services such as scheduled buses, and logistics services that use autonomous mobile robots to deliver goods. In addition, the services simulated in the MAS system 100 are, for example, services that can be used by users by operating service applications (service apps) on user terminals.
[0159] The MAS system 100 includes a plurality of backend servers 400 for different service systems, and can simulate a plurality of services simultaneously in the virtual world 2. The simulation of the service is performed by exchanging service messages between the backend server 400 and the subject simulator 200. The information flow indicated by the dotted line between the subject simulator 200 and the backend server 400 represents the service message flow. Each backend server 400 exchanges service messages with the subject simulator 200 related to the provision of the service.
[0160] The content of the exchanged service messages differs depending on the type of subject that the subject simulator 200 is responsible for. For example, in the case where the subject is a user (pedestrian) utilizing a service, the backend server 400 receives a service message including service utilization information from the subject simulator 200, and sends a service message including service provision status information to the subject simulator 200. Service utilization information refers to information about the current status and future plans related to the user's utilization of the service system, including the current utilization status and input information based on application operations. Service provision status information refers to information related to the status of the user in the service system, and is information provided by the service application of the user terminal.
[0161] In the case where the subject is an autonomous robot and / or autonomous vehicle used to provide services, the back-end server 400 receives a service message containing action state information from the subject simulator 200, and sends a service message containing action instruction information to the subject simulator 200. Action state information refers to information related to the current status and future plans of the autonomous robot and / or autonomous vehicle. Information related to the current status refers to, for example, the status of mounted sensors, measurement data, the status of mounted actuators, and the status related to action decisions. Information related to future plans refers to, for example, a list of future moments, the status of actuators, and the status related to action decisions. Action instruction information is information containing all or part of a future plan for providing services using autonomous robots and / or autonomous vehicles. For example, the target location and path to which the autonomous robot and / or autonomous vehicle should move are included in the action instruction information.
[0162] The subject existing in the virtual world 2 includes stationary objects such as roadside sensors including cameras and automatic doors. For example, in the case where the subject is a fixed camera, the backend server 400 receives a service message including image information of the fixed camera required to calculate the position information of the autonomous robot from the subject simulator 200. In addition, in the case where the subject is an automatic door, the backend server 400 sends a service message including a door opening instruction for the autonomous robot to pass to the subject simulator 200.
[0163] In addition, the backend server 400 exchanges service messages with other backend servers 400 based on respective agreements. The information flow shown by the dotted line between the backend servers 400 represents the service message flow. The service messages exchanged at this time include, for example, the user's utilization status in each service and / or the provision status of the service. By exchanging service messages between multiple backend servers 400, the services provided in the virtual world 2 can be coordinated (linked) with each other.
[0164] As an example of the collaboration of multiple services, there can be cited the collaboration of an on-demand bus service and a logistics service in which an autonomous robot carries luggage from a bus station to a home on behalf of a user. In the on-demand bus service, a user can get off the bus at a desired location at a desired time. By making the on-demand bus service collaborate with the logistics service, the autonomous robot can arrive at the get-off location before the user arrives and wait for the user to arrive at the get-off location. In addition, in the case where the bus is late due to congestion or the like or in the case where the user is late for the bus, by exchanging service messages between the backend servers 400, the time when the autonomous robot goes to the get-off location can be made to match the user's arrival time.
[0165] There are multiple types of subject simulators 200 depending on the type of subject they are responsible for. For example, there are subject simulators 201 for pedestrian subjects, subject simulators 202 for autonomous robot / vehicle subjects, subject simulators 203 for VR pedestrian subjects, and subject simulators 204 for roadside sensor subjects. Hereinafter, subject simulator 200 refers to the general term for these multiple types of subject simulators 201, 202, 203, and 204.
[0166] The main body simulator 200 has a transceiver controller 210, a 3D physics engine 220, a service system client simulator 230, and a simulator core 240 as its functions. The main body simulator 200 is an application software installed in a computer. The transceiver controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240 are programs constituting the application software. These functions are different between the main body simulators 201, 202, 203, and 204. Here, the functions that are generally common to the main body simulators 201, 202, 203, and 204 are described, and the details of the functions of each main body simulator 201, 202, 203, and 204 will be described later.
[0167] The transceiver controller 210 is an interface between the main body simulator 200 and other programs. The transceiver controller 210 receives mobile messages from the mobile message distributor 310 and sends mobile messages to the mobile message distributor 310. However, in the main body simulator 204, only mobile messages are received. The transceiver controller 210 receives simulation control messages from the simulation scheduler 320 and sends simulation control messages to the simulation scheduler 320. In addition, the transceiver controller 210 receives service messages from the backend server 400 and sends service messages to the backend server 400. However, in the main body simulator 204, only service messages are sent.
[0168] The 3D physics engine 220 estimates the current state of surrounding agents in the 3D space based on the movement messages received from other agent simulators 200. Figure 3 The estimation of the current state based on the past state of the surrounding subjects is performed by the 3D physics engine 220. The 3D physics engine 220 generates the surrounding information obtained from the observation of the own subject based on the current state of the surrounding subjects. In addition, the 3D physics engine 220 updates the state of the own subject in the three-dimensional space based on the simulation results obtained by the simulator core 240 described later, and generates a movement message indicating the state of the own subject. However, in the subject simulator 204, since the responsible subject does not move, the state of the own subject is not updated and the movement message is not generated.
[0169] The service system client simulator 230 simulates the behavior of the main body as a client of the service system involved in the backend server 400. The service message received by the transceiver controller 210 is input to the service system client simulator 230. In addition, the service message generated by the service system client simulator 230 is sent from the transceiver controller 210. However, in the main body simulator 204, only the service message is generated.
[0170] The simulator core 240 simulates the state of the subject in the next time step. The time interval of the time step for calculating the state of the subject is the above-mentioned time granularity. The content of the simulation in the simulator core 240 varies for each type of subject simulator 200. In addition, since the subject simulator 204 is responsible for an immobile subject, it is not necessary to simulate the state of the subject, and therefore, the simulator core 240 may not be included.
[0171] 4. Specific example of subject simulator
[0172] Next, use Figures 15 to 18 , the detailed structure and information flow of the various types of subject simulators 201, 202, 203, 204 constituting the MAS system 100 are described. Figures 15 to 18 In the example, the information flow between the frames shown by the solid lines represents the mobile message flow. In addition, the information flow between the frames shown by the dotted lines represents the service message flow. Furthermore, the information flow between the frames shown by the dotted lines represents the simulation control message flow.
[0173] 4-1. Pedestrian subject simulator
[0174] Fig.15 This is a block diagram showing the configuration and information flow of the agent simulator 201 for pedestrian agents. The overall configuration and details of each part of the agent simulator 201 for pedestrian agents, and the information flow in the agent simulator 201 will be described below.
[0175] 4-1-1. Overall structure of the pedestrian subject simulator
[0176] The main simulator 201 has as its functions a transceiver controller 211, a 3D physics engine 221, a service system client simulator 231 and a simulator core 241. Conceptually, these functions are included in the transceiver controller 210, the 3D physics engine 220, the service system client simulator 230 and the simulator core 240, respectively.
[0177] The transceiver controller 211 includes a mobile message receiving unit 211a, a service message receiving unit 211b, and a control message receiving unit 211c as functions for receiving various messages. In addition, the transceiver controller 211 includes a mobile message sending unit 211d, a service message sending unit 211e, and a control message sending unit 211f as functions for sending various messages. Furthermore, the transceiver controller 211 includes a simulation action (work) control unit 211h. Each of the units 211a to 211h constituting the transceiver controller 211 is a program or a part of a program.
[0178] The 3D physics engine 221 includes a surrounding subject state updating unit 221a, a visual information generating unit 221b, and an own subject state updating unit 221c as its functions. Each of the units 221a, 221b, and 221c constituting the 3D physics engine 221 is a program or a part of a program.
[0179] The service system client simulator 231 includes a service provision status information processing unit 231a and a service use information generating unit 231b as its functions. Each unit 231a and 231b constituting the service system client simulator 231 is a program or a part of a program.
[0180] The simulator core 241 includes an overall movement policy determination unit 241a, an action determination unit 241b, a next time step state calculation unit 241d, and a service use action determination unit 241e as its functions. Each unit 241a, 241b, 241d, 241e constituting the simulator core 241 is a program or a part of a program.
[0181] 4-1-2. Details of the transceiver controller
[0182] In the transceiver controller 211 , the mobile message receiving unit 211 a receives the mobile message from the mobile message distributor 310 . The mobile message receiving unit 211 a outputs the received mobile message to the surrounding subject state updating unit 221 a of the 3D physics engine 221 .
[0183] The service message receiving unit 211b receives a service message from the backend server 400. The service message receiving unit 211b outputs the received service message to the service provision state information processing unit 231a of the service system client simulator 231.
[0184] The control message receiving unit 211c receives the simulation control message from the simulation organizer 320. The control message receiving unit 211c outputs the received simulation control message to the simulation action control unit 211h.
[0185] The movement message sending unit 211d obtains a movement message including the current state of the own subject from the own subject state updating unit 221c of the 3D physics engine 221. The movement message sending unit 211d sends the obtained movement message to the movement message distributor 310.
[0186] The service message sending unit 211 e acquires a service message including service utilization information from the service utilization information generating unit 231 b of the service system client simulator 231 , and sends the acquired service message to the backend server 400 .
[0187] The control message transmission unit 211f obtains the simulation control message including the control state of the subject simulator 201 from the simulation operation control unit 211h. The control message transmission unit 211f transmits the simulation control message obtained from the simulation operation control unit 211h to the simulation organizer 320.
[0188] The simulation action control unit 211h obtains the simulation control message from the control message receiving unit 211c. The simulation action control unit 211h controls the simulation action of the subject simulator 201 according to the instruction contained in the simulation control message. For example, when instructed to change the time granularity of the simulation, the simulation action control unit 211h changes the time granularity of the simulation performed by the subject simulator 201 from the initial value to the instructed time granularity. The initial value of the time granularity is stored in the subject simulator 201 as a set value. In addition, the upper limit value and the lower limit value of the time granularity are stored in the simulation scheduler 320 for each type of subject.
[0189] When the instruction content of the simulation control message is the simulation speed, the simulation action control unit 211h changes the operation frequency of the 3D physics engine 221 and / or the simulator core 241 to accelerate or decelerate the simulation speed. In addition, the simulation speed means the speed ratio of the time flow of the virtual world 2 to the time flow of the real world. When instructed to stop the simulation, the simulation action control unit 211h stops the simulation of the subject simulator 201. When instructed to pause the simulation, the simulation is paused, and when instructed to restart, the simulation is restarted. The simulation action control unit 211h outputs the simulation control message including the current control state of the subject simulator 201 to the control message sending unit 211f.
[0190] 4-1-3. Details of 3D physics engine
[0191] In the 3D physics engine 221, the surrounding subject state update unit 221a obtains a mobile message from the mobile message receiving unit 211a. The mobile message obtained from the mobile message receiving unit 211a is a mobile message sent from another subject simulator via the mobile message distributor 310. The surrounding subject state update unit 221a estimates the current state of the surrounding subjects existing around the own subject based on the obtained mobile message.
[0192] When estimating the current state from the past state of the surrounding subject, the surrounding subject state updating unit 221a uses the past state of the surrounding subject stored in the log. Figure 3 The surrounding subject state updating unit 221a outputs the estimated current state of the surrounding subject to the visual information generating unit 221b and updates the log.
[0193] The visual information generation unit 221b obtains the current state of the surrounding subject from the surrounding subject state update unit 221a. The visual information generation unit 221b generates the surrounding information obtained by observation of the own subject based on the current state of the surrounding subject. Since the own subject is a pedestrian, the surrounding information obtained by observation means the visual information captured by the pedestrian's eyes. The visual information generation unit 221b outputs the generated visual information to the overall movement policy determination unit 241a, the action determination unit 241b, and the service use action determination unit 241e of the simulator core 241.
[0194] The own subject state updating unit 221c obtains the state of the own subject in the next time step simulated by the simulator core 241 from the next time step state calculating unit 241d of the simulator core 241. The own subject state updating unit 221c updates the state of the own subject in the three-dimensional space based on the simulation result obtained by the simulator core 241. The own subject state updating unit 221c outputs the mobile message containing the updated state of the own subject to the mobile message sending unit 211d of the transceiver controller 211. The state of the own subject contained in the mobile message includes the position, direction, speed and acceleration in the current time step and the position, direction, speed and acceleration in the next time step. In addition, the own subject state updating unit 221c outputs the information related to the updated state of the own subject to the service utilization information generating unit 231b of the service system client simulator 231.
[0195] 4-1-4. Details of the service system client simulator
[0196] In the service system client simulator 231, the service provision status information processing unit 231a obtains a service message from the service message receiving unit 211b. The service message obtained from the service message receiving unit 211b includes the service provision status information. The service provision status information processing unit 231a processes the service provision status information and obtains information related to the status of the own subject as a user of the service system and input items of the user terminal to the service application. The information related to the status of the own subject as a user is information prompted to the user terminal, and the input items are information that the own subject is requested to input in order to use the service. The service provision status information processing unit 231a outputs the information related to the status of the own subject as a user and the input items of the user terminal to the service application to the overall movement policy determination unit 241a and the service utilization action determination unit 241e of the simulator core 241.
[0197] The service utilization information generation unit 231b obtains the decision result of the service utilization action of the own subject from the service utilization action determination unit 241e of the simulator core 241. In addition, the service utilization information generation unit 231b obtains the state of the own subject in the three-dimensional space from the own subject state update unit 221c of the 3D physics engine 221. The service utilization information generation unit 231b generates service utilization information based on the obtained information and updates the utilization state of the service of the own subject. The service utilization information generation unit 231b outputs a service message including the service utilization information to the service message sending unit 211e of the transceiver controller 211.
[0198] 4-1-5. Details of the simulator core
[0199] In the simulator core 241, the overall movement policy determination unit 241a obtains visual information from the visual information generation unit 221b of the 3D physics engine 221. In addition, the overall movement policy determination unit 241a obtains information related to the status of the own subject as a user and input items to the service application of the user terminal from the service provision status information processing unit 231a of the service system client simulator 231. The overall movement policy determination unit 241a determines the overall movement policy of the own subject in the virtual world 2 based on the obtained information. The overall movement policy determination unit 241a outputs the determined overall movement policy to the action determination unit 241b.
[0200] The action decision unit 241b obtains the overall movement policy from the overall movement policy decision unit 241a, and obtains visual information from the visual information generation unit 221b of the 3D physics engine 221. The action decision unit 241b inputs the overall movement policy and visual information into the movement model 241c to determine the action of the own subject. The movement model 241c is a simulation model that models how pedestrians move according to the surrounding conditions reflected in the pedestrians' eyes based on a certain movement policy. The action decision unit 241b outputs the determined action of the own subject to the next time step state calculation unit 241d.
[0201] The next time step state calculation unit 241d obtains the action of the own subject determined by the action decision unit 241b. The next time step state calculation unit 241d calculates the state of the own subject in the next time step based on the action of the own subject. The calculated state of the own subject includes the position, direction, speed and acceleration of the own subject in the next time step. The next time step state calculation unit 241d outputs the calculated state of the own subject in the next time step to the own subject state update unit 221c of the 3D physics engine 221.
[0202] The service utilization action determination unit 241e obtains visual information from the visual information generation unit 221b of the 3D physics engine 221. In addition, the service utilization action determination unit 241e obtains information related to the status of its own subject as a user and input items to the service application of the user terminal from the service provision status information processing unit 231a of the service system client simulator 231. The service utilization action determination unit 241e determines the behavior (service utilization action) of its own subject as a user of the service system by inputting the obtained information into the action model 241f. The action model 241f is a simulation model that models how the user moves according to the surrounding conditions reflected in the user's eyes when the user is prompted with information related to the service and the input to the service application of the user terminal is requested. The service utilization action determination unit 241e outputs the determined service utilization action to the service utilization information generation unit 231b.
[0203] 4-2. Autonomous robot / vehicle body simulator
[0204] Fig.16 1 is a block diagram showing the structure and information flow of the main body simulator 202 for the autonomous robot / vehicle main body. The autonomous robot / vehicle main body refers to the main body of the autonomous robot or autonomous vehicle used by the backend server 400 to provide services in the relevant service system. The overall structure and details of each part of the main body simulator 202 for the autonomous robot / vehicle main body, as well as the information flow in the main body simulator 202 are described below.
[0205] 4-2-1. Overall structure of the subject simulator for autonomous robots / vehicles
[0206] The main simulator 202 has as its functions a transceiver controller 212, a 3D physics engine 222, a service system client simulator 232, and a simulator core 242. Conceptually, these functions are included in the transceiver controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.
[0207] The transceiver controller 212 includes a mobile message receiving unit 212a, a service message receiving unit 212b, and a control message receiving unit 212c as functions for receiving various messages. In addition, the transceiver controller 212 includes a mobile message sending unit 212d, a service message sending unit 212e, and a control message sending unit 212f as functions for sending various messages. Furthermore, the transceiver controller 212 includes a simulation action control unit 212h. Each of the units 212a to 212h constituting the transceiver controller 211 is a program or a part of a program.
[0208] The 3D physics engine 222 includes a surrounding subject state updating unit 222a, a sensor information generating unit 222b, and an own subject state updating unit 222c as its functions. Each of the units 222a, 222b, and 222c constituting the 3D physics engine 222 is a program or a part of a program.
[0209] The service system client simulator 232 includes a route planning information receiving unit 232a and an operation state information generating unit 232b as its functions. Each unit 232a and 232b constituting the service system client simulator 232 is a program or a part of a program.
[0210] The simulator core 242 includes a global path planning unit 242a, a local path planning unit 242b, an actuator operation amount determination unit 242c, and a next time step state calculation unit 242d as its functions. Each unit 242a, 242b, 242c, 242d constituting the simulator core 242 is a program or a part of a program.
[0211] 4-2-2. Details of the transceiver controller
[0212] In the transceiver controller 212 , the mobile message receiving unit 212 a receives the mobile message from the mobile message distributor 310 . The mobile message receiving unit 212 a outputs the received mobile message to the surrounding subject state updating unit 222 a of the 3D physics engine 222 .
[0213] The service message receiving unit 212b receives a service message from the backend server 400. The service message receiving unit 212b outputs the received service message to the route planning information receiving unit 232a of the service system client simulator 232.
[0214] The control message receiving unit 212c receives the simulation control message from the simulation organizer 320. The control message receiving unit 212c outputs the received simulation control message to the simulation action control unit 212h.
[0215] The movement message sending unit 212d obtains a movement message including the current state of the own subject from the own subject state updating unit 222c of the 3D physics engine 222. The movement message sending unit 212d sends the obtained movement message to the movement message distributor 310.
[0216] The service message sending unit 212 e acquires a service message including the operation status information from the operation status information generating unit 232 b of the service system client simulator 232 . The service message sending unit 212 e sends the acquired service message to the backend server 400 .
[0217] The control message transmission unit 212f obtains the simulation control message including the control state of the main body simulator 202 from the simulation operation control unit 212h. The control message transmission unit 212f transmits the simulation control message obtained from the simulation operation control unit 212h to the simulation organizer 320.
[0218] The simulation action control unit 212h obtains the simulation control message from the control message receiving unit 212c. The simulation action control unit 212h controls the simulation action of the subject simulator 202 according to the instruction contained in the simulation control message. For example, when instructed to change the time granularity of the simulation, the simulation action control unit 212h changes the time granularity of the simulation performed by the subject simulator 202 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a setting value in the subject simulator 202. In addition, the upper limit value and the lower limit value of the time granularity are stored in the simulation scheduler 320 for each type of subject.
[0219] When the instruction content of the simulation control message is the simulation speed, the simulation action control unit 212h changes the operation frequency of the 3D physics engine 222 and / or the simulator core 242 according to the instructed simulation speed to accelerate or decelerate the operation speed of the main body simulator 202. When instructed to stop the simulation, the simulation action control unit 212h stops the simulation of the main body simulator 202. When instructed to pause the simulation, the simulation is paused, and when instructed to restart, the simulation is restarted. The simulation action control unit 212h outputs the simulation control message including the current control state of the main body simulator 202 to the control message sending unit 212f.
[0220] 4-2-3. Details of 3D physics engine
[0221] In the 3D physics engine 222, the surrounding subject state updating unit 222a obtains a mobile message from the mobile message receiving unit 212a. The mobile message obtained from the mobile message receiving unit 212a is a mobile message sent from another subject simulator via the mobile message distributor 310. The surrounding subject state updating unit 222a estimates the current state of the surrounding subjects existing around the own subject based on the obtained mobile message.
[0222] When estimating the current state from the past state of the surrounding subject, the surrounding subject state updating unit 222a uses the past state of the surrounding subject stored in the log. Figure 3 The surrounding subject state updating unit 222a outputs the estimated current state of the surrounding subject to the sensor information generating unit 222b and updates the log.
[0223] The sensor information generation unit 222b obtains the current state of the surrounding subject from the surrounding subject state update unit 222a. The sensor information generation unit 222b generates the surrounding information obtained by observation of the own subject based on the current state of the surrounding subject. Since the own subject is an autonomous robot or an autonomous vehicle, the surrounding information obtained by observation means sensor information captured by the sensor of the autonomous robot or the autonomous vehicle. The sensor information generation unit 222b outputs the generated sensor information to the overall path planning unit 242a of the simulator core 242 and the action state information generation unit 232b of the service system client simulator 232.
[0224] The own subject state updating unit 222c obtains the state of the own subject in the next time step calculated by the simulator core 242 from the next time step state calculating unit 242d of the simulator core 242. The own subject state updating unit 222c updates the state of the own subject in the three-dimensional space based on the calculation result obtained by the simulator core 242. The own subject state updating unit 222c outputs the mobile message containing the updated state of the own subject to the mobile message sending unit 212d of the transceiver controller 212. The state of the own subject contained in the mobile message includes the position, direction, speed and acceleration in the current time step and the position, direction, speed and acceleration in the next time step. In addition, the own subject state updating unit 222c outputs the information related to the updated state of the own subject to the action state information generating unit 232b of the service system client simulator 232.
[0225] 4-2-4. Details of the service system client simulator
[0226] In the service system client simulator 232, the path planning information receiving unit 232a obtains the service message from the service message receiving unit 212b. The service message obtained from the service message receiving unit 212b includes action instruction information for the service system to provide services using the autonomous robot / vehicle and information related to other service systems. The path planning information receiving unit 232a outputs the action instruction information and other service system information to the overall path planning unit 242a of the simulator core 242.
[0227] The action state information generation unit 232b obtains the actuator operation amount of the own subject in the next time step from the actuator operation amount determination unit 242c of the simulator core 242. In addition, the action state information generation unit 232b obtains sensor information from the sensor information generation unit 222b of the 3D physics engine 222, and obtains the state of the own subject in the three-dimensional space from the own subject state update unit 222c. Based on the obtained information, the action state information generation unit 232b generates action state information indicating the action state of the own subject involved in providing the service. The action state information generation unit 232b outputs a service message containing the action state information to the service message sending unit 212e of the transceiver controller 212.
[0228] 4-2-5. Details of the simulator core
[0229] In the simulator core 242, the overall path planning unit 242a obtains sensor information from the sensor information generating unit 222b of the 3D physics engine 222. In addition, the overall path planning unit 242a obtains action instruction information and other service system information from the path planning information receiving unit 232a of the service system client simulator 232. The overall path planning unit 242a plans the overall path of the own subject in the virtual world 2 based on the information obtained. The overall path means the path from the current position of the own subject to the target location. Since the information obtained from the sensor information generating unit 222b and the path planning information receiving unit 232a changes each time, the overall path planning unit 242a re-formulates the overall path plan at each time step. The overall path planning unit 242a outputs the determined overall path plan to the local path planning unit 242b.
[0230] The local path planning unit 242b obtains the overall path plan from the overall path planning unit 242a. The local path planning unit 242b formulates a local path plan based on the overall path plan. The local path means, for example, a path from the current moment to a predetermined time step later, or a path from the current position to a predetermined distance. The local path plan is represented, for example, by a set of positions where the subject should move forward, and the speed or acceleration at each position. The local path planning unit 242b outputs the determined local path plan to the actuator operation amount determination unit 242c.
[0231] The actuator operation amount determination unit 242c obtains the local path plan from the local path planning unit 242b. The actuator operation amount determination unit 242c determines the actuator operation amount of the own subject in the next time step based on the local path plan. The actuator mentioned here refers to an actuator that controls the direction, speed and acceleration of the own subject. In the case where the own subject is an autonomous robot or autonomous vehicle that travels on wheels, actuators such as braking devices, driving devices, and steering devices become the operation objects. The actuator operation amount determination unit 242c outputs the determined actuator operation amount to the next time step state calculation unit 242d and the action state information generation unit 232b of the service system client simulator 232.
[0232] The next time step state calculation unit 242d obtains the actuator operation amount determined by the actuator operation amount determination unit 242c. The next time step state calculation unit 242d calculates the state of the own body in the next time step based on the actuator operation amount. The calculated state of the own body includes the position, direction, speed and acceleration of the own body in the next time step. The next time step state calculation unit 242d outputs the calculated state of the own body in the next time step to the own body state update unit 222c of the 3D physics engine 222.
[0233] 4-3. VR Pedestrian Subject Simulator
[0234] Fig.17 This is a block diagram showing the structure and information flow of the subject simulator 203 for VR pedestrian subjects. VR pedestrian subjects are pedestrian subjects used by real people to participate in the virtual world 2 as a simulation object using the VR (Virtual Reality) system. The following describes the overall structure and details of each part of the subject simulator 203 for VR pedestrian subjects, as well as the information flow in the subject simulator 203.
[0235] 4-3-1. Overall structure of VR pedestrian subject simulator
[0236] The main simulator 203 has as its functions a transceiver controller 213, a 3D physics engine 223, a service system client simulator 233, and a simulator core 243. Conceptually, these functions are included in the transceiver controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.
[0237] The transceiver controller 213 includes a mobile message receiving unit 213a, a service message receiving unit 213b, and a control message receiving unit 213c as functions for receiving various messages. In addition, the transceiver controller 213 includes a mobile message sending unit 213d, a service message sending unit 213e, and a control message sending unit 213f as functions for sending various messages. Furthermore, the transceiver controller 213 includes a simulation action control unit 213h. Each of the units 213a to 213h constituting the transceiver controller 213 is a program or a part of a program.
[0238] The 3D physics engine 223 includes a surrounding subject state updating unit 223a, a visual information generating unit 223b, and an own subject state updating unit 223c as its functions. Each of the units 223a, 223b, and 223c constituting the 3D physics engine 223 is a program or a part of a program.
[0239] The service system client simulator 233 includes a service provision status information processing unit 233a and a service use information generating unit 233b as its functions. Each unit 233a and 233b constituting the service system client simulator 233 is a program or a part of a program.
[0240] The simulator core 243 includes a recognition judgment information presenting unit 243a, a moving operation accepting unit 243b, a next time step state calculating unit 243c, and an application operation accepting unit 243d as its functions. Each unit 243a, 243b, 243c, 243d constituting the simulator core 243 is a program or a part of a program.
[0241] 4-3-2. Details of the transceiver controller
[0242] In the transceiver controller 213 , the mobile message receiving unit 213 a receives the mobile message from the mobile message distributor 310 . The mobile message receiving unit 213 a outputs the received mobile message to the surrounding subject state updating unit 223 a of the 3D physics engine 223 .
[0243] The service message receiving unit 213b receives a service message from the backend server 400. The service message receiving unit 213b outputs the received service message to the service provision state information processing unit 233a of the service system client simulator 233.
[0244] The control message receiving unit 213c receives the simulation control message from the simulation organizer 320. The control message receiving unit 213c outputs the received simulation control message to the simulation operation control unit 213h.
[0245] The movement message sending unit 213d obtains a movement message including the current state of the own subject from the own subject state updating unit 223c of the 3D physics engine 223. The movement message sending unit 213d sends the obtained movement message to the movement message distributor 310.
[0246] The service message sending unit 213e acquires the service message including the service utilization information from the service utilization information generating unit 233b of the service system client simulator 233. The service message sending unit 213e sends the acquired service message to the backend server 400.
[0247] The control message transmission unit 213f obtains the simulation control message including the control state of the main body simulator 203 from the simulation operation control unit 213h. The control message transmission unit 213f transmits the simulation control message obtained from the simulation operation control unit 213h to the simulation organizer 320.
[0248] The simulation action control unit 213h obtains the simulation control message from the control message receiving unit 213c. The simulation action control unit 213h controls the simulation action of the subject simulator 203 according to the instruction contained in the simulation control message. When the conditions for the VR pedestrian subject to participate in the virtual world 2 are not met, the subject simulator 203 is instructed to stop the simulation from the simulation scheduler 320.
[0249] The aforementioned subject simulators 201, 202 and the subject simulator 204 described later can change the simulation speed as needed. However, when the simulation speed is changed, the real participants who participate in the virtual world 2 via the VR pedestrian subject may feel a strong sense of discomfort (disharmony) about the time flow that is different from the real world. Therefore, in the MAS system 100, the VR pedestrian subject is allowed to participate in the virtual world 2 as a condition for participation, with the simulation being carried out in real time. When the simulation speed is accelerated or decelerated compared to the time flow of the real world, the simulation scheduler 320 stops the simulation of the subject simulator 203. The simulation action control unit 213h outputs a simulation control message including the current control state of the subject simulator 203 to the control message sending unit 213f.
[0250] 4-3-3. Details of 3D physics engine
[0251] In the 3D physics engine 223, the surrounding subject state update unit 223a obtains a mobile message from the mobile message receiving unit 213a. The mobile message obtained from the mobile message receiving unit 213a is a mobile message sent from another subject simulator via the mobile message distributor 310. The surrounding subject state update unit 223a estimates the current state of the surrounding subjects existing around the own subject based on the obtained mobile message.
[0252] When estimating the current state from the past state of the surrounding subject, the surrounding subject state updating unit 223a uses the past state of the surrounding subject stored in the log. Figure 3 The surrounding subject state updating unit 223a outputs the estimated current state of the surrounding subject to the visual information generating unit 223b and updates the log.
[0253] The visual information generation unit 223b obtains the current state of the surrounding subject from the surrounding subject state update unit 223a. The visual information generation unit 223b generates the surrounding information obtained by observation of the own subject based on the current state of the surrounding subject. Since the own subject is a pedestrian, the surrounding information obtained by observation means the visual information captured by the pedestrian's eyes. The visual information generation unit 223b outputs the generated visual information to the cognitive judgment information presentation unit 243a and the movement operation reception unit 243b of the simulator core 243.
[0254] The own subject state updating unit 223c obtains the state of the own subject in the next time step calculated by the simulator core 243 from the next time step state calculating unit 243c of the simulator core 243. The own subject state updating unit 223c updates the state of the own subject in the three-dimensional space based on the calculation result obtained by the simulator core 243. The own subject state updating unit 223c outputs the mobile message containing the updated state of the own subject to the mobile message sending unit 213d of the transceiver controller 213. The state of the own subject contained in the mobile message includes the position, direction, speed and acceleration in the current time step and the position, direction, speed and acceleration in the next time step. In addition, the own subject state updating unit 223c outputs the information related to the updated state of the own subject to the service utilization information generating unit 233b of the service system client simulator 233.
[0255] 4-3-4. Details of the service system client simulator
[0256] In the service system client simulator 233, the service provision status information processing unit 233a obtains a service message from the service message receiving unit 213b. The service message obtained from the service message receiving unit 213b contains the service provision status information. The service provision status information processing unit 233a processes the service provision status information and obtains information related to the status of the own subject as a user of the service system and input items of the user terminal to the service application. The information related to the status of the own subject as a user is information prompted to the user terminal, and the input items are information that the own subject is requested to input in order to use the service. The service provision status information processing unit 233a outputs the information related to the status of the own subject as a user and the input items of the user terminal to the service application to the cognitive judgment information prompting unit 243a and the application operation accepting unit 243d of the simulator core 243.
[0257] The service utilization information generation unit 233b obtains the operation of the service application on VR performed by the real participant who participates in the virtual world 2 via the VR pedestrian subject from the application operation receiving unit 243d of the simulator core 243. In addition, the service utilization information generation unit 233b obtains the state of the own subject in the three-dimensional space from the own subject state updating unit 223c of the 3D physics engine 223. The service utilization information generation unit 233b generates service utilization information based on the obtained information and updates the utilization state of the service of the own subject. The service utilization information generation unit 233b outputs the service message containing the service utilization information to the service message sending unit 213e of the transceiver controller 213.
[0258] 4-3-5. Details of the simulator core
[0259] In the simulator core 243, the cognitive judgment information prompting unit 243a obtains visual information from the visual information generating unit 223b of the 3D physics engine 223. In addition, the cognitive judgment information prompting unit 243a obtains information related to the state of the subject as a user and input items to the service application of the user terminal from the service provision state information processing unit 233a of the service system client simulator 233. The obtained information is information for cognitive judgment for the real participants who participate in the virtual world 2 via the VR pedestrian subject. The cognitive judgment information prompting unit 243a prompts the real participants with the information for cognitive judgment through the VR system.
[0260] The movement operation accepting unit 243b obtains visual information from the visual information generating unit 223b of the 3D physics engine 223. Furthermore, the movement operation accepting unit 243b presents the visual information to the real participant through the VR system, and accepts the movement operation performed by the real participant on the VR. The movement operation accepting unit 243b outputs the accepted movement operation performed by the real participant on the VR to the next time step state calculating unit 243c.
[0261] The next time step state calculation unit 243c obtains the movement operation performed by the real participant on the VR from the movement operation receiving unit 243b. The next time step state calculation unit 243c calculates the state of the own subject in the next time step based on the movement operation performed by the real participant on the VR. The calculated state of the own subject includes the position, direction, speed and acceleration of the own subject in the next time step. The next time step state calculation unit 243c outputs the calculated state of the own subject in the next time step to the own subject state update unit 223c of the 3D physics engine 223.
[0262] The application operation accepting unit 243d obtains visual information from the visual information generating unit 223b of the 3D physics engine 223. In addition, the application operation accepting unit 243d obtains information related to the status of the subject as a user and input items to the service application of the user terminal from the service provision status information processing unit 233a of the service system client simulator 233. The application operation accepting unit 243d accepts the operation of the service application performed by the real participant on the VR while prompting the real participant with the obtained information through the VR system. The application operation accepting unit 243d outputs the accepted operation of the service application performed by the real participant on the VR to the service utilization information generating unit 233b of the service system client simulator 233.
[0263] 4-4. Main body simulator for roadside sensor main body
[0264] Fig.18 2 is a block diagram showing the configuration and information flow of the subject simulator 204 for the roadside sensor body. The roadside sensor body refers to the body of the roadside sensor for obtaining the position information of the autonomous robot / vehicle body in the virtual world 2. The position information of the autonomous robot / vehicle body obtained by the roadside sensor body is used in the service system associated with the backend server 400. The overall configuration and details of each part of the subject simulator 204 for the roadside sensor body and the information flow in the subject simulator 204 are described below.
[0265] 4-4-1. Overall structure of the main body simulator for the roadside sensor main body
[0266] The subject simulator 204 has as its functions a transceiver controller 214, a 3D physics engine 224, and a service system client simulator 234. Conceptually, these functions are respectively included in the transceiver controller 210, the 3D physics engine 220, and the service system client simulator 230. The subject simulator 204 is different from other subject simulators and does not have a simulator core.
[0267] The transceiver controller 214 has a mobile message receiving unit 214a and a control message receiving unit 214c as functions for receiving various messages. In addition, the transceiver controller 212 has a service message sending unit 214e and a control message sending unit 214f as functions for sending various messages. Furthermore, the transceiver controller 212 has a simulation action control unit 214h. Each unit 214a to 214h constituting the transceiver controller 214 is a program or a part of a program.
[0268] The 3D physics engine 224 includes a surrounding body state updating unit 224a and a sensor information generating unit 224b as its functions. Each unit 224a and 224b constituting the 3D physics engine 224 is a program or a part of a program.
[0269] The service system client simulator 234 includes a service message generation unit 234a as its function. The service message generation unit 234a constituting the service system client simulator 234 is a program or a part of a program.
[0270] 4-4-2. Details of the transceiver controller
[0271] In the transceiver controller 214 , the mobile message receiving unit 214 a receives the mobile message from the mobile message distributor 310 . The mobile message receiving unit 214 a outputs the received mobile message to the surrounding body state updating unit 224 a of the 3D physics engine 224 .
[0272] The control message receiving unit 214c receives the simulation control message from the simulation organizer 320. The control message receiving unit 214c outputs the received simulation control message to the simulation operation control unit 214h.
[0273] The service message sending unit 214e acquires the service message including the sensor information from the service message generating unit 234a of the service system client simulator 234. The service message sending unit 214e sends the acquired service message to the backend server 400.
[0274] The control message transmission unit 214f obtains the simulation control message including the control state of the main body simulator 204 from the simulation operation control unit 214h. The control message transmission unit 214f transmits the simulation control message obtained from the simulation operation control unit 214h to the simulation organizer 320.
[0275] The simulation action control unit 214h obtains the simulation control message from the control message receiving unit 214c. The simulation action control unit 214h controls the simulation action of the subject simulator 204 according to the instruction contained in the simulation control message. For example, when instructed to change the time granularity of the simulation, the simulation action control unit 214h changes the time granularity of the simulation performed by the subject simulator 204 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a setting value in the subject simulator 204. In addition, the upper limit value and the lower limit value of the time granularity are stored in the simulation scheduler 320 for each type of subject.
[0276] When the instruction content of the simulation control message is the simulation speed, the simulation action control unit 214h changes the operation frequency of the 3D physics engine 224 according to the instructed simulation speed to accelerate or decelerate the operation speed of the subject simulator 204. When instructed to stop the simulation, the simulation action control unit 214h stops the simulation of the subject simulator 204. When instructed to pause the simulation, the simulation is paused, and when instructed to restart, the simulation is restarted. The simulation action control unit 214h outputs the simulation control message including the current control state of the subject simulator 204 to the control message sending unit 214f.
[0277] 4-4-3. Details of 3D physics engine
[0278] In the 3D physics engine 224, the surrounding subject state update unit 224a obtains a mobile message from the mobile message receiving unit 214a. The mobile message obtained from the mobile message receiving unit 214a is a mobile message sent from another subject simulator via the mobile message distributor 310. The surrounding subject state update unit 224a estimates the current state of the surrounding subjects existing around the own subject based on the obtained mobile message.
[0279] When estimating the current state from the past state of the surrounding subject, the surrounding subject state updating unit 224a uses the past state of the surrounding subject stored in the log. The method of estimating the current state using the past state of the surrounding subject is as follows: Figure 3 The surrounding subject state updating unit 224a outputs the estimated current state of the surrounding subject to the sensor information generating unit 224b and updates the log.
[0280] The sensor information generation unit 224b obtains the current state of the surrounding subject from the surrounding subject state update unit 224a. The sensor information generation unit 224b generates the surrounding information obtained by observation of the own subject based on the current state of the surrounding subject. Since the own subject is a stationary roadside sensor such as a camera, the surrounding information obtained by observation means the sensor information captured by the roadside sensor. The sensor information generation unit 224b outputs the generated sensor information to the service message generation unit 234a of the service system client simulator 234.
[0281] 4-4-4. Details of the service system client simulator
[0282] In the service system client simulator 234, the service message generator 234a obtains sensor information from the sensor information generator 224b of the 3D physics engine 224. The service message generator 234a outputs a service message including the obtained sensor information to the service message transmitter 214e of the transmitter-receiver controller 214.
[0283] 5. Physical composition of the MAS system
[0284] The physical structure of the MAS system 100 will be described. Fig.19 1 is a diagram showing an example of the physical configuration of the MAS system 100. The MAS system 100 can be configured by, for example, a plurality of computers 10 arranged on the same subnet 30. Furthermore, by connecting the subnet 30 to another subnet 32 using a gateway 40, the MAS system 100 can be expanded to a plurality of computers 10 arranged on the subnet 32.
[0285] exist Fig.19 In the illustrated example, the central controller 300 as software is installed in one computer 10. However, the function of the central controller 300 may be distributed among a plurality of computers 10.
[0286] In addition, the MAS system 100 includes a plurality of backend servers 400. Fig.19 In the example shown, each backend server 400 is installed in a separate computer 10. However, the functions of the backend server 400 may be distributed to a plurality of computers 10. In addition, a plurality of backend servers 400 may be installed on one computer 10 by using a virtualization technology that divides one server into a plurality of servers.
[0287] exist Fig.19In the example shown, a plurality of subject simulators 200 are installed on one computer 10. As a method of making a plurality of subject simulators 200 work independently on one computer 10, virtualization technology can be used. As a virtualization technology, it can be a virtual machine or container-based virtualization. A plurality of subject simulators 200 of the same type can be installed on one computer 10, or a plurality of subject simulators 200 of different types can be installed. In addition, only one subject simulator 200 can be installed on one computer 10.
[0288] As described above, the MAS system 100 adopts parallel distributed processing using a plurality of computers 10, rather than processing using a single computer. This prevents the number of entities carried by the virtual world 2 from being limited by the processing power of the computer and / or the number of services provided by the virtual world 2 from being limited by the processing power of the computer. That is, according to the MAS system 100, large-scale simulation based on parallel distributed processing can be performed.
[0289] 6. Others
[0290] It is also possible to provide an observation subject for observing the virtual world 2 from the outside. The observation subject may be, for example, a stationary object such as a street corner camera or a mobile object such as a drone equipped with a camera.
Claims
1. A multi-agent simulation system for simulating an object world, wherein a plurality of interacting agents exist in the object world, and the multi-agent simulation system comprises: a plurality of subject simulators that perform simulations of respective ones of the plurality of subjects; and a central controller in communication with the plurality of subject simulators, The object subject is a subject assigned to each of the plurality of subject simulators, The central controller publishes at least one publishing message indicating the state of at least one other subject different from the object subject to each of the subject simulators, Each of the subject simulators, Based on the state of the other subject indicated by the published message, simulating the target subject to determine the state of the target subject; sending a result message indicating the state of the object body obtained as a result of the simulation to the central controller, The central controller publishes the result messages received from the respective subject simulators as new publishing messages, The plurality of subject simulators include: a first subject simulator for performing simulation of the first subject at a first processing time interval; and a second subject simulator for simulating a second subject different from the first subject at a second processing time interval longer than the first processing time interval, The central controller sets the number of second distribution messages distributed to the second agent simulator per unit time to be smaller than the number of first distribution messages distributed to the first agent simulator per unit time. The first subject simulator sends a first result message related to the first subject to the central controller at a first frequency corresponding to the first processing time interval, The central controller selects a part of the first result messages received from the first subject simulator as the second published message, and publishes the selected second published message to the second subject simulator. The central controller selects the second distribution message so as to include at least the latest first result message before the timing when the second agent simulator determines the state of the second agent.
2. The multi-agent simulation system according to claim 1, The central controller publishes the second publishing message to the second agent simulator at a second frequency corresponding to the second processing time interval, and the second frequency is lower than the first frequency.
3. The multi-agent simulation system according to claim 1 or 2, The central controller includes a plurality of message filters respectively arranged with respect to the plurality of subject simulators. The plurality of message filters respectively adjust the number of the published messages published to the plurality of subject simulators.
4. The multi-agent simulation system according to claim 3, The plurality of message filters include: a first message filter that adjusts the number of the first published messages published to the first subject simulator based on the information of the first processing time interval; and A second message filter adjusts the number of the second distribution messages distributed to the second agent simulator based on the information of the second processing time interval.
Citation Information
Patent Citations
Decentralized simulation system
JP1998312369A
Distribution simulation system and program
JP2006079341A
Simulation device and simulation method
JP2009043077A
Distributed simulation system
JP2011248600A