diff --git a/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp b/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp index 91b35814f0..a8d674d325 100644 --- a/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp +++ b/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp @@ -126,7 +126,7 @@ void StickAccelerationXY::applyJerkLimit(const float dt) Vector2f StickAccelerationXY::calculateDrag(Vector2f drag_coefficient, const float dt, const Vector2f &stick_xy, const Vector2f &vel_sp) { - _brake_boost_filter.setParameters(dt, .8f); + _brake_boost_filter.setParameters(dt, _param_mpc_brake_filter.get()); if (stick_xy.norm_squared() < FLT_EPSILON) { _brake_boost_filter.update(_param_mpc_brake_factor.get()); diff --git a/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp b/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp index f258af4200..d2bf484f27 100644 --- a/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp +++ b/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp @@ -83,6 +83,7 @@ private: (ParamFloat) _param_mpc_acc_hor, (ParamFloat) _param_mpc_acc_hor_max, (ParamFloat) _param_mpc_brake_factor, + (ParamFloat) _param_mpc_brake_filter, (ParamFloat) _param_mpc_jerk_max, (ParamFloat) _param_mpc_tiltmax_air ) diff --git a/src/modules/mc_pos_control/mc_pos_control_params.c b/src/modules/mc_pos_control/mc_pos_control_params.c index f718e7ff5d..789d9f9b6a 100644 --- a/src/modules/mc_pos_control/mc_pos_control_params.c +++ b/src/modules/mc_pos_control/mc_pos_control_params.c @@ -524,6 +524,18 @@ PARAM_DEFINE_FLOAT(MPC_ACC_HOR, 3.0f); */ PARAM_DEFINE_FLOAT(MPC_BRAKE_FACTOR, 2.0f); +/** + * Brake boost filter time constant + * + * @unit m/s^2 + * @min 2.0 + * @max 15.0 + * @increment 1 + * @decimal 2 + * @group Multicopter Position Control + */ +PARAM_DEFINE_FLOAT(MPC_BRAKE_FILTER, 0.8f); + /** * Maximum vertical acceleration in velocity controlled modes upward *