microsoft / AirSim

Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research
https://microsoft.github.io/AirSim/
Other
16.48k stars 4.59k forks source link

Feasability of removing SimMode #4110

Open rajat2004 opened 3 years ago

rajat2004 commented 3 years ago

What feature are you suggesting?

Overview:

AirSim currently uses SimMode which can be Multirotor, Car, or ComputerVision, to determine the types of vehicle which can be used. In each Simmode, we can have multiple vehicles of the supported types (#4109 for CV mode). SimMode is also used in a variety of places for which features are supported where.

This however adds a restriction of not being able to use Multirotor and Car vehicles together or any such combination. This is probably one of the most requested features for a long time (#506, #2990, #1777, #1382, more as well). #506 has some modified repositories which allow this feature using a new SimMode, but it might be possible to achieve this by removing the grouping of SimMode itself and allowing any mix of vehicles. This will be a big effort though, and a breaking change, hence this issue to describe the use case and feasibility, as well as possible enhancements. Would love to hear about any other ideas and issues, possible improvements with this suggestion

Smaller Details:

Instead of SimMode, AirSim would allow any combination of vehicles such as ArduRover + SimpleFlight, etc. SimMode is used in various places to decide the appropriate defaults, I'll try to list some of them below and possible modifications -

Removing SimMode can also allow removing external cameras, since such a usecase can be covered through CV vehicles.

Nature of Request:

Why would this feature be useful?

More types of scenarios can be simulated, also making AirSim more complete in multi-agent capabilities. Removes the need to handling different combinations individually, will probably lead to code cleanup as well.

Incremental Changes

Since this is a big change, it's better to get small changes, cleanups & refactors, etc done which will help in reducing later effort. Most of these will probably be addressing existing issues. Please feel free to pickup anything, and I'll be glad to discuss or help out in any way I can!

Any comments, ideas, criticism are very much welcome!

jonyMarino commented 3 years ago

@rajat2004 Thank you very much for these thermometers of what the community is asking for. I also noticed this.

alonfaraj commented 2 years ago

@rajat2004 I also think this feature is also one of the most requested by the community. Are you planning to work on it?

rajat2004 commented 2 years ago

@alonfaraj Yeah, I'm planning to work on it but other things came up, and didn't get the time (or motivation) to properly focus on this. Please do go ahead and work if you want to! And if you prefer would love to discuss and work on this with you, let me know your thoughts

rajat2004 commented 2 years ago

I've also updated the issue description with some smaller things which can be done earlier and will address some current issues/feature requests as well