Multi-agent simulation system and multi-agent simulation method
Through the architecture of multi-body simulator and central controller, the problems of message exchange delay and timing deviation between subjects are solved, and high-precision multi-body simulation is achieved.
Patent Information
- Application Number
- CN202210637629.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-06-08
- Filing Date
- 2022-06-07
- Publication Date
- 2025-07-29
- Estimated Expiration
- 2042-06-07
AI Technical Summary
In multi-subject simulation, there may be time delay and timing deviation in message exchange between subjects, making it difficult to accurately simulate the current state.
Using the architecture of multiple body simulators and central controllers, the current state of the interacting subject is estimated through message exchange and linear extrapolation technology, and the state of the object subject is simulated. The central controller relays message exchange.
Even if there is time delay and timing deviation, the current state of the subject can be accurately simulated, improving the accuracy of the simulation.
Smart Images

Figure CN115460263B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a multi-agent simulation (MAS) system and a multi-agent simulation method for simulating an object world using a plurality of interacting agents (intelligent agents, proxies). Background Art
[0002] Multi-agent simulations using a plurality of interacting agents to simulate an object world are known. For example, Patent Document 1 discloses a simulation that is performed by coordinating actions while transmitting and receiving messages between a large number of agents.
[0003] In addition, as documents representing the technical level at the time of application in the technical field of the present disclosure, Patent Document 2 and Patent Document 3 described below can be exemplified in addition to the above Patent Document 1.
[0004] Prior Art Documents
[0005] Patent Document 1: International Publication No. 2015 / 132893
[0006] Patent Document 2: International Publication No. 2014 / 196073
[0007] Patent Document 3: Japanese Unexamined Patent Application Publication No. 2014 - 174705 Summary of the Invention
[0008] Technical Problem to be Solved by the Invention
[0009] In the real world, the current state of a certain entity is determined by the relationship with the current states of other entities that interact with each other. Therefore, in order to simulate the current state of an agent in a virtual space, information related to the current states of other agents that interact with each other is required.
[0010] However, in a simulation performed by a computer, a time delay may occur in the exchange of messages between agents. In addition, since the transmission of messages is performed discretely, the timing of message exchange may also deviate between agents. Therefore, in conventional multi-agent simulations, it is not easy to obtain information related to the current states of other agents that interact with each other when simulating the current state of an agent.
[0011] The present disclosure has been made in view of the above problems. An object of the present disclosure is to provide a multi-agent simulation system and method that can accurately simulate the current state of an agent in a multi-agent simulation.
[0012] Technical Solution for Solving the Problem
[0013] The present disclosure provides a multi-agent simulation system that uses multiple interacting agents to simulate an object world. The system of the present disclosure includes multiple agent simulators provided for each of the multiple agents, and a central controller that communicates with the multiple agent simulators. The multiple agent simulators are programmed to simulate the states of the respective agents while causing the agents to interact with each other through message exchange.
[0014] Furthermore, the multiple agent simulators are each programmed to perform the following processes. The first process is to generate the state of an interaction agent that interacts with an object agent, which is the object of simulation, based on a message sent from the central controller. The second process is to store the state of the generated interaction agent. The third process is to estimate the current state of the interaction agent based on the past states of the stored interaction agent. The fourth process is to simulate the current state of the object agent using the estimated current state of the interaction agent. The fifth process is to create a message based on the simulated current state of the object agent. The sixth process is to send the created message to the central controller.
[0015] In the system of the present disclosure, each of the multiple agent simulators may also estimate the current state of the interaction agent by linear extrapolation based on two or more of the latest past states of the interaction agent when the number of past states of the stored interaction agent is two or more. Additionally, each of the multiple agent simulators may also estimate the only past state of the interaction agent as the current state of the interaction agent when the number of past states of the stored interaction agent is one. In the system of the present disclosure, the multiple agents may also include multiple types of agents having different time granularities. In this case, each of the multiple agent simulators may send messages to the central controller at a transmission time interval corresponding to the time granularity of the object agent.
[0016] The present disclosure provides a multi-agent simulation method that uses multiple interacting agents to simulate an object world. The method of the present disclosure is implemented using multiple agent simulators provided for each of the multiple agents, and a central controller that communicates with the multiple agent simulators. The method of the present disclosure includes: exchanging messages between the multiple agent simulators, simulating the states of the respective agents while causing the agents to interact with each other through message exchange; and relaying the transmission and reception of messages between the multiple agent simulators by the central controller.
[0017] Further, the method of the present disclosure includes the following steps performed by a plurality of agent simulators respectively. The first step is to generate the state of an interaction agent that interacts with an object agent that is the object of simulation based on a message sent from a central controller. The second step is to store the state of the generated interaction agent. The third step is to estimate the current state of the interaction agent based on the past states of the stored interaction agent. The fourth step is to simulate the current state of the object agent using the estimated current state of the interaction agent. The fifth step is to create a message based on the simulated current state of the object agent. And, the sixth step is to send the created message to the central controller.
[0018] In the method of the present disclosure, when the number of past states of the stored interaction agent is two or more for each of the plurality of agent simulators, the current state of the interaction agent may be estimated by linear extrapolation based on two or more latest past states of the interaction agent. Additionally, when the number of past states of the stored interaction agent is one for each of the plurality of agent simulators, the only past state of the interaction agent may be estimated as the current state of the interaction agent. In the method of the present disclosure, the plurality of agents may include multiple types of agents having different time granularities. In this case, each of the plurality of agent simulators may send a message to the central controller at a transmission time interval corresponding to the time granularity of the object agent.
[0019] Effects of the Invention
[0020] According to the multi-agent simulation system and method of the present disclosure, the state of the interaction agent generated based on the message sent from the central controller is stored, and the current state of the interaction agent is estimated based on the past states of the stored interaction agent. And, the current state of the object agent is simulated using the estimated current state of the interaction agent. Thereby, even when there is a time delay in the transmission and reception of messages between agent simulators via the central controller, and even when the message transmission timing deviates between agent simulators, the current state of the object agent can be simulated with high accuracy. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Figure 1 is a diagram showing an outline of a multi-agent simulation system according to an embodiment of the present disclosure.
[0022] Figure 2 is a diagram showing an outline of a multi-agent simulation system according to an embodiment of the present disclosure.
[0023] Figure 3 is a diagram showing an outline of a multi-agent simulation system according to an embodiment of the present disclosure.
[0024] Figure 4 is a block diagram showing the configuration of a multi-agent simulation system according to an embodiment of the present disclosure.
[0025] Figure 5 is a block diagram showing the configuration and information flow of an agent simulator for pedestrian agents according to an embodiment of the present disclosure.
[0026] Figure 6 is a block diagram showing the configuration and information flow of an agent simulator for autonomous mobile agents according to an embodiment of the present disclosure.
[0027] Figure 7 is a block diagram showing the configuration and information flow of an agent simulator for VR pedestrian agents according to an embodiment of the present disclosure.
[0028] Figure 8 is a block diagram showing the configuration and information flow of an agent simulator for roadside sensor agents according to an embodiment of the present disclosure.
[0029] Figure 9 is a block diagram showing the configuration and information flow of a mobile message dispatcher according to an embodiment of the present disclosure.
[0030] Figure 10 is a block diagram showing the summary of simulation results and the configuration for evaluation of a multi-agent simulation system according to an embodiment of the present disclosure.
[0031] Figure 11 is a diagram showing an example of the physical configuration of a multi-agent simulation system according to an embodiment of the present disclosure.
[0032] Reference Numeral Explanation
[0033] 2 Virtual World (simulation object world)
[0034] 4A, 4B, 4C Agents
[0035] 10 Computer
[0036] 30, 32 Subnets
[0037] 40 Gateway
[0038] 100 Multi-agent simulation system
[0039] 200 Agent simulator
[0040] 201 Agent simulator for pedestrian agents
[0041] 202 Agent simulator for autonomous robots / vehicles agents
[0042] 203 Agent simulator for VR pedestrian agents
[0043] Main body simulator for the roadside sensor main body of Route 204
[0044] Transceiver controller 210
[0045] 3D physics engine 220
[0046] Service system client simulator 230
[0047] Simulator core 240
[0048] Central controller 300
[0049] Mobile message dispatcher 310
[0050] Simulation orchestrator 320
[0051] Backend server for the service system 400 Detailed implementation manners
[0052] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. However, in the following-described embodiments, when numbers such as the number, quantity, amount, range, etc. of each element are mentioned, unless otherwise specifically stated or clearly determined to be that number in principle, the idea of the present disclosure is not limited to the mentioned number. In addition, for the structures and the like described in the following embodiments, unless otherwise specifically stated or clearly determined to be so in principle, they are not necessarily required by the idea of the present disclosure.
[0053] 1. Overview of the multi-agent simulation system
[0054] Use Figures 1 to 3 The overview of the multi-agent simulation system according to the embodiments of the present disclosure will be described. Hereinafter, the multi-agent simulation system will be abbreviated as the MAS system.
[0055] 1-1. Outline of the composition and functions of the MAS system
[0056] Figure 1Shows a schematic configuration of the MAS system 100 of the present embodiment. The MAS system 100 simulates a world (simulation object world) 2 to be simulated by causing a plurality of agents 4A, 4B, and 4C to interact with each other. The simulation object world of the MAS system of the present disclosure is not limited. The MAS system 100 of the present embodiment uses, as the simulation object world 2, a world in which people coexist with mobile bodies that perform autonomous movement, such as robots and vehicles, and can receive various service provisions using the mobile bodies that perform autonomous movement. Examples of services provided in the simulation object world 2 include mobility services such as on-demand buses and regularly operating buses using autonomous driving vehicles, and logistics services for delivering goods using autonomous mobile robots.
[0057] The simulation object world 2 is composed of a large number of various agents. The agents constituting the simulation object world 2 include agents representing moving objects and agents representing stationary objects. Examples of the moving objects represented as agents include pedestrians, robots, low-speed mobility, vehicles, pedestrians in which actual people participate using a VR system, and elevators. Examples of the stationary objects represented as agents include sensors including cameras and automatic doors.
[0058] However, in Figure 1 , for ease of understanding of the description, only three agents 4A, 4B, and 4C are shown in the simulation object world 2. Among them, the agents 4A and 4B represent robots, and the agent 4C represents a pedestrian. That is, in the simulation object world 2 shown in Figure 1 , there are two types of agents, robots and pedestrians. In addition, the agents 4A and 4B belong to the same category of robots, but differ in size, shape, traveling speed, actions, etc. Therefore, there are differences in the visual information that the pedestrian agent 4C can obtain from the agents 4A and 4B. Hereinafter, in this specification, the agent 4A will be simply referred to as agent A. Similarly, the agent 4B will be simply referred to as agent B, and the agent 4C will be simply referred to as agent C. In addition, hereinafter, the simulation object world 2 as a virtual world will be referred to as the virtual world 2 separately from the real world.
[0059] The MAS system 100 includes multiple entity simulators 200. The entity simulators 200 are set according to entities A, B, and C. Hereinafter, when differentiating each entity simulator 200, the entity simulator 200 that simulates the state of entity A is denoted as entity simulator A. Similarly, the entity simulators 200 that simulate the states of entities B and C are denoted as entity simulators B and C. Each entity simulator 200 has a compositional difference corresponding to the type of the entity as the object. For example, entity simulators B and C of robotic entities B and C have similar compositions, but entity simulator A of pedestrian entity A has a composition different from that of entity simulators B and C. The compositions of the entity simulators 200 for different types of entities will be described in detail later.
[0060] The entity simulator 200 simulates the states of the respective entities A, B, and C while causing entities A, B, and C to interact with each other through message exchange. The messages exchanged between the entity simulators 200 include information related to the positions and movements of the entities in the virtual world 2 (movement information). The movement information includes information related to the current situation and future plans regarding the positions and movements of the entities. Information related to the current situation is, for example, the position, direction, speed, and acceleration at the current time. Information related to the future plan is, for example, a list of the position, direction, speed, and acceleration at a future time. Hereinafter, the messages related to the positions and movements of the entities exchanged between the entity simulators 200 are referred to as movement messages.
[0061] The entity simulator 200 calculates the state of the object entity (itself entity) to be simulated based on the states of the surrounding entities. The surrounding entities are interacting entities that exist around the itself entity and interact with the itself entity. And the information representing the states of the surrounding entities is the movement message. Each entity simulator 200 can grasp the states of the surrounding entities by exchanging movement messages with other entity simulators 200.
[0062] In Figure 1 the example shown, entity simulator A grasps the states of entities B and C based on the movement messages received from entity simulators B and C, and updates the state of entity A based on the states of entities B and C. And entity simulator A sends a movement message to entity simulators B and C, and this movement message represents the updated state of entity A. The same processing is also performed in entity simulators B and C. Thus, while causing entities A, B, and C to interact with each other, the states of the respective entities A, B, and C are simulated.
[0063] The state update of the agent by the agent simulator 200 has a method of updating at certain time intervals and a method of updating when certain events are detected. However, even in the latter method, when the state is not updated for a long time, the impact on surrounding agents is large. Therefore, the following processing is also performed: an event is forcibly generated so that the state is updated at certain time intervals. The time interval of the state update of the agent by the agent simulator 200 is called the time granularity.
[0064] There are a large number of agents in the virtual world 2 that is the simulation object of the MAS system 100. However, their time granularities are not the same. Suppose the time granularities of all agents are the same. To maintain the execution performance of the MAS, the time granularity of each agent needs to be set to match the object with the fastest state change speed. However, in this case, for an agent with a slow state change speed of the object, the operation is performed with a time granularity smaller than the required time granularity. In the MAS, the interaction between agents is carried out through the exchange of movement messages. Therefore, if the time granularity becomes smaller, the sending time interval of the movement messages also becomes shorter accordingly. As a result, the amount of movement messages in the overall system will increase, wasting computing resources.
[0065] Therefore, in the MAS system 100, the time granularity of the agent varies according to the type of the agent. For example, the walking speed of a pedestrian in the real world is about 1 m / sec. Thus, when the agent is a pedestrian, the time granularity can be on the order of 1 sec or 100 msec. On the other hand, when the agent is a robot, even if it is large, the time granularity is preferably on the order of 100 msec, and more preferably on the order of 10 msec. This is because compared with pedestrians, robots are required to perform faster and more accurate actions. In the real world, when not controlling at a shorter time interval as the required action speed of the robot is faster, the control itself becomes invalid. This also applies to simulation. If the time granularity is not reduced according to the required action speed, the required action cannot be simulated.
[0066] In Figure 1 the example shown, the time granularities of the robot agents A and B in the virtual world 2 are 20 msec, and the time granularity of the pedestrian agent C is set to 100 msec. Each agent simulator A, B, and C performs the simulation with a control period corresponding to the time granularity of the responsible agents A, B, and C. In addition, Figure 1 the time granularities of the two robot agents A and B shown are the same, but even for agents of the same type, there are cases where the time granularity is set differently according to their purposes.
[0067] In the MAS system 100, simulation is performed through the exchange of movement messages between the main body simulators 200. However, the exchange of movement messages for simulation is not directly carried out between the main body simulators 200. The MAS system 100 is equipped with a central controller 300 that communicates with the main body simulators 200. The movement messages are relayed by the central controller 300 and exchanged between the main body simulators 200.
[0068] In Figure 1 In the example shown, the central controller 300 receives the movement message output from the main body simulator A. And the central controller 300 sends the movement message of the main body simulator A to the main body simulators B and C. Similarly, the movement message of the main body simulator B is sent to the main body simulators A and C through the central controller 300, and the movement message of the main body simulator C is sent to the main body simulators A and B through the central controller 300.
[0069] 1-2. Outline of the exchange of movement messages in the MAS system
[0070] Figure 2 This shows the outline of the exchange of movement messages carried out in the MAS system 100. In the MAS system 100, each main body simulator 200 sends movement messages at time intervals corresponding to the time granularity of the main body being simulated, rather than at the same time interval between the main body simulators 200. When the time granularities of the respective main bodies A, B, and C are Figure 1 as shown, the main body simulators A and B send movement messages at intervals of 20 msec, and the main body simulator C sends movement messages at intervals of 100 msec.
[0071] The central controller 300 that receives the movement messages from each of the main body simulators A, B, and C broadcasts and sends the received movement messages at their original time intervals. Thus, the movement message from the main body simulator B is sent to the main body simulator A at intervals of 20 msec, and the movement message from the main body simulator C is sent to the main body simulator A at intervals of 100 msec. Similarly, the movement message from the main body simulator A is sent to the main body simulator B at intervals of 20 msec, and the movement message from the main body simulator C is sent to the main body simulator B at intervals of 100 msec. In addition, the movement messages from the main body simulators A and B are sent to the main body simulator C at intervals of 20 msec.
[0072] As described above, in the MAS system 100, each agent simulator 200 sends movement messages at a sending time interval corresponding to the time granularity of the simulated agent, rather than at the same sending time interval among the agent simulators 200. Thereby, while maintaining the execution performance of the MAS, an increase in the amount of messages exchanged among the agent simulators 200 can be suppressed. In addition, since the central controller 300 sends the received movement messages at their original time intervals, it is possible to prevent an old movement message from arriving at the destination agent simulator 200 earlier than a new movement message. Further, by using broadcasting as the sending method of the movement messages of the central controller 300, the load on the central controller 300 can be reduced.
[0073] In the real world, the current state of an entity is determined by its relationship with the current states of other entities with which it interacts. Thus, in order to simulate the current state of an agent in the virtual world 2, information regarding the current states of the surrounding agents with which it interacts is desired. However, in the MAS system 100, due to differences in the time granularity of the agents in charge, there are differences in the sending time intervals of the movement messages among the agent simulators 200. In addition, since the sending of movement messages is performed in a discrete manner, there are times when the timing of exchanging movement messages deviates even between agent simulators 200 with the same sending time interval. Further, there are times when, depending on the processing power of the CPU and the network capacity, time delays occur in the transmission and reception of movement messages between agent simulators 200 via the central controller 300.
[0074] Therefore, in the MAS system 100, when each agent simulator 200 simulates the current state of its own agent in charge, the following first process to sixth process are executed.
[0075] In the first process, the agent simulator 200 generates the states of the surrounding agents at the moment when the movement messages are obtained, based on the movement messages sent from the central controller 300. In the second process, the agent simulator 200 stores the states of the surrounding agents generated in the first process in the memory.
[0076] In the third process, the agent simulator 200 estimates the current state of the surrounding agents based on the past states of the surrounding agents stored in the memory in the second process. When the number of past states of the surrounding agents stored in the memory is two or more, the agent simulator 200 estimates the current state of the surrounding agents by linear extrapolation based on the latest two or more past states of the surrounding agents. When the number of past states of the surrounding agents stored in the memory is one, the agent simulator 200 estimates the only past state of the surrounding agent as the current state of the surrounding agent.
[0077] In the fourth process, the host simulator 200 uses the current states of the surrounding hosts estimated in the third process to simulate the current state of its own host. In the fifth process, the host simulator 200 creates a movement message based on the current state of its own host that has been simulated in the fourth process. And in the sixth process, the host simulator 200 sends the movement message created in the fifth process to the central controller 300.
[0078] In the MAS system 100, the processes as described above are executed by each host simulator 200. Thus, even if there is a time delay in the transmission and reception of movement messages between the host simulators 200 via the central controller 300, the current states of the respective hosts can be simulated with good accuracy. Additionally, even if there is a deviation in the timing of sending movement messages between the host simulators 200, the current states of the respective hosts can be simulated with good accuracy. Further, even if there is a difference in the transmission time intervals of movement messages between the host simulators 200 due to differences in the time granularity between hosts, the current states of the respective hosts can be simulated with good accuracy.
[0079] 1 - 3. Details of the exchange of movement messages in the MAS system
[0080] Figure 3 Shows the details of the exchange of movement messages between host simulators A, B, and C in the MAS system 100. However, for simplicity of explanation, the central controller 300 that relays the transmission and reception of movement messages between host simulators A, B, and C is omitted. When the time granularity of each host A, B, and C is Figure 1 as shown, host simulators A and B send movement messages at intervals of 20 msec, and host simulator C sends movement messages at intervals of 100 msec.
[0081] Here, a time delay of 12 msec is allowed between host simulator A and host simulator B. A time delay of 14 msec is allowed between host simulator A and host simulator C. And a time delay of 10 msec is allowed between host simulator B and host simulator C.
[0082] Each host simulator A, B, and C starts simulation at time t = 0. However, the internal clocks of the computers that function as host simulators A, B, and C do not have to be the same. Therefore, sometimes the start times of the simulation will deviate between host simulators A, B, and C. In the MAS system 100, the exchange of movement messages between host simulators A, B, and C is carried out on the premise of the deviation of the start time of the simulation.
[0083] In Figure 3Among them, A(t) is a movement message representing the state of entity A at time t. B(t) is a movement message representing the state of entity B at time t. And C(t) is a movement message representing the state of entity C at time t. Hereinafter, the processing of entity simulators A, B, and C will be described in chronological order.
[0084] First, movement messages A(0), B(0), and C(0) representing the initial states of entities A, B, and C are sent from respective entity simulators A, B, and C. In the initial state, each of entity simulators A, B, and C cannot recognize the existence of surrounding entities. Therefore, movement messages A(0), B(0), and C(0) are generated under the assumption that there are no surrounding entities.
[0085] The next transmission time of entity simulator A is time t = 20. Entity simulator A receives movement messages B(0) and C(0) before time t = 20. Entity simulator A recognizes the state of entity B at time t = 0 from movement message B(0), and presumes the state of entity B at time t = 0 as the current state of entity B. In addition, entity simulator A recognizes the state of entity C at time t = 0 from movement message C(0), and presumes the state of entity C at time t = 0 as the current state of entity C. Entity simulator A generates the state of entity A at time t = 20 through simulation using the presumed states of entities B and C, and sends movement message A(20) to entity simulators B and C.
[0086] The next transmission time of entity simulator A is time t = 40. Entity simulator A newly receives movement message B(20) from entity simulator B before time t = 40. Entity simulator A recognizes the state of entity B at time t = 20 from movement message B(20), and presumes the current state of entity B through linear extrapolation based on the states of entity B at times t = 0 and t = 20. In addition, entity simulator A presumes the state of entity C at time t = 0 as the current state of entity C. Entity simulator A generates the state of entity A at time t = 40 through simulation using the presumed states of entities B and C, and sends movement message A(40) to entity simulators B and C.
[0087] The next transmission time of the main body simulator A is time t = 60. Before time t = 60, the main body simulator A newly received the movement message B(40) from the main body simulator B, but did not receive a new movement message C from the main body simulator C. Therefore, the main body simulator A estimates the current state of the main body B by linearly extrapolating based on the states of the main body B at times t = 20 and t = 40. On the other hand, the state of the main body C at time t = 0 is estimated as the current state of the main body C. The main body simulator A generates the state of the main body A at time t = 60 through simulation using the estimated states of the main bodies B and C, and sends the movement message A(60) to the main body simulators B and C.
[0088] The next transmission time of the main body simulator A is time t = 80. Before time t = 80, the main body simulator A newly received the movement message B(60) from the main body simulator B, but did not receive a new movement message C from the main body simulator C. Therefore, the main body simulator A estimates the current state of the main body B by linearly extrapolating based on the states of the main body B at times t = 40 and t = 60. On the other hand, the state of the main body C at time t = 0 is estimated as the current state of the main body C. The main body simulator A generates the state of the main body A at time t = 80 through simulation using the estimated states of the main bodies B and C, and sends the movement message A(80) to the main body simulators B and C.
[0089] The next transmission time of the main body simulator A is time t = 100. Before time t = 100, the main body simulator A newly received the movement message B(80) from the main body simulator B, but did not receive a new movement message C from the main body simulator C. Therefore, the main body simulator A estimates the current state of the main body B by linearly extrapolating based on the states of the main body B at times t = 60 and t = 80. On the other hand, the state of the main body C at time t = 0 is estimated as the current state of the main body C. The main body simulator A generates the state of the main body A at time t = 100 through simulation using the estimated states of the main bodies B and C, and sends the movement message A(100) to the main body simulators B and C.
[0090] The next transmission time of the main body simulator A is time t = 120. Before time t = 120, the main body simulator A newly receives the movement message B(100) from the main body simulator B and also newly receives the movement message C(100) from the main body simulator C. The main body simulator A identifies the state of the main body B at time t = 100 from the movement message B(100), and estimates the current state of the main body B by linear extrapolation based on the states of the main body B at time t = 80 and time t = 100. In addition, the main body simulator A identifies the state of the main body C at time t = 100 from the movement message C(100), and estimates the current state of the main body C by linear extrapolation based on the states of the main body C at time t = 0 and time t = 100. The main body simulator A generates the state of the main body A at time t = 120 through simulation using the states of the main bodies B and C estimated in this way, and sends the movement message A(120) to the main body simulators B and C.
[0091] The next transmission time of the main body simulator A is time t = 140. Before time t = 140, the main body simulator A newly receives the movement message B(120) from the main body simulator B. Therefore, the main body simulator A estimates the current state of the main body B by linear extrapolation based on the states of the main body B at time t = 100 and time t = 120. On the other hand, no new movement message C is received from the main body simulator C. Thus, the main body simulator A estimates the current state of the main body C by linear extrapolation based on the states of the main body C at time t = 0 and time t = 100. The main body simulator A generates the state of the main body A at time t = 140 through simulation using the states of the main bodies B and C estimated in this way, and sends the movement message A(140) to the main body simulators B and C.
[0092] The main body simulator B generates the states of the main body B at times t = 20, 40, 60, 80, 100, 120, and 140 through the same processing as the main body simulator A. And it sends the movement messages B(20), B(40), B(60), B(80), B(100), B(120), and B(140) representing the states at each time to the main body simulators A and C.
[0093] The next transmission time of the main body simulator C is time t = 100. The main body simulator C receives movement messages A(0), A(20), A(40), A(60), A(80) from the main body simulator A before time t = 100. The main body simulator C estimates the current state of the main body A by linearly extrapolating based on the latest two past states, that is, the states of the main body A at times t = 60 and t = 80. In addition, the main body simulator C receives movement messages B(0), B(20), B(40), B(60), B(80) from the main body simulator B before time t = 100. The main body simulator C estimates the current state of the main body B by linearly extrapolating based on the latest two past states, that is, the states of the main body B at times t = 60 and t = 80. The main body simulator C generates the state of the main body C at time t = 100 through simulation using the states of the main bodies A and B estimated in this way, and sends the movement message C(100) to the main body simulators A and B.
[0094] 2. Overall Structure and Information Flow of the MAS System
[0095] Hereinafter, Figure 4 the overall structure and information flow of the MAS system 100 will be described. As Figure 4 shown, the MAS system 100 includes a plurality of main body simulators 200, a central controller 300, and a plurality of back-end servers 400 for service systems. Details will be described later, and they are dispersedly arranged in a plurality of computers. That is to say, the MAS system 100 is a system premised on parallel distributed processing performed by a plurality of computers.
[0096] The central controller 300 includes a movement message dispatcher 310 and a simulation orchestrator 320 as its functions. The central controller 300 is an application software installed on a computer. The movement message dispatcher 310 and the simulation orchestrator 320 are programs that make up the application software. The central controller 300 may share a computer as hardware with one or more main body simulators 200, but it is preferably dedicated to one computer.
[0097] The movement message dispatcher 310 relays the transmission and reception of movement messages between the main body simulators 200. The information flow represented by the solid line between the main body simulator 200 and the movement message dispatcher 310 represents the movement message flow. The movement message dispatcher 310 undertakes the above-mentioned movement message exchange function of the central controller 300. The movement message dispatcher 310 communicates with all the main body simulators 200 that make up the MAS system 100.
[0098] The simulation conductor 320 controls the simulation of the main simulator 200 by exchanging simulation control messages with the main simulator 200. The information flow represented by the dotted line between the main simulator 200 and the simulation conductor 320 is the simulation control message flow. The simulation conductor 320 communicates with all the main simulators 200 that make up the MAS system 100 and exchanges simulation control messages. Different from the exchange of mobile messages among multiple main simulators 200 via the mobile message distributor 310, the simulation control messages are exchanged individually between the simulation conductor 320 and each main simulator 200. Through the exchange of simulation control messages, for example, the simulation speed, the stop of the simulation, the pause of the simulation, the restart of the simulation, and the time granularity of the simulation are controlled. Regarding the control of the simulation speed over the entire MAS system 100, the stop of the simulation, the pause of the simulation, the restart of the simulation, and the time granularity of the simulation are controlled for each main simulator 200.
[0099] The backend server 400 is the same backend server as the one actually used in the service system in the real world. By substituting the real-world backend server 400 into the virtual world, it is possible to simulate the services provided by the service system with high precision. As the services simulated by the MAS system 100, for example, mobility services such as on-demand buses and regularly operating buses using autonomous driving vehicles, and logistics services for delivering goods using autonomous mobile robots can be cited. In addition, the services simulated in the MAS system 100 are services that can be utilized, for example, by a user operating a service application on a user terminal.
[0100] The MAS system 100 includes multiple backend servers 400 for different service systems and can simultaneously simulate multiple services in the virtual world 2. The simulation of the services is carried out through the exchange of service messages between the backend server 400 and the main simulator 200. The information flow represented by the dotted line between the main simulator 200 and the backend server 400 represents the service message flow. Each backend server 400 exchanges service messages with the main simulator 200 related to the provision of the service.
[0101] The content of the service message to be exchanged varies depending on the type of the entity for which the entity simulator 200 is responsible. For example, when the entity is a user (pedestrian) who uses the service, the backend server 400 receives a service message including service usage information from the entity simulator 200 and sends a service message including service provision status information to the entity simulator 200. The service usage information refers to information related to the current status and future plans of the use of the service system by the user, including the current usage status and input information based on application operations. The service provision status information refers to information related to the status of the user in the service system and is information provided through the service application of the user terminal.
[0102] When the entity is an autonomous robot or an autonomous vehicle used in the provision of the service, the backend server 400 receives a service message including action status information from the entity simulator 200 and sends a service message including action instruction information to the entity simulator 200. The action status information refers to information related to the current status and future plans of the autonomous robot or the autonomous vehicle. The information related to the current status is, for example, information related to the status of the mounted sensors, measurement data, the status of the mounted actuators, and the status related to action determination. The information related to the future plan is, for example, a list of future times, the status of the actuators, and the status related to action determination. The action instruction information is information including all or part of the future plan for using the autonomous robot or the autonomous vehicle to provide the service. For example, the target location and path to which the autonomous robot or the autonomous vehicle should move are included in the action instruction information.
[0103] The entities existing in the virtual world 2 include installed objects such as roadside sensors including cameras and automatic doors. For example, when the entity is a fixed camera, the backend server 400 receives a service message from the entity simulator 200, and the service message includes the image information of the fixed camera required for the calculation of the position information of the autonomous robot. In addition, when the entity is an automatic door, the backend server 400 sends a service message to the entity simulator 200, and the service message includes an instruction to open the door for the passage of the autonomous robot.
[0104] In addition, the backend server 400 exchanges service messages with other backend servers 400 according to respective agreements (conventions). The information flow represented by dotted lines between the backend servers 400 indicates the service message flow. The service messages exchanged at this time include, for example, the usage status of the users in each service and the service provision status. By exchanging service messages among multiple backend servers 400, the services provided in the virtual world 2 can cooperate with each other.
[0105] As an example of the cooperation of multiple services, the cooperation between an on-demand bus service and a logistics service can be cited. In the logistics service, an autonomous robot replaces the user to transport goods from the bus stop to their home. In the on-demand bus service, the user can get off the bus at the desired place at the desired time. By cooperating the on-demand bus service and the logistics service, the autonomous robot can arrive at the getting-off place before the user arrives and wait for the user at the getting-off place. In addition, in the case where the bus is late due to congestion or the like, or the user misses the bus, by exchanging service messages between the back-end servers 400, the time for the autonomous robot to go to the getting-off place can be matched with the arrival time of the user.
[0106] There are multiple types of entity simulators 200 according to the types of entities in charge. For example, there is an entity simulator 201 for pedestrian entities, an entity simulator 202 for autonomous robot / vehicle entities, an entity simulator 203 for VR pedestrian entities, and an entity simulator 204 for roadside sensor entities. Hereinafter, the entity simulator 200 is the general term for these multiple entity simulators 201, 202, 203, and 204.
[0107] The entity 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 entity simulator 200 is an application software installed on a computer. The transceiver controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240 are programs that make up the application software. These functions are different among the entity simulators 201, 202, 203, and 204. Here, the functions that are roughly common among the entity simulators 201, 202, 203, and 204 will be described, and the details of the functions of each entity simulator 201, 202, 203, and 204 will be described later.
[0108] The transceiver controller 210 is an interface between the entity simulator 200 and other programs. The transceiver controller 210 receives mobile messages from the mobile message dispatcher 310 and sends mobile messages to the mobile message dispatcher 310. However, in the entity simulator 204, only mobile messages are received. The transceiver controller 210 receives simulation control messages from the simulation orchestrator 320 and sends simulation control messages to the simulation orchestrator 320. In addition, the transceiver controller 210 receives service messages from the back-end server 400 and sends service messages to the back-end server 400. However, in the entity simulator 204, only service messages are sent.
[0109] The 3D physics engine 220 estimates the current states of surrounding agents in the three-dimensional space based on the movement messages received from other agent simulators 200. The 3D physics engine 220 performs the estimation of the current states based on the past states of the surrounding agents as described above. Based on the current states of the surrounding agents, the 3D physics engine 220 generates the surrounding information obtained from the observations of its own agent. In addition, the 3D physics engine 220 updates the state of its own agent in the three-dimensional space based on the simulation results of the simulator core 240 described later, and generates a movement message representing the state of its own agent. However, in the agent simulator 204, since the responsible agent is stationary, the update of the state of its own agent and the generation of the movement message are not performed. Figure 3 The estimation of the current states based on the past states of the surrounding agents has been described. The 3D physics engine 220 generates the surrounding information obtained from the observations of its own agent based on the current states of the surrounding agents. In addition, the 3D physics engine 220 updates the state of its own agent in the three-dimensional space based on the simulation results of the simulator core 240 described later, and generates a movement message representing the state of its own agent. However, in the agent simulator 204, since the responsible agent is stationary, the update of the state of its own agent and the generation of the movement message are not performed.
[0110] The service system client simulator 230 simulates the behavior of its own agent as a client of the service system related to the backend server 400. The service messages received by the transceiver controller 210 are input to the service system client simulator 230. And the service messages generated by the service system client simulator 230 are sent from the transceiver controller 210. However, in the agent simulator 204, only the generation of the service messages is performed.
[0111] The simulator core 240 simulates the state of its own agent in the next time step. The time interval of the time step for calculating the state of its own agent is the above-mentioned time granularity. The content of the simulation in the simulator core 240 varies depending on the type of the agent simulator 200. In addition, since the responsible agent of the agent simulator 204 is stationary and does not require the simulation of the state of its own agent, there is no simulator core 240.
[0112] 3. Detailed Configuration and Information Flow of Agent Simulators
[0113] Next, Figures 5 to 8 the detailed configuration and information flow of various agent simulators 201, 202, 203, 204 that make up the MAS system 100 are described. In addition, in Figures 5 to 8 the information flow between the blocks represented by solid lines represents the movement message flow. In addition, the information flow between the blocks represented by dotted lines represents the service message flow. And the information flow between the blocks represented by dashed lines represents the simulation control message flow.
[0114] 3-1. Agent Simulator for Pedestrian Agent
[0115] Figure 5 is a block diagram showing the configuration and information flow of the agent simulator 201 for pedestrian agents. Hereinafter, 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 are described.
[0116] 3-1-1. Overall Configuration of the Main Body Simulator for Pedestrian Main Bodies
[0117] The main body 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. These functions are conceptually included in the transceiver controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.
[0118] The transceiver controller 211 has, as the function of receiving various messages, a mobile message receiving unit 211a, a service message receiving unit 211b, and a control message receiving unit 211c. In addition, the transceiver controller 211 has, as the function of sending various messages, a mobile message sending unit 211d, a service message sending unit 211e, and a control message sending unit 211f. Further, the transceiver controller 211 has a remaining time rate calculation unit 211g and a simulated action control unit 211h. Each of the units 211a to 211h constituting the transceiver controller 211 is a program or a part of a program.
[0119] The 3D physics engine 221 has, as its functions, a surrounding main body state update unit 221a, a visual information generation unit 221b, and a self-main body state update unit 221c. Each of the units 221a, 221b, and 221c constituting the 3D physics engine 221 is a program or a part of a program.
[0120] The service system client simulator 231 has, as its functions, a service provision status information processing unit 231a and a service utilization information generation unit 231b. Each of the units 231a and 231b constituting the service system client simulator 231 is a program or a part of a program.
[0121] The simulator core 241 has, as its functions, an overall movement policy determination unit 241a, an action determination unit 241b, a next time step state calculation unit 241d, a service utilization action determination unit 241e, and a speed adjustment unit 241g. Each of the units 241a, 241b, 241d, 241f, and 241g constituting the simulator core 241 is a program or a part of a program.
[0122] 3-1-2. Details of the Transceiver Controller
[0123] In the transceiver controller 211, the mobile message receiving unit 211a obtains mobile messages from the mobile message distributor 310. The mobile message receiving unit 211a outputs the received mobile messages to the surrounding main body state update unit 221a of the 3D physics engine 221. In addition, the mobile message receiving unit 211a outputs information including the time when the mobile message is received to the remaining time rate calculation unit 211g.
[0124] 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 status information processing unit 231a of the service system client simulator 231.
[0125] The control message receiving unit 211c receives a simulation control message from the simulation orchestrator 320. The control message receiving unit 211c outputs the received simulation control message to the simulation action control unit 211h.
[0126] The movement message sending unit 211d obtains a movement message including the current state of its own main body from the own main body state update 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. In addition, the movement message sending unit 211d sends information including the transmission completion time of the movement message to the remaining time rate calculation unit 211g.
[0127] The service message sending unit 211e obtains a service message including service utilization information from the service utilization information generation unit 231b of the service system client simulator 231. The service message sending unit 211e sends the obtained service message to the backend server 400.
[0128] The control message sending unit 211f obtains a simulation control message including information related to the speed status of the simulation from the remaining time rate calculation unit 211g. In addition, the control message sending unit 211f obtains a simulation control message including the control state of the main body simulator 201 from the simulation action control unit 211h. The control message sending unit 211f sends the simulation control messages obtained from the remaining time rate calculation unit 211g and the simulation action control unit 211h to the simulation orchestrator 320.
[0129] The remaining time rate calculation unit 211g obtains information including the reception time of the movement message from the movement message receiving unit 211a. In addition, the remaining time rate calculation unit 211g obtains information including the transmission completion time of the movement message from the movement message sending unit 211d. Further, the remaining time rate calculation unit 211g obtains the start time for the calculation of the state update of its own main body from the next time step state calculation unit 241d of the simulator core 241.
[0130] Here, the start time for calculating the state update of its own agent in the current time step is set as Ta(N). The start time for calculating the state update of its own agent in the next time step is set as Ta(N+1). The reception time of the last received movement message among the movement messages of other agents required for calculating the state update of its own agent in the next time step is set as Te_last(N). The reception time of the first received movement message among the movement messages of other agents required for calculating the state update of its own agent in the time step after the next time step is set as Te_first(N+1). Additionally, the transmission completion time of the movement message in the current time step is taken as Td(N).
[0131] The remaining time rate calculation unit 211g calculates the remaining time, the remaining time rate, and the delay time through the following expressions.
[0132] Remaining time = Ta(N+1) - Te_last(N)
[0133] Remaining time rate = (Ta(N+1) - Te_last(N)) / (Ta(N+1) - Ta(N))
[0134] Delay time = Td(N) - Te_first(N+1)
[0135] The remaining time rate calculation unit 211g outputs a simulation control message including the remaining time, the remaining time rate, and the delay time to the control message sending unit 211f. The remaining time, the remaining time rate, and the delay time are information related to the speed condition of the simulation. The simulation orchestrator 320 that receives the simulation control message including this information determines the control content that should be instructed to the agent simulator 201. The control content that should be instructed to the agent simulator 201 is, for example, the simulation speed, the stop of the simulation, the pause of the simulation, and the restart of the simulation. The simulation orchestrator 320 creates a simulation control message including the control content to be instructed and sends it to the agent simulator 201.
[0136] 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 agent simulator 201 according to the instruction included in the simulation control message. For example, when the change of the time granularity of the simulation is instructed, the simulation action control unit 211h changes the time granularity of the simulation of the agent simulator 201 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a set value in the agent simulator 201. Additionally, the upper limit value and the lower limit value of the time granularity are stored in the simulation orchestrator 320 according to the type of the agent.
[0137] When the indication content based on the analog control message is the analog speed, the analog action control unit 211h changes the action frequencies of the 3D physics engine 221 and the simulator core 241 to accelerate or decelerate the analog speed. For example, for the simulator core 241, the indicated analog speed is output to the speed adjustment unit 241g of the simulator core 241. In addition, the analog speed means the speed ratio of the time flow of the virtual world 2 to the time flow of the real world. When the stop of the simulation is indicated, the analog action control unit 211h stops the simulation of the main simulator 201. When the pause of the simulation is indicated, the simulation is paused, and when the restart is indicated, the simulation is restarted. The analog action control unit 211h outputs an analog control message including the current control state of the main simulator 201 to the control message sending unit 211f.
[0138] 3-1-3. Details of the 3D Physics Engine
[0139] In the 3D physics engine 221, the surrounding entity state update unit 221a obtains a movement message from the movement message receiving unit 211a. The movement message obtained from the movement message receiving unit 211a is a movement message sent from another main simulator via the movement message distributor 310. The surrounding entity state update unit 221a estimates the current state of the surrounding entities existing around its own entity based on the obtained movement message.
[0140] When estimating the current state of the surrounding entities based on the past state, the surrounding entity state update unit 221a uses the past state of the surrounding entities saved in the log. The method of using the past state of the surrounding entities to estimate the current state is as described Figure 3 before. The surrounding entity state update unit 221a outputs the estimated current state of the surrounding entities to the visual information generation unit 221b and updates the log.
[0141] The visual information generation unit 221b obtains the current state of the surrounding entities from the surrounding entity state update unit 221a. The visual information generation unit 221b generates the surrounding information obtained from the observation of its own entity based on the current state of the surrounding entities. Since its own entity is a pedestrian, the surrounding information obtained from the observation means the visual information captured by the eyes of the pedestrian. 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 utilization action determination unit 241e of the simulator core 241.
[0142] The self - entity state update unit 221c obtains the state of the self - entity in the next time step simulated by the simulator core 241 from the next - time - step state calculation unit 241d of the simulator core 241. The self - entity state update unit 221c updates the state of the self - entity in the three - dimensional space based on the simulation result of the simulator core 241. The self - entity state update unit 221c outputs a movement message including the updated state of the self - entity to the movement message sending unit 211d of the transceiver controller 211. The state of the self - entity included in the movement message includes the position, direction, speed, acceleration in the current time step and the position, direction, speed, acceleration in the next time step. In addition, the self - entity state update unit 221c outputs information related to the updated state of the self - entity to the service utilization information generation unit 231b of the service system client simulator 231.
[0143] 3 - 1 - 4. Details of the Service System Client Simulator
[0144] In the service system client simulator 231, the service - providing 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 service - providing status information. The service - providing status information processing unit 231a processes the service - providing status information to obtain information related to the state of the self - entity as a user of the service system and input items for the service application of the user terminal. The information related to the state of the user as the self - entity is the information presented on the user terminal, and the input items are the information requested to be input for the self - entity to utilize the service. The service - providing status information processing unit 231a outputs the information related to the state of the user as the self - entity and the input items for the service application of the user terminal to the overall movement policy determination unit 241a and the service utilization action determination unit 241e of the simulator core 241.
[0145] The service utilization information generation unit 231b obtains the determination result of the service utilization action of the self - entity 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 self - entity in the three - dimensional space from the self - entity 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 self - entity. 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.
[0146] 3 - 1 - 5. Details of the Simulator Core
[0147] 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 state of the user who is the main body itself and input items for the service application program of the user terminal from the service provision status information processing unit 231a of the service system client simulator 231. Based on the obtained information, the overall movement policy determination unit 241a determines the overall movement policy of the main body itself in the virtual world 2. The overall movement policy determination unit 241a outputs the determined overall movement policy to the action determination unit 241b.
[0148] The action determination unit 241b obtains the overall movement policy from the overall movement policy determination unit 241a and also obtains visual information from the visual information generation unit 221b of the 3D physics engine 221. The action determination unit 241b determines the action of the main body itself by inputting the overall movement policy and visual information to the movement model 241c. The movement model 241c is a simulation model that models how a pedestrian moves according to the surrounding conditions reflected in the pedestrian's eyes based on a certain movement policy. The action determination unit 241b outputs the determined action of the main body itself to the next time step state calculation unit 241d.
[0149] The next time step state calculation unit 241d obtains the action of the main body itself determined by the action determination unit 241b. The next time step state calculation unit 241d calculates the state of the main body itself in the next time step based on the action of the main body itself. The calculated state of the main body itself includes the position, direction, speed, and acceleration of the main body itself in the next time step. The next time step state calculation unit 241d outputs the calculated state of the main body itself in the next time step to the main body state update unit 221c of the 3D physics engine 221. In addition, the next time step state calculation unit 241d outputs the start time for the calculation of the update of the state of the main body itself to the remaining time rate calculation unit 211g of the transceiver controller 211.
[0150] The service utilization action decision unit 241e acquires visual information from the visual information generation unit 221b of the 3D physical engine 221. In addition, the service utilization action decision unit 241e acquires information related to the state of the user who is the subject itself 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 decision unit 241e determines the action (service utilization action) of the user who is the subject itself as a service system by inputting the acquired information into the action model 241f. The action model 241f is a simulation model that models how the user will move according to the surrounding conditions reflected in the user's eyes when information related to the service is presented to the user and an input to the service application of the user terminal is requested. The service utilization action decision unit 241e outputs the determined service utilization action to the service utilization information generation unit 231b.
[0151] The speed adjustment unit 241g acquires the simulation speed from the simulation motion control unit 211h. The simulation speed acquired from the simulation motion control unit 211h is the simulation speed indicated by the simulation orchestrator 320. The speed adjustment unit 241g accelerates or decelerates the simulation speed of the subject itself based on the simulator core 241 according to the instruction from the simulation orchestrator 320.
[0152] 3 - 2. Subject Simulator for Autonomous Robot / Vehicle Body
[0153] Figure 6 It is a block diagram showing the configuration and information flow of the subject simulator 202 for the autonomous robot / vehicle body. The autonomous robot / vehicle body refers to the body of an autonomous robot or an autonomous vehicle used to provide services in the service system related to the backend server 400. Hereinafter, the overall configuration of the subject simulator 202 for the autonomous robot / vehicle body, the details of each part, and the information flow in the subject simulator 202 will be described.
[0154] 3 - 2 - 1. Overall Configuration of Subject Simulator for Autonomous Robot / Vehicle Body
[0155] The subject simulator 202 includes a transceiver controller 212, a 3D physical engine 222, a service system client simulator 232, and a simulator core 242 as its functions. These functions are conceptually included in the transceiver controller 210, the 3D physical engine 220, the service system client simulator 230, and the simulator core 240, respectively.
[0156] 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. Additionally, 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. Further, the transceiver controller 212 includes a remaining time rate calculation unit 212g and an analog operation control unit 212h. Each of the units 212a to 212h constituting the transceiver controller 211 is a program or a part of a program.
[0157] The 3D physical engine 222 includes a surrounding object state update unit 222a, a sensor information generation unit 222b, and a self-object state update unit 222c as its functions. Each of the units 222a, 222b, and 222c constituting the 3D physical engine 222 is a program or a part of a program.
[0158] The service system client simulator 232 includes a path planning information receiving unit 232a and an action state information generation unit 232b as its functions. Each of the units 232a and 232b constituting the service system client simulator 232 is a program or a part of a program.
[0159] The simulator core 242 includes an overall 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 of the units 242a, 242b, 242c, and 242d constituting the simulator core 242 is a program or a part of a program.
[0160] 3 - 2 - 2. Details of the Transceiver Controller
[0161] In the transceiver controller 212, the mobile message receiving unit 212a receives mobile messages from the mobile message distributor 310. The mobile message receiving unit 212a outputs the received mobile messages to the surrounding object state update unit 222a of the 3D physical engine 222. Additionally, the mobile message receiving unit 212a outputs information including the time when the mobile messages are received to the remaining time rate calculation unit 212g.
[0162] The service message receiving unit 212b receives service messages from the backend server 400. The service message receiving unit 212b outputs the received service messages to the path planning information receiving unit 232a of the service system client simulator 232.
[0163] The control message receiving unit 212c receives simulation control messages from the simulation orchestrator 320. The control message receiving unit 212c outputs the received simulation control messages to the analog operation control unit 212h.
[0164] The mobile message sending unit 212d obtains a mobile message including the current state of its own main body from the own main body state updating unit 222c of the 3D physics engine 222. The mobile message sending unit 212d sends the obtained mobile message to the mobile message distributor 310. In addition, the mobile message sending unit 212d sends information including the transmission completion time of the mobile message to the remaining time rate calculation unit 212g.
[0165] The service message sending unit 212e obtains a service message including action state information from the action state information generation unit 232b of the service system client simulator 232. The service message sending unit 212e sends the obtained service message to the backend server 400.
[0166] The control message sending unit 212f obtains a simulation control message including information related to the speed condition of the simulation from the remaining time rate calculation unit 212g. In addition, the control message sending unit 212f obtains a simulation control message including the control state of the main body simulator 202 from the simulation action control unit 212h. The control message sending unit 212f sends the simulation control messages obtained from the remaining time rate calculation unit 212g and the simulation action control unit 212h to the simulation orchestrator 320.
[0167] The remaining time rate calculation unit 212g obtains information including the reception time of the mobile message from the mobile message receiving unit 212a. In addition, the remaining time rate calculation unit 212g obtains information including the transmission completion time of the mobile message from the mobile message sending unit 212d. Further, the remaining time rate calculation unit 212g obtains the start time for the calculation of the state update of its own main body from the next time step state calculation unit 242d of the simulator core 242.
[0168] The remaining time rate calculation unit 212g calculates the remaining time, the remaining time rate, and the delay time based on the obtained information through the above formulas. The remaining time rate calculation unit 212g outputs a simulation control message including the remaining time, the remaining time rate, and the delay time to the control message sending unit 212f. The simulation orchestrator 320 that receives the simulation control message including this information creates a simulation control message including the control content that should be instructed to the main body simulator 202 and sends it to the main body simulator 202.
[0169] The simulation action control unit 212h obtains a simulation control message from the control message receiving unit 212c. The simulation action control unit 212h controls the simulation action of the main body simulator 202 according to the instructions included in the simulation control message. For example, when the change of the time granularity of the simulation is instructed, the simulation action control unit 212h changes the time granularity of the simulation of the main body simulator 202 from the initial value to the instructed time granularity. The initial value of the time granularity is stored in the main body simulator 202 as a set value. In addition, the upper limit value and the lower limit value of the time granularity are stored in the simulation orchestrator 320 according to the type of the main body.
[0170] When the instruction content based on the simulation control message is the simulation speed, the simulation action control unit 212h changes the action frequency of the 3D physics engine 222 and the simulator core 242 according to the instructed simulation speed, and accelerates or decelerates the operation speed of the main body simulator 202. When the stop of the simulation is instructed, the simulation action control unit 212h stops the simulation of the main body simulator 202. When the pause of the simulation is instructed, the simulation is paused, and when the restart is instructed, the simulation is restarted. The simulation action control unit 212h outputs a simulation control message including the current control state of the main body simulator 202 to the control message sending unit 212f.
[0171] 3-2-3. Details of the 3D Physics Engine
[0172] In the 3D physics engine 222, the surrounding main body state update unit 222a obtains a movement message from the movement message receiving unit 212a. The movement message obtained from the movement message receiving unit 212a is a movement message sent from other main body simulators via the movement message distributor 310. The surrounding main body state update unit 222a estimates the current state of the surrounding main bodies existing around its own main body based on the obtained movement message.
[0173] When estimating the current state of the surrounding main bodies based on the past state, the surrounding main body state update unit 222a uses the past state of the surrounding main bodies saved in the log. The method of using the past state of the surrounding main bodies to estimate the current state is as described Figure 3 before. The surrounding main body state update unit 222a outputs the estimated current state of the surrounding main bodies to the sensor information generation unit 222b and updates the log.
[0174] The sensor information generation unit 222b obtains the current state of the surrounding entities from the surrounding entity state update unit 222a. Based on the current state of the surrounding entities, the sensor information generation unit 222b generates the surrounding information obtained from the observation of its own entity. Since the own entity is an autonomous robot or an autonomous vehicle, the surrounding information obtained from the observation means the sensor information captured by the sensors 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.
[0175] The own entity state update unit 222c obtains the state of its own entity in the next time step calculated by the simulator core 242 from the next time step state calculation unit 242d of the simulator core 242. Based on the operation result of the simulator core 242, the own entity state update unit 222c updates the state of its own entity in the three-dimensional space. The own entity state update unit 222c outputs a movement message including the updated state of its own entity to the movement message sending unit 212d of the transceiver controller 212. The state of the own entity included in the movement message includes the position, direction, speed, acceleration in the current time step and the position, direction, speed, acceleration in the next time step. In addition, the own entity state update unit 222c outputs information related to the updated state of its own entity to the action state information generation unit 232b of the service system client simulator 232.
[0176] 3-2-4. Details of the Service System Client Simulator
[0177] In the service system client simulator 232, the path planning information receiving unit 232a obtains a service message from the service message receiving unit 211b. 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.
[0178] The motion state information generation unit 232b obtains the actuator operation amount of its own main body in the next time step from the actuator operation amount determination unit 242c of the simulator core 242. In addition, the motion 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 its own main body in the three-dimensional space from its own main body state update unit 222c. Based on these obtained information, the motion state information generation unit 232b generates motion state information indicating the motion state of its own main body related to the provision of the service. The motion state information generation unit 232b outputs a service message including the motion state information to the service message sending unit 212e of the transceiver controller 212.
[0179] 3-2-5. Details of the Simulator Core
[0180] In the simulator core 242, the overall path planning unit 242a obtains sensor information from the sensor information generation 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. Based on these obtained information, the overall path planning unit 242a plans the overall path of its own main body in the virtual world 2. The overall path means the path from the current position of the own main body to the target location. Since the information obtained from the sensor information generation 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.
[0181] 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, for example, means the path from the current time point to after a predetermined time step, or the path from the current position to a predetermined distance. The local path plan is represented, for example, by a set of positions that the own main body should follow 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.
[0182] The actuator operation amount determination unit 242c acquires the local path plan from the local path planning unit 242b. The actuator operation amount determination unit 242c determines the actuator operation amount of its own main body in the next time step based on the local path plan. Here, the actuator refers to an actuator that controls the direction, speed, and acceleration of its own main body. In the case where the own main body is an autonomous robot or an autonomous vehicle that travels on wheels, for example, actuators such as a braking device, a driving device, and a steering device 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.
[0183] The next time step state calculation unit 242d acquires 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 its own main body in the next time step based on the actuator operation amount. The calculated state of the own main body includes the position, direction, speed, and acceleration of the own main body in the next time step. The next time step state calculation unit 242d outputs the calculated state of the own main body in the next time step to the own main body state update unit 222c of the 3D physics engine 222. In addition, the next time step state calculation unit 242d outputs the start time for the calculation of the state update of the own main body to the remaining time rate calculation unit 212g of the transceiver controller 212.
[0184] 3-3. VR Pedestrian Main Body Simulator
[0185] Figure 7 It is a block diagram showing the configuration and information flow of the main body simulator 203 for VR pedestrian main bodies. The VR pedestrian main body refers to a pedestrian main body for an actual person to participate in the virtual world 2 that is the object of simulation using a VR (Virtual Reality) system. Hereinafter, the overall configuration of the main body simulator 203 for VR pedestrian main bodies, the details of each part, and the information flow in the main body simulator 203 will be described.
[0186] 3-3-1. Overall Configuration of VR Pedestrian Main Body Simulator
[0187] The main body 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. These functions are conceptually included in the transceiver controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.
[0188] 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. Further, the transceiver controller 213 includes an analog operation control unit 213h. Each of the units 213a to 213f, 213h constituting the transceiver controller 213 is a program or a part of a program.
[0189] The 3D physical engine 223 includes a surrounding object state updating unit 223a, a visual information generating unit 223b, and a self-object state updating unit 223c as its functions. Each of the units 223a, 223b, 223c constituting the 3D physical engine 223 is a program or a part of a program.
[0190] The service system client simulator 233 includes a service provision status information processing unit 233a and a service utilization information generating unit 233b as its functions. Each of the units 233a, 233b constituting the service system client simulator 231 is a program or a part of a program.
[0191] The simulator core 243 includes a cognitive judgment information presentation unit 243a, a mobile operation acceptance unit 243b, a next time step state calculation unit 243c, and an application program operation acceptance unit 243d as its functions. Each of the units 243a, 243b, 243c, 243d constituting the simulator core 243 is a program or a part of a program.
[0192] 3-3-2. Details of the Transceiver Controller
[0193] In the transceiver controller 213, the mobile message receiving unit 213a receives mobile messages from the mobile message dispatcher 310. The mobile message receiving unit 213a outputs the received mobile messages to the surrounding object state updating unit 223a of the 3D physical engine 223.
[0194] The service message receiving unit 213b receives service messages from the backend server 400. The service message receiving unit 213b outputs the received service messages to the service provision status information processing unit 233a of the service system client simulator 233.
[0195] The control message receiving unit 213c receives simulation control messages from the simulation orchestrator 320. The control message receiving unit 213c outputs the received simulation control messages to the analog operation control unit 213h.
[0196] The mobile message sending unit 213d obtains a mobile message including the current state of its own main body from the own main body state update unit 223c of the 3D physics engine 223. The mobile message sending unit 213d sends the obtained mobile message to the mobile message distributor 310.
[0197] The service message sending unit 213e obtains a service message including service utilization information from the service utilization information generation unit 233b of the service system client simulator 233. The service message sending unit 213e sends the obtained service message to the backend server 400.
[0198] The control message sending unit 213f obtains a simulation control message including the control state of the main body simulator 203 from the simulation action control unit 213h. The control message sending unit 213f sends the simulation control message obtained from the simulation action control unit 213h to the simulation orchestrator 320.
[0199] The simulation action control unit 213h obtains a simulation control message from the control message receiving unit 213c. The simulation action control unit 213h controls the simulation action of the main body simulator 203 according to the instructions included in the simulation control message. When the participation condition of the VR pedestrian main body in the virtual world 2 is not satisfied, the simulation orchestrator 320 instructs the main body simulator 203 to stop the simulation.
[0200] The aforementioned main body simulators 201 and 202 and the following main body simulator 204 can change the simulation speed as needed. However, when the simulation speed is changed, the actual participants who participate in the virtual world 2 via the VR pedestrian main body may feel a strong sense of discomfort with the time flow different from the real world. Therefore, in the MAS system 100, the simulation is performed in real time as a participation condition, and the participation of the VR pedestrian main body in the virtual world 2 is permitted. When the simulation speed is accelerated or decelerated compared with the time flow of the real world, the simulation orchestrator 320 stops the simulation of the main body simulator 203. The simulation action control unit 213h outputs a simulation control message including the current control state of the main body simulator 203 to the control message sending unit 213f.
[0201] 3-3-3.3 Details of the 3D Physics Engine
[0202] In the 3D physics engine 223, the surrounding main body 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 main body simulator via the mobile message distributor 310. The surrounding main body state update unit 223a estimates the current state of the surrounding main body existing around its own main body based on the obtained mobile message.
[0203] In the case of estimating the current state of the surrounding object based on the past state, the surrounding object state update unit 223a uses the past state of the surrounding object stored in the log. The method of using the past state of the surrounding object to estimate the current state is as described by Figure 3 as explained. The surrounding object state update unit 223a outputs the estimated current state of the surrounding object to the visual information generation unit 223b and updates the log.
[0204] The visual information generation unit 223b obtains the current state of the surrounding object from the surrounding object state update unit 223a. Based on the current state of the surrounding object, the visual information generation unit 223b generates the surrounding information obtained from the observation of its own object. Since the own object is a pedestrian, the surrounding information obtained from the observation means the visual information captured through the eyes of the pedestrian. 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.
[0205] The own object state update unit 223c obtains the state of its own object in the next time step calculated by the simulator core 243 from the next time step state calculation unit 243c of the simulator core 243. Based on the calculation result of the simulator core 243, the own object state update unit 223c updates the state of its own object in the three-dimensional space. The own object state update unit 223c outputs a movement message including the updated state of its own object to the movement message sending unit 213d of the transceiver controller 213. The state of the own object included in the movement message includes the position, direction, speed, acceleration in the current time step and the position, direction, speed, acceleration in the next time step. In addition, the own object state update unit 223c outputs information related to the updated state of its own object to the service utilization information generation unit 233b of the service system client simulator 233.
[0206] 3-3-4. Details of the Service System Client Simulator
[0207] In the service system client emulator 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 includes service provision status information. The service provision status information processing unit 233a processes the service provision status information to obtain information related to the status of the user's own subject as a user of the service system and input items for the service application on the user terminal. The information related to the status of the user's own subject is the information presented on the user terminal, and the input items are the information requested to be input for the user's own subject to use the service. The service provision status information processing unit 233a outputs the information related to the status of the user's own subject and the input items for the service application on the user terminal to the cognitive judgment information presentation unit 243a and the application operation acceptance unit 243d of the emulator core 243.
[0208] The service utilization information generation unit 233b obtains the operations of the service application on VR by the actual participants who participate in the virtual world 2 via the VR pedestrian subject from the application operation acceptance unit 243d of the emulator core 243. In addition, the service utilization information generation unit 233b obtains the status of the user's own subject in the three-dimensional space from the user's own subject status update 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 status of the service for the user's own subject. The service utilization information generation unit 233b outputs a service message including the service utilization information to the service message sending unit 213e of the transceiver controller 213.
[0209] 3-3-5. Details of the Emulator Core
[0210] In the emulator core 243, the cognitive judgment information presentation unit 243a obtains visual information from the visual information generation unit 223b of the 3D physics engine 223. In addition, the cognitive judgment information presentation unit 243a obtains information related to the status of the user's own subject and input items for the service application on the user terminal from the service provision status information processing unit 233a of the service system client emulator 231. The obtained information is for cognitive judgment by the actual participants who participate in the virtual world 2 via the VR pedestrian subject. The cognitive judgment information presentation unit 243a presents the cognitive judgment information to the actual participants through the VR system.
[0211] The movement operation reception unit 243b acquires visual information from the visual information generation unit 223b of the 3D physics engine 223. Also, while presenting the visual information to the in-person participant through the VR system, the movement operation reception unit 243b receives the movement operation of the in-person participant on the VR. The movement operation reception unit 243b outputs the received movement operation of the in-person participant on the VR to the next time step state calculation unit 243d.
[0212] The next time step state calculation unit 243d acquires the movement operation of the in-person participant on the VR from the movement operation reception unit 243b. Based on the movement operation of the in-person participant on the VR, the next time step state calculation unit 243d calculates the state of its own main body in the next time step. The calculated state of its own main body includes the position, orientation, velocity, and acceleration of its own main body in the next time step. The next time step state calculation unit 243d outputs the calculated state of its own main body in the next time step to the own main body state update unit 223c of the 3D physics engine 223.
[0213] The application operation reception unit 243d acquires visual information from the visual information generation unit 223b of the 3D physics engine 223. In addition, the application operation reception unit 243d acquires information related to the state of the user as its own main body and input items to the service application for the user terminal from the service provision status information processing unit 233a of the service system client simulator 233. While presenting the acquired information to the in-person participant through the VR system, the application operation reception unit 243d receives the operation of the service application on the VR by the in-person participant. The application operation reception unit 243d outputs the received operation of the service application on the VR by the in-person participant to the service utilization information generation unit 233b of the service system client simulator 233.
[0214] 3 - 4. Body Simulator for Roadside Sensor Main Body
[0215] Figure 8 It is a block diagram showing the configuration and information flow of the body simulator 204 for the roadside sensor main body. The roadside sensor main body refers to the main body of the roadside sensor used to acquire the position information of the autonomous robot / vehicle main body in the virtual world 2. The position information of the autonomous robot / vehicle main body acquired by the roadside sensor main body is used in the service system related to the backend server 400. Hereinafter, the overall configuration of the body simulator 204 for the roadside sensor main body, the details of each part, and the information flow in the body simulator 204 will be described.
[0216] 3 - 4 - 1. Overall Configuration of Body Simulator for Roadside Sensor Main Body
[0217] The main body simulator 204 has, as its functions, a transceiver controller 214, a 3D physics engine 224, and a service system client simulator 234. These functions conceptually include a transceiver controller 210, a 3D physics engine 220, and a simulator core 240, respectively. Different from other main body simulators, the main body simulator 204 does not have a simulator core.
[0218] The transceiver controller 214 has, as its functions for receiving various messages, a mobile message receiving unit 214a and a control message receiving unit 214b. In addition, the transceiver controller 212 has, as its functions for sending various messages, a service message sending unit 214e and a control message sending unit 214f. Further, the transceiver controller 212 has a remaining time rate calculation unit 214g and a simulation action control unit 214h. Each part 212a, 214c, 214e, 214f, 214g, 214h that makes up the transceiver controller 214 is a program or a part of a program.
[0219] The 3D physics engine 224 has, as its functions, a surrounding entity state update unit 224a and a sensor information generation unit 224b. Each part 224a, 224b that makes up the 3D physics engine 224 is a program or a part of a program.
[0220] The service system client simulator 234 has, as its function, a service message generation unit 234a. The service message generation unit 234a that makes up the service system client simulator 234 is a program or a part of a program.
[0221] 3 - 4 - 2. Details of the Transceiver Controller
[0222] In the transceiver controller 214, the mobile message receiving unit 214a receives mobile messages from the mobile message distributor 310. The mobile message receiving unit 214a outputs the received mobile messages to the surrounding entity state update unit 224a of the 3D physics engine 224. In addition, the mobile message receiving unit 214a outputs information including the time when the mobile message is received to the remaining time rate calculation unit 214g.
[0223] The control message receiving unit 214c receives simulation control messages from the simulation orchestrator 320. The control message receiving unit 214c outputs the received simulation control messages to the simulation action control unit 214h.
[0224] The service message sending unit 214e obtains service messages including sensor information from the service message generation unit 234a of the service system client simulator 234. The service message sending unit 214e sends the obtained service messages to the backend server 400.
[0225] The control message sending unit 214f acquires a simulated control message including information related to the simulated speed condition from the remaining time rate calculation unit 214g. In addition, the control message sending unit 214f acquires a simulated control message including the control state of the main body simulator 202 from the simulated action control unit 214h. The control message sending unit 214f sends the simulated control messages acquired from the remaining time rate calculation unit 214g and the simulated action control unit 214h to the simulation orchestrator 320.
[0226] The remaining time rate calculation unit 214g acquires information including the reception time of the movement message from the movement message reception unit 214a. In addition, the remaining time rate calculation unit 214g acquires information including the transmission completion time of the service message from the service message sending unit 214e. The remaining time rate calculation unit 214g calculates the remaining time, the remaining time rate, and the delay time based on the acquired information by the above formulas. However, in the calculation of the remaining time and the remaining time rate, the calculated values obtained according to the action frequency of the main body simulator 202 are used for Ta(N + 1) and Ta(N). In addition, for Td(N), the transmission completion time of the service message is used instead of the transmission completion time of the movement message in the current time step.
[0227] The remaining time rate calculation unit 214g outputs a simulated control message including the remaining time, the remaining time rate, and the delay time to the control message sending unit 214f. The simulation orchestrator 320 that receives the simulated control message including this information creates a simulated control message including the control content that should be instructed to the main body simulator 204 and sends it to the main body simulator 204.
[0228] The simulated action control unit 214h acquires a simulated control message from the control message reception unit 214c. The simulated action control unit 214h controls the simulated action of the main body simulator 202 according to the instruction included in the simulated control message. For example, when instructed to change the simulated time granularity, the simulated action control unit 214h changes the simulated time granularity of the main body simulator 202 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a set value in the main body simulator 204. In addition, the upper limit value and the lower limit value of the time granularity are stored in the simulation orchestrator 320 according to the type of the main body.
[0229] When the indication content of the analog control message is the analog speed, the analog motion control unit 214h changes the operation frequency of the 3D physics engine 224 according to the indicated analog speed, and accelerates or decelerates the operation speed of the main body simulator 204. When the stop of the simulation is indicated, the analog motion control unit 214h stops the simulation performed by the main body simulator 204. When the pause of the simulation is indicated, the simulation is paused, and when the restart is indicated, the simulation is restarted. The analog motion control unit 214h outputs an analog control message including the current control state of the main body simulator 204 to the control message sending unit 214f.
[0230] 3-4-3. Details of the 3D Physics Engine
[0231] In the 3D physics engine 224, the surrounding main body state update unit 224a obtains a movement message from the movement message receiving unit 214a. The movement message obtained from the movement message receiving unit 214a is a movement message sent from another main body simulator via the movement message distributor 310. The surrounding main body state update unit 224a estimates the current state of the surrounding main bodies existing around its own main body based on the obtained movement message.
[0232] When estimating the current state of the surrounding main bodies based on the past state, the surrounding main body state update unit 224a uses the past state of the surrounding main bodies saved in the log. The method of using the past state of the surrounding main bodies to estimate the current state is as described Figure 3 as before. The surrounding main body state update unit 224a outputs the estimated current state of the surrounding main bodies to the sensor information generation unit 224b and updates the log.
[0233] The sensor information generation unit 224b obtains the current state of the surrounding main bodies from the surrounding main body state update unit 224a. The sensor information generation unit 224b generates peripheral information obtained from the observation of its own main body based on the current state of the surrounding main bodies. Since its own main body is a stationary roadside sensor such as a camera, the peripheral information obtained from the 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.
[0234] 3-4-4. Details of the Service System Client Simulator
[0235] In the service system client simulator 234, the service message generation unit 234a obtains sensor information from the sensor information generation unit 224b of the 3D physics engine 224. The service message generation unit 234a outputs a service message including the obtained sensor information to the service message sending unit 214e of the transceiver controller 214.
[0236] 4. Composition and Information Flow of Mobile Message Dispatcher
[0237] Here, an example of the composition of the mobile message dispatcher 310 that relays mobile messages exchanged between the main body simulators 200 will be described. Figure 9 It is a block diagram showing an example of the composition of the mobile message dispatcher 310 and the information flow. The mobile message dispatcher 310 includes a broadcast distribution network 312, a message filter 314, and a mobile message gateway 318. In the MAS system 100, only the main body simulator 200 whose main body is a moving object becomes the source of mobile messages. In contrast, all the main body simulators 200 become the recipients (destination of reception) of mobile messages regardless of whether the main body is a moving object or a stationary object. Therefore, the message filter 314 is prepared for each of all the main body simulators 200 constituting the MAS system 100.
[0238] The broadcast distribution network 312 is directly connected to the main body simulator 200 existing in the same subnet and is connected to the main body simulator 200 existing in a different subnet via the mobile message gateway 318. The mobile messages sent from the main body simulator 200 within the same subnet are directly distributed to all the message filters 314. The mobile messages sent from the main body simulator 200 within a different subnet are distributed to all the message filters 314 via the mobile message gateway 318. The message filter 314 selects and receives the mobile messages that are set to be required in the responsible main body simulator 200 and stores them in the message queue 316. Then, the stored mobile messages are sent from the message queue 316 to the responsible main body simulator 200 at the same time interval as the reception time interval.
[0239] 5. Aggregation and Evaluation of Simulation Results of MAS System
[0240] By performing simulation through the MAS system 100, various data on the simulated target world are obtained. Figure 10 It shows the composition for aggregating and evaluating the simulation results of the MAS system 100.
[0241] The MAS system 100 is equipped with data recorders for storing logs of data obtained through simulation everywhere. In the main simulator 200, data recorders 250, 260, 270, and 280 are provided. The data recorder 250 stores the data log (controller log) in the transceiver controller 210. The data recorder 260 stores the data log (3D physics engine log) in the 3D physics engine 220. The data recorder 270 stores the data log (service simulation log) in the service system client simulator 230. The data recorder 280 stores the data log (simulation core log) in the simulator core 240.
[0242] In the central controller 300, data recorders 330 and 340 are provided. The data recorder 330 stores the data log (mobile message dispatcher log) in the mobile message dispatcher 310. The data recorder 340 stores the data log (orchestrator log) in the simulation orchestrator 320.
[0243] In the backend server 400, a data recorder 410 is provided. The data recorder 410 stores the data log (service system log) in the backend server 400.
[0244] In the case where the simulation is interrupted, the simulation orchestrator 320 can restart the simulation from any past time point by using the data logs stored in the above-mentioned data recorders.
[0245] In addition, the MAS system 100 includes a service system log aggregator 500, a main body movement log aggregator 510, a simulation core log aggregator 520, an asset information database 530, a time-space database 540, and a viewer 550. These are installed on a computer for evaluating simulation results.
[0246] In the service system log aggregator 500, data logs are collected from the data recorders 270 and 410. These data logs collected in the service system log aggregator 500 are data logs related to the service system. It is possible to evaluate whether the service has been provided correctly based on this data log. In addition, it is also possible to evaluate aspects in service provision including the working rate of service resources such as logistics robots.
[0247] In the main body movement log aggregator 510, data logs are collected from the data recorders 250, 260, 330, and 340. These data logs collected in the main body movement log aggregator 510 are data logs related to the movement of the main body. It is possible to confirm the normal operation of the main body based on this data log. In addition, it is also possible to confirm whether there are problems such as duplication of the main body. In the case where an error occurs during the simulation, it is possible to output the time range in which the simulation content is assumed to be valid from the data log.
[0248] In the simulated nuclear log aggregation headquarters 520, data logs are collected from the data recorder 280 and the main body movement log aggregation headquarters 510. These data logs collected in the simulated nuclear log aggregation headquarters 520 are data logs related to the simulated perspective. If it is a simulation of pedestrians, the density of people can be evaluated based on these data logs. If it is a simulation of robots, the perspective such as the internal judgment result can be evaluated based on these data logs.
[0249] In the asset information database 530, three-dimensional information of fixed objects such as buildings and three-dimensional information of each main body obtained from or transformed from BIM / CIM data are stored.
[0250] In the time-space database 540, virtual data for simulation is stored. The evaluation results based on the respective data logs aggregated by the service system log aggregation headquarters 500, the main body movement log aggregation headquarters 510, and the simulated nuclear log aggregation headquarters 520 are reflected in the virtual data of the time-space database 540.
[0251] The viewer 550 uses the three-dimensional information of the fixed objects and the main body stored in the asset information database 530 and the virtual data stored in the time-space database 540 to display the virtual world 2 on the monitor.
[0252] 6. Physical Composition of the MAS System
[0253] The physical composition of the MAS system 100 will be described. Figure 11 It is a diagram showing an example of the physical composition of the MAS system 100. The MAS system 100 can be composed of, for example, multiple computers 10 configured on the same subnet 30. Further, by connecting the subnet 30 and other subnets 32 through the gateway 40, the MAS system 100 can be expanded to multiple computers 10 configured on the subnet 32.
[0254] In Figure 11 In the example shown, the central controller 300 as software is installed on one computer 10. However, the function of the central controller 300 can also be distributed among multiple computers 10.
[0255] In addition, the MAS system 100 has multiple backend servers 400. In Figure 11 In the example shown, each backend server 400 is installed on a separate computer 10. However, the function of the backend servers 400 can also be distributed among multiple computers 10. In addition, through virtualization technology that divides one server into multiple servers, multiple backend servers 400 can be installed on one computer 10.
[0256] In Figure 11In the example shown, a plurality of entity simulators 200 are installed in a computer 10. As a method for causing the plurality of entity simulators 200 to operate independently on one computer 10, virtualization technology can be used. As the virtualization technology, it can be either a virtual machine or container virtualization. A plurality of entity simulators 200 of the same type or a plurality of entity simulators 200 of different types can be installed in one computer 10. In addition, only one entity simulator 200 can be installed in one computer 10.
[0257] As described above, the MAS system 100 does not employ processing performed by a single computer, but rather employs parallel distributed processing using a plurality of computers 10. Thereby, it is possible to prevent the number of entities boarding the virtual world 2 from being limited due to the processing power of the computer and the number of services provided in the virtual world 2 from being limited due to the processing power of the computer. That is, according to the MAS system 100, large-scale simulation implemented by parallel distributed processing can be performed.
[0258] 7. Others
[0259] An observation entity for observing the virtual world 2 from the outside can also be provided. The observation entity can be, for example, a stationary object such as a street corner camera or a moving object such as a drone equipped with a camera.
Claims
1. A multi-agent simulation system that uses multiple interacting agents to simulate the object world, characterized in that, Comprising: A plurality of entity simulators, which are set for each of the plurality of entities, and while simulating the states of the entities by exchanging messages to enable the entities to interact with each other; And A central controller, which communicates with the plurality of entity simulators and relays the sending and receiving of messages between the plurality of entity simulators, The plurality of entity simulators respectively execute: Based on the message sent from the central controller, generate the state of an interacting entity that interacts with an object entity to be simulated; Store the state of the generated interacting entity; Based on the past states of the interacting entity stored, infer the current state of the interacting entity; Use the inferred current state of the interacting entity to simulate the current state of the object entity; Based on the simulated current state of the object entity, produce the message; And Send the produced message to the central controller.
2. The multi-entity simulation system according to claim 1, wherein When the number of past states of the interacting entity stored by the plurality of entity simulators is two or more, the plurality of entity simulators respectively infer the current state of the interacting entity by linear extrapolation based on the latest two or more past states of the interacting entity.
3. The multi-entity simulation system according to claim 1 or 2, wherein When the number of past states of the interacting entity stored by the plurality of entity simulators is one, the plurality of entity simulators respectively presume the only past state of the interacting entity as the current state of the interacting entity.
4. The multi-entity simulation system according to any one of claims 1 to 3, wherein The plurality of entities include multiple types of entities with different time granularities, The plurality of entity simulators respectively send the message to the central controller at a sending time interval corresponding to the time granularity of the object entity.
5. A multi-agent simulation method that uses multiple interacting agents to simulate an object world, characterized in that, Including: Exchanging messages between a plurality of entity simulators set for each of the plurality of entities, and while simulating the states of the entities by the exchange of the messages to enable the entities to interact with each other; And Relaying the sending and receiving of the messages between the plurality of entity simulators through a central controller that communicates with the plurality of entity simulators, Enabling the plurality of entity simulators to respectively execute: Based on the message sent from the central controller, generate the state of an interacting entity that interacts with an object entity to be simulated; Store the state of the generated interacting entity; Based on the past states of the interacting entity stored, infer the current state of the interacting entity; Use the inferred current state of the interacting entity to simulate the current state of the object entity; Based on the simulated current state of the object entity, produce the message; And Send the produced message to the central controller.
6. The multi-entity simulation method according to claim 5, wherein When the number of past states of the interaction agents stored in the multiple agent simulators is two or more, respectively, estimate the current state of the interaction agents by linear extrapolation based on two or more latest past states of the interaction agents.
7. The multi-agent simulation method according to claim 5 or 6, characterized in that: When the number of past states of the interaction agents stored in the multiple agent simulators is one, respectively, presume the only past state of the interaction agents as the current state of the interaction agents.
8. The multi-agent simulation method according to any one of claims 5 to 7, characterized in that: Make the multiple agents include multiple types of agents with different time granularities. Make the multiple agent simulators send the messages to the central controller at sending time intervals corresponding to the time granularity of the target agent, respectively.
Citation Information
Patent Citations
Multi-agent simulation system and multi-agent simulation method
JP2014174705A
Simulation method and information processing device
WO2014196073A1
Simulation analysis method and information processing system
WO2015132893A1
Distributed simulation system
JP2011248600A