differential: reset integrators when disarmed (#23637)

This commit is contained in:
chfriedrich98
2024-09-03 09:31:39 +02:00
committed by GitHub
parent 8f6ce4edbf
commit a9cdb36d7c
4 changed files with 18 additions and 0 deletions
@@ -174,3 +174,10 @@ matrix::Vector2f RoverDifferentialControl::computeInverseKinematics(float forwar
return Vector2f(forward_speed_normalized - speed_diff_normalized,
forward_speed_normalized + speed_diff_normalized);
}
void RoverDifferentialControl::resetControllers()
{
pid_reset_integral(&_pid_throttle);
pid_reset_integral(&_pid_yaw_rate);
pid_reset_integral(&_pid_yaw);
}
@@ -72,6 +72,11 @@ public:
*/
void computeMotorCommands(float vehicle_yaw, float vehicle_yaw_rate, float vehicle_forward_speed);
/**
* @brief Reset PID controllers
*/
void resetControllers();
protected:
/**
* @brief Update the parameters of the module.