Dave wrote on 10/28/12 at 09:32:57:OK......does the robot believe in "Counter Steering".....or does he think he is "Leaning"?
Counter steering works by moving your COG into the direction of your intended turn, but I'm not sure that same dynamic comes into play at slow speeds? It seems to me that as you start to lean, you just steer into that direction to push your balance and COG back to level again. I don't know? I noticed a small bar (rod) behind the robo that looks like it might be a sensor of some sort. This might be a sonar sensor that can accurately detect ground distance differences at the tips? In any case, it would be fun as heck writing code for that little bugger.
I built a balance robo a couple of years ago that had 2 parallel wheels and a gear reduction DC motor. The wheels were on a live axle, so the robo didn't turn. My first attempt was to use two tilted mercury switches to run the motor directly in the direction it started to lean. So while was perfectly upright, neither switch would be closed, but when it started to lean one of the switches would close applying power to the motor in that direction. I experimented with different angles for the mercury switches, but it still wouldn't work properly. The robo would start out trying to balance, but quickly digress into out of control oscillations until it fell down. The problem was I was only taking static conditions into consideration, and failed to factor in acceleration, which is totally dynamic (speed per second per second). I solved the problem using a microcontroller that calculated integrals for acceleration, and applied pulses (pulse width modulation) to the motor to vary it's torque. You could even push the top and it would quickly correct its balance - pretty cool! I want to build another some day, but this time I'll use 2 motors (one per wheel) so it can steer.