facebookresearch / nocturne

A data-driven, fast driving simulator for multi-agent coordination under partial observability.
MIT License
259 stars 29 forks source link

Will the other cars in the simulation react to the ego agent's actions? #47

Closed kargarisaac closed 1 year ago

kargarisaac commented 2 years ago

Question

Hi,

Thank you for releasing the simulator. I'm trying to understand it and use it in my next paper. If I understood correctly, this simulator is based on a dataset, and other agents will not react to the ego agents decisions and movements, right? So this is kind of static environment? I think it's good to do other agent's motion prediction but not learning a policy for ego agent. Am I right?

Thank you

eugenevinitsky commented 2 years ago

Hi Isaac,

Glad the simulator seems useful! So in this simulator we don't have a notion of an ego agent. The user specifies the fraction of vehicles that are controlled by the user and the fraction of agents that are replays of recorded trajectory data. So, I suppose that if you make only one agent controlled by the user then you will have an "ego" agent but you could also have 100% of all vehicles controlled by the user. Does that answer your question?

kargarisaac commented 2 years ago

Thank you for the response. Partially yes. You mean the behavior of other agents (which I do not control them) is fixed/replayed. An there is no autopilot mode for them and if I want other agents to react to my agent (the one that I select as ego), I have to control them myself. Either by a rule-based system or learning.

Is it possible to remove agents? For example I'm interested in unsignalized intersections and want to have 4 agents there. Can I spawn them in the position I want and learn r control them? Actually just using the road structure and do what ever I want with dynamic agents.

eugenevinitsky commented 2 years ago

Ah! It's easy to remove agents and control them but we don't have methods yet for adding new agents in so you would have to add that if you need it (shouldn't be hard but does involve a little c++)

kargarisaac commented 2 years ago

Thank you @eugenevinitsky for the answer. For now, I want to just have data for all agents in each scene. Sth like a replay of the full scene. I want the full scene (sth with the same FOV of the partial observed one but full observability) and the partial observed scene (both image and also vectorized). sth like the below video but also the vecroized version. I see that is is possible to get all ground truth info from the API, but I also need the partial observed ones too. I think the rendering for video generation is done somewhere but I look for one step before that. Is there something like this in the python API? Or I have to implement it or go to cpp?

https://user-images.githubusercontent.com/24753756/184245457-cb916f42-b7aa-482f-a941-4f2ea22540a7.mp4

https://user-images.githubusercontent.com/24753756/184245464-1f314462-c43d-4394-bede-7e45650e2d8c.mp4

Thank you for the help

eugenevinitsky commented 2 years ago

So the vectorized code by default just looks for partially observed objects. I think it wouldn't be too hard to write code that all grabs all the objects within some distance but what exactly do you want the function to grab?

nathanlct commented 2 years ago

@kargarisaac By vectorized do you mean .svg format or am I misunderstanding?

kargarisaac commented 2 years ago

@eugenevinitsky I want the full scene and partial observed one. Both in image and also the vector format.

@nathanlct No I mean a vector with information of agents in the scene.

nathanlct commented 2 years ago

@kargarisaac I see. We do have functions to get all agents in the scene (eg scenario.getVehicles()) but we don't have functions to get all the road points. In terms of partially observed scene though, you can get both an image and a vector.

There is also a function to get the full image of the scene (scenario.getImage()), see examples/rendering.py for examples (also has examples for videos/partially observed/cone rendering).

I hope this answers your question? And let us know if you run into issues with the rendering or state getters!

eugenevinitsky commented 1 year ago

Closing this as it seems stale? Reopen if needed.