mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-26 01:17:51 +08:00
mc_pos_control: migrate MPC_*_VEL_* parameter to acceleration scaling
Before #14212 the velocity control gains used in the multicopter position controller were defined as a scale between velocity error in one axis (or it's integral and derivative respectively) and the unit thrust vector. The problem with this is that the normalization of the unit thrust vector changes per vehicle or even vehicle configuration as 0 and 100% thrust get a different physical response. That's why the gains are now defined as scale between velocity error (integral/derivative) and the output acceleration in m/s².
This commit is contained in:
@@ -25,9 +25,9 @@ then
|
||||
param set MPC_THR_MIN 0.1
|
||||
param set MPC_TKO_SPEED 1
|
||||
param set MPC_XY_P 0.8
|
||||
param set MPC_XY_VEL_D 0.005
|
||||
param set MPC_XY_VEL_I 0.2
|
||||
param set MPC_XY_VEL_P 0.15
|
||||
param set MPC_XY_VEL_P_ACC 3
|
||||
param set MPC_XY_VEL_I_ACC 4
|
||||
param set MPC_XY_VEL_D_ACC 0.1
|
||||
param set MPC_Z_VEL_MAX_DN 1.5
|
||||
|
||||
param set NAV_ACC_RAD 5
|
||||
|
||||
@@ -25,11 +25,11 @@ then
|
||||
param set MPC_THR_MIN 0.1
|
||||
param set MPC_TKO_SPEED 1
|
||||
param set MPC_XY_P 0.15
|
||||
param set MPC_XY_VEL_D 0.005
|
||||
param set MPC_XY_VEL_I 0.2
|
||||
param set MPC_XY_VEL_P 0.05
|
||||
param set MPC_XY_VEL_D_ACC 0.1
|
||||
param set MPC_XY_VEL_I_ACC 4
|
||||
param set MPC_XY_VEL_P_ACC 1
|
||||
param set MPC_Z_VEL_MAX_DN 1.5
|
||||
param set MPC_Z_VEL_P 0.8
|
||||
param set MPC_Z_VEL_P_ACC 16
|
||||
|
||||
param set NAV_ACC_RAD 5
|
||||
param set NAV_LOITER_RAD 80
|
||||
|
||||
@@ -25,11 +25,11 @@ then
|
||||
param set MPC_THR_MIN 0.1
|
||||
param set MPC_TKO_SPEED 1
|
||||
param set MPC_XY_P 0.15
|
||||
param set MPC_XY_VEL_D 0.005
|
||||
param set MPC_XY_VEL_I 0.2
|
||||
param set MPC_XY_VEL_P 0.05
|
||||
param set MPC_XY_VEL_D_ACC 0.1
|
||||
param set MPC_XY_VEL_I_ACC 4
|
||||
param set MPC_XY_VEL_P_ACC 1
|
||||
param set MPC_Z_VEL_MAX_DN 1.5
|
||||
param set MPC_Z_VEL_P 0.8
|
||||
param set MPC_Z_VEL_P_ACC 16
|
||||
|
||||
param set NAV_ACC_RAD 5
|
||||
param set NAV_LOITER_RAD 80
|
||||
|
||||
@@ -15,8 +15,8 @@ then
|
||||
param set MC_ROLLRATE_P 0.15
|
||||
param set MC_ROLLRATE_I 0.1
|
||||
param set MC_ROLL_P 6.0
|
||||
param set MPC_XY_VEL_I 0.2
|
||||
param set MPC_XY_VEL_P 0.15
|
||||
param set MPC_XY_VEL_I_ACC 4
|
||||
param set MPC_XY_VEL_P_ACC 3
|
||||
|
||||
param set RTL_DESCEND_ALT 10
|
||||
param set RTL_LAND_DELAY 0
|
||||
|
||||
@@ -161,12 +161,12 @@ then
|
||||
|
||||
param set MPC_ALT_MODE 0
|
||||
param set MPC_HOLD_MAX_Z 2
|
||||
param set MPC_Z_VEL_I 0.15
|
||||
param set MPC_Z_VEL_P 0.6
|
||||
param set MPC_Z_VEL_P_ACC 12.0
|
||||
param set MPC_Z_VEL_I_ACC 3.0
|
||||
param set MPC_XY_P 0.8
|
||||
param set MPC_XY_VEL_P 0.2
|
||||
param set MPC_XY_VEL_I 0.02
|
||||
param set MPC_XY_VEL_D 0.016
|
||||
param set MPC_XY_VEL_P_ACC 4.0
|
||||
param set MPC_XY_VEL_I_ACC 0.4
|
||||
param set MPC_XY_VEL_D_ACC 0.32
|
||||
|
||||
param set MPC_SPOOLUP_TIME 0.5
|
||||
param set MPC_TKO_RAMP_T 1
|
||||
|
||||
@@ -39,12 +39,12 @@ then
|
||||
param set MPC_THR_MIN 0.1
|
||||
param set MPC_TKO_SPEED 1
|
||||
param set MPC_XY_P 0.8
|
||||
param set MPC_XY_VEL_D 0.005
|
||||
param set MPC_XY_VEL_I 0.2
|
||||
param set MPC_XY_VEL_P 0.15
|
||||
param set MPC_Z_VEL_I 0.15
|
||||
param set MPC_XY_VEL_D_ACC 0.1
|
||||
param set MPC_XY_VEL_I_ACC 4
|
||||
param set MPC_XY_VEL_P_ACC 3
|
||||
param set MPC_Z_VEL_P_ACC 12
|
||||
param set MPC_Z_VEL_I_ACC 3
|
||||
param set MPC_Z_VEL_MAX_DN 1.5
|
||||
param set MPC_Z_VEL_P 0.6
|
||||
|
||||
param set NAV_ACC_RAD 5
|
||||
param set NAV_DLL_ACT 2
|
||||
|
||||
@@ -41,7 +41,7 @@ then
|
||||
param set MC_YAWRATE_MAX 50
|
||||
|
||||
param set MPC_XY_P 0.8
|
||||
param set MPC_XY_VEL_P 0.1
|
||||
param set MPC_XY_VEL_P_ACC 2
|
||||
param set MPC_ACC_HOR_MAX 2
|
||||
param set MPC_YAWRAUTO_MAX 20
|
||||
|
||||
|
||||
@@ -55,9 +55,9 @@ then
|
||||
param set MPC_TKO_SPEED 1
|
||||
param set MPC_XY_P 0.3
|
||||
param set MPC_XY_VEL_MAX 3
|
||||
param set MPC_XY_VEL_P 0.05
|
||||
param set MPC_XY_VEL_P_ACC 1
|
||||
param set MPC_Z_P 0.5
|
||||
param set MPC_Z_VEL_P 0.1
|
||||
param set MPC_Z_VEL_P_ACC 2
|
||||
param set MPC_YAWRAUTO_MAX 40
|
||||
|
||||
param set NAV_ACC_RAD 3
|
||||
|
||||
@@ -93,7 +93,7 @@ then
|
||||
param set MIS_TAKEOFF_ALT 15
|
||||
|
||||
param set MPC_XY_P 0.8
|
||||
param set MPC_XY_VEL_P 0.1
|
||||
param set MPC_XY_VEL_P_ACC 2
|
||||
param set MPC_XY_VEL_MAX 5
|
||||
param set MPC_ACC_HOR_MAX 2
|
||||
param set MPC_LAND_SPEED 1.2
|
||||
|
||||
@@ -92,11 +92,11 @@ then
|
||||
param set MPC_VEL_MANUAL 5
|
||||
param set MPC_XY_CRUISE 5
|
||||
param set MPC_XY_VEL_MAX 5
|
||||
param set MPC_XY_VEL_P 0.079
|
||||
param set MPC_XY_VEL_P_ACC 1.58
|
||||
param set MPC_XY_TRAJ_P 0.3
|
||||
param set MPC_Z_TRAJ_P 0.3
|
||||
param set MPC_Z_VEL_I 0.15
|
||||
param set MPC_Z_VEL_P 0.25
|
||||
param set MPC_Z_VEL_P_ACC 5
|
||||
param set MPC_Z_VEL_I_ACC 3
|
||||
param set MPC_LAND_ALT1 3
|
||||
param set MPC_LAND_ALT2 1
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ then
|
||||
param set MPC_THR_CURVE 1
|
||||
param set MPC_THR_HOVER 0.25
|
||||
param set MPC_THR_MIN 0.05
|
||||
param set MPC_Z_VEL_I 0.085
|
||||
param set MPC_Z_VEL_I_ACC 1.7
|
||||
|
||||
param set PWM_MAX 1950
|
||||
param set PWM_MIN 1050
|
||||
|
||||
@@ -56,12 +56,12 @@ then
|
||||
param set MPC_THR_MIN 0.1000
|
||||
param set MPC_XY_CRUISE 8.0000
|
||||
param set MPC_XY_P 1.5000
|
||||
param set MPC_XY_VEL_P 0.1500
|
||||
param set MPC_XY_VEL_P_ACC 3
|
||||
param set MPC_Z_P 1.5000
|
||||
param set MPC_Z_VEL_I 0.1500
|
||||
param set MPC_Z_VEL_P_ACC 16
|
||||
param set MPC_Z_VEL_I_ACC 3
|
||||
param set MPC_Z_VEL_MAX_DN 4.0000
|
||||
param set MPC_Z_VEL_MAX_UP 5.0000
|
||||
param set MPC_Z_VEL_P 0.8000
|
||||
|
||||
# TELEM2 config
|
||||
param set MAV_1_CONFIG 102
|
||||
|
||||
@@ -81,18 +81,17 @@ then
|
||||
|
||||
# Position control
|
||||
param set MPC_Z_P 1.00000
|
||||
param set MPC_Z_VEL_P 0.20000
|
||||
param set MPC_Z_VEL_I 0.02000
|
||||
param set MPC_Z_VEL_D 0.00000
|
||||
param set MPC_Z_VEL_P_ACC 4
|
||||
param set MPC_Z_VEL_I_ACC 0.4
|
||||
|
||||
param set MPC_THR_MIN 0.06000
|
||||
param set MPC_THR_HOVER 0.3000
|
||||
|
||||
param set MIS_TAKEOFF_ALT 1.1000
|
||||
param set MPC_XY_P 1.7000
|
||||
param set MPC_XY_VEL_P 0.1300
|
||||
param set MPC_XY_VEL_I 0.0600
|
||||
param set MPC_XY_VEL_D 0.0100
|
||||
param set MPC_XY_VEL_P_ACC 2.6
|
||||
param set MPC_XY_VEL_I_ACC 1.2
|
||||
param set MPC_XY_VEL_D_ACC 0.2
|
||||
param set MPC_TKO_RAMP_T 1.0000
|
||||
param set MPC_TKO_SPEED 1.1000
|
||||
param set MPC_VEL_MANUAL 3.0000
|
||||
|
||||
@@ -90,18 +90,17 @@ then
|
||||
|
||||
# Position control
|
||||
param set MPC_Z_P 1.10000
|
||||
param set MPC_Z_VEL_P 0.30000
|
||||
param set MPC_Z_VEL_I 0.05000
|
||||
param set MPC_Z_VEL_D 0.00000
|
||||
param set MPC_Z_VEL_P_ACC 6
|
||||
param set MPC_Z_VEL_I_ACC 1
|
||||
|
||||
param set MPC_THR_MIN 0.06000
|
||||
param set MPC_THR_HOVER 0.4400
|
||||
|
||||
param set MIS_TAKEOFF_ALT 1.1000
|
||||
param set MPC_XY_P 1.7000
|
||||
param set MPC_XY_VEL_P 0.1300
|
||||
param set MPC_XY_VEL_I 0.0600
|
||||
param set MPC_XY_VEL_D 0.0100
|
||||
param set MPC_XY_VEL_P_ACC 2.6
|
||||
param set MPC_XY_VEL_I_ACC 1.2
|
||||
param set MPC_XY_VEL_D_ACC 0.2
|
||||
param set MPC_TKO_RAMP_T 1.0000
|
||||
param set MPC_TKO_SPEED 1.1000
|
||||
param set MPC_VEL_MANUAL 3.0000
|
||||
|
||||
@@ -153,15 +153,15 @@ then
|
||||
param set MPC_ACC_HOR_MAX 15
|
||||
|
||||
param set MPC_XY_P 1.15
|
||||
param set MPC_XY_VEL_P 0.14
|
||||
param set MPC_XY_VEL_I 0.014
|
||||
param set MPC_XY_VEL_D 0.014
|
||||
param set MPC_XY_VEL_P_ACC 2.8
|
||||
param set MPC_XY_VEL_I_ACC 0.28
|
||||
param set MPC_XY_VEL_D_ACC 0.28
|
||||
param set MPC_XY_VEL_MAX 26.5
|
||||
|
||||
param set MPC_Z_P 0.85
|
||||
param set MPC_Z_VEL_P 0.25
|
||||
param set MPC_Z_VEL_I 0.085
|
||||
param set MPC_Z_VEL_D 0.02
|
||||
param set MPC_Z_VEL_P_ACC 5
|
||||
param set MPC_Z_VEL_I_ACC 1.7
|
||||
param set MPC_Z_VEL_D_ACC 0.4
|
||||
# Documentation says limit is 8.0, but does not seem to be enforced in code.
|
||||
param set MPC_Z_VEL_MAX_UP 20
|
||||
param set MPC_Z_VEL_MAX_DN 2.5
|
||||
|
||||
@@ -27,9 +27,9 @@ then
|
||||
param set MC_ROLLRATE_I 0.037
|
||||
param set MC_ROLLRATE_D 0.0044
|
||||
param set MC_ROLL_P 8.5
|
||||
param set MPC_XY_VEL_P 0.11
|
||||
param set MPC_XY_VEL_D 0.013
|
||||
param set MPC_XY_VEL_P_ACC 2.2
|
||||
param set MPC_XY_VEL_D_ACC 0.26
|
||||
param set MPC_XY_P 1.1
|
||||
param set MPC_Z_VEL_P 0.24
|
||||
param set MPC_Z_VEL_P_ACC 4.8
|
||||
param set MPC_Z_P 1.2
|
||||
fi
|
||||
|
||||
@@ -53,8 +53,8 @@ then
|
||||
param set MPC_THR_HOVER 0.7
|
||||
param set MPC_THR_MAX 1
|
||||
param set MPC_Z_P 1.5
|
||||
param set MPC_Z_VEL_I 0.3
|
||||
param set MPC_Z_VEL_P 0.4
|
||||
param set MPC_Z_VEL_P_ACC 8
|
||||
param set MPC_Z_VEL_I_ACC 6
|
||||
param set MPC_HOLD_MAX_XY 0.1
|
||||
param set MPC_MAX_FLOW_HGT 3
|
||||
|
||||
|
||||
@@ -63,14 +63,13 @@ then
|
||||
param set MPC_THR_HOVER 0.3000
|
||||
# altitude control gains
|
||||
param set MPC_Z_P 1.00000
|
||||
param set MPC_Z_VEL_P 0.20000
|
||||
param set MPC_Z_VEL_I 0.02000
|
||||
param set MPC_Z_VEL_D 0.00000
|
||||
param set MPC_Z_VEL_P_ACC 4
|
||||
param set MPC_Z_VEL_I_ACC 0.4
|
||||
# position control gains
|
||||
param set MPC_XY_P 0.9500
|
||||
param set MPC_XY_VEL_P 0.0900
|
||||
param set MPC_XY_VEL_I 0.0200
|
||||
param set MPC_XY_VEL_D 0.0100
|
||||
param set MPC_XY_VEL_P_ACC 1.8
|
||||
param set MPC_XY_VEL_I_ACC 0.4
|
||||
param set MPC_XY_VEL_D_ACC 0.2
|
||||
# etc gains
|
||||
param set MPC_TKO_RAMP_T 0.4000
|
||||
param set MPC_TKO_SPEED 1.5000
|
||||
|
||||
Reference in New Issue
Block a user