I'm building a DIY Segway with these main components: Arduino Uno, RoboClaw 15A Motor Controller, Sparkfun IMU 6 Degree of Freedom Gyro/Accelerometer, and 2 used 24V. Wheelchair motors/tires.
After some initial hardware issues (see here: http://forum.arduino.cc/index.php?topic=184124.0
) this project is moving ahead quite nicely. The first test runs were successful https://www.youtube.com/watch?v=-JaJhLjX9SQ
One software problem remains to be solved.
Control software works like this. When the Segway leans forward, accelerate. When it leans backward, slow the motors down. You drive forward/backward by leaning forward/backward.
When the Segway accelerates and reaches the maximum motor speed, the software limits the speed to the max motor speed. However, at that time the software can't accelerate any further when needed to balance the Segway. Hence the Segway tips forward.
Does anyone have an idea on how to differentiate between "speed-acceleration" and "balance-acceleration".
Appreciate any feedback/help.