Has anyone looked at optically encoding the drive motors to allow the circuitry to make the motors go the same speed and the robot to drive straight?
I might go this way eventually; the system to lock the speeds is called PID (proportional, integral, Derivative) and is an error correcting method for keeping multiple motors running at the same speed. It’s used a lot in robotics. If you look up PID you’ll find plenty of links explaining how it works.