I'm controlling a barebone servo (no internal circuitry) using a 1ms PD loop, my problem is that at a nicely tuened PD gain (little overshoot), there is no response for errors less than 10% of the servo travel range. The motor is attached to a high ratio gearbox, which is where the stiction comes from.
I could lessen the problem by using an I term, but I terms either reaction too slowly or create dangerous amount of windup. Any other suggestions?
It turns out my batteries were low, which exacerbated the problem. I also found I couldn't turn the P gain up too high or it starts to overshoot, and I can't turn up the D gain too much because of the noise from the ADC. I am curious to how the original control system worked, it overshoots a tiny bit but reacts very quickly (maybe it sent out a trajectory?),