mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-27 03:50:35 +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:
@@ -31,6 +31,8 @@ param set-default BAT1_R_INTERNAL 0.0025
|
||||
param set-default CBRK_AIRSPD_CHK 162128
|
||||
param set-default CBRK_IO_SAFETY 22027
|
||||
|
||||
param set-default COM_FW_PERM_STAB 1
|
||||
|
||||
param set-default EKF2_GPS_POS_X -0.12
|
||||
param set-default EKF2_IMU_POS_X -0.12
|
||||
param set-default EKF2_TAU_VEL 0.5
|
||||
@@ -131,7 +133,6 @@ param set-default VT_F_TRANS_DUR 1
|
||||
param set-default VT_IDLE_PWM_MC 1025
|
||||
param set-default VT_B_REV_OUT 0.5
|
||||
param set-default VT_B_TRANS_THR 0.7
|
||||
param set-default VT_FW_PERM_STAB 1
|
||||
param set-default VT_TRANS_TIMEOUT 22
|
||||
param set-default VT_F_TRANS_RAMP 4
|
||||
|
||||
|
||||
@@ -75,7 +75,6 @@ uint8 vehicle_type # Type of vehicle (fixed-wing, rotary wing, ground)
|
||||
|
||||
bool is_vtol # True if the system is VTOL capable
|
||||
bool is_vtol_tailsitter # True if the system performs a 90° pitch down rotation during transition from MC to FW
|
||||
bool vtol_fw_permanent_stab # True if VTOL should stabilize attitude for fw in manual mode
|
||||
bool in_transition_mode # True if VTOL is doing a transition
|
||||
bool in_transition_to_fw # True if VTOL is doing a transition from MC to FW
|
||||
|
||||
|
||||
@@ -11,4 +11,3 @@ bool vtol_in_rw_mode # true: vtol vehicle is in rotating wing mode
|
||||
bool vtol_in_trans_mode
|
||||
bool in_transition_to_fw # True if VTOL is doing a transition from MC to FW
|
||||
bool vtol_transition_failsafe # vtol in transition failsafe mode
|
||||
bool fw_permanent_stab # In fw mode stabilize attitude even if in manual mode
|
||||
|
||||
@@ -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