Components and supplies

Necessary tools and machines

Soldering iron (generic)

About this project

About

Self-balancing, inverted pendulum robot. The build is straightforward and the software is free and open source, based on Arduino.

The heart of a self-balancing bot is the IMU, consisting of 3-axis rate gyros, accelerometers. These 6 sensors are sampled up to 1,000 times per second and integrated with a piece of code called the DCM (direction-cosine-matrix algorithm), a mathematical filter that combines the best attributes of each sensor. The robot’s higher-level code can simply ask the DCM the angle and the rate of rotation of the bot as needed for balancing.

Circuit Diagram:

We used two DC geared motors & BluBug device, the above circuit diagram shows the connection of self balancing robot.

A simple PID loop in the robot’s software is the basis of the balance control:

This works for a while, but the bot constantly accelerates and soon falls over. If the bot tries to right itself, forward motion stops.

Instead we need to move forward while rolling vertically. The first step is to make the wheels rotate at the desired speed while leaving enough power to keep the bot balanced and perfectly upright. Next we take the velocity of the wheels and feed that forward into the desired speed. This gives the bot the ability to resist rapid changes in angle, such as a person trying to push the bot over.