aboutsummaryrefslogtreecommitdiff
path: root/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2013-11-25 21:22:00 +0100
committerThomas Gubler <thomasgubler@gmail.com>2013-11-25 21:22:00 +0100
commit5447ecf67d16ad0b9c6e86cb301b9e7cc8d36e60 (patch)
tree623557712a17921dee9cc1111a35756bcb1d4fcb /src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp
parent94745fa0af93f8e58eaf2d100c482030a838bc46 (diff)
parent3c6f01bea8a65e2c347d1b893b3fe0d152bff69c (diff)
downloadpx4-firmware-5447ecf67d16ad0b9c6e86cb301b9e7cc8d36e60.tar.gz
px4-firmware-5447ecf67d16ad0b9c6e86cb301b9e7cc8d36e60.tar.bz2
px4-firmware-5447ecf67d16ad0b9c6e86cb301b9e7cc8d36e60.zip
Merge branch 'fw_autoland_att_tecs' into fw_autoland_att_tecs_navigator
Conflicts: src/lib/external_lgpl/tecs/tecs.cpp src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp
Diffstat (limited to 'src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp')
-rw-r--r--src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp b/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp
index 7495a39e0..7da28cbfa 100644
--- a/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp
+++ b/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp
@@ -217,6 +217,7 @@ private:
float loiter_hold_radius;
float heightrate_p;
+ float speedrate_p;
float land_slope_angle;
float land_slope_length;
@@ -260,6 +261,7 @@ private:
param_t loiter_hold_radius;
param_t heightrate_p;
+ param_t speedrate_p;
param_t land_slope_angle;
param_t land_slope_length;
@@ -431,6 +433,7 @@ FixedwingPositionControl::FixedwingPositionControl() :
_parameter_handles.speed_weight = param_find("FW_T_SPDWEIGHT");
_parameter_handles.pitch_damping = param_find("FW_T_PTCH_DAMP");
_parameter_handles.heightrate_p = param_find("FW_T_HRATE_P");
+ _parameter_handles.speedrate_p = param_find("FW_T_SRATE_P");
/* fetch initial parameter values */
parameters_update();
@@ -497,6 +500,7 @@ FixedwingPositionControl::parameters_update()
param_get(_parameter_handles.max_climb_rate, &(_parameters.max_climb_rate));
param_get(_parameter_handles.heightrate_p, &(_parameters.heightrate_p));
+ param_get(_parameter_handles.speedrate_p, &(_parameters.speedrate_p));
param_get(_parameter_handles.land_slope_angle, &(_parameters.land_slope_angle));
param_get(_parameter_handles.land_slope_length, &(_parameters.land_slope_length));
@@ -523,6 +527,7 @@ FixedwingPositionControl::parameters_update()
_tecs.set_indicated_airspeed_max(_parameters.airspeed_max);
_tecs.set_max_climb_rate(_parameters.max_climb_rate);
_tecs.set_heightrate_p(_parameters.heightrate_p);
+ _tecs.set_speedrate_p(_parameters.speedrate_p);
/* sanity check parameters */
if (_parameters.airspeed_max < _parameters.airspeed_min ||
@@ -957,7 +962,7 @@ FixedwingPositionControl::control_position(const math::Vector2f &current_positio
if (altitude_error > 15.0f) {
/* enforce a minimum of 10 degrees pitch up on takeoff, or take parameter */
- _tecs.update_pitch_throttle(_R_nb, _att.pitch, _global_pos.alt, _mission_item_triplet.current.altitude, calculate_target_airspeed(_parameters.airspeed_min),
+ _tecs.update_pitch_throttle(_R_nb, _att.pitch, _global_pos.alt, _mission_item_triplet.current.altitude, calculate_target_airspeed(1.3f * _parameters.airspeed_min),
_airspeed.indicated_airspeed_m_s, eas2tas,
true, math::max(math::radians(mission_item_triplet.current.radius), math::radians(10.0f)),
_parameters.throttle_min, _parameters.throttle_max, _parameters.throttle_cruise,