4350cf8cd5b703d08de04df85508c697538aefbc
InteractionImitation
Imitation Learning with the INTERACTION Dataset
Getting started
Clone InteractionSimulator and pip install the module.
git clone https://github.com/sisl/InteractionSimulator.git
cd InteractionSimulator
pip install -e .
cd ..
export PYTHONPATH=$(pwd):$PYTHONPATH
Install additional requirements
pip install -r requirements.txt
Copy INTERACTION Dataset files:
The INTERACTION dataset contains a two folders which should be copied into a folder called ./InteractionSimulator/datasets:
- the contents of
recorded_trackfilesshould be copied to./InteractionSimulator/datasets/trackfiles - the contents of
mapsshould be copied to./InteractionSimulator/datasets/maps
Processing, saving, and loading expert demos
Once the repository has been set up, you can process and save expert track demonstrations with:
python src/expert_data.py --loc [LOCNUM] --track [TRACKNUM]
You can then load the experts actions and observations using
from src import expert_data
observations, actions = expert_data.load_expert_data(loc = [LOCNUM], track = [TRACKNUM])
for (s, a) in zip (observations, actions):
# do some imitation learning
Package Structure
InteractionImitation
|- demos
|- algorithms
|- BC
|- AdVIL
|- nets
|- Encoder
|- DeepSet
|- Decoder
|- policies
|- discriminators
|- demo_generators
Type Definitions
Demo: List[Trajectory]
Trajectory: List[Tuple[Observation, Action]] # single expert
Observation: Dict[
'own_state': [x, y, v, psi, psidot],
'relative_states': List[[xr, yr, vr, psir, psidotr]],
'own_path': List[[xr, yr]], # fixed length, constant dt
'map': Map, # relative
]
Action: Range[0, 1]
Policy: Union[
Callable[[Observation], Action],
Callable[[Observation, Action], probability],
]
Discriminator: Callable[[Observation, Action], value]
Map: Dictionary[...]
Languages
Python
98.1%
Shell
1.9%