Sample Six-Week Curriculum¶
This is a sample suggested curriculum for a six week AI Racing League summer school project. The students would all meet together for two hours, once a week. There are then homework assignments. The students don't need any prior experience.
Week 1: Overview and Unboxing¶
- Slides: Welcome to the AI Racing League? Link to Slides
- What is the DonkeyCar?
- Lab: Unbox the car (requires tools such as cable tie cutter and screwdrivers)
- What is AI? What is Machine Learning?
- What is Python?
- Introduction to Python course
- Motors and servos (demo of car driving with the motors and servos being controlled by RC)
- Make sure students know how to turn on the ESC and listen for the startup beep sound
See the suggested parts list for week 1
Week 2: Booting a Raspberry Pi, UNIX, Calibration, Intro to Python and Raspberry Pi¶
- Booting a Raspberry Pi from Micro SD card
- What is a Raspberry Pi?
- How much RAM do we need?
- Why is 4GB important for the AI Racing League?
- What is a micro SD card? How big a card do we need? 32GB vs 65GB vs 128GB
- Can we train our model on a Pi? Training vs. Inference - when do we need a GPU?
- What is an Operating System Image file?
- How do we create an image file?
- Download a Raspberry Pi image Raspberry Pi Imager
- Burn a microSD card with that image - include customization
- Use the microSD card to boot your Raspberry Pi (requires 4GB Raspberry Pi Pico, keyboard, mouse, power supply, monitor)
- Configure Pi desktop - learn how to use menus, add bookmarks to the web browser, manage bookmarks
- Start Python IDE
- Run "hello world" in Python
- Open a Terminal and type "ls"
- Download the DonkeyCar software
- Get familiar with the folder layout
- Verify the connections from the Pi to the PWM card and the DonkeyCar
- Run the calibration command, write down the numbers for throttle and steering
Week 3: Python, Configuration, Drive¶
- More Python labs - get as far as possible through the Introduction to Python class
- Get familiar with the Donkey Car configuration file
- Focus on the key parameters for calibration
- Find the Drive command
- Discuss options for controlling the car: Joystick vs Web Application
- Backup Career Exploration: What is a Software Engineer?
- Backup Lab: Google Teachable Machines
Week 4: Gather Image Data and Analyze Quality with Jupyter Notebooks¶
- Drive around the track and gather image data
- Look at the image data in the tubs
- Run a basic Python program to count the number of files
- Learn about a Jupyter Notebook
- Backup Career Exploration: What is a Data Scientist?
Week 5: The GPU and Training¶
- Learn about the GPU - what are GPU cores? - Why is training time faster?
- What is a conda environment for Python?
- What is Miniconda Download here
- Activating conda environments
- Verifying that the GPU setting are correct
- Run a test program on the GPU
- Learn how to transfer files from the car's memory to the GPU (compress tubs, copy to jump drive)
- What is a model file? How big is your model? What are model parameters?
- Backup: What is Bias in AI? How to we detect it? How dow we measure it?
Week 6: Using the Model to Drive Autonomously¶
- Put the model file on the Donkey car
- Run the drive with model command
- Change the configuration files
- Evaluate image quality