mc_pos_control: smooth position control from stick input

This commit is contained in:
Dennis Mannhart
2017-09-13 12:53:06 +02:00
committed by Matthias Grob
parent fb5cb87e9b
commit 82f25453a7
2 changed files with 515 additions and 103 deletions
File diff suppressed because it is too large Load Diff
@@ -414,7 +414,7 @@ PARAM_DEFINE_FLOAT(MPC_VELD_LP, 5.0f);
PARAM_DEFINE_FLOAT(MPC_ACC_HOR_MAX, 10.0f);
/**
* Maximum horizontal manual acceleration
* Acceleration for auto and for manual
*
* @unit m/s/s
* @min 2.0
@@ -423,7 +423,20 @@ PARAM_DEFINE_FLOAT(MPC_ACC_HOR_MAX, 10.0f);
* @decimal 2
* @group Multicopter Position Control
*/
PARAM_DEFINE_FLOAT(MPC_ACC_HOR_MAN, 5.0f);
PARAM_DEFINE_FLOAT(MPC_ACC_HOR, 5.0f);
/**
* Slow horizontal manual deceleration for manual mode
*
* @unit m/s/s
* @min 0.5
* @max 10.0
* @increment 1
* @decimal 2
* @group Multicopter Position Control
*/
PARAM_DEFINE_FLOAT(MPC_DEC_HOR_SLOW, 5.0f);
/**
* Maximum vertical acceleration in velocity controlled modes upward
@@ -447,7 +460,36 @@ PARAM_DEFINE_FLOAT(MPC_ACC_UP_MAX, 10.0f);
* @decimal 2
* @group Multicopter Position Control
*/
PARAM_DEFINE_FLOAT(MPC_ACC_DOWN_MAX, 5.0f);
PARAM_DEFINE_FLOAT(MPC_ACC_DOWN_MAX, 10.0f);
/**
* Maximum jerk in manual controlled mode for BRAKING to zero.
* If this value is below MPC_JERK_MIN, the acceleration limit in xy and z
* is MPC_ACC_HOR_MAX and MPC_ACC_UP_MAX respectively instantaneously when the
* user demands brake (=zero stick input).
* Otherwise the acceleration limit increases from current acceleration limit
* towards MPC_ACC_HOR_MAX/MPC_ACC_UP_MAX with jerk limit
*
* @unit m/s/s/s
* @min 0.0
* @max 15.0
* @increment 1
* @decimal 2
* @group Multicopter Position Control
*/
PARAM_DEFINE_FLOAT(MPC_JERK_MAX, 0.0f);
/**
* Minimum jerk in manual controlled mode for BRAKING to zero
*
* @unit m/s/s/s
* @min 0.5
* @max 10.0
* @increment 1
* @decimal 2
* @group Multicopter Position Control
*/
PARAM_DEFINE_FLOAT(MPC_JERK_MIN, 1.0f);
/**
* Altitude control mode, note mode 1 only tested with LPE