adjust some limits to prevent divide-by-zero

This commit is contained in:
David Jablonski
2021-03-05 10:42:19 +01:00
committed by Mathieu Bresciani
parent 9f6c882d2a
commit 5233737a86
3 changed files with 14 additions and 8 deletions
@@ -449,10 +449,15 @@ void FixedwingAttitudeControl::Run()
*/
float groundspeed = sqrtf(_local_pos.vx * _local_pos.vx + _local_pos.vy * _local_pos.vy);
float gspd_scaling_trim = (_param_fw_airspd_min.get() * 0.6f);
float groundspeed_scaler = gspd_scaling_trim / ((groundspeed < gspd_scaling_trim) ? gspd_scaling_trim : groundspeed);
control_input.groundspeed = groundspeed;
control_input.groundspeed_scaler = groundspeed_scaler;
if (groundspeed > gspd_scaling_trim) {
control_input.groundspeed_scaler = gspd_scaling_trim / groundspeed;
} else {
control_input.groundspeed_scaler = 1.0f;
}
}
/* reset body angular rate limits on mode change */