One way to balance a table


Source: cross.java
    We can use two mini-vehicles along the axes of a square table. We simply run the two mini-vehicles linearly inside the table on tracks, (one on top of the other, so they don't bump into each other). One mini-vehicle compensates for shifting weight along one axis, the other compensates for shifting weight along the orthogonal axis.

A nice thing about this strategy is that the control can be very simple; there is no need for computer software in the control loop. Each of the two tilt sensors can simply drive the voltage (through a suitable conditioning curve) of the motor that powers the corresponding mini-vehicle.

You can see the principle in the java applet to the left, which shows a schematic top view. Try dragging the blue "weight" around with your mouse, and watch the two red mini-vehicles slide so as to counterbalance the table.