I'm making a 6 axis robot arm for my engineering teacher and I want to get some more performance out of the servos I'm using. Is there any way to compensate for the backlash of the gearbox using the feedback from the internal potentiometer of the servo?
Have you quantified the backlash, + and -, and determined it is in the gears?
Are the + and the - identical? If so, that would indicate poor design for the gear teeth.
The servos I'm using are hobby servos. I don't know what you mean by quantifying the backlash and + and - in the gears since I'm relatively new to Arduino and mechanical stuff.
For cheap hobby servos, no. The backlash is due to poor tolerances in the gearbox... considering that the reductions are usually quite large, the motor is generally incapable of doing anything to minimize the backlash even with an accurate potentiometer reading, so even if you used the internal potentiometer to try to fix this, it probably wouldn't help much. If there is too much backlash, then just get better servo motors or switch the type of motor altogether.
@Paul_KD7HB is probably asking you if you've measured the maximum angles, +/- of backlash i.e. how much the shaft turns due to the backlash.
Is there anything I can do with analog feedback to improve performance of the servo?
Exactly. Then you might be able to have the software move the servo more or less distance to make up the difference.
Sorry no, there is nothing you can do. It is down to the electronics and mechanics of the servo itself.
The only solution I could imagine that (might) work would be to increase friction on the shaft. At its most basic, you could try running the output of a motor through a tight hole/sleeve. I've also seen some people do this through a belt, with a higher quality encoder attached to one end. Hopefully that gives you some ideas?
The feedback pot is on the output shaft. That's why the shaft can't turn a full 360 degrees. It is already compensated for backlash, but the accuracy is only as good as the feedback controller.
You could gut the servo, connect an external precision A/D converter to the reefback pot, and drive the motor with a 16-channel 12-bit PWM board and H-Bridge.