Imitation Learning for Autonomous Driving in Duckietown
Team project (three students) training and testing a self-driving agent in the Duckietown simulator with TensorFlow-based behaviour cloning. Included automatic data generation with a pure-pursuit controller, hyper-parameter optimisation and an AI Driving Olympics submission.
- Manual and automatic (pure-pursuit) training-data generation
- CNN behaviour-cloning models with random-search hyper-parameter tuning
- Containerised submission to the AI Driving Olympics challenge
Duckietown is an open platform for teaching autonomous driving: small robots, a modular town of roads, and a simulator used for the AI Driving Olympics (AI-DO). In this course project our three-person team, DSD (Dávid Ódor, Szabolcs Weyde and me), trained a lane-following agent with imitation learning.
Pipeline
- Data generation. We recorded driving data either by driving manually in the simulator or automatically with a pure-pursuit controller, and stored it in a common log schema. We wrote tools to combine and visualise the logs.
- Maps. Custom training and test maps came from our own map generator, so that evaluation ran on roads the model had not seen.
- Training. Convolutional behaviour-cloning networks in TensorFlow, based on the official baseline and extended with our own architectures. Random-search hyper-parameter optimisation picked the variants, and we kept the best checkpoints by training and validation loss.
- Evaluation and submission. An evaluation script on the held-out dataset, and a Dockerised solution in the format required by the AI-DO challenge.
Takeaway
This was a direct contrast to the hand-written controllers of my Nokia robot cars. A learned policy is quick to get working on the training distribution and hard to trust outside it, which is a good argument for systematic scenario-based testing.
References
- Duckietown: Behavior Cloning baseline for the AI-DO lane-following challenge. github.com/duckietown/challenge-aido_LF-baseline-behavior-cloning