EquipoiseBot is my two wheeled self balancing robot project. It can be controlled using a homebuilt IR remote. This is my fourth robot built in the autum and winter of 2011 – 2012.
The robot uses two accelerometers and one gyro to make it balance. Two different values representing the angle of the robot are calculated. One from the accelerometers using the mathematical tangens-function and one from the gyro using integration. Those two angle values has different pros and cons. The angle signal from the accelerometers is very noisy, but this is an absolute value of the angle relative to earths gravity. The signal from the gyro is less noisy but it has drift problems.
The two angle values are combined in a filter to make one new value that is both accurate and absolute, relative to earths gravity. This new angle is used as input in a PID regulator to contol the motors, keeping the robot in balance.
The remote is built in the casing of an old transmitter from an RC helicopter. The transmitter sends the X and Y positions of the control stick over IR using using standard 1200 baud serial data modulated with 38KHz and a homemade data protocol.
The steering signal from the remote is just added to one of the motorsignals and subtracted from the other. The forward/reverse signal from the remote are added to the anglevalue after the filter described above. The steering works great but the forvard/reverse is far from perfect. The remote is comanding the robot to lean at an angle, not to drive at a comanded speed. Also there is nothing thats prevents the robot from driving to fast, if this ocurs the robot falls over. This makes the robot hard to control.
EquipoiseBot is equipped with quadrature wheel encoders. Those are not used at all but in the future they can be used to make the robot stand still in one place, or to improve the remote control function.