-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simulation of multiple vehicle to test swarming #9
Comments
Hey thanks for this suggestion. I've been thinking about multi agent sim lately as a few others have inquired about it. At face value, I think this would be very easy to implement, but the challenge will be making the code run fast enough especially for RL. I think Python's built in multiprocessing module is a step in the right direction as each agent could run on its own process, but the issue will be how and how often agents communicate information between each other. I think the most recent version of Python got rid of the GIL though! Questions for you @NachoMurillo :
|
Thanks for your quick response:
|
Thanks for your input on requirements. I think 5-10 agents is pretty manageable, but I'll have to confirm the memory requirements of a single agent to understand at what point the simulator would start eating up too much memory for the multi agent case. I think a first pass at this would implement some sort of centralized simulation and communication scheme that then the end user can decide ultimately what information each agent uses. Essentially there's a "ground truth communication channel" and things like communication delay, noise, max communication range, etc., can be modeled by the end user. Does that seem ok? As for aero, we can leave this as a bool to turn on/off but no guarantees on performance when aero is on. @NachoMurillo I'm happy to start development on this but no timeline can be guaranteed. Happy to help if you'd like to start a new branch on the repo. I think a good base to build off of is the quadrotor gym environment from the most recent update. |
Do you mean to adapt quadrotor gym environment in order to manage, for example, several Multirotor objects and step all of them in different threads? |
Yep. Right now I'm imagining a base class that instantiates Major bottleneck will probably be data transfer between processes. Although with Python 3.13 the GIL is removed, so I wonder if that would help. |
Hello,
First of all, I would like to congratulate you for this fantastic repo. I have a small doubt about running the simulation with several drones at the same time, in order to test some swarming algorithms and train RL models for this purpose.
Have you ever considered this option? It would be quick to adapt the code to make it possible?
Thank you in advance for your response.
The text was updated successfully, but these errors were encountered: