aboutsummaryrefslogtreecommitdiff
path: root/src/modules/fw_att_control
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2015-01-04 12:29:15 +0100
committerLorenz Meier <lm@inf.ethz.ch>2015-02-15 10:13:49 +0100
commit53ffde30c257a00f4760e93cfb3b02bac085f682 (patch)
tree72002ac799101de3769b7560590917ef8d525dff /src/modules/fw_att_control
parent1b8a830a38caf393cb308ad206d3c23329d58a48 (diff)
downloadpx4-firmware-53ffde30c257a00f4760e93cfb3b02bac085f682.tar.gz
px4-firmware-53ffde30c257a00f4760e93cfb3b02bac085f682.tar.bz2
px4-firmware-53ffde30c257a00f4760e93cfb3b02bac085f682.zip
fw att: add param to select yawrate control method
Diffstat (limited to 'src/modules/fw_att_control')
-rw-r--r--src/modules/fw_att_control/fw_att_control_main.cpp5
-rw-r--r--src/modules/fw_att_control/fw_att_control_params.c13
2 files changed, 18 insertions, 0 deletions
diff --git a/src/modules/fw_att_control/fw_att_control_main.cpp b/src/modules/fw_att_control/fw_att_control_main.cpp
index 00c2080a0..5dfc82747 100644
--- a/src/modules/fw_att_control/fw_att_control_main.cpp
+++ b/src/modules/fw_att_control/fw_att_control_main.cpp
@@ -183,6 +183,7 @@ private:
float y_roll_feedforward;
float y_integrator_max;
float y_coordinated_min_speed;
+ int32_t y_coordinated_method;
float y_rmax;
float airspeed_min;
@@ -225,6 +226,7 @@ private:
param_t y_roll_feedforward;
param_t y_integrator_max;
param_t y_coordinated_min_speed;
+ param_t y_coordinated_method;
param_t y_rmax;
param_t airspeed_min;
@@ -391,6 +393,7 @@ FixedwingAttitudeControl::FixedwingAttitudeControl() :
_parameter_handles.airspeed_max = param_find("FW_AIRSPD_MAX");
_parameter_handles.y_coordinated_min_speed = param_find("FW_YCO_VMIN");
+ _parameter_handles.y_coordinated_method = param_find("FW_YCO_METHOD");
_parameter_handles.trim_roll = param_find("TRIM_ROLL");
_parameter_handles.trim_pitch = param_find("TRIM_PITCH");
@@ -459,6 +462,7 @@ FixedwingAttitudeControl::parameters_update()
param_get(_parameter_handles.y_ff, &(_parameters.y_ff));
param_get(_parameter_handles.y_integrator_max, &(_parameters.y_integrator_max));
param_get(_parameter_handles.y_coordinated_min_speed, &(_parameters.y_coordinated_min_speed));
+ param_get(_parameter_handles.y_coordinated_method, &(_parameters.y_coordinated_method));
param_get(_parameter_handles.y_rmax, &(_parameters.y_rmax));
param_get(_parameter_handles.airspeed_min, &(_parameters.airspeed_min));
@@ -501,6 +505,7 @@ FixedwingAttitudeControl::parameters_update()
_yaw_ctrl.set_k_ff(_parameters.y_ff);
_yaw_ctrl.set_integrator_max(_parameters.y_integrator_max);
_yaw_ctrl.set_coordinated_min_speed(_parameters.y_coordinated_min_speed);
+ _yaw_ctrl.set_coordinated_method(_parameters.y_coordinated_method);
_yaw_ctrl.set_max_rate(math::radians(_parameters.y_rmax));
return OK;
diff --git a/src/modules/fw_att_control/fw_att_control_params.c b/src/modules/fw_att_control/fw_att_control_params.c
index 7cae84678..f48075d71 100644
--- a/src/modules/fw_att_control/fw_att_control_params.c
+++ b/src/modules/fw_att_control/fw_att_control_params.c
@@ -275,6 +275,19 @@ PARAM_DEFINE_FLOAT(FW_YR_FF, 0.3f);
*/
PARAM_DEFINE_FLOAT(FW_YCO_VMIN, 1000.0f);
+/**
+ * Method used for yaw coordination
+ *
+ * The param value sets the method used to calculate the yaw rate
+ * 0: open-loop zero lateral acceleration based on kinematic constraints
+ *
+ * @min 0
+ * @max 0
+ * @unit m/s
+ * @group FW Attitude Control
+ */
+PARAM_DEFINE_INT32(FW_YCO_METHOD, 0);
+
/* Airspeed parameters:
* The following parameters about airspeed are used by the attitude and the
* position controller.