The balancing algorithm
Building a balancing robot provides some interesting control channels. Fortunately, there are several good tutorials for this sort of thing, for example, at http://ozzmaker.com/success-with-a-balancing-robot-using-a-raspberry-pi/.
To understand the problem, let's look at your robot. Here is an image of the assembled robot from the side:
What you'll be doing now is using the output of the IMU to determine that angle of the robot. If the robot is leaning too far forward, you'll move the wheels quickly forward to push the robot back upward. The same is true if the robot is leaning too far backward.
To make this all work, you'll need to implement a Proportional-Integration-Derivative (PID) controller. A brief tutorial is probably in order. Here is a block diagram of a control loop:
The Desired Angle is the angle of the IMU when the robot is straight up and down. The Measured Angle is the angle that is actually measured from the IMU. If the angle is too far forward or...