This repository contains code for two large scale adversarial tracking environments: Prison Escape and Narco Traffic Interdiction. It includes the code to run the environments and collect datasets used for Adversarial Tracking.
-
Learning Models of Adversarial Agent Behavior under Partial Observability
- Authors: Sean Ye*, Manisha Natarajan*, Zixuan Wu*, Rohan Paleja, Letian Chen, and Matthew Gombolay
- Published in: IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2023)
- Code Repo
-
- Authors: Zixuan Wu*, Sean Ye*, Manisha Natarajan, Letian Chen, Rohan Paleja, and Matthew Gombolay
- Published in: International Symposium on Multi-Robot and Multi-Agent Systems (MRS 2023)
-
Diffusion Based Multi-Agent Adversarial Tracking
- Authors: Sean Ye, Manisha Natarajan, Zixuan Wu, and Matthew Gombolay
- Published in: International Symposium on Multi-Robot and Multi-Agent Systems (MRS 2023)
After cloning the repository, please use the provided conda environment (environment.yml
) file to install dependencies:
conda env create -f environment.yml
This will create an environment named 'tracking_env'. Please edit the first line of environment.yml
to name it something else.
A heterogeneous team of cameras, search parties, and helicopters (blue team) must coordinate to track an escaped prisoner
(red team). The game is played on a
Within our environment, we have several classes to represent the terrain,
different objects (town, camera, etc.), and step all moving objects based
on various agent policies/heuristics, which you can find under the Prison_Escape/
folder.
If you would like to know the details of our environment configuration
(state space, observation space, action space, etc.), please refer to this file.
Rendering: We have two modes for rendering the Prison Escape environment. We have a fast option that is less aesthetic, and a slow option that is more aesthetic. For training and debugging, please use the fast option. For visualizing results, please use the slow rendering option to get the best display.
Run Prison_Escape/collect_demonstrations.py
to collect train and test datasets. Please specify the
parameters as mentioned in the main function. Each rollout is saved as a numpy file, and includes observations from both the blue
and the red team's perspective, the hideout locations, the current timestep, whether the prisoner was seen, and done to indicate
the end of the episode. All values are stored for every timestep of each rollout.
In our paper, we describe three datasets for Prison Escape. We obtain this by varying the detection factor
in the simulator config file: Prison_Escape/environment/configs/balance_game.yaml
This domain simulates illegal maritime drug trafficking on a
The Narco Traffic domain is setup very similar to the Prison Escape environment, in that we have several classes to represent the terrain,
different objects (town, camera, etc.), and step all moving objects based
on various agent policies/heuristics, which you can find under the Smuggler/
folder.
If you would like to know the details of our environment configuration
(state space, observation space, action space, etc.), please refer to this file.
Run Smuggler/collect_dataset.py
to collect train and test datasets. Please specify the
parameters as mentioned in the main function. Each rollout is saved as a numpy file, and includes observations from both the blue
and the red team's perspective, the hideout locations, the current timestep, whether the smuggler was detected, and done to indicate
the end of the episode. All values are stored for every timestep of each rollout.
---
If you find our code or paper is useful, please consider citing:
@inproceedings{ye2023grammi,
title={Learning Models of Adversarial Agent Behavior under Partial
Observability},
author={Ye, Sean and Natarajan, Manisha and Wu, Zixuan and Paleja, Rohan and Chen, Letian and Gombolay, Matthew},
booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
year={2023}
}
This code is distributed under an MIT LICENSE.