From cc0bc051560b432d0f359ce96ca38b3f46748fc9 Mon Sep 17 00:00:00 2001
From: Matthias Grob <maetugr@gmail.com>
Date: Tue, 22 May 2018 07:55:19 +0100
Subject: [PATCH] mc_att_control: remove useless parameter MC_YAW_FF

It scales the yawspeed setpoint arbitrarily by default with 0.5.
This makes no sense because when you give a setpoint of 1rad/s then
you expect the setpoint to get executed. If you want manual yawspeed
response to be less agressive on the stick use the scaling parameter
for the stick MPC_MAN_Y_MAX.
---
 ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d   |  1 -
 ROMFS/px4fmu_common/init.d/12002_steadidrone_mavrik |  1 -
 ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol    |  1 -
 ROMFS/px4fmu_common/init.d/13002_firefly6           |  1 -
 ROMFS/px4fmu_common/init.d/13005_vtol_AAERT_quad    |  1 -
 .../px4fmu_common/init.d/13006_vtol_standard_delta  |  1 -
 ROMFS/px4fmu_common/init.d/13007_vtol_AAVVT_quad    |  1 -
 ROMFS/px4fmu_common/init.d/13008_QuadRanger         |  1 -
 ROMFS/px4fmu_common/init.d/13012_convergence        |  1 -
 ROMFS/px4fmu_common/init.d/13013_deltaquad          |  1 -
 ROMFS/px4fmu_common/init.d/15001_coax_heli          |  1 -
 ROMFS/px4fmu_common/init.d/16001_helicopter         |  1 -
 ROMFS/px4fmu_common/init.d/4003_qavr5               |  1 -
 ROMFS/px4fmu_common/init.d/4009_qav250              |  1 -
 ROMFS/px4fmu_common/init.d/4013_bebop               |  1 -
 ROMFS/px4fmu_common/init.d/4050_generic_250         |  1 -
 ROMFS/px4fmu_common/init.d/4051_s250aq              |  1 -
 ROMFS/px4fmu_common/init.d/4070_aerofc              |  1 -
 ROMFS/px4fmu_common/init.d/4080_zmr250              |  1 -
 ROMFS/px4fmu_common/init.d/4090_nanomind            |  1 -
 posix-configs/bebop/px4.config                      |  1 -
 src/modules/mc_att_control/mc_att_control.hpp       |  2 --
 src/modules/mc_att_control/mc_att_control_main.cpp  |  8 +++-----
 src/modules/mc_att_control/mc_att_control_params.c  | 13 -------------
 24 files changed, 3 insertions(+), 41 deletions(-)

diff --git a/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d b/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d
index b6ef969ed4..0284bbaf5f 100644
--- a/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d
+++ b/ROMFS/px4fmu_common/init.d/10017_steadidrone_qu4d
@@ -36,7 +36,6 @@ then
 	param set MC_YAWRATE_P 0.2
 	param set MC_YAWRATE_I 0.1
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.5
 
 	param set BAT_N_CELLS 4
 fi
diff --git a/ROMFS/px4fmu_common/init.d/12002_steadidrone_mavrik b/ROMFS/px4fmu_common/init.d/12002_steadidrone_mavrik
index 3db8e69db2..2be4f39005 100644
--- a/ROMFS/px4fmu_common/init.d/12002_steadidrone_mavrik
+++ b/ROMFS/px4fmu_common/init.d/12002_steadidrone_mavrik
@@ -37,7 +37,6 @@ then
 	param set MC_YAWRATE_P 0.2
 	param set MC_YAWRATE_I 0.1
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.5
 
 	param set MPC_HOLD_MAX_XY 0.25
 	param set MPC_THR_MIN 0.15
diff --git a/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol b/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol
index a5c516b24a..b266012481 100644
--- a/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol
+++ b/ROMFS/px4fmu_common/init.d/13001_caipirinha_vtol
@@ -28,7 +28,6 @@ then
 	param set MC_PITCHRATE_D 0.003
 	param set MC_PITCHRATE_FF 0.0
 	param set MC_YAW_P 3.8
-	param set MC_YAW_FF 0.5
 	param set MC_YAWRATE_P 0.22
 	param set MC_YAWRATE_I 0.02
 	param set MC_YAWRATE_D 0.0
diff --git a/ROMFS/px4fmu_common/init.d/13002_firefly6 b/ROMFS/px4fmu_common/init.d/13002_firefly6
index 504b9056a3..bcaa78048c 100644
--- a/ROMFS/px4fmu_common/init.d/13002_firefly6
+++ b/ROMFS/px4fmu_common/init.d/13002_firefly6
@@ -33,7 +33,6 @@ then
 	param set MC_PITCHRATE_D 0.004
 	param set MC_PITCHRATE_FF 0.0
 	param set MC_YAW_P 4.0
-	param set MC_YAW_FF 0.5
 	param set MC_YAWRATE_P 0.22
 	param set MC_YAWRATE_I 0.02
 	param set MC_YAWRATE_D 0.0
diff --git a/ROMFS/px4fmu_common/init.d/13005_vtol_AAERT_quad b/ROMFS/px4fmu_common/init.d/13005_vtol_AAERT_quad
index cca99f49dc..1fc37ebd04 100644
--- a/ROMFS/px4fmu_common/init.d/13005_vtol_AAERT_quad
+++ b/ROMFS/px4fmu_common/init.d/13005_vtol_AAERT_quad
@@ -39,7 +39,6 @@ then
 	param set MC_PITCHRATE_D 0.004
 	param set MC_PITCHRATE_FF 0.0
 	param set MC_YAW_P 2.8
-	param set MC_YAW_FF 0.5
 	param set MC_YAWRATE_P 0.22
 	param set MC_YAWRATE_I 0.02
 	param set MC_YAWRATE_D 0.0
diff --git a/ROMFS/px4fmu_common/init.d/13006_vtol_standard_delta b/ROMFS/px4fmu_common/init.d/13006_vtol_standard_delta
index 9d5c85a086..26d138b54c 100644
--- a/ROMFS/px4fmu_common/init.d/13006_vtol_standard_delta
+++ b/ROMFS/px4fmu_common/init.d/13006_vtol_standard_delta
@@ -35,7 +35,6 @@ then
 	param set MC_PITCHRATE_D 0.003
 	param set MC_PITCHRATE_FF 0.0
 	param set MC_YAW_P 3.5
-	param set MC_YAW_FF 0.5
 	param set MC_YAWRATE_P 0.2
 	param set MC_YAWRATE_I 0.1
 	param set MC_YAWRATE_D 0.0
diff --git a/ROMFS/px4fmu_common/init.d/13007_vtol_AAVVT_quad b/ROMFS/px4fmu_common/init.d/13007_vtol_AAVVT_quad
index 216dfd728d..5efcf70fbc 100644
--- a/ROMFS/px4fmu_common/init.d/13007_vtol_AAVVT_quad
+++ b/ROMFS/px4fmu_common/init.d/13007_vtol_AAVVT_quad
@@ -27,7 +27,6 @@ then
 	param set MC_PITCHRATE_D 0.003
 	param set MC_PITCHRATE_FF 0.0
 	param set MC_YAW_P 2.8
-	param set MC_YAW_FF 0.5
 	param set MC_YAWRATE_P 0.22
 	param set MC_YAWRATE_I 0.02
 	param set MC_YAWRATE_D 0.0
diff --git a/ROMFS/px4fmu_common/init.d/13008_QuadRanger b/ROMFS/px4fmu_common/init.d/13008_QuadRanger
index c3fe1716b3..23b2e50358 100644
--- a/ROMFS/px4fmu_common/init.d/13008_QuadRanger
+++ b/ROMFS/px4fmu_common/init.d/13008_QuadRanger
@@ -30,7 +30,6 @@ then
 	param set MC_PITCHRATE_D 0.004
 	param set MC_PITCHRATE_FF 0.0
 	param set MC_YAW_P 3.5
-	param set MC_YAW_FF 0.7
 	param set MC_YAWRATE_P 0.6
 	param set MC_YAWRATE_I 0.04
 	param set MC_YAWRATE_D 0.0
diff --git a/ROMFS/px4fmu_common/init.d/13012_convergence b/ROMFS/px4fmu_common/init.d/13012_convergence
index 416ea45074..9928af42e4 100644
--- a/ROMFS/px4fmu_common/init.d/13012_convergence
+++ b/ROMFS/px4fmu_common/init.d/13012_convergence
@@ -62,7 +62,6 @@ then
 	param set MC_ROLL_P   6.0
 	param set MC_YAWRATE_MAX  120
 	param set MC_YAWRATE_P    0.27
-	param set MC_YAW_FF   0.35
 	param set MC_YAW_P    2.5
 
 	param set MC_YAWRATE_P 0.3
diff --git a/ROMFS/px4fmu_common/init.d/13013_deltaquad b/ROMFS/px4fmu_common/init.d/13013_deltaquad
index 58c2eca715..01e49cefb8 100644
--- a/ROMFS/px4fmu_common/init.d/13013_deltaquad
+++ b/ROMFS/px4fmu_common/init.d/13013_deltaquad
@@ -93,7 +93,6 @@ then
 	param set MC_PITCHRATE_FF 0.0
 	param set MC_PITCHRATE_MAX 80
 	param set MC_YAW_P 3.5
-	param set MC_YAW_FF 0.5
 	param set MC_YAWRATE_P 0.2
 	param set MC_YAWRATE_I 0.1
 	param set MC_YAWRATE_D 0.0
diff --git a/ROMFS/px4fmu_common/init.d/15001_coax_heli b/ROMFS/px4fmu_common/init.d/15001_coax_heli
index 853bc4823a..1e2db92f22 100644
--- a/ROMFS/px4fmu_common/init.d/15001_coax_heli
+++ b/ROMFS/px4fmu_common/init.d/15001_coax_heli
@@ -37,7 +37,6 @@ then
 	param set MC_PITCHRATE_D 0.005
 	param set MC_PITCHRATE_FF 0
 	param set MC_YAW_P 2
-	param set MC_YAW_FF 0.5
 	param set MC_YAWRATE_P 0.1
 	param set MC_YAWRATE_I 0.1
 	param set MC_YAWRATE_D 0.0
diff --git a/ROMFS/px4fmu_common/init.d/16001_helicopter b/ROMFS/px4fmu_common/init.d/16001_helicopter
index a91a60fb5f..a4e4d768b3 100644
--- a/ROMFS/px4fmu_common/init.d/16001_helicopter
+++ b/ROMFS/px4fmu_common/init.d/16001_helicopter
@@ -39,7 +39,6 @@ then
 	param set MC_YAWRATE_P 0.1
 	param set MC_YAWRATE_I 0.0
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.0
 	param set MC_ROLLRATE_MAX 720.0
 	param set MC_PITCHRATE_MAX 720.0
 	param set MC_YAWRATE_MAX 400.0
diff --git a/ROMFS/px4fmu_common/init.d/4003_qavr5 b/ROMFS/px4fmu_common/init.d/4003_qavr5
index 4e5f641332..932480278f 100644
--- a/ROMFS/px4fmu_common/init.d/4003_qavr5
+++ b/ROMFS/px4fmu_common/init.d/4003_qavr5
@@ -26,7 +26,6 @@ then
 	param set MC_YAWRATE_P 0.15
 	param set MC_YAWRATE_I 0.1
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.5
 	param set MC_TPA_BREAK_P 0.7
 	param set MC_TPA_RATE_P 0.3
 	param set PWM_MIN 1075
diff --git a/ROMFS/px4fmu_common/init.d/4009_qav250 b/ROMFS/px4fmu_common/init.d/4009_qav250
index dc92f5eb5a..6b4127da75 100644
--- a/ROMFS/px4fmu_common/init.d/4009_qav250
+++ b/ROMFS/px4fmu_common/init.d/4009_qav250
@@ -24,7 +24,6 @@ then
 	param set MC_YAWRATE_P 0.3
 	param set MC_YAWRATE_I 0.2
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.5
 	param set PWM_MIN 1075
 	param set MPC_THR_MIN 0.06
 	param set MPC_MANTHR_MIN 0.06
diff --git a/ROMFS/px4fmu_common/init.d/4013_bebop b/ROMFS/px4fmu_common/init.d/4013_bebop
index 8b23184307..0459a45280 100644
--- a/ROMFS/px4fmu_common/init.d/4013_bebop
+++ b/ROMFS/px4fmu_common/init.d/4013_bebop
@@ -35,7 +35,6 @@ then
 	param set MC_YAWRATE_P 0.05
 	param set MC_YAWRATE_I 0.001
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.7
 fi
 
 set OUTPUT_MODE bebop
diff --git a/ROMFS/px4fmu_common/init.d/4050_generic_250 b/ROMFS/px4fmu_common/init.d/4050_generic_250
index 7c5af498a5..333ffbf37b 100644
--- a/ROMFS/px4fmu_common/init.d/4050_generic_250
+++ b/ROMFS/px4fmu_common/init.d/4050_generic_250
@@ -24,7 +24,6 @@ then
 	param set MC_YAWRATE_P 0.2
 	param set MC_YAWRATE_I 0.1
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.5
 
 	param set MC_ROLLRATE_MAX 1600.0
 	param set MC_PITCHRATE_MAX 1600.0
diff --git a/ROMFS/px4fmu_common/init.d/4051_s250aq b/ROMFS/px4fmu_common/init.d/4051_s250aq
index 473c11e647..facc965fbc 100644
--- a/ROMFS/px4fmu_common/init.d/4051_s250aq
+++ b/ROMFS/px4fmu_common/init.d/4051_s250aq
@@ -40,7 +40,6 @@ then
 	param set MC_YAWRATE_P 0.2
 	param set MC_YAWRATE_I 0.1
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.5
 	param set MC_ROLLRATE_MAX 720.0
 	param set MC_PITCHRATE_MAX 720.0
 	param set MC_YAWRATE_MAX 400.0
diff --git a/ROMFS/px4fmu_common/init.d/4070_aerofc b/ROMFS/px4fmu_common/init.d/4070_aerofc
index 0eb2d773ba..506bd361fa 100644
--- a/ROMFS/px4fmu_common/init.d/4070_aerofc
+++ b/ROMFS/px4fmu_common/init.d/4070_aerofc
@@ -41,7 +41,6 @@ then
 	param set MC_YAWRATE_P 0.119999997317790985
 	param set MC_YAWRATE_I 0.050000000745058060
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.5
 
 	param set MPC_LAND_SPEED 0.7000
 	param set MPC_MANTHR_MIN 0.0400
diff --git a/ROMFS/px4fmu_common/init.d/4080_zmr250 b/ROMFS/px4fmu_common/init.d/4080_zmr250
index 0c01e4f75b..e39a987796 100644
--- a/ROMFS/px4fmu_common/init.d/4080_zmr250
+++ b/ROMFS/px4fmu_common/init.d/4080_zmr250
@@ -31,7 +31,6 @@ then
 	param set MC_YAWRATE_P 0.15
 	param set MC_YAWRATE_I 0.2
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.5
 
 	param set MC_ACRO_R_MAX 1000.0
 	param set MC_ACRO_P_MAX 1000.0
diff --git a/ROMFS/px4fmu_common/init.d/4090_nanomind b/ROMFS/px4fmu_common/init.d/4090_nanomind
index 0d16f79c5b..b629038eac 100644
--- a/ROMFS/px4fmu_common/init.d/4090_nanomind
+++ b/ROMFS/px4fmu_common/init.d/4090_nanomind
@@ -31,7 +31,6 @@ then
 	param set MC_YAWRATE_P 0.2
 	param set MC_YAWRATE_I 0.1
 	param set MC_YAWRATE_D 0.0
-	param set MC_YAW_FF 0.5
 
 	param set BAT_N_CELLS 1
 
diff --git a/posix-configs/bebop/px4.config b/posix-configs/bebop/px4.config
index 5b35caf9e5..9e20c39ad2 100644
--- a/posix-configs/bebop/px4.config
+++ b/posix-configs/bebop/px4.config
@@ -15,7 +15,6 @@ param set MPC_XY_VEL_MAX 2
 
 param set MC_YAW_P 4.0
 param set MC_YAWRATE_P 0.08
-param set MC_YAW_FF 0.5
 
 param set MC_ROLLRATE_P 0.08
 param set MC_ROLLRATE_D 0.001
diff --git a/src/modules/mc_att_control/mc_att_control.hpp b/src/modules/mc_att_control/mc_att_control.hpp
index 5f2f032b1f..50a3b1b3ae 100644
--- a/src/modules/mc_att_control/mc_att_control.hpp
+++ b/src/modules/mc_att_control/mc_att_control.hpp
@@ -204,8 +204,6 @@ private:
 		(ParamFloat<px4::params::MC_YAWRATE_D>) _yaw_rate_d,
 		(ParamFloat<px4::params::MC_YAWRATE_FF>) _yaw_rate_ff,
 
-		(ParamFloat<px4::params::MC_YAW_FF>) _yaw_ff,					/**< yaw control feed-forward */
-
 		(ParamFloat<px4::params::MC_DTERM_CUTOFF>) _d_term_cutoff_freq,			/**< Cutoff frequency for the D-term filter */
 
 		(ParamFloat<px4::params::MC_TPA_BREAK_P>) _tpa_breakpoint_p,			/**< Throttle PID Attenuation breakpoint */
diff --git a/src/modules/mc_att_control/mc_att_control_main.cpp b/src/modules/mc_att_control/mc_att_control_main.cpp
index 5626f96e02..16479dbf83 100644
--- a/src/modules/mc_att_control/mc_att_control_main.cpp
+++ b/src/modules/mc_att_control/mc_att_control_main.cpp
@@ -430,16 +430,14 @@ MulticopterAttitudeControl::control_attitude(float dt)
 	_rates_sp = eq.emult(attitude_gain);
 
 	/* Feed forward the yaw setpoint rate.
-	 * The yaw_feedforward_rate is a commanded rotation around the world z-axis,
+	 * yaw_sp_move_rate is the feed forward commanded rotation around the world z-axis,
 	 * but we need to apply it in the body frame (because _rates_sp is expressed in the body frame).
 	 * Therefore we infer the world z-axis (expressed in the body frame) by taking the last column of R.transposed (== q.inversed)
-	 * and multiply it by the yaw setpoint rate (yaw_sp_move_rate) and gain (_yaw_ff).
+	 * and multiply it by the yaw setpoint rate (yaw_sp_move_rate).
 	 * This yields a vector representing the commanded rotatation around the world z-axis expressed in the body frame
 	 * such that it can be added to the rates setpoint.
 	 */
-	Vector3f yaw_feedforward_rate = q.inversed().dcm_z();
-	yaw_feedforward_rate *= _v_att_sp.yaw_sp_move_rate * _yaw_ff.get();
-	_rates_sp += yaw_feedforward_rate;
+	_rates_sp += q.inversed().dcm_z() * _v_att_sp.yaw_sp_move_rate;
 
 
 	/* limit rates */
diff --git a/src/modules/mc_att_control/mc_att_control_params.c b/src/modules/mc_att_control/mc_att_control_params.c
index a8182c7e98..5da8bae009 100644
--- a/src/modules/mc_att_control/mc_att_control_params.c
+++ b/src/modules/mc_att_control/mc_att_control_params.c
@@ -263,19 +263,6 @@ PARAM_DEFINE_FLOAT(MC_YAWRATE_D, 0.0f);
  */
 PARAM_DEFINE_FLOAT(MC_YAWRATE_FF, 0.0f);
 
-/**
- * Yaw feed forward
- *
- * Feed forward weight for manual yaw control. 0 will give slow responce and no overshot, 1 - fast responce and big overshot.
- *
- * @min 0.0
- * @max 1.0
- * @decimal 2
- * @increment 0.01
- * @group Multicopter Attitude Control
- */
-PARAM_DEFINE_FLOAT(MC_YAW_FF, 0.5f);
-
 /**
  * Max roll rate
  *
-- 
GitLab