This capstone project involved designing and building a self-balancing two degree-of-freedom inverted pendulum from scratch, spanning from September 2024 to April 2025.
I led the controls software for the system, implementing real-time C++ firmware on an ESP32 microcontroller with a nested PID control algorithm designed in MATLAB Simulink. The system stabilizes an inverted pendulum that can move in two independent axes, requiring careful tuning of multiple control loops running simultaneously under hard real-time constraints.
This project combined embedded systems programming, control theory, mechanical design, and real-time systems, requiring tight integration between the MATLAB simulation environment and the deployed firmware.