From MAE/ECE 148 - Introduction to Autonomous Vehicles
Jump to navigation Jump to search

Team Members

  • Ari Cortes – ECE Senior
  • Antoine Laget – CSE Senior (UCSD Extension)
  • Kevin Lam - MAE Senior
  • Jack Ringelberg - MAE Senior

Project Overview

In this class, students are tasked with programming a remote control car to navigate a track autonomously. This is first accomplished by using deep learning to train an AI model with the Donkey Car framework, and then tackled using ROS to implement image processing and lane-following algorithms. In both cases, training and tuning result in a lot of eccentric behavior and crashes, so an emergency stop is implemented to minimize accidents. Currently, a relay controlled by a wireless clicker disables the PCA9685 PWM board, stopping steering and throttle commands from reaching the servo and motor. This assembly is not ideal because it is bulky, requires with a lot of jumper wires, and causes the car to coast to a stop rather than brake. The goal of this project is to replace the relay and PWM board assembly with a single ESP32 wi-fi capable microcontroller. The ESP32 will generate PWM signals to control the servo and motor and will receive emergency stop commands through wi-fi from a user's phone or computer.


Must Haves

  • ESP32 generates PWM signals based on commands from Jetson Nano to control the servo and motor
  • ESP32 functions as an access point for a phone or computer to connect to
  • Website with a red button activates an emergency stop

Nice to Haves

  • Heartbeat and watchdog to shutdown car when wi-fi connection or serial connection with Jetson is lost
  • Expand website to include additional functions beyond emergency stop

Project Video



Mechanical Design

Images (CAD and real) and description of mechanical

Electrical Design

Circuit diagram before and after replacement of PWM board and relay


Git Repository:

ESP32 (LOLIN32) Code

Description of code behavior

Jetson Nano Code


ROS nodes, topics, etc. maybe a rqt graph?

Donkey AI

If we do, or if not describe how you would modify the code

App Code

How we designed and also include info on how someone would add features in the future

Quarter Milestones

Deep Learning Autonomous Laps


ROS Autonomous Laps


ESP32 with E-Stop


Suggestions for the Future

Build to crash

Get driving as soon as possible

Other things

Acknowledgements and References

maybe the cad we used for the Jetson box

Team 1 (Helped us with setup for pwm)