Multi-agent simulation system and multi-agent simulation method
By using multiple back-end servers and main simulators in a multi-body simulation system, collaborative simulation of multiple services is realized through different types of message exchange, which solves the problem of insufficient simulation capabilities of multi-service systems in the prior art, and realizes high-precision collaborative simulation of multiple services.
Patent Information
- Application Number
- CN202210630256.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-06-08
- Filing Date
- 2022-06-06
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2042-06-06
AI Technical Summary
The existing multi-subject simulation system is difficult to effectively simulate the world of providing and utilizing various services, and lacks the ability to collaboratively simulate multiple service systems.
Using a combination of multiple back-end servers and multiple body emulators, the collaborative simulation of multiple services is realized through different types of message exchange, including the first message for interaction between the bodies and the second message for service simulation, and the central controller can be selected to manage message exchange.
High-precision collaborative simulation of multiple service systems is realized, and the provision and utilization of multiple services can be simulated simultaneously, improving the accuracy and efficiency of simulation.
Smart Images

Figure CN115456849B_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. Background Art
[0002] Multi-agent simulations are known, which use multiple interacting agents to simulate the world. For example, Patent Document 1 discloses an invention related to crowd flow simulation as a multi-agent simulation system. In this invention, information that motivates agents to act, such as information suggesting facility movement, information regarding priority use tickets, and information regarding service tickets, discount tickets, and coupons, is provided to the agents.
[0003] Furthermore, as documents indicating the technical level at the time of filing the application in the technical field of the present disclosure, in addition to the above-mentioned Patent Document 1, the following Patent Document 2 and Patent Document 3 can also be cited as examples.
[0004] Prior art literature
[0005] Patent Document 1: Japanese Patent Application Laid-Open No. 2019-021143
[0006] Patent Document 2: Japanese Patent Application Laid-Open No. 2019-212245
[0007] Patent Document 3: International Publication No. 2015 / 132893 Summary of the Invention
[0008] Technical problem to be solved by the invention
[0009] In the real world, various services are provided and used. However, there is room for further research on multi-agent simulation, which uses the world in which these services are provided and used as the target world for simulation.
[0010] The present disclosure has been made in view of the above-mentioned problems and aims to provide a multi-agent simulation system and method that can simulate a world in which various services are provided and utilized using multiple agents.
[0011] Technical solutions to solve problems
[0012] The present disclosure provides a multi-agent simulation system that uses multiple interacting agents to simulate an object world. The system comprises multiple backend servers, each provided for a service system that provides multiple services utilized in the object world, and multiple agent simulators, each provided for a plurality of agents. The multiple agent simulators are programmed to simulate the states of each agent while causing the agents to interact with each other through the exchange of first messages. Furthermore, the multiple backend servers and the multiple agent simulators are programmed to simultaneously simulate multiple services by exchanging second messages of a different type than the first messages.
[0013] The plurality of agents include a plurality of first agents that utilize a plurality of services and a plurality of second agents that are used to provide the plurality of services. Furthermore, the plurality of agent simulators include a plurality of first agent simulators and a plurality of second agent simulators. The plurality of first agent simulators are provided in each of the plurality of first agents and are programmed to simulate the state of each first agent. The plurality of second agent simulators are provided in each of the plurality of second agents and are programmed to simulate the state of each second agent.
[0014] In the system disclosed herein, the second message includes a message sent from each of the plurality of first subject simulators and containing information related to the service utilization of each of the plurality of first subjects. Furthermore, the second message includes a message sent from each of the plurality of backend servers and containing information related to the service provision status for each of the plurality of first subjects. Furthermore, the second message includes a message sent from each of the plurality of second subject simulators and containing information related to the action status of each of the plurality of second subjects. Furthermore, the second message includes a message sent from each of the plurality of backend servers and containing information related to action instructions for each of the plurality of second subjects.
[0015] The system disclosed in the present invention may also include a central controller that communicates with multiple subject simulators and controls the sending and receiving of the first message between the multiple subject simulators. In this case, the multiple subject simulators may also exchange the first message between the multiple subject simulators via the central controller, and exchange the second message directly with the multiple back-end servers without going through the central controller. In addition, in the system disclosed in the present invention, the first subject simulator may also include a client simulator that simulates the behavior of the first subject as a client of multiple services. Furthermore, in the system disclosed in the present invention, the multiple back-end servers may also exchange messages for the purpose of enabling the services they provide to cooperate with each other.
[0016] The present disclosure provides a multi-agent simulation method for simulating an object world using multiple interacting agents. The method of the present disclosure is implemented using multiple back-end servers provided for each service system providing multiple services utilized in the object world, and multiple agent simulators provided for each of the multiple agents. The method of the present disclosure includes: exchanging a first message between the multiple agent simulators, simulating the states of each agent while allowing the agents to interact with each other through the exchange of the first message. In addition, the method of the present disclosure includes: exchanging a second message of a different type from the first message between the multiple back-end servers and the multiple agent simulators, simulating multiple services simultaneously through the exchange of the second message.
[0017] The plurality of agents include a plurality of first agents utilizing a plurality of services and a plurality of second agents used to provide the plurality of services. Furthermore, the plurality of agent simulators include a plurality of first agent simulators provided for each of the plurality of first agents and a plurality of second agent simulators provided for each of the plurality of second agents. The method disclosed herein includes causing the plurality of first agent simulators to simulate the state of each first agent and causing the plurality of second agent simulators to simulate the state of each second agent.
[0018] In the method disclosed herein, the second message includes a message sent from each of the plurality of first subject simulators and containing information related to the service utilization of each of the plurality of first subjects. Furthermore, the second message includes a message sent from each of the plurality of backend servers and containing information related to the service provision status for each of the plurality of first subjects. Furthermore, the second message includes a message sent from each of the plurality of second subject simulators and containing information related to the action status of each of the plurality of second subjects. Furthermore, the second message includes a message sent from each of the plurality of backend servers and containing information related to action instructions for each of the plurality of second subjects.
[0019] In the method disclosed herein, the first message may be exchanged between multiple subject simulators via a central controller that communicates with the multiple subject simulators. The multiple subject simulators and multiple back-end servers may also exchange the second message directly without going through the central controller. In addition, in the method disclosed herein, the client simulator provided in the first subject simulator may simulate the behavior of the first subject as a client of multiple services. Furthermore, in the method disclosed herein, the multiple back-end servers may exchange messages for the purpose of enabling the services they provide to cooperate with each other.
[0020] Effects of the Invention
[0021] In the multi-agent simulation system and method disclosed herein, backend servers of a service system providing services utilized in the simulated target world are directly used. Multiple backend servers exchange second messages between multiple agent simulators. These second messages are of a different type from the first messages used to simulate the states of each agent. The multi-agent simulation system and method disclosed herein, through the exchange of second messages between multiple backend servers and multiple agent simulators, can simultaneously simulate multiple services provided and utilized in the target world. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Figure 1 This is a diagram showing an overview of a multi-agent simulation system according to an embodiment of the present disclosure.
[0023] Figure 2 This is a diagram showing an overview of a multi-agent simulation system according to an embodiment of the present disclosure.
[0024] Figure 3 This is a block diagram showing the configuration of a multi-agent simulation system according to an embodiment of the present disclosure.
[0025] Figure 4 This is a block diagram showing the configuration and information flow of an agent simulator for a pedestrian agent according to an embodiment of the present disclosure.
[0026] Figure 5 This is a block diagram showing the configuration and information flow of an agent simulator for an autonomous mobile body according to an embodiment of the present disclosure.
[0027] Figure 6 This is a block diagram showing the structure and information flow of an agent simulator for a VR pedestrian agent according to an embodiment of the present disclosure.
[0028] Figure 7 This is a block diagram showing the configuration and information flow of a main body simulator for a roadside sensor main body according to an embodiment of the present disclosure.
[0029] Figure 8 This is a block diagram showing a configuration for summarizing and evaluating simulation results of a multi-agent simulation system according to an embodiment of the present disclosure.
[0030] Figure 9 This is a diagram showing an example of the physical configuration of a multi-agent simulation system according to an embodiment of the present disclosure.
[0031] Description of labels
[0032] 2 Virtual World (Simulated Object World)
[0033] 4A, 4B, 4C, 4D main body
[0034] 10. Computer
[0035] Subnets 30 and 32
[0036] 40 Gateway
[0037] 100 Multi-agent simulation systems
[0038] 200 Subject Simulator
[0039] 201 Pedestrian Subject Simulator
[0040] 202 Autonomous robot / vehicle body simulator
[0041] 203 VR Pedestrian Subject Simulator
[0042] 204 Roadside sensor body simulator
[0043] 210 Transceiver Controller
[0044] 220 3D Physics Engine
[0045] 230 Service System Client Simulator
[0046] 240 simulator cores
[0047] 300 Central Controller
[0048] 310 Mobile Message Distributor
[0049] 320 Analog Arranger
[0050] 400 Service system using backend server DETAILED DESCRIPTION
[0051] The following describes the embodiments of the present disclosure with reference to the accompanying drawings. However, in the embodiments shown below, when the number, quantity, amount, range, etc. of each element is mentioned, the concepts of the present disclosure are not limited to the mentioned numbers, except where specifically stated or clearly determined in principle to be such numbers. In addition, the structures and the like described in the embodiments shown below are not necessarily required by the concepts of the present disclosure, except where specifically stated or clearly determined in principle to be such numbers.
[0052] 1. Overview of Multi-Agent Simulation System
[0053] use Figure 1 and Figure 2 The multi-agent simulation system according to the embodiment of the present disclosure will be briefly described.
[0054] 1-1. Overview of MAS System Structure and Functions
[0055] Figure 1 The following shows a schematic structure of the MAS system 100 of the present embodiment. The MAS system 100 simulates a world (simulation object world) 2 as a simulation object by causing multiple subjects 4A, 4B, 4C, and 4D to interact with each other. It is not limited to the simulation object world of the MAS system disclosed in the present invention. The MAS system 100 of the present embodiment uses the following world as the simulation object world 2, which is a world in which people and autonomously moving mobile bodies, such as robots and vehicles, coexist and can receive various services using autonomously moving mobile bodies. As services provided in the simulation object world 2, for example, there can be cited mobility services such as on-demand buses and scheduled buses using autonomous driving vehicles, and logistics services that use autonomously moving robots to deliver goods.
[0056] The simulated world 2 is composed of a large number of various agents. These agents include agents representing mobile objects and agents representing stationary objects. Examples of mobile objects represented as agents include pedestrians, robots, low-speed vehicles, vehicles, actual people using the VR system to participate, and elevators. Examples of stationary objects represented as agents include sensors such as cameras and automatic doors.
[0057] However, in Figure 1 To facilitate understanding, only three agents 4A, 4B, 4C, and 4D are shown in the simulation target world 2. Agents 4A and 4B represent pedestrians, agent 4C represents a logistics robot, and agent 4D represents an autonomous bus. Hereinafter, agents 4A and 4B will sometimes be referred to as pedestrian agents 4A and 4B, agent 4C will be referred to as a logistics robot agent 4C, and agent 4D will be referred to as an autonomous bus agent 4D. Furthermore, in the following, the simulation target world 2, which is a virtual world, will be referred to as virtual world 2, to distinguish it from the real world.
[0058] MAS system 100 includes multiple agent simulators 200. Each agent simulator 200 is provided for each agent 4A, 4B, 4C, and 4D. Hereinafter, when distinguishing between agent simulators 200, the agent simulator 200 simulating the state of pedestrian agent 4A will be referred to as agent simulator A. Similarly, the agent simulators 200 simulating the states of agents 4B, 4C, and 4D will be referred to as agent simulators B, C, and D. Each agent simulator 200 has a different configuration depending on the type of agent being used. The configuration of agent simulators 200 for different types of agents will be described in detail later.
[0059] The agent simulator 200 simulates the state of each agent while enabling agents to interact with each other through the exchange of messages. Messages exchanged between agent simulators 200 include information related to the agent's position and movement within the virtual world 2 (movement information). Movement information includes information related to the agent's current position and movement, as well as future plans. Information related to the current situation includes, for example, the current position, direction, speed, and acceleration. Information related to future plans includes, for example, a list of future positions, directions, speeds, and accelerations. Hereinafter, messages related to the agent's position and movement exchanged between agent simulators 200 are referred to as movement messages.
[0060] The agent simulator 200 calculates the state of the target agent (the agent itself) serving as the simulation target based on the states of surrounding agents. Surrounding agents are interacting agents that exist around the agent and interact with it. Furthermore, information indicating the states of surrounding agents is a mobility message. Each agent simulator 200 exchanges mobility messages with other agent simulators 200 to understand the states of surrounding agents.
[0061] The MAS system 100 includes a central controller 300 that communicates with the agent simulator 200. In the MAS system 100, mobile messages between the agent simulators 200 are exchanged via the central controller 300. The information flow indicated by the solid line between the agent simulator 200 and the central controller 300 represents the flow of mobile messages.
[0062] exist Figure 1 In the example shown, central controller 300 receives a movement message output from subject simulator A. Furthermore, central controller 300 transmits the movement message of subject simulator A to subject simulators B, C, and D. Similarly, central controller 300 transmits the movement message of subject simulator B to subject simulators A, C, and D. Furthermore, central controller 300 transmits the movement message of subject simulator C to subject simulators A, B, and D, and the movement message of subject simulator D to subject simulators A, B, and C.
[0063] The MAS system 100 can simulate services provided in the virtual world 2. Examples of services simulated by the MAS system 100 include mobility services such as on-demand buses using autonomous vehicles, scheduled buses, and delivery services using autonomous mobile robots. Furthermore, the services simulated by the MAS system 100 are typically accessible to users through the use of service applications on their user terminals.
[0064] exist Figure 1In the example shown, an on-demand bus service using an autonomous driving bus 4D is provided to pedestrian 4A. In the on-demand bus service, autonomous driving bus 4D stops at a boarding location specified by pedestrian 4A using a service application, allowing pedestrian 4A to board autonomous driving bus 4D. Furthermore, autonomous driving bus 4D stops at a disembarkation location 6 specified by pedestrian 4A using a service application, allowing pedestrian 4A to disembark from autonomous driving bus 4D.
[0065] In addition, Figure 1 In the example shown, a delivery service using a logistics robot 4C is also provided to pedestrian 4A. The delivery service involves placing logistics robot 4C on standby at a drop-off location 6 where pedestrian 4A disembarks from autonomous bus 4D. Once autonomous bus 4D arrives at drop-off location 6, the goods are delivered from pedestrian 4A to logistics robot 4C, which then delivers the goods to the pedestrian's home.
[0066] In addition, Figure 1 In the example shown, pedestrian agent 4B is simply a pedestrian. However, a delivery service could also be provided: pedestrian agent 4B orders a pizza using a user terminal while walking, and another delivery robot agent delivers the pizza to the location they are currently walking. Furthermore, in virtual world 2, in addition to services using autonomous moving objects, services similar to those in the real world, such as ticket sales and vehicle charging, could also be provided.
[0067] The provision of services in the virtual world 2 is performed by a backend server 400 for the service system. The MAS system 100 includes a backend server 400 for each service system. The backend server 400 is the same backend server as the server actually used in the service system in the real world.
[0068] In addition, the MAS system 100 includes a plurality of backend servers 400 for different service systems. Figure 1 In the example shown, a backend server 400 for providing an on-demand bus service and a backend server 400 for providing a delivery service are provided. This allows for simultaneous simulation of multiple services within the virtual world 2. Hereinafter, when distinguishing between the various backend servers 400, the backend server 400 for the service system providing the on-demand bus service will be referred to as backend server X. Furthermore, the backend server 400 for the service system providing the delivery service will be referred to as backend server Y.
[0069] The simulation of the service performed by the MAS system 100 is performed by exchanging 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. Figure 1 In the example shown, backend server X exchanges service messages with subject simulators A and D, and backend server Y exchanges service messages with subject simulators A and C.
[0070] The content of the exchanged service messages varies depending on the type of subject responsible for the subject simulator 200. Pedestrian subject 4A, for which subject simulator A is responsible, is a subject that utilizes services provided by various service systems using backend servers X and Y. Backend servers X and Y receive service messages including service utilization information from subject simulator A. Service utilization information refers to information related to the current status and future plans regarding the user's utilization of the service system, including the current utilization status and input information based on application operations. In addition, backend servers X and Y send service messages including service provision status information to subject simulator A. Service provision status information refers to information related to the status of the user in the service system and is provided by the service application of the user terminal.
[0071] The autonomous bus agent 4D, managed by agent simulator D, is used to provide services using the service system of backend server X. The logistics robot agent 4C, managed by agent simulator C, is used to provide services using the service system of backend server Y. Backend servers X and Y receive service messages including action status information from agent simulators C and D. Action status information refers to information related to the current status and future plans of the logistics robot or autonomous bus. Information related to the current status includes, for example, the status of mounted sensors, measurement data, the status of mounted actuators, and states related to action decisions. Information related to future plans includes, for example, lists of future times, actuator states, and states related to action decisions. In addition, backend servers X and Y send service messages including action instruction information to agent simulators C and D. Action instruction information includes all or part of the future plan for providing services using the logistics robot or autonomous bus. For example, the target location and path that the logistics robot or autonomous bus should move to are included in the action instruction information.
[0072] In the MAS system 100, service messages are exchanged between multiple backend servers 400 according to various protocols. These exchanged service messages include, for example, user usage status of each service and the status of service provision. By exchanging service messages between multiple backend servers 400, services provided within the virtual world 2 can collaborate with each other.
[0073] exist Figure 1 In the example shown, service messages are exchanged between backend servers X and Y. By coordinating the on-demand bus service and the delivery service, for example, logistics robot 4C can be pre-arranged at drop-off location 6, where pedestrian 4A disembarks from autonomous bus 4D. Furthermore, autonomous bus 4D may be delayed due to traffic congestion, or pedestrian 4A may miss their scheduled ride. In such cases, by exchanging service messages between backend servers X and Y, the time for logistics robot 4C to arrive at drop-off location 6 can be aligned with the predicted arrival time of pedestrian 4A.
[0074] 1-2. Specific examples of service messages in the MAS system
[0075] Figure 2 Indicates Figure 1 A specific example of service messages exchanged in the virtual world 2 is shown. Figure 2 In the figure, the solid line represents the mobile message flow and the dotted line represents the service message flow.
[0076] Figure 2 The illustrated agent simulator 200 includes agent simulators E and F in addition to agent simulators A, B, C, and D. Agent simulator E is responsible for the fixed camera. Agent simulator F is responsible for the automatic door. Agents in virtual world 2 include roadside sensors, including fixed cameras, and installed objects such as automatic doors.
[0077] Hereinafter, specific examples of the contents of service messages in each service will be described.
[0078] In the on-demand bus service, service requests from a user terminal's service application and responses from backend server X are exchanged between the bus simulator A and backend server X. Furthermore, between the bus simulator D and backend server X, instructions are sent from backend server X to the bus simulator D regarding passenger IDs, boarding locations, disembarkation locations, and routes. The backend server X then controls the autonomous bus 4D, including state monitoring.
[0079] In the delivery service, a service request based on a service application of a user terminal and a response from the backend server Y are carried out between the subject simulator A and the backend server Y. In addition, between the subject simulator C and the backend server Y, an action instruction for the logistics robot body 4C is sent from the backend server Y to the subject simulator C. Then, the logistics robot body 4C is controlled based on the backend server Y, including status monitoring. In addition, the backend server Y instructs the subject simulator F to open the automatic door for the logistics robot body 4C to pass. Furthermore, the backend server Y obtains the image information of the fixed camera required for calculating the position information of the logistics robot body 4C in the virtual world 2 from the subject simulator E. In addition, the position information of the surrounding subjects required for generating image information is sent from the central controller 300 to the subject simulator E.
[0080] 2. Overall structure and information flow of the MAS system
[0081] Below, use Figure 3 The overall structure and information flow of the MAS system 100 are described. Figure 3 As shown, MAS system 100 includes multiple agent simulators 200, a central controller 300, and multiple backend servers 400 for service systems. Details will be described later, but these are distributed across multiple computers. In other words, MAS system 100 is based on parallel distributed processing across multiple computers.
[0082] The central controller 300 includes a mobile message distributor 310 and a simulation orchestrator 320 as its functions. The central controller 300 is application software installed on a computer. The mobile message distributor 310 and the simulation orchestrator 320 are programs that constitute the application software. The central controller 300 may share a computer hardware with one or more agent simulators 200, but preferably, a dedicated computer is used.
[0083] Mobile message distributor 310 relays the transmission and reception of mobile messages between agent simulators 200. The information flow between agent simulator 200 and mobile message distributor 310, indicated by a solid line, represents the flow of mobile messages. Mobile message distributor 310 assumes the mobile message exchange function previously described by central controller 300. Mobile message distributor 310 communicates with all agent simulators 200 that comprise MAS system 100.
[0084] The simulation orchestrator 320 controls the simulation of the subject simulator 200 by exchanging simulation control messages with the subject simulator 200. The information flow between the subject simulator 200 and the simulation orchestrator 320, indicated by the dotted line, is the simulation control message flow. The simulation orchestrator 320 communicates with all subject simulators 200 that make up the MAS system 100, exchanging simulation control messages. Unlike the mobile message distributor 310, which exchanges mobile messages between multiple subject simulators 200, simulation control messages are exchanged individually between the simulation orchestrator 320 and each subject simulator 200. The exchange of simulation control messages allows, for example, the simulation speed, stopping, pausing, resuming, and time granularity of the simulation to be controlled. While the simulation speed is controlled for the entire MAS system 100, stopping, pausing, resuming, and time granularity of the simulation are controlled for each subject simulator 200.
[0085] Backend server 400 is the same backend server actually used in real-world service systems. MAS system 100 includes multiple backend servers 400 for different service systems. Service simulation is performed by exchanging service messages between backend server 400 and agent simulator 200. However, unlike mobile messages, service messages are exchanged directly without going through central controller 300. The information flows represented by dotted lines between agent simulator 200 and backend server 400, and between backend servers 400, represent the flow of service messages.
[0086] In the MAS system 100, multiple services provided and utilized in the real world are simultaneously simulated through the exchange of service messages between multiple backend servers 400 and multiple agent simulators 200. Furthermore, since service messages are exchanged directly, without passing through the central controller 300, the processing capabilities of each backend server 400 are directly reflected in the simulation. This enables simultaneous and highly accurate simulation of services provided by multiple service systems.
[0087] Agent simulators 200 come in multiple types depending on the type of agent they are responsible for. For example, there are agent simulators 201 for pedestrian agents, 202 for autonomous robots / vehicles, 203 for VR pedestrian agents, and 204 for roadside sensors. Hereinafter, agent simulators 200 will be used as a general term for these various agent simulators 201, 202, 203, and 204.
[0088] The main body simulator 200 includes, as its functions, a transceiver controller 210, a 3D physics engine 220, a service system client simulator 230, and a simulator core 240. The main body simulator 200 is application software installed on a computer. The transceiver controller 210, 3D physics engine 220, service system client simulator 230, and simulator core 240 are the programs that constitute the application software. These functions differ between the main body simulators 201, 202, 203, and 204. Here, the functions that are generally common to the main body simulators 201, 202, 203, and 204 are described. Details of the functions of each main body simulator 201, 202, 203, and 204 will be described later.
[0089] The transceiver controller 210 serves as an interface between the main body 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 main body 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. Furthermore, the transceiver controller 210 receives service messages from the backend server 400 and sends service messages to the backend server 400. However, in the main body simulator 204, only service messages are sent.
[0090] The 3D physics engine 220 estimates the current state of surrounding agents in the three-dimensional space based on the movement messages received from other agent simulators 200. Figure 3 The 3D physics engine 220 generates surrounding information based on the current states of surrounding entities, as described above. Based on the current states of surrounding entities, the 3D physics engine 220 generates surrounding information obtained from observations of the own entity. Furthermore, based on the simulation results of the simulator core 240 (described later), the 3D physics engine 220 updates the state of the own entity in three-dimensional space and generates movement messages indicating the state of the own entity. However, in the agent simulator 204, the responsible agent is immobile, so the state of the own entity and the generation of movement messages are not performed.
[0091] 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. Service messages received by the transceiver controller 210 are input to the service system client simulator 230. Furthermore, service messages generated by the service system client simulator 230 are transmitted from the transceiver controller 210. However, the agent simulator 204 only generates service messages.
[0092] Simulator core 240 simulates the state of its own agent in the next time step. The interval between time steps for calculating the state of its own agent is the time granularity described above. The content of the simulation in simulator core 240 varies depending on the type of agent simulator 200. Furthermore, since the agent simulator 204 is responsible for an immobile agent and does not require simulation of its own agent's state, it does not have a simulator core 240.
[0093] 3. Detailed structure and information flow of the subject simulator
[0094] Next, use Figures 4 to 7 The detailed structure and information flow of the various agent simulators 201, 202, 203, and 204 constituting the MAS system 100 are described. Figures 4 to 7 In the diagram, the information flow between blocks represented by solid lines represents the flow of mobile messages. In addition, the information flow between blocks represented by dotted lines represents the flow of service messages. Furthermore, the information flow between blocks represented by dashed lines represents the flow of analog control messages.
[0095] 3-1. Pedestrian simulator
[0096] Figure 4 This is a block diagram showing the configuration and information flow of the pedestrian agent simulator 201. The overall configuration of the pedestrian agent simulator 201, details of each component, and the information flow in the agent simulator 201 will be described below.
[0097] 3-1-1. Overall structure of the pedestrian simulator
[0098] The main simulator 201 includes 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.
[0099] The transceiver controller 211 includes a mobile message receiving unit 211a, a service message receiving unit 211b, and a control message receiving unit 211c for receiving various messages. Furthermore, the transceiver controller 211 includes a mobile message sending unit 211d, a service message sending unit 211e, and a control message sending unit 211f for sending various messages. Furthermore, the transceiver controller 211 includes a remaining time rate calculation unit 211g and a simulation operation control unit 211h. Each of the units 211a to 211h that comprise the transceiver controller 211 is a program or a portion of a program.
[0100] The 3D physics engine 221 includes a surrounding subject state update unit 221a, a visual information generation unit 221b, and an own subject state update unit 221c as its functions. Each of the units 221a, 221b, and 221c constituting the 3D physics engine 221 is a program or a part of a program.
[0101] The service system client simulator 231 includes a service provision status information processing unit 231a and a service usage information generating unit 231b as its functions. Each unit 231a and 231b constituting the service system client simulator 231 is a program or a part of a program.
[0102] The simulator core 241 includes, 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 that constitute the simulator core 241 is a program or a portion of a program.
[0103] 3-1-2. Details of the transceiver controller
[0104] In the transceiver controller 211, the mobile message receiving unit 211a receives a mobile message from the mobile message distributor 310. The mobile message receiving unit 211a outputs the received mobile message to the surrounding agent state updating unit 221a of the 3D physics engine 221. Furthermore, the mobile message receiving unit 211a outputs information including the time when the mobile message was received to the remaining time rate calculation unit 211g.
[0105] The service message receiving unit 211b receives a service message from the backend server 400. The service message receiving unit 211b outputs the received service message to the service provision state information processing unit 231a of the service system client simulator 231.
[0106] The control message receiving unit 211c receives a simulation control message from the simulation organizer 320. The control message receiving unit 211c outputs the received simulation control message to the simulation operation control unit 211h.
[0107] The movement message sending unit 211d obtains a movement message including the current state of the 3D physics engine 221 from the 3D physics engine state updating unit 221c. The movement message sending unit 211d transmits the obtained movement message to the movement message distributor 310. Furthermore, the movement message sending unit 211d transmits information including the time at which the movement message was completed to the remaining time rate calculation unit 211g.
[0108] The service message sending unit 211 e acquires a service message including service usage information from the service usage information generating unit 231 b of the service system client simulator 231 , and transmits the acquired service message to the backend server 400 .
[0109] The control message transmitter 211f receives a simulation control message containing information about the speed status of the simulation from the remaining time rate calculator 211g. Furthermore, the control message transmitter 211f receives a simulation control message containing the control status of the main simulator 201 from the simulation motion controller 211h. The control message transmitter 211f transmits the simulation control message received from the remaining time rate calculator 211g and the simulation motion controller 211h to the simulation orchestrator 320.
[0110] The remaining time rate calculator 211g obtains information including the time the mobile message was received from the mobile message receiver 211a. Furthermore, the remaining time rate calculator 211g obtains information including the time the mobile message was sent from the mobile message transmitter 211d. Furthermore, the remaining time rate calculator 211g obtains the start time for calculating the state update for its own subject from the next time step state calculator 241d of the simulator core 241.
[0111] Here, the start time of calculation for the state update of the own subject in the current time step is set to Ta(N). The start time of calculation for the state update of the own subject in the next time step is set to Ta(N+1). The reception time of the last received mobile message among the mobile messages of other subjects required for the calculation of the state update of the own subject in the next time step is set to Te_last(N). The reception time of the first received mobile message among the mobile messages of other subjects required for the calculation of the state update of the own subject in the next time step is set to Te_first(N+1). In addition, the time when the transmission of the mobile message in the current time step is completed is set to Td(N).
[0112] The remaining time rate calculation unit 211g calculates the remaining time, the remaining time rate, and the delay time using the following equations.
[0113] Remaining time = Ta(N+1) - Te_last(N)
[0114] Remaining time rate = (Ta(N+1)-Te_last(N)) / (Ta(N+1)-Ta(N))
[0115] Delay time = Td(N) - Te_first(N+1)
[0116] The remaining time rate calculator 211g outputs a simulation control message containing the remaining time, remaining time rate, and delay time to the control message transmitter 211f. The remaining time, remaining time rate, and delay time are information related to the speed of the simulation. Upon receiving this simulation control message, the simulation scheduler 320 determines the control details to be instructed to the main simulator 201. Examples of the control details to be instructed to the main simulator 201 include the simulation speed, stopping the simulation, pausing the simulation, and resuming the simulation. The simulation scheduler 320 creates a simulation control message containing the control details to be instructed and sends it to the main simulator 201.
[0117] The simulation action control unit 211h receives a simulation control message from the control message receiving unit 211c. The simulation action control unit 211h controls the simulation action of the subject simulator 201 according to the instructions included in the simulation control message. For example, if a change in the simulation time granularity is instructed, the simulation action control unit 211h changes the simulation time granularity of the subject 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 subject simulator 201. Furthermore, the upper and lower limits of the time granularity are stored in the simulation scheduler 320 for each subject type.
[0118] When the instruction content of the simulation control message is the simulation speed, the simulation action control unit 211h changes the operation frequency of the 3D physics engine 221 and the simulator core 241 to accelerate or decelerate the simulation speed. For example, for the simulator core 241, the instructed simulation speed is output to the speed adjustment unit 241g of the simulator core 241. In addition, the simulation speed refers to the speed ratio of the time flow in the virtual world 2 to the time flow in the real world. When the simulation is stopped, the simulation action control unit 211h stops the simulation of the main body simulator 201. When the simulation is paused, the simulation is paused, and when the simulation is restarted, the simulation is restarted. The simulation action control unit 211h outputs a simulation control message including the current control state of the main body simulator 201 to the control message sending unit 211f.
[0119] 3-1-3. Details of the 3D Physics Engine
[0120] In the 3D physics engine 221, the surrounding agent state update unit 221a receives a movement message from the movement message receiver 211a. The movement message received from the movement message receiver 211a is a movement message sent from another agent simulator via the movement message distributor 310. Based on the received movement message, the surrounding agent state update unit 221a estimates the current state of the surrounding agents surrounding the own agent.
[0121] When estimating the current state of the surrounding subject based on the past state, the surrounding subject state update unit 221a uses the past state of the surrounding subject stored in the log. The method of estimating the current state using the past state of the surrounding subject is as follows: Figure 3 As described above, the surrounding subject state updating unit 221a outputs the estimated current state of the surrounding subject to the visual information generating unit 221b and updates the log.
[0122] The visual information generation unit 221b obtains the current state of the surrounding entities from the surrounding entity state update unit 221a. Based on the current state of the surrounding entities, the visual information generation unit 221b generates surrounding information obtained from observation of the own entity. Since the own entity is a pedestrian, the surrounding information obtained through observation refers to the visual information captured by the pedestrian's eyes. The visual information generation unit 221b outputs the generated visual information to the overall movement policy determination unit 241a, the action determination unit 241b, and the service utilization action determination unit 241e of the simulator core 241.
[0123] The self-agent state update unit 221c obtains the state of the self-agent 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. Based on the simulation results of the simulator core 241, the self-agent state update unit 221c updates the state of the self-agent in three-dimensional space. The self-agent state update unit 221c outputs a movement message including the updated state of the self-agent to the movement message transmission unit 211d of the transceiver controller 211. The state of the self-agent included in the movement message includes the position, direction, velocity, and acceleration in the current time step and the position, direction, velocity, and acceleration in the next time step. Furthermore, the self-agent state update unit 221c outputs information regarding the updated state of the self-agent to the service utilization information generation unit 231b of the service system client simulator 231.
[0124] 3-1-4. Details of the service system client simulator
[0125] In the service system client simulator 231, the service provision status information processing unit 231a obtains a service message from the service message receiving unit 211b. The service message obtained from the service message receiving unit 211b includes service provision status information. The service provision status information processing unit 231a processes the service provision status information to obtain information related to the status of the user of the service system and input items to the service application of the user terminal. The information related to the status of the user of the service system is the information displayed on the user terminal, and the input items are the information requested to be input in order for the user to use the service. The service provision status information processing unit 231a outputs the information related to the status of the user of the service system and the input items to the service application of the user terminal to the overall movement policy determination unit 241a and the service use action determination unit 241e of the simulator core 241.
[0126] The service utilization information generation unit 231b obtains the result of the service utilization action decision made by its own subject from the service utilization action determination unit 241e of the simulator core 241. Furthermore, the service utilization information generation unit 231b obtains the state of its own subject in three-dimensional space from the own subject state update unit 221c of the 3D physics engine 221. Based on this information, the service utilization information generation unit 231b generates service utilization information and updates the service utilization state of its own subject. The service utilization information generation unit 231b outputs a service message containing the service utilization information to the service message transmission unit 211e of the transceiver controller 211.
[0127] 3-1-5. Details of the Simulator Core
[0128] 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. Furthermore, the overall movement policy determination unit 241a obtains information regarding the status of the user acting as the main agent and input items to the service application on the user terminal from the service provision status information processing unit 231a of the service system client simulator 231. Based on this information, the overall movement policy determination unit 241a determines the overall movement policy of the main agent in the virtual world 2. The overall movement policy determination unit 241a outputs the determined overall movement policy to the action determination unit 241b.
[0129] The action decision unit 241b receives the overall movement policy from the overall movement policy decision unit 241a and visual information from the visual information generation unit 221b of the 3D physics engine 221. The action decision unit 241b inputs the overall movement policy and visual information into the movement model 241c to determine the action of the self-agent. The movement model 241c is a simulation model that models how a pedestrian moves based on a specific movement policy, depending on the surrounding conditions reflected in the pedestrian's eyes. The action decision unit 241b outputs the determined action of the self-agent to the next time step state calculation unit 241d.
[0130] The next-time-step state calculation unit 241d obtains the action of the own agent determined by the action determination unit 241b. Based on the action of the own agent, the next-time-step state calculation unit 241d calculates the state of the own agent in the next time step. The calculated state of the own agent includes the position, direction, velocity, and acceleration of the own agent in the next time step. The next-time-step state calculation unit 241d outputs the calculated state of the own agent in the next time step to the own agent state update unit 221c of the 3D physics engine 221. Furthermore, the next-time-step state calculation unit 241d outputs the start time for calculating the state update of the own agent to the remaining time rate calculation unit 211g of the transceiver controller 211.
[0131] The service utilization action determination unit 241e obtains visual information from the visual information generation unit 221b of the 3D physics engine 221. In addition, the service utilization action determination unit 241e obtains information related to the status of the user as its own subject and input items to the service application of the user terminal from the service provision status information processing unit 231a of the service system client simulator 231. The service utilization action determination unit 241e inputs the obtained information into the action model 241f to determine the action (service utilization action) of its own subject as a user of the service system. 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 prompted to the user and input to the service application of the user terminal is requested. The service utilization action determination unit 241e outputs the determined service utilization action to the service utilization information generation unit 231b.
[0132] The speed adjustment unit 241g obtains the simulation speed from the simulation motion control unit 211h. The simulation speed obtained from the simulation motion control unit 211h is the simulation speed instructed by the simulation orchestrator 320. The speed adjustment unit 241g accelerates or decelerates the simulation speed of the simulator core 241 itself according to the instruction from the simulation orchestrator 320.
[0133] 3-2. Autonomous Robot / Vehicle Body Simulator
[0134] Figure 5 This is a block diagram showing the structure and information flow of agent simulator 202 for autonomous robots / vehicles. An autonomous robot / vehicle refers to the autonomous robot or vehicle used to provide services in a service system associated with backend server 400. The following describes the overall structure and details of each component of agent simulator 202 for autonomous robots / vehicles, as well as the information flow within agent simulator 202.
[0135] 3-2-1. Overall Structure of an Autonomous Robot / Vehicle Simulator
[0136] The main simulator 202 includes a transceiver controller 212, a 3D physics engine 222, a service system client simulator 232, and a simulator core 242. 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.
[0137] The transceiver controller 212 includes a mobile message receiver 212a, a service message receiver 212b, and a control message receiver 212c as functions for receiving various messages. Furthermore, the transceiver controller 212 includes a mobile message transmitter 212d, a service message transmitter 212e, and a control message transmitter 212f as functions for receiving various messages. Furthermore, the transceiver controller 212 includes a remaining time rate calculator 212g and a simulation action controller 212h. Each of the components 212a to 212h that comprise the transceiver controller 211 is a program or a portion of a program.
[0138] The 3D physics engine 222 includes a surrounding body state update unit 222a, a sensor information generation unit 222b, and an own body state update unit 222c as its functions. Each unit 222a, 222b, and 222c constituting the 3D physics engine 222 is a program or a part of a program.
[0139] The service system client simulator 232 includes a route planning information receiving unit 232a and an operation state information generating unit 232b as its functions. Each of the units 232a and 232b constituting the service system client simulator 232 is a program or a part of a program.
[0140] The simulator core 242 includes, as its functions, 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. Each unit 242a, 242b, 242c, and 242d constituting the simulator core 242 is a program or a portion of a program.
[0141] 3-2-2. Details of the transceiver controller
[0142] In the transceiver controller 212, the mobile message receiving unit 212a receives the mobile message from the mobile message distributor 310. The mobile message receiving unit 212a outputs the received mobile message to the surrounding body state updating unit 222a of the 3D physics engine 222. Furthermore, the mobile message receiving unit 212a outputs information including the time when the mobile message was received to the remaining time rate calculation unit 212g.
[0143] The service message receiving unit 212b receives a service message from the backend server 400. The service message receiving unit 212b outputs the received service message to the route planning information receiving unit 232a of the service system client simulator 232.
[0144] The control message receiving unit 212c receives a simulation control message from the simulation organizer 320. The control message receiving unit 212c outputs the received simulation control message to the simulation operation control unit 212h.
[0145] The movement message sending unit 212d obtains a movement message including the current state of the self-agent from the self-agent state updating unit 222c of the 3D physics engine 222. The movement message sending unit 212d transmits the obtained movement message to the movement message distributor 310. Furthermore, the movement message sending unit 212d transmits information including the time at which the movement message was transmitted to the remaining time rate calculating unit 212g.
[0146] The service message sending unit 212e acquires a service message including the operation status information from the operation status information generating unit 232b of the service system client simulator 232. The service message sending unit 212e transmits the acquired service message to the backend server 400.
[0147] The control message transmitter 212f receives a simulation control message including information on the speed status of the simulation from the remaining time rate calculator 212g. Furthermore, the control message transmitter 212f receives a simulation control message including the control status of the main simulator 202 from the simulation motion controller 212h. The control message transmitter 212f transmits the simulation control message received from the remaining time rate calculator 212g and the simulation motion controller 212h to the simulation orchestrator 320.
[0148] The remaining time rate calculator 212g obtains information including the time the mobile message was received from the mobile message receiver 212a. Furthermore, the remaining time rate calculator 212g obtains information including the time the mobile message was sent from the mobile message transmitter 212d. Furthermore, the remaining time rate calculator 212g obtains the start time for calculating the state update for its own subject from the next time step state calculator 242d of the simulator core 242.
[0149] Based on the acquired information, the remaining time rate calculator 212g calculates the remaining time, remaining time rate, and delay time using the aforementioned equations. The remaining time rate calculator 212g outputs a simulation control message including the remaining time, remaining time rate, and delay time to the control message transmitter 212f. Upon receiving the simulation control message including this information, the simulation orchestrator 320 creates a simulation control message including the control details to be instructed to the main body simulator 202 and transmits it to the main body simulator 202.
[0150] The simulation action control unit 212h receives a simulation control message from the control message receiving unit 212c. The simulation action control unit 212h controls the simulation action of the subject simulator 202 according to the instructions contained in the simulation control message. For example, if a change in the simulation time granularity is instructed, the simulation action control unit 212h changes the simulation time granularity of the subject 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 subject simulator 202. Furthermore, the upper and lower limits of the time granularity are stored in the simulation orchestrator 320 for each subject type.
[0151] If the instruction in the simulation control message is a simulation speed, the simulation action control unit 212h changes the operating frequency of the 3D physics engine 222 and the simulator core 242 according to the instructed simulation speed, accelerating or decelerating the computational speed of the main simulator 202. If instructed to stop the simulation, the simulation action control unit 212h stops the simulation of the main simulator 202. If instructed to pause the simulation, the simulation is paused; if instructed to resume the simulation, the simulation is resumed. The simulation action control unit 212h outputs a simulation control message including the current control state of the main simulator 202 to the control message sending unit 212f.
[0152] 3-2-3. Details of the 3D Physics Engine
[0153] In the 3D physics engine 222, the surrounding agent state update unit 222a receives a movement message from the movement message receiver 212a. The movement message received from the movement message receiver 212a is a movement message sent from another agent simulator via the movement message distributor 310. Based on the received movement message, the surrounding agent state update unit 222a estimates the current state of the surrounding agents surrounding the own agent.
[0154] When estimating the current state of the surrounding subject based on the past state, the surrounding subject state updating unit 222a uses the past state of the surrounding subject stored in the log. The method of estimating the current state using the past state of the surrounding subject is as follows: Figure 3 As described above, the surrounding subject state updating unit 222a outputs the estimated current state of the surrounding subject to the sensor information generating unit 222b and updates the log.
[0155] 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 surrounding information obtained from observations of the own entity. Since the own entity is an autonomous robot or autonomous vehicle, the surrounding information obtained through observation refers to sensor information captured by the sensors of the autonomous robot or 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.
[0156] The self-agent state updater 222c obtains the state of the self-agent for the next time step, calculated by the simulator core 242, from the next time step state calculator 242d of the simulator core 242. Based on the calculation results of the simulator core 242, the self-agent state updater 222c updates the state of the self-agent in three-dimensional space. The self-agent state updater 222c outputs a movement message containing the updated state of the self-agent to the movement message transmitter 212d of the transceiver controller 212. The state of the self-agent included in the movement message includes the position, direction, velocity, and acceleration of the self-agent in the current time step, as well as the position, direction, velocity, and acceleration of the self-agent in the next time step. Furthermore, the self-agent state updater 222c outputs information regarding the updated state of the self-agent to the motion state information generator 232b of the service system client simulator 232.
[0157] 3-2-4. Details of the service system client simulator
[0158] In the service system client simulator 232, the route planning information receiver 232a receives service messages from the service message receiver 211b. The service messages received from the service message receiver 212b include action instructions for the service system to provide services using the autonomous robot / vehicle and information related to other service systems. The route planning information receiver 232a outputs the action instructions and other service system information to the overall route planning unit 242a in the simulator core 242.
[0159] The action state information generation unit 232b obtains the actuator operation amount of the self-agent for the next time step from the actuator operation amount determination unit 242c of the simulator core 242. Furthermore, the action state information generation unit 232b obtains sensor information from the sensor information generation unit 222b of the 3D physics engine 222 and obtains the state of the self-agent in three-dimensional space from the self-agent state update unit 222c. Based on this obtained information, the action state information generation unit 232b generates action state information indicating the action state of the self-agent related to the provision of the service. The action state information generation unit 232b outputs a service message including the action state information to the service message transmission unit 212e of the transceiver controller 212.
[0160] 3-2-5. Details of the Simulator Core
[0161] 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. Furthermore, 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 this information, the overall path planning unit 242a plans the overall path of the host in the virtual world 2. The overall path refers to the path from the host's current position to the target location. Because 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-plans 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.
[0162] The local path planning unit 242b obtains the overall path plan from the overall path planning unit 242a. Based on the overall path plan, the local path planning unit 242b creates a local path plan. For example, a local path refers to a path from the current time point to a predetermined time step later, or a path from the current position to a predetermined distance. A local path plan is represented, for example, by a set of positions that the subject should pursue and the velocity 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.
[0163] The actuator operation amount determination unit 242c obtains the local path plan from the local path planning unit 242b. Based on the local path plan, the actuator operation amount determination unit 242c determines the actuator operation amount of the self-agent in the next time step. The actuators referred to here are those that control the direction, speed, and acceleration of the self-agent. In the case of an autonomous robot or vehicle that travels on wheels, actuators such as brakes, drives, and steering systems are the objects of operation. 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.
[0164] The next-time-step state calculation unit 242d obtains the actuator operation amount determined by the actuator operation amount determination unit 242c. Based on the actuator operation amount, the next-time-step state calculation unit 242d calculates the state of the own body in the next time step. The calculated state of the own body includes the position, direction, velocity, and acceleration of the own body in the next time step. The next-time-step state calculation unit 242d outputs the calculated state of the own body in the next time step to the own body state update unit 222c of the 3D physics engine 222. Furthermore, the next-time-step state calculation unit 242d outputs the start time for calculating the state update of the own body to the remaining time rate calculation unit 212g of the transceiver controller 212.
[0165] 3-3. VR Pedestrian Simulator
[0166] Figure 6 This is a block diagram showing the structure and information flow of the VR pedestrian agent simulator 203. A VR pedestrian agent is a real-life pedestrian agent used to participate in the virtual world 2 simulated using a VR (Virtual Reality) system. The following describes the overall structure of the VR pedestrian agent simulator 203, details of each component, and the information flow within the agent simulator 203.
[0167] 3-3-1. Overall Structure of VR Pedestrian Simulator
[0168] The main simulator 203 includes 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.
[0169] The transceiver controller 213 includes a mobile message receiver 213a, a service message receiver 213b, and a control message receiver 213c for receiving various messages. Furthermore, the transceiver controller 213 includes a mobile message transmitter 213d, a service message transmitter 213e, and a control message transmitter 213f for transmitting various messages. Furthermore, the transceiver controller 213 includes a simulation action controller 213h. Each of the components 213a to 213f and 213h that comprise the transceiver controller 213 is a program or a portion of a program.
[0170] The 3D physics engine 223 includes a surrounding body state update unit 223a, a visual information generation unit 223b, and an own body state update unit 223c as its functions. Each of the units 223a, 223b, and 223c constituting the 3D physics engine 223 is a program or a part of a program.
[0171] The service system client simulator 233 includes a service provision status information processing unit 233a and a service usage information generating unit 233b as its functions. Each unit 233a and 233b constituting the service system client simulator 231 is a program or a part of a program.
[0172] The simulator core 243 includes a recognition judgment information presenting unit 243a, a move operation accepting unit 243b, a next time step state calculating unit 243c, and an application operation accepting unit 243d. Each of the units 243a, 243b, 243c, and 243d constituting the simulator core 243 is a program or a part of a program.
[0173] 3-3-2. Details of the Transceiver Controller
[0174] In the transceiver controller 213 , the mobile message receiving unit 213 a receives a mobile message from the mobile message distributor 310 . The mobile message receiving unit 213 a outputs the received mobile message to the surrounding body state updating unit 223 a of the 3D physics engine 223 .
[0175] The service message receiving unit 213b receives a service message from the backend server 400. The service message receiving unit 213b outputs the received service message to the service provision state information processing unit 233a of the service system client simulator 233.
[0176] The control message receiving unit 213c receives a simulation control message from the simulation organizer 320. The control message receiving unit 213c outputs the received simulation control message to the simulation operation control unit 213h.
[0177] The movement message sending unit 213d obtains a movement message including the current state of the own agent from the own agent state updating unit 223c of the 3D physics engine 223. The movement message sending unit 213d transmits the obtained movement message to the movement message distributor 310.
[0178] The service message sending unit 213e acquires a service message including service usage information from the service usage information generating unit 233b of the service system client simulator 233. The service message sending unit 213e transmits the acquired service message to the backend server 400.
[0179] The control message transmitter 213f obtains from the simulation operation controller 213h a simulation control message including the control state of the subject simulator 203. The control message transmitter 213f transmits to the simulation orchestrator 320 the simulation control message obtained from the simulation operation controller 213h.
[0180] The simulation action control unit 213h receives a simulation control message from the control message receiving unit 213c. The simulation action control unit 213h controls the simulation actions of the agent simulator 203 according to the instructions included in the simulation control message. If the conditions for the VR pedestrian agent to join the virtual world 2 are not met, the simulation orchestrator 320 instructs the agent simulator 203 to stop the simulation.
[0181] The aforementioned agent simulators 201 and 202, as well as the agent simulator 204 described later, can change their simulation speed as needed. However, if the simulation speed is changed, actual participants participating in the virtual world 2 via the VR pedestrian agent may experience a strong sense of dissonance with the time flow that differs from the real world. Therefore, in the MAS system 100, the VR pedestrian agent's participation in the virtual world 2 is permitted under the condition that the simulation is performed in real time. If the simulation speed is accelerated or decelerated compared to the time flow of the real world, the simulation orchestrator 320 stops the simulation of the agent simulator 203. The simulation action control unit 213h outputs a simulation control message including the current control state of the agent simulator 203 to the control message sending unit 213f.
[0182] 3-3-3. Details of the 3D Physics Engine
[0183] In the 3D physics engine 223, the surrounding agent state update unit 223a receives a movement message from the movement message receiver 213a. The movement message received from the movement message receiver 213a is a movement message sent from another agent simulator via the movement message distributor 310. Based on the received movement message, the surrounding agent state update unit 223a estimates the current state of the surrounding agents surrounding the own agent.
[0184] When estimating the current state of the surrounding subject based on the past state, the surrounding subject state update unit 223a uses the past state of the surrounding subject stored in the log. Figure 3 As described above, the surrounding subject state updating unit 223a outputs the estimated current state of the surrounding subject to the visual information generating unit 223b and updates the log.
[0185] The visual information generation unit 223b obtains the current state of the surrounding entities from the surrounding entity state update unit 223a. Based on the current state of the surrounding entities, the visual information generation unit 223b generates surrounding information obtained through observation of the own entity. Since the own entity is a pedestrian, the surrounding information obtained through observation refers to visual information captured through the pedestrian's eyes. The visual information generation unit 223b outputs the generated visual information to the cognitive judgment information presentation unit 243a and the movement operation reception unit 243b of the simulator core 243.
[0186] The self-agent state updater 223c obtains the state of the self-agent for the next time step, calculated by the simulator core 243, from the next time step state calculator 243c of the simulator core 243. Based on the calculation results of the simulator core 243, the self-agent state updater 223c updates the state of the self-agent in three-dimensional space. The self-agent state updater 223c outputs a movement message containing the updated state of the self-agent to the movement message transmitter 213d of the transceiver controller 213. The state of the self-agent included in the movement message includes the position, direction, velocity, and acceleration of the self-agent in the current time step and the position, direction, velocity, and acceleration of the self-agent in the next time step. Furthermore, the self-agent state updater 223c outputs information regarding the updated state of the self-agent to the service utilization information generator 233b of the service system client simulator 233.
[0187] 3-3-4. Details of the service system client simulator
[0188] In the service system client simulator 233, the service provision status information processing unit 233a obtains a service message from the service message receiving unit 213b. The service message obtained from the service message receiving unit 213b 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 of the service system and input items to the service application of the user terminal. The information related to the status of the user of the service system is the information displayed on the user terminal, and the input items are the information requested to be input in order for the user to use the service. The service provision status information processing unit 233a outputs the information related to the status of the user of the service system and the input items to the service application of the user terminal to the cognitive judgment information display unit 243a and the application operation receiving unit 243d of the simulator core 243.
[0189] The service utilization information generation unit 233b obtains, from the application operation reception unit 243d of the simulator core 243, the VR service application operations of actual participants participating in the virtual world 2 via the VR pedestrian agent. Furthermore, the service utilization information generation unit 233b obtains the state of the agent in three-dimensional space from the agent state update unit 223c of the 3D physics engine 223. Based on this obtained information, the service utilization information generation unit 233b generates service utilization information and updates the service utilization state of the agent. The service utilization information generation unit 233b outputs a service message containing the service utilization information to the service message transmission unit 213e of the transceiver controller 213.
[0190] 3-3-5. Details of the Simulator Core
[0191] In the simulator 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. Furthermore, the cognitive judgment information presentation unit 243a obtains information related to the user's status and input items to the service application on the user terminal from the service provision status information processing unit 233a of the service system client simulator 231. This acquired information is cognitive judgment information for real-life participants participating in the virtual world 2 via VR pedestrians. The cognitive judgment information presentation unit 243a presents this cognitive judgment information to real-life participants through the VR system.
[0192] The movement operation accepting unit 243b obtains visual information from the visual information generating unit 223b of the 3D physics engine 223. Furthermore, the movement operation accepting unit 243b accepts movement operations performed by the actual participant in VR while presenting the visual information to the actual participant via the VR system. The movement operation accepting unit 243b outputs the received movement operations performed by the actual participant in VR to the next time step state calculating unit 243d.
[0193] The next-time-step state calculation unit 243d receives the VR movement operations of the actual participant from the movement operation reception unit 243b. Based on the VR movement operations of the actual participant, the next-time-step state calculation unit 243d calculates the state of the own subject in the next time step. The calculated state of the own subject includes the position, direction, velocity, and acceleration of the own subject in the next time step. The next-time-step state calculation unit 243d outputs the calculated state of the own subject in the next time step to the own subject state update unit 223c of the 3D physics engine 223.
[0194] The application operation accepting unit 243d obtains visual information from the visual information generating unit 223b of the 3D physics engine 223. Furthermore, the application operation accepting unit 243d obtains information related to the status of the user acting as the main body and input items to the service application on the user terminal from the service provision status information processing unit 233a of the service system client simulator 233. The application operation accepting unit 243d accepts the actual participant's operation on the service application in VR while presenting this information to the actual participant via the VR system. The application operation accepting unit 243d outputs the accepted operation of the actual participant's service application in VR to the service utilization information generating unit 233b of the service system client simulator 233.
[0195] 3-4. Roadside sensor body simulator
[0196] Figure 7 This is a block diagram showing the configuration and information flow of the agent simulator 204 for roadside sensor bodies. A roadside sensor body refers to a roadside sensor body used to obtain positional information about an autonomous robot / vehicle in the virtual world 2. The positional information obtained by the roadside sensor body is used by the service system associated with the backend server 400. The following describes the overall configuration and details of each component of the agent simulator 204 for roadside sensor bodies, as well as the information flow within the agent simulator 204.
[0197] 3-4-1. Overall Structure of a Roadside Sensor Body Simulator
[0198] The main body simulator 204 includes, as its functions, a transceiver controller 214, a 3D physics engine 224, and a service system client simulator 234. These functions are conceptually included in the transceiver controller 210, the 3D physics engine 220, and the simulator core 240, respectively. Unlike other main body simulators, the main body simulator 204 does not include a simulator core.
[0199] The transceiver controller 214 includes a mobile message receiving unit 214a and a control message receiving unit 214b for receiving various messages. Furthermore, the transceiver controller 212 includes a service message sending unit 214e and a control message sending unit 214f for sending various messages. Furthermore, the transceiver controller 212 includes a remaining time rate calculation unit 214g and a simulation operation control unit 214h. Each of the units 212a, 214c, 214e, 214f, 214g, and 214h that comprise the transceiver controller 214 is a program or a portion of a program.
[0200] The 3D physics engine 224 includes a surrounding body state update unit 224a and a sensor information generation unit 224b as its functions. Each of the units 224a and 224b constituting the 3D physics engine 224 is a program or a part of a program.
[0201] The service system client simulator 234 includes a service message generation unit 234a as its function. The service message generation unit 234a constituting the service system client simulator 234 is a program or a part of a program.
[0202] 3-4-2. Details of the transceiver controller
[0203] In the transceiver controller 214, the mobile message receiving unit 214a receives the mobile message from the mobile message distributor 310. The mobile message receiving unit 214a outputs the received mobile message to the surrounding body state updating unit 224a of the 3D physics engine 224. Furthermore, the mobile message receiving unit 214a outputs information including the time when the mobile message was received to the remaining time rate calculation unit 214g.
[0204] The control message receiving unit 214c receives a simulation control message from the simulation organizer 320. The control message receiving unit 214c outputs the received simulation control message to the simulation operation control unit 214h.
[0205] The service message sending unit 214e acquires a service message including sensor information from the service message generating unit 234a of the service system client simulator 234. The service message sending unit 214e transmits the acquired service message to the backend server 400.
[0206] The control message transmitter 214f receives a simulation control message including information on the speed status of the simulation from the remaining time rate calculator 214g. Furthermore, the control message transmitter 214f receives a simulation control message including the control status of the main simulator 202 from the simulation motion controller 214h. The control message transmitter 214f transmits the simulation control message received from the remaining time rate calculator 214g and the simulation motion controller 214h to the simulation orchestrator 320.
[0207] The remaining time rate calculator 214g obtains information including the time the mobile message was received from the mobile message receiver 214a. Furthermore, the remaining time rate calculator 214g obtains information including the time the service message was sent from the service message transmitter 214e. Based on this information, the remaining time rate calculator 214g calculates the remaining time, remaining time rate, and delay time using the aforementioned equations. However, in calculating the remaining time and remaining time rate, Ta(N+1) and Ta(N) are calculated using the operating frequency of the agent simulator 202. Furthermore, Td(N) uses the time the service message was sent, rather than the time the mobile message was sent in the current time step.
[0208] The remaining time rate calculator 214g outputs a simulation control message including the remaining time, remaining time rate, and delay time to the control message transmitter 214f. Upon receiving the simulation control message including this information, the simulation organizer 320 creates a simulation control message including the control instructions to be given to the main simulator 204 and transmits it to the main simulator 204.
[0209] The simulation action control unit 214h receives a simulation control message from the control message receiving unit 214c. The simulation action control unit 214h controls the simulation action of the subject simulator 202 according to the instructions included in the simulation control message. For example, if a change in the simulation time granularity is instructed, the simulation action control unit 214h changes the simulation time granularity of the subject simulator 202 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a setting value in the subject simulator 204. Furthermore, the upper and lower limits of the time granularity are stored in the simulation orchestrator 320 for each subject type.
[0210] If the instruction in the simulation control message is for simulation speed, the simulation action control unit 214h changes the operating frequency of the 3D physics engine 224 according to the instructed simulation speed, accelerating or decelerating the computational speed of the agent simulator 204. If a simulation stop instruction is given, the simulation action control unit 214h stops the simulation being performed by the agent simulator 204. If a simulation pause instruction is given, the simulation is paused; if a simulation restart instruction is given, the simulation is resumed. The simulation action control unit 214h outputs a simulation control message including the current control state of the agent simulator 204 to the control message sending unit 214f.
[0211] 3-4-3. Details of the 3D Physics Engine
[0212] In the 3D physics engine 224, the surrounding agent state update unit 224a receives a movement message from the movement message receiver 214a. The movement message received from the movement message receiver 214a is a movement message sent from another agent simulator via the movement message distributor 310. Based on the received movement message, the surrounding agent state update unit 224a estimates the current state of the surrounding agents surrounding the own agent.
[0213] When estimating the current state of the surrounding subject based on the past state, the surrounding subject state update unit 224a uses the past state of the surrounding subject stored in the log. Figure 3 As described above, the surrounding subject state update unit 224a outputs the estimated current state of the surrounding subject to the sensor information generation unit 224b and updates the log.
[0214] The sensor information generation unit 224b obtains the current state of the surrounding entities from the surrounding entity state update unit 224a. Based on the current state of the surrounding entities, the sensor information generation unit 224b generates surrounding information obtained from its own observations. Since the own entity is a roadside sensor installed like a camera, the surrounding information obtained through observations refers to 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.
[0215] 3-4-4. Details of the service system client simulator
[0216] In the service system client simulator 234, the service message generator 234a obtains sensor information from the sensor information generator 224b of the 3D physics engine 224. The service message generator 234a outputs a service message including the obtained sensor information to the service message transmitter 214e of the transceiver controller 214.
[0217] 4. Summary and evaluation of simulation results of MAS system
[0218] By performing simulation using the MAS system 100 , various data related to the simulated target world are obtained. Figure 8 This figure shows a configuration for collecting and evaluating simulation results of the MAS system 100 .
[0219] The MAS system 100 is equipped with data loggers at various locations to store logs of data obtained through simulation. Data loggers 250, 260, 270, and 280 are installed in the main simulator 200. Data logger 250 stores data logs within the transceiver controller 210 (controller log). Data logger 260 stores data logs within the 3D physics engine 220 (3D physics engine log). Data logger 270 stores data logs within the service system client simulator 230 (service simulation log). Data logger 280 stores data logs within the simulator core 240 (simulation core log).
[0220] The central controller 300 is provided with data recorders 330 and 340. The data recorder 330 stores a data log (mobile message distributor log) in the mobile message distributor 310. The data recorder 340 stores a data log (organizer log) in the simulation organizer 320.
[0221] The backend server 400 is provided with a data logger 410. The data logger 410 stores data logs (service system logs) in the backend server 400.
[0222] The MAS system 100 also includes a service system log collection unit 500, a subject movement log collection unit 510, a simulation core log collection unit 520, an asset information database 530, a time-space database 540, and a viewer 550. These are installed on a computer for simulation result evaluation.
[0223] The service system log collection unit 500 collects data logs from data recorders 270 and 410. These data logs collected in the service system log collection unit 500 are related to the service system. These data logs can be used to evaluate whether services are being provided correctly. Furthermore, they can be used to evaluate service provision, including the operating efficiency of service resources such as logistics robots.
[0224] The subject movement log collection unit 510 collects data logs from data recorders 250, 260, 330, and 340. These data logs collected in the subject movement log collection unit 510 are related to the subject's movement. These data logs can be used to confirm the normal operation of the subject. Furthermore, they can be used to check for issues such as subject duplication. If an error occurs during the simulation, the time range during which the simulation was assumed to be valid can be output from the data logs.
[0225] The simulation core log collection unit 520 collects data logs from the data recorder 280 and the main body movement log collection unit 510. These data logs collected in the simulation core log collection unit 520 are related to the focus of the simulation. For pedestrian simulations, these data logs can be used to evaluate human density. For robot simulations, these data logs can be used to evaluate focus points such as internal judgment results.
[0226] The asset information database 530 stores three-dimensional information of fixed objects such as buildings and three-dimensional information of various entities obtained from BIM / CIM data or converted from BIM / CIM data.
[0227] Virtual data for simulation is stored in the time-space database 540. Evaluation results based on the data logs collected by the service system log collection unit 500, the subject movement log collection unit 510, and the simulation core log collection unit 520 are reflected in the virtual data of the time-space database 540.
[0228] The viewer 550 displays the virtual world 2 on a monitor using the three-dimensional information of the fixed objects and the subject stored in the asset information database 530 and the virtual data stored in the time-space database 540 .
[0229] 5. Physical composition of the MAS system
[0230] The physical structure of the MAS system 100 will be described. Figure 9 This figure shows an example of the physical configuration of a MAS system 100. The MAS system 100 can be composed of, for example, multiple computers 10 configured on the same subnet 30. Furthermore, by connecting the subnet 30 to another subnet 32 via a gateway 40, the MAS system 100 can be expanded to multiple computers 10 configured on the subnet 32.
[0231] exist Figure 9 In the illustrated example, the central controller 300 as software is installed in one computer 10. However, the functions of the central controller 300 may be distributed among a plurality of computers 10.
[0232] In addition, the MAS system 100 includes a plurality of backend servers 400. Figure 9 In the example shown, each backend server 400 is installed on a separate computer 10. However, the functions of the backend server 400 may be distributed across multiple computers 10. Alternatively, multiple backend servers 400 may be installed on one computer 10 using virtualization technology that divides one server into multiple servers.
[0233] exist Figure 9 In the example shown, multiple subject simulators 200 are installed on a single computer 10. Virtualization technology can be used to enable multiple subject simulators 200 to operate independently on a single computer 10. Virtual machines or container virtualization can be used as virtualization technology. Multiple subject simulators 200 of the same type or of different types can be installed on a single computer 10. Furthermore, only one subject simulator 200 can be installed on a single computer 10.
[0234] As described above, the MAS system 100 employs parallel distributed processing using multiple computers 10, rather than processing performed by a single computer. This prevents the number of entities that can access the virtual world 2 and the number of services provided in the virtual world 2 from being limited by the computer's processing power. In other words, the MAS system 100 enables large-scale simulations achieved through parallel distributed processing.
[0235] 6. Others
[0236] An observation subject may be provided for observing the virtual world 2 from the outside. The observation subject may be, for example, a stationary object such as a street corner camera or a mobile object such as a drone equipped with a camera.
Claims
1. A multi-agent simulation system that uses multiple interacting agents to simulate the object world, characterized in that: have: a plurality of backend servers provided for respective service systems providing a plurality of services utilized in the object world; and A plurality of agent simulators are provided for each of the plurality of agents, and simulate the state of each agent while causing the agents to interact with each other by exchanging first messages. The plurality of backend servers and the plurality of subject simulators are configured to simulate the plurality of services simultaneously by exchanging a second message of a type different from the first message. The multiple entities include: a plurality of first entities that utilize the plurality of services; and a plurality of second entities used to provide the plurality of services; The plurality of subject simulators include: a plurality of first body simulators provided in each of the plurality of first bodies and simulating a state of each first body; and a plurality of second body simulators, each of which is provided in each of the plurality of second bodies and simulates the state of each second body; The second message includes: a message including information related to service utilization of each of the plurality of first agents, transmitted from each of the plurality of first agent simulators; a message including information related to a service provision status for each of the plurality of first entities, sent from each of the plurality of backend servers; a message including information on an operating state of each of the plurality of second agents, transmitted from each of the plurality of second agent simulators; and A message including information related to an action instruction for each of the plurality of second agents, transmitted from each of the plurality of backend servers.
2. The multi-agent simulation system according to claim 1, characterized in that: A central controller is provided, the central controller communicates with the plurality of subject simulators and controls the transmission and reception of the first message between the plurality of subject simulators. The plurality of subject simulators exchange the first message among themselves via the central controller, and exchange the second message directly with the plurality of backend servers without going through the central controller.
3. The multi-agent simulation system according to claim 1 or 2, characterized in that: The first agent simulator includes a client simulator that simulates the behavior of the first agent as a client of the plurality of services.
4. The multi-agent simulation system according to any one of claims 1 to 3, characterized in that: The plurality of backend servers exchange messages for enabling the plurality of services to cooperate.
5. A multi-agent simulation method, using multiple interacting agents to simulate the object world, characterized in that: include: exchanging first messages between a plurality of agent simulators provided for each of the plurality of agents, simulating states of the agents while causing the agents to interact with each other through the exchange of the first messages; and exchanging second messages of a different type from the first messages between a plurality of backend servers and the plurality of subject simulators, and simulating the plurality of services simultaneously by exchanging the second messages, the plurality of backend servers being provided for respective service systems of the plurality of services utilized in the target world; The multiple entities include: a plurality of first entities that utilize the plurality of services; and a plurality of second entities used to provide the plurality of services; The plurality of subject simulators include: a plurality of first body simulators provided in each of the plurality of first bodies and simulating a state of each first body; and a plurality of second body simulators, each of which is provided in each of the plurality of second bodies and simulates the state of each second body; The second message includes: a message including information related to service utilization of each of the plurality of first agents, transmitted from each of the plurality of first agent simulators; a message including information on a service provision status for each of the plurality of first entities, sent from each of the plurality of backend servers; a message including information on an operating state of each of the plurality of second agents, transmitted from each of the plurality of second agent simulators; and A message including information related to an action instruction for each of the plurality of second agents, transmitted from each of the plurality of backend servers.
6. The multi-agent simulation method according to claim 5, characterized in that: The first message is exchanged between the plurality of subject simulators via a central controller communicating with the plurality of subject simulators. The plurality of agent simulators and the plurality of backend servers directly exchange the second message without going through the central controller.
7. The multi-agent simulation method according to claim 5 or 6, characterized in that: A client simulator provided in the first agent simulator is caused to simulate the behavior of the first agent as a client of the plurality of services.
8. The multi-agent simulation method according to any one of claims 5 to 7, characterized in that: The plurality of backend servers are caused to exchange messages for causing the plurality of services to cooperate.
Citation Information
Patent Citations
Human flow simulation device, human flow simulation method and human flow simulation program
JP2019021143A
Simulation program, simulation method and simulation device
JP2019212245A
Simulation analysis method and information processing system
WO2015132893A1
Method, system and dispatcher for simulating multiple processors in parallel
CN102331961A
Social simulation system with profiling means applied
JP2006146858A