We present two large scale adversarial tracking environments: Prison Escape and Narco Traffic Interdiction as discussed in the paper. This repository contains the code to run the environments and collect the datasets. The codebase for training models for GrAMMI is located here and the codebase for training CADENCE will be released soon.
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.