A Simple Example for Imitation Learning with Dataset Aggregation (DAGGER) on Torcs Env
This repository implements a simple algorithm for imitation learning: DAGGER.
In this example, the agent only learns to control the steer [-1, 1], the speed is computed
automatically in gym_torcs.TorcsEnv
.
It is a little bit boring to set up the environment, but any incorrect configurations will lead to FAILURE. After installing Gym-Torcs, please follow the instructions to confirm everything work well:
Open a terminal:
sudo torcs -vision
to start a gameRace --> Practice --> Configure Race
: set the driver to scr_server 1
instead of player
Race --> Practice --> New Race
:
This should result that Torcs keeps a blue screen with several text information.Open another terminal:
python snakeoil3_gym.py
on another terminal, it will shows how the fake AI control the car.Set image size to 64x64x3:
sudo torcs -vision
to start a gameOptions --> Display --> select 64x64 --> Apply
Make sure everything above work well and then run:
python dagger.py
It will start a Torcs server at the beginning of every episode, and terminate the server when the car crashs or the speed is too low.
Note that, the self-contained gym_torcs.py
is modified from Gym-Torcs, you can try different settings (like default speed, terminated speed) by modifying it.
After Episode 1, the car crashes after 315 steps.
After Episode 3, the car does not crash anymore !!!
The number of steps and episodes might vary depending on the parameters initialization.
ENJOY !