I was looking at implementing an environment similar to this one from petting-zoo (which itself I believe is taken from an older OpenAI multi-agent env library) where a team of agents have to simultaneously cover (i.e. come within a certain range of) a set of targets (of the same size) whilst not colliding.
It should be possible to reuse some of the existing code from the search-and-rescue environment such as the agent local visualisation and matching agents to targets (the main difference between this and search-and-rescue is that the targets are fully visible and need to be continually covered instead of only found once).
- State: A 2d space with a set of targets distributed across the space, and a set of agents with position updated each step according to their velocity. Targets can be in an uncovered/covered state if an agent is within a fixed range of them.
- Rewards: In the original implementation they use a distance based rewards between agents and targets, but there's a couple other options that could be considered:
- Shared rewards based on the fraction of covered targets
- Individual rewards when an agent covers a target, that are divided if agent are covering the same target.
- Sparse rewards awarded when the agents succeed in covering all the targets.
- Actions: Agents individually update their velocity. In contrast to the search-and-rescue I was looking into a simplified drone/quadcopter type flight model, i.e. agent pitch/roll/rotate with some momentum (but in 2d space).
I was looking at implementing an environment similar to this one from petting-zoo (which itself I believe is taken from an older OpenAI multi-agent env library) where a team of agents have to simultaneously cover (i.e. come within a certain range of) a set of targets (of the same size) whilst not colliding.
It should be possible to reuse some of the existing code from the search-and-rescue environment such as the agent local visualisation and matching agents to targets (the main difference between this and search-and-rescue is that the targets are fully visible and need to be continually covered instead of only found once).