Skip to content
Snippets Groups Projects
Commit c997159e authored by Philipp Oettershagen's avatar Philipp Oettershagen Committed by Daniel Agar
Browse files

Fixed-wing autoland: Introduce parameter to enable/disable the early...

Fixed-wing autoland: Introduce parameter to enable/disable the early activation of the landing configuration
parent 334aa57a
No related branches found
No related tags found
No related merge requests found
......@@ -75,6 +75,7 @@ FixedwingPositionControl::FixedwingPositionControl() :
_parameter_handles.land_thrust_lim_alt_relative = param_find("FW_LND_TLALT");
_parameter_handles.land_heading_hold_horizontal_distance = param_find("FW_LND_HHDIST");
_parameter_handles.land_use_terrain_estimate = param_find("FW_LND_USETER");
_parameter_handles.land_early_config_change = param_find("FW_LND_EARLYCFG");
_parameter_handles.land_airspeed_scale = param_find("FW_LND_AIRSPD_SC");
_parameter_handles.land_throtTC_scale = param_find("FW_LND_THRTC_SC");
......@@ -148,6 +149,7 @@ FixedwingPositionControl::parameters_update()
param_get(_parameter_handles.land_flare_pitch_min_deg, &(_parameters.land_flare_pitch_min_deg));
param_get(_parameter_handles.land_flare_pitch_max_deg, &(_parameters.land_flare_pitch_max_deg));
param_get(_parameter_handles.land_use_terrain_estimate, &(_parameters.land_use_terrain_estimate));
param_get(_parameter_handles.land_early_config_change, &(_parameters.land_early_config_change));
param_get(_parameter_handles.land_airspeed_scale, &(_parameters.land_airspeed_scale));
param_get(_parameter_handles.land_throtTC_scale, &(_parameters.land_throtTC_scale));
......@@ -847,7 +849,8 @@ FixedwingPositionControl::control_position(const Vector2f &curr_pos, const Vecto
float alt_sp = pos_sp_curr.alt;
if (pos_sp_next.type == position_setpoint_s::SETPOINT_TYPE_LAND && pos_sp_next.valid && _l1_control.circle_mode()) {
if (pos_sp_next.type == position_setpoint_s::SETPOINT_TYPE_LAND && pos_sp_next.valid
&& _l1_control.circle_mode() && _parameters.land_early_config_change == 1) {
// We're in a loiter directly before a landing WP. Enable our landing configuration (flaps,
// landing airspeed and potentially tighter throttle control) already such that we don't
// have to do this switch (which can cause significant altitude errors) close to the ground.
......
......@@ -294,6 +294,7 @@ private:
float land_flare_pitch_min_deg;
float land_flare_pitch_max_deg;
int32_t land_use_terrain_estimate;
int32_t land_early_config_change;
float land_airspeed_scale;
float land_throtTC_scale;
......@@ -358,6 +359,7 @@ private:
param_t land_flare_pitch_min_deg;
param_t land_flare_pitch_max_deg;
param_t land_use_terrain_estimate;
param_t land_early_config_change;
param_t land_airspeed_scale;
param_t land_throtTC_scale;
......
......@@ -328,6 +328,23 @@ PARAM_DEFINE_FLOAT(FW_LND_HHDIST, 15.0f);
*/
PARAM_DEFINE_INT32(FW_LND_USETER, 0);
/**
* Early landing configuration deployment
*
* When set to 0/disabled, the landing configuration (flaps, landing airspeed, etc.) is only activated
* on the final approach to landing. When set to 1/enabled, it is already activated when entering the
* final loiter-down (loiter-to-alt) WP before the landing approach. This shifts the (often large)
* altitude and airspeed errors caused by the configuration change away from the ground such that
* these are not so critical. It also gives the controller enough time to adapt to the new
* configuration such that the landing approach starts with a cleaner initial state.
*
* @value 0 Disable early land configuration deployment
* @value 1 Enable early land configuration deployment
*
* @group FW L1 Control
*/
PARAM_DEFINE_INT32(FW_LND_EARLYCFG, 1);
/**
* Flare, minimum pitch
*
......@@ -386,7 +403,7 @@ PARAM_DEFINE_FLOAT(FW_LND_AIRSPD_SC, 1.3f);
* @min 0.2
* @max 1.0
* @increment 0.1
* @group FW TECS
* @group FW L1 Control
*/
PARAM_DEFINE_FLOAT(FW_LND_THRTC_SC, 1.0f);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment