# Comparison of Balance Bot design

I'm planning to build a Balance Bot and I would like to know which design should I go with. There's a vertical design such as the ArduRoller and on the other hand, there's the typical stacked type of deign. I have attached images below for both of them.

Although both of these are based on the principle of Inverted Pendulum, how do these differ from each other in terms of stability and response (assuming both the designs are of the same size)? Is the mass distribution in the vertical design better? Also, is there a difference in programming them?

The "Balance Bot" robot you describe is widely known as the "inverted pendulum on a cart". For static balancing (keeping the body upright), it is generally desired to have as much as possible time to recover from toppling. This implies that it is desired to have the natural toppling speed of the pendulum as low as possible, or equivalently, to have the toppling duration as long as possible.

As you probably know, balancing a pencil on your finger is much harder than balancing a broom, which is due to the fact that the broom topples slower. It turns out that it topples slower because it is longer. This will also be true for your balancing robot. The model that has the center of mass highest from the ground is the best candidate for balancing, which seems to be the second robot because the (heavy) battery pack is placed on top.

What is then the relation between length and toppling speed?

A measure that can be used to describe toppling speed is the time constant of toppling $\tau$. The higher this value, the longer the duration of toppling (i.e. toppling is slower), and thus the easier it is to balance. The time constant of toppling for a simple point mass inverted pendulum is $\tau=\sqrt{L/g}$ for small toppling angles, with $L$ the length of the pendulum (defined by the distance between the hinge and the center of mass) and $g$ the gravitational acceleration. For example, a robot with a center of mass that is 4 times higher will topple approximately 2 times slower. Or, if it is not feasible to make your robot sufficiently tall, you can always send it off to another planet with lower gravity...

As for your second sub-question, programmability, I do not see how placing the microcontroller either vertically or horizontally should make a difference. It is furthermore up to you to pick the microcontroller of your choice when building your own machine.