mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-09 08:41:37 +08:00
Commander/VTOL: move VT_FW_PERM_STAB param to commander and not pass through as flag
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
This commit is contained in:
@@ -174,6 +174,14 @@ bool param_modify_on_import(bson_node_t node)
|
||||
if (strcmp("IMU_GYRO_NF_BW", node->name) == 0) {
|
||||
strcpy(node->name, "IMU_GYRO_NF0_BW");
|
||||
PX4_INFO("copying %s -> %s", "IMU_GYRO_NF_BW", "IMU_GYRO_NF0_BW");
|
||||
}
|
||||
}
|
||||
|
||||
// 2022-01-20: translate VT_FW_PERM_STAB to COM_FW_PERM_STAB
|
||||
{
|
||||
if (strcmp("VT_FW_PERM_STAB", node->name) == 0) {
|
||||
strcpy(node->name, "COM_FW_PERM_STAB");
|
||||
PX4_INFO("copying %s -> %s", "VT_FW_PERM_STAB", "COM_FW_PERM_STAB");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2232,7 +2232,6 @@ Commander::run()
|
||||
if (_vtol_vehicle_status_sub.updated()) {
|
||||
/* vtol status changed */
|
||||
_vtol_vehicle_status_sub.copy(&_vtol_status);
|
||||
_status.vtol_fw_permanent_stab = _vtol_status.fw_permanent_stab;
|
||||
|
||||
/* Make sure that this is only adjusted if vehicle really is of type vtol */
|
||||
if (is_vtol(_status)) {
|
||||
@@ -3449,11 +3448,9 @@ Commander::update_control_mode()
|
||||
bool
|
||||
Commander::stabilization_required()
|
||||
{
|
||||
return (_status.vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING || // is a rotary wing, or
|
||||
_status.vtol_fw_permanent_stab || // is a VTOL in fixed wing mode and stabilisation is on, or
|
||||
(_vtol_status.vtol_in_trans_mode && // is currently a VTOL transitioning AND
|
||||
_status.vehicle_type ==
|
||||
vehicle_status_s::VEHICLE_TYPE_FIXED_WING)); // is a fixed wing, ie: transitioning back to rotary wing mode
|
||||
// is a rotary-wing or fixed-wing/VTOL in fixed-wing mode and stabilistion is on
|
||||
return (_status.vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING ||
|
||||
_param_com_fw_perm_stab.get());
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -227,6 +227,7 @@ private:
|
||||
|
||||
// Quadchute
|
||||
(ParamInt<px4::params::COM_QC_ACT>) _param_com_qc_act,
|
||||
(ParamBool<px4::params::COM_FW_PERM_STAB>) _param_com_fw_perm_stab,
|
||||
|
||||
// Offboard
|
||||
(ParamFloat<px4::params::COM_OF_LOSS_T>) _param_com_of_loss_t,
|
||||
|
||||
@@ -1077,3 +1077,15 @@ PARAM_DEFINE_INT32(COM_ARM_SDCARD, 1);
|
||||
* @unit m/s
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(COM_WIND_WARN, -1.f);
|
||||
|
||||
/**
|
||||
* Permanent stabilization in fixed-wing mode
|
||||
*
|
||||
* If set to true this parameter will cause permanent attitude stabilization
|
||||
* for fixed-wing planes or VTOLs in fixed-wing mode.
|
||||
* This parameter has been introduced for pure convenience sake.
|
||||
*
|
||||
* @boolean
|
||||
* @group Commander
|
||||
*/
|
||||
PARAM_DEFINE_INT32(COM_FW_PERM_STAB, 0);
|
||||
|
||||
@@ -235,8 +235,6 @@ VtolAttitudeControl::parameters_update()
|
||||
if (_vtol_type != nullptr) {
|
||||
_vtol_type->parameters_update();
|
||||
}
|
||||
|
||||
_vtol_vehicle_status.fw_permanent_stab = _param_vt_fw_perm_stab.get();
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -230,7 +230,6 @@ private:
|
||||
void parameters_update();
|
||||
|
||||
DEFINE_PARAMETERS(
|
||||
(ParamInt<px4::params::VT_TYPE>) _param_vt_type,
|
||||
(ParamBool<px4::params::VT_FW_PERM_STAB>) _param_vt_fw_perm_stab
|
||||
(ParamInt<px4::params::VT_TYPE>) _param_vt_type
|
||||
)
|
||||
};
|
||||
|
||||
@@ -51,17 +51,6 @@
|
||||
*/
|
||||
PARAM_DEFINE_INT32(VT_IDLE_PWM_MC, 900);
|
||||
|
||||
/**
|
||||
* Permanent stabilization in fw mode
|
||||
*
|
||||
* If set to one this parameter will cause permanent attitude stabilization in fw mode.
|
||||
* This parameter has been introduced for pure convenience sake.
|
||||
*
|
||||
* @boolean
|
||||
* @group VTOL Attitude Control
|
||||
*/
|
||||
PARAM_DEFINE_INT32(VT_FW_PERM_STAB, 0);
|
||||
|
||||
/**
|
||||
* VTOL Type (Tailsitter=0, Tiltrotor=1, Standard=2)
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user