I'd like to start a discussion to collect general knowledge of what to do and what not to do when building a two-wheeled self-balancing robot (SBR for short). My hope is that this thread can become a somewhat comprehensive set of guidelines to help beginners and non-beginners build their first balancing robot or achieve a more stable and successful subsequent design. Things that I would like to understand include:
- What are the effects of wheel diameter?
- What are the effects of overall structural height?
- What are the effects of IMU placement (has a gyro and acceleromter)?
- Does using encoder feedback on the motors greatly reduce the time it takes to adjust PID parameters to get a succussfully balancing robot?
- Backlash (meaning there is slop in the gearing of the motors) can be detrimental, does anyone know of a good gearmotor available with encoders that does not exibit much backlash?
- Does a motor driver with braking give a balancing robot additional potential? (assume the braking or shorting of an H-bridge can be pulse-width modulated)
I'd also like your input to contrast the pros and cons of various techniques... easy vs. difficult to program, easy vs. difficult to get to balance once everything is mostly done, most stable vs. least stable, cheap vs. expensive, etc.
In the end it would be nice to determine how to implement the most basic SBR (inertial) and how to make the most robust SBR that can stop on a dime and spin circles.
For reference here are some of the balancing robots found here on LMR:
Here is another good robot project:
It is also possible to use infrared or ultrasonic sensors to balance, but this is not very practical for slopes, if the robot comes up to something in sight of the sensor, or in some cases if the color of the floor changes. Please share any of your experiences and knowledge you think may be relevent!