Motor Safety Wrapper
Disclaimer: WIP and untested; tune limits on your robot. Custom code built on WPILib APIs.
Code (Java)
public class MotorSafety {
private final SlewRateLimiter slew;
private final double clamp;
public MotorSafety(double maxChangePerSec, double clamp) {
this.slew = new SlewRateLimiter(maxChangePerSec);
this.clamp = clamp;
}
public double safe(double requested) {
double c = MathUtil.clamp(requested, -clamp, clamp);
return slew.calculate(c);
}
}