Environment -- each 'environment' follows a single roundabout and track id (recording of that roundabout) -- on reset, the environment we will use changes the vehicle to control while having the other agents follow their true data (expert controller) ---- Note this can be problematic as it can lead to vehicles behind you crashing into you TRAINING --------- 1. Load pre-trained massive set of transitions -- For all roundabouts -- For all tracks -- For all vehicles -- For all valid timesteps -- Rasterized state (incl. path), action 2. HGAIL -- For each epoch -- INSTANTIATE A NEW ENVIRONMENT (Roundabout + Track) w/ randomized agent, from set of all expert environments -- Train discriminator off training data + yielded low-level transitions in replay buffer -- Train generator off yielded high-level transitions + summed low-level discriminator rewards TESTING ---------- 1. Save average vehicle velocities for all expert vehicles (loop roundabout + track + vehicle, average over time) 2. Run test suite for: expert, BC, GAIL, RAIL, HGAIL, (and hopefully HRAIL) -- For all roundabouts, tracks -- Get expert velocities for track -- Simulate incrementing agent environment (e.g. on reset, agent +=1) -- Store low-level true joint states, actions, and controlled vehicle index -- Per-vehicle statistics (v_all, v_mean, v_shortfall, a_all, jerk_all, n_collisions, T) -- Aggregate statistics + joint Problems ----------- Should train without stopping for collisions, however when doing so, end up with policy that always takes decelerate option -- It seems safe at the start of each vehicles sim, but actually it isn't since a car will spawn and hit it Solutions: -- Hold cars from spawning if their spawn location is full -- Start simulations a few seconds later (after cars clear their spawn places) <- Preferred Test could run indefinitely if stop_on_collision is off Solution: -- Set maximum episode length in intersimple Save massive set of transition raw states beforehand (1 from training, but with raw states) # -- For all roundabouts, tracks # -- For all vehicles, steps # -- Raw vehicle state, action