Johannes Fischer 61f06c95c2 Improve deepsets module
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
2021-07-20 18:44:07 +02:00
2021-07-16 07:15:33 -07:00
2021-07-20 15:25:07 +02:00
2021-07-20 18:44:07 +02:00
2021-07-20 18:44:07 +02:00
2021-07-02 13:41:17 +02:00

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_trackfiles should be copied to ./InteractionSimulator/datasets/trackfiles
  • the contents of maps should 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[...]
Description
No description provided
Readme MIT 76 MiB
Languages
Python 98.1%
Shell 1.9%