Objectives
The primary objective behind constructing this self-balancing robot is to gain insight into the functionality of two-wheeled motorized personal vehicles, such as the renowned Segway self-balancing vehicle.
Additionally, I aim to enhance my programming skills by utilizing Arduino and C++ language, exclusively without relying on external libraries. This hands-on experience will provide invaluable learning opportunities as I delve into coding from the ground up.
The control theory that I applied in this project is the PID control, and also the implementation of Kalman filters for readin the data from the sensor. These techniques are leanrt in theory in the course but I want to make it more practical so I decided to engage it to this project.
The code can be found "HERE".
Overview
Real model
Testing video
After spending several hours fine-tuning the PID parameters, the desired outcome has finally been achieved.