Adventures in Manually Tuning RoboClaw PID

We had to figure out how to configure the RoboClaw to correspond to the change. The most obvious parameter to update was to triple QPPS (quadrature pulses per second) to match the triple resolution. Tripling the encoder resolution unfortunately hasn't solved our inability to use Ion Studio's auto PID tuning algorithm (it still freezes up) so we had to return to manual tuning.
Armed with theory of PID but not details of Ion Motion Control's implementation, we started adjusting the Position PID values and sending motor positioning commands to see their effects. First we tried tripling them, then cutting them by two-thirds, neither resulted in good response. Eventually we remembered some earlier indications that the Velocity PID seemed to have some involvement in position commands, even if we weren't using the motor velocity commands. The Position PID values were restored to what worked before, and we start playing with the Velocity PID.
Tripling all the Velocity PID values were not fruitful, but cutting them by two-thirds felt like we were on the right track. We ended up with velocity P roughly 25% of what it was before, the I at 10% of its previous value, and D remained the same. There's still a lot of tuning work ahead of us but this got us in the ballpark with a motor that behaves close enough to what we want.
Lessons learned:
- The Velocity PID values are not used only for motor velocity commands. They affect the behavior of motor position commands as well.
- When increasing resolution for an encoder attached to a RoboClaw, leave the position PID alone and start with decreasing velocity PID values by corresponding ratio.