mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-29 03:13:33 +08:00
FW Position controller: improve parameter sanity checks (provide more feedback)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
This commit is contained in:
@@ -141,19 +141,31 @@ FixedwingPositionControl::parameters_update()
|
|||||||
|
|
||||||
landing_status_publish();
|
landing_status_publish();
|
||||||
|
|
||||||
|
int check_ret = PX4_OK;
|
||||||
|
|
||||||
// sanity check parameters
|
// sanity check parameters
|
||||||
if ((_param_fw_airspd_max.get() < _param_fw_airspd_min.get()) ||
|
if (_param_fw_airspd_max.get() < _param_fw_airspd_min.get()) {
|
||||||
(_param_fw_airspd_max.get() < 5.0f) ||
|
mavlink_log_critical(&_mavlink_log_pub, "Config invalid: Airspeed min smaller than max");
|
||||||
(_param_fw_airspd_min.get() > 100.0f) ||
|
check_ret = PX4_ERROR;
|
||||||
(_param_fw_airspd_trim.get() < _param_fw_airspd_min.get()) ||
|
|
||||||
(_param_fw_airspd_trim.get() > _param_fw_airspd_max.get())) {
|
|
||||||
|
|
||||||
mavlink_log_critical(&_mavlink_log_pub, "Airspeed parameters invalid");
|
|
||||||
|
|
||||||
return PX4_ERROR;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return PX4_OK;
|
if (_param_fw_airspd_max.get() < 5.0f || _param_fw_airspd_min.get() > 100.0f) {
|
||||||
|
mavlink_log_critical(&_mavlink_log_pub, "Config invalid: Airspeed max < 5 m/s or min > 100 m/s");
|
||||||
|
check_ret = PX4_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_param_fw_airspd_trim.get() < _param_fw_airspd_min.get() ||
|
||||||
|
_param_fw_airspd_trim.get() > _param_fw_airspd_max.get()) {
|
||||||
|
mavlink_log_critical(&_mavlink_log_pub, "Config invalid: Airspeed cruise out of min or max bounds");
|
||||||
|
check_ret = PX4_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_param_fw_airspd_stall.get() > _param_fw_airspd_min.get() * 0.9f) {
|
||||||
|
mavlink_log_critical(&_mavlink_log_pub, "Config invalid: Stall airspeed higher than 0.9 of min");
|
||||||
|
check_ret = PX4_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return check_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -353,6 +353,7 @@ private:
|
|||||||
(ParamFloat<px4::params::FW_AIRSPD_MAX>) _param_fw_airspd_max,
|
(ParamFloat<px4::params::FW_AIRSPD_MAX>) _param_fw_airspd_max,
|
||||||
(ParamFloat<px4::params::FW_AIRSPD_MIN>) _param_fw_airspd_min,
|
(ParamFloat<px4::params::FW_AIRSPD_MIN>) _param_fw_airspd_min,
|
||||||
(ParamFloat<px4::params::FW_AIRSPD_TRIM>) _param_fw_airspd_trim,
|
(ParamFloat<px4::params::FW_AIRSPD_TRIM>) _param_fw_airspd_trim,
|
||||||
|
(ParamFloat<px4::params::FW_AIRSPD_STALL>) _param_fw_airspd_stall,
|
||||||
|
|
||||||
(ParamFloat<px4::params::FW_CLMBOUT_DIFF>) _param_fw_clmbout_diff,
|
(ParamFloat<px4::params::FW_CLMBOUT_DIFF>) _param_fw_clmbout_diff,
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user