16 : filter(), pid(static_cast<double>(targetBrightness), Kp, Ki, Kd)
31 double Kp,
double Ki,
double Kd)
33 double filteredBrightness = filter.
lowPassFilter(currentBrightness);
36 pid.
setParameter(static_cast<double>(targetBrightness), Kp, Ki, Kd);
38 auto pidValue = pid.
control(filteredBrightness);
40 double forwardPercent = forward / 100.0;
41 return pidValue * forwardPercent;
double calculateTurn(int forward, int currentBrightness, int targetBrightness, double Kp, double Ki, double Kd)
旋回値を計算する関数
const double setParameter(double target_, double Kp_, double Ki_=0.0, double Kd_=0.0)
目標値とPIDゲインの設定をする関数
TurnControl(int targetBrightness, double Kp, double Ki, double Kd)
double control(double value, double delta=0.004)
double lowPassFilter(T value, double rate=0.9)
ローパスフィルター(現在値と前回値を参考にして値を決定する)