I have an application written in Java which uses msgpack-rpc to send commands to AirSim (I use Windows with Unreal). I'm trying to set-up a multiagent based simulation using AirSim to manage the physical environment, while the behavior of the agents is externalized in my Java app. I have several questions about how are managed the RPC calls by AirSim.
My simulation works like this:
- I pause the simulation at the beginning
- Then, in a loop:
- I emit several API requests to AirSim (getting data, sending commands to vehicles)
- I continue the simulation for a given amount of time
The amount of requests emitted can be important and is not constant.
If the load is heavy, usually after some time, my API requests are failing with a timeout exception.
My questions are :
- Is the way I'm managing my simulation correct? I mean, is it okay to emit instructions while the simulation is paused?
- Is there a kind of buffer storing the different requests? Is it possible that I'm flooding this buffer?
- Is there a way to increase the buffer size if it exists? Or to change how it is managed?
- How are managed simultaneous and conflicting requests (example: two moveByVelocity requests with different directions)?
Thank you for your answers.
I have an application written in Java which uses msgpack-rpc to send commands to AirSim (I use Windows with Unreal). I'm trying to set-up a multiagent based simulation using AirSim to manage the physical environment, while the behavior of the agents is externalized in my Java app. I have several questions about how are managed the RPC calls by AirSim.
My simulation works like this:
The amount of requests emitted can be important and is not constant.
If the load is heavy, usually after some time, my API requests are failing with a timeout exception.
My questions are :
Thank you for your answers.