  Self-balancing robot is based on the principle of Inverted pendulum, which is
a two-wheel vehicle balances itself up in the vertical position with reference
to the ground. It consists of both hardware and software implementation.
Mechanical model based on the state space design of the cart, pendulum system.
To find its stable inverted position, we used a generic feedback controller
(i.e., PID controller). According to the situation we have to control both
angel of pendulum and position of cart. Mechanical design consists of two dc
gear motor with encoder, one Arduino microcontroller, IMU (inertial mass unit)
sensor and motor driver as a basic need. IMU sensor which consists of
accelerometer and gyroscope gives the reference acceleration and angle with
respect to ground (vertical), When encoder which is attached with the motor
gives the speed of the motor. These parameters are taken as the system
parameter and determine the external force needed to balance the robot up. It
will be prevented from falling by giving acceleration to the wheels according
to its inclination from the vertical. If the bot tilts by an angle, then in the
frame of the wheels; the center of mass of the bot will experience a pseudo
force which will apply a torque opposite to the direction of tilt. We used a
HC05 Bluetooth module to control the robot via our smartphone.
