WPILib's sysid for tuning turret and hood

I’d like to use WPILib’s sysid tool to tune the PID for our robot’s turret and hood. However, even when I set the loop type to position, the tests sysid runs on the motor (listed quasistatic and dynamic forward/backward) turn the motor continuously at a high speed. This is not feasible for the turret or hood, for which the motor has a somewhat limited range of motion and I don’t want to risk breaking something if I don’t stop the motor in time. What is the correct way to use sysid in this scenario?

Lower the ramp rate and step voltage and have a quick finger on disable.

1 Like

With our hood, if the motor turns more than 2 revolutions it will go past the hood’s hard stop. Dynamic step voltage only allows input down to 2 volts, which we are unable to stop in time. Is there anything we can do about this or a way we can change the voltage to be lower? I can’t see us ever needing an output much bigger than 0.5 volts.

1 Like

You should probably submit a github issue to lower the minimum; I can’t see why we’re enforcing an arbitrary limit there.

If your mechanism is that overpowered, however, kS should be negligible, kV should be very near the theoretical motor specification, and kA should be negligible.

3 Likes

The best (current) way we found is to use either Phoenix Tuner or REV Hardware Client and set soft forward and reverse limits based on encoder values after deploying the SysId project.

Then trim the data used by SysId to the one where voltage is applied and the mechanism is not blocked by the soft limits.

1 Like

We aren’t anymore; I forgot that we merged a fix in April. We don’t have a way to release it outside the beta installer though.

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.