Skip to content

How AirSim is managing a lot of RPC calls? #1892

@alexandrelombard

Description

@alexandrelombard

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions