PID Controller Project
Overview
The purpose of this project is to build a PID controller which will control the steering of the car. Input to this PID controller will be the Cross-Track Error (CTE), based on the CTE value, we will update the PID parameters (Kp, Ki, Kd) which will help keep the car on track. Udacity Simulator will be used to evaluate the working of this PID Controller.
Discussion
The PID parameters were tuned with the help of Twiddle and some manual adjustments. After several trial-and-errors, the Kp, Ki, Kd values which would give the best performance were choosen. The project can be further improved by applying PID not just to steering but also for the throttling.
Dependencies
- cmake >= 3.5
- All OSes: click here for installation instructions
- make >= 4.1(mac, linux), 3.81(Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- gcc/g++ >= 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - [install Xcode command line tools]((https://developer.apple.com/xcode/features/)
- Windows: recommend using MinGW
- uWebSockets
- Run either
./install-mac.sh
or./install-ubuntu.sh
. - If you install from source, checkout to commit
e94b6e1
, i.e.Some function signatures have changed in v0.14.x. See this PR for more details.git clone https://github.com/uWebSockets/uWebSockets cd uWebSockets git checkout e94b6e1
- Run either
- Simulator. You can download these from the project intro page in the classroom.
There's an experimental patch for windows in this PR
Basic Build Instructions
- Clone this repo.
- Make a build directory:
mkdir build && cd build
- Compile:
cmake .. && make
- Run it:
./pid
.