allenai / ai2thor

An open-source platform for Visual AI.
http://ai2thor.allenai.org
Apache License 2.0
1.13k stars 215 forks source link

Usage for multi-agent scenes #533

Open liuxz-cs opened 3 years ago

liuxz-cs commented 3 years ago

Does the latest version can support the multi-agent scenes? Is there the document for how to use in the multi-agent scenes? Thanks a lot.

mattdeitke commented 3 years ago

Hey! The latest version does support multi-agent scenes. There is a small snippet in the documentation here on how to use it for a basic navigation example.

However that not every action is supported in the multi-agent context and the multi-agent documentation definitely needs work beyond the simple example.

liuxz-cs commented 3 years ago

Hey! The latest version does support multi-agent scenes. There is a small snippet in the documentation here on how to use it for a basic navigation example.

However that not every action is supported in the multi-agent context and the multi-agent documentation definitely needs work beyond the simple example.

okay,and how can I know which actions are supported in multi-agent context ?

mattdeitke commented 3 years ago

Sorry for the delayed response.

For the multi-agent context, navigation actions should all work as expected. They include

  1. Look{Up/Down}
  2. Move{Ahead/Right/Left/Back}
  3. Rotate{Right/Left}
  4. Teleport
  5. Stand/Crouch

Object interaction, on the other hand, is more of a case by case basis. Is there any interaction action you're particularly interested in? I should be able to run a few tests with it.

liuxz-cs commented 3 years ago

Sorry for the delayed response.

For the multi-agent context, navigation actions should all work as expected. They include

  1. Look{Up/Down}
  2. Move{Ahead/Right/Left/Back}
  3. Rotate{Right/Left}
  4. Teleport
  5. Stand/Crouch

Object interaction, on the other hand, is more of a case by case basis. Is there any interaction action you're particularly interested in? I should be able to run a few tests with it.

Okay, thanks a lot, the above actions are enough for us now, if we have some action that we're particularly interested in, we would ask the problem.

liuxz-cs commented 3 years ago

Sorry for the delayed response.

For the multi-agent context, navigation actions should all work as expected. They include

  1. Look{Up/Down}
  2. Move{Ahead/Right/Left/Back}
  3. Rotate{Right/Left}
  4. Teleport
  5. Stand/Crouch

Object interaction, on the other hand, is more of a case by case basis. Is there any interaction action you're particularly interested in? I should be able to run a few tests with it.

I want to know how to obtain the position information of each agent? In the single setting, we can get the position via c.last_event.metadata["agent"]["position"] , and in multi-agent setting, how can we get the position of the specific agent?

liuxz-cs commented 3 years ago

Sorry for the delayed response.

For the multi-agent context, navigation actions should all work as expected. They include

  1. Look{Up/Down}
  2. Move{Ahead/Right/Left/Back}
  3. Rotate{Right/Left}
  4. Teleport
  5. Stand/Crouch

Object interaction, on the other hand, is more of a case by case basis. Is there any interaction action you're particularly interested in? I should be able to run a few tests with it.

When I use c = Controller(agentCount=2) c.last_event.metadata["agent"]["position"], it got the error 'MultiAgentEvent' object has no attribute 'frame' .

mattdeitke commented 3 years ago

Here is an incomplete multi-agent tutorial that I've put together with Colab which currently addresses how to access frames, events, and how to take actions: https://colab.research.google.com/drive/1ityVEzHNN7k4Xek7-yfX_x_VRWNtO2wz?usp=sharing

I'm planning on adding a bunch of these to the website and documentation soon. I agree that the documentation regarding multi-agent data is incredibly sparse. Also, let me know if you have any suggestions!

ishikasingh commented 1 year ago

Are the interaction actions enabled for multi-agent yet? Such as moveArm, moveArmBase, Pickup, etc? I have manually tried to interact with objects, but haven't been successful.

ishikasingh commented 1 year ago

Also, can I initialize different type of agent for multiagent setup? Such as an arm and a locobot?

liuxz-cs commented 1 year ago

Are the interaction actions enabled for multi-agent yet? Such as moveArm, moveArmBase, Pickup, etc? I have manually tried to interact with objects, but haven't been successful.

Multi-agent can execute the interaction actions. You can use the code controller.step(action=xxx, agentId = id) to make the corresponding agent to execute the specific action.