This study introduces a two-wheeled self-balancing robot based on a control moment gyroscope module. These robots are able to achieve better mobility and rotation in small spaces and to move faster than legged robots such as humanoid type robot When an unexpected disturbance affects the robot, it will maintain its balance with movements of the wheels and tilting of a body. The robot will lose its stability if disturbance exceeds, to address it robot was designed with a control moment gyroscope module, for minimizing moment while improving balance.


The self-balancing robot is similar to other typical two-wheeled self-balancing robots, such as Segway, its role is to maintain balance using the movement of the wheels and body. It is driven by two actuators consisting of a DC robot. To increase the torque of the actuator pully/belt mechanism was adopted. In order to measure the tilt angle and angular velocity of the robot, an IMU(inertia measurement unit) was developed. The IMU consist of an inclinometer and gyrosensor. Inclinometer can accurately measure the correct angle during fast rotation because of centrifugal force, on the other hand, gyrosensor uses to measure the angular velocity of the body, which can estimate the angle of the body by integrating angular velocity.

Mathematics Behind It

The self-balancing robot design is essentially an inverted pendulum( having its centre of mass above pivot point). Balancing of these types of pendulums is a big challenge due to its inherently unstable. Slightest disturbance from the equilibrium position results in a force away from equilibrium that further destabilize the system.

To deal with these types of problems we use proportional-integral-derivative(PID)controlled system which use tilt feedback to control the torque and speed of the motors and keeps system(robot) in a balanced condition. PID controllers continuously measure the vertical angle, which is a deviation from the ideal value (0 degrees from vertical ).

According to this equation where u(t) is control variable, e(t) is current error in the process variable and Kp, Ki and Kd are coefficients that must be tuned to achieve design behaviour of the controller.

Simulation and Testing of Self Balancing Robot-

Simulation using MATLAB