73 if (dt <= 0.0)
return 0.0;
76 if (continuous_input_)
78 const double error_bound = (max_input_ - min_input_) / 2.0;
79 const double goal_min = inputModulus(
80 goal_.position - measurement, -error_bound, error_bound);
81 const double setpoint_min = inputModulus(
82 setpoint_.position - measurement, -error_bound, error_bound);
84 goal_.position = goal_min + measurement;
85 setpoint_.position = setpoint_min + measurement;
92 double error = setpoint_.position - measurement;
95 if (continuous_input_)
97 const double error_bound = (max_input_ - min_input_) / 2.0;
98 error = inputModulus(error, -error_bound, error_bound);
101 const double pid_output = pid_.update(error, dt);
104 return cfg_.velocity_ff * setpoint_.velocity + pid_output;