I have made considerable changes to the drive system since last report. The modified Servo drives were really bad, and I couldn't keep both motors running an even speed or even make the robot run straight on a perfectly smooth surface! So I stripped out the servos, shaft encoders and its shaft encoder board, and put in two high efficiency precision gear head motors, new hard rubber wheels and completely rewrote the software for the motor driver PIC's to work with DC motors. The robot goes perfectly straight now without having to adjust the motors speeds to match.
On driving straight in a household environment...
As I discovered with the servo motors, just making the wheels move exactly the same speed did not make the robot go straight in the home. Bumps in the tile floor, carpet, moldings and small obstacles on the floor always make the robot veer off straight after only a matter of 3 - 6 feet. So this aspect will not be used in the new motor drive design. What is most important is to make sure the motors are matched in quality and have the wheels similar in size. The robot will have to use navigation correction to go a straight path from one end of a room to another. The optical encoders I am now making will indicate in 10 degree increments on the wheels and with a .2 inch resolution on the ground, will be more accurate than the rough floors it will have to traverse in the home. Measuring approximate distances, and making accurate angular turns will be the primary goals here.