Level: Medium project
GitHub Repository: -
Grade: A (9.0 out of 10)



What is "Bicycle MPC"?

Model Predictive Control (MPC) is an optimal control technique in which the calculated control actions minimize a cost function for a constrained dynamical system over a finite, receding, horizon. At each time step the controller reads or estimates the current state variables, and computes the next actions to perform such that constraints (if provided) are fulfilled and the chosen loss function is also minimized. The first action is performed, and the actions computed for the rest of the prediction horizon are discarded (or reused in more complex MPC implementations, such as MPPI).

This type of control can be used in many scenarios, such as in a chemical plant in order to control the variables involved in a reaction, or in a vehicle in order to have them pursue a trajectory.

Why a "Bicycle MPC"?

For a subject in the Master's of Science that I'm currently pursuing (as of 2023), I had to develop an MPC system to control a complex system. In this subject (240AR066 - Model based Predictive Control), I chose the problem I had previously worked with in my Bachelor's thesis: controlling a vehicle.

Unlike in that project, instead of working with Neural Networks to perform the odometry, the MPC had to be ran in MATLAB using Yalmip and CasADi libraries.

Result of the project

Below I have attached the final report that was to be delivered, which contains all information regarding the project.