/deepracer-k1999-race-lines

Race-line calculation of a DeepRacer track

Primary LanguageJupyter NotebookMIT LicenseMIT

Discovering Race Lines in DeepRacer Track Geometries

The AWS DeepRacer Virtual Circuit is run every month and uses reinforcement learning to teach a car to successfully navigate a race track.

Rewards functions are developed by each competitor in order to guide the learning, and these functions can vary widely. One of the experiments I wanted to try was to be overly prescriptive to the car.

Source and Result

Original Track Calculated Race Line Numpy coordinates
NumPy: Canada_Training Python Code: Canada_Training.py
NumPy: reinvent_base.npy Python Code: reinvent_base.py
NumPy: reinvent2019.npy Python Code: reinvent2019.py

Method

Borrowed directly from Rémi Coulom's PhD Thesis:

The code was hastily written but achieved a good enough result, so I stopped improving it. One limitation is that the points along the race line will never migrate in the opposite direction of curvature, leaving some room for further straightening of the race line.

Run

  1. run python -m venv .venv
  2. run .venv\Scripts\activate macOS source .venv/bin/activate
  3. run pip install -r requirements.txt
  4. run jupyter notebook Race-Line-Calculation.ipynb