61f06c95c208752dab5eb774c37cf71d47f540f4
module can now deal with nan values for nonexisting relative states in case all relative states are nan, the latent representation is zeroed, which is consitent with an empty sum
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%