From b98c7e63c74218dceb7c95192c62c9a0bb4f45c3 Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Tue, 4 May 2021 10:53:30 +0200 Subject: [PATCH] StickAccelerationXY: make brake boost factor configurable --- .../tasks/Utility/StickAccelerationXY.cpp | 2 +- .../tasks/Utility/StickAccelerationXY.hpp | 2 ++ .../mc_pos_control/mc_pos_control_params.c | 15 ++++++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp b/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp index d9c056a9ae..91b35814f0 100644 --- a/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp +++ b/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp @@ -129,7 +129,7 @@ Vector2f StickAccelerationXY::calculateDrag(Vector2f drag_coefficient, const flo _brake_boost_filter.setParameters(dt, .8f); if (stick_xy.norm_squared() < FLT_EPSILON) { - _brake_boost_filter.update(math::max(2.f, sqrtf(_param_mpc_vel_manual.get()))); + _brake_boost_filter.update(_param_mpc_brake_factor.get()); } else { _brake_boost_filter.update(1.f); diff --git a/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp b/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp index 06ae583ae4..f258af4200 100644 --- a/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp +++ b/src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.hpp @@ -81,6 +81,8 @@ private: DEFINE_PARAMETERS( (ParamFloat) _param_mpc_vel_manual, (ParamFloat) _param_mpc_acc_hor, + (ParamFloat) _param_mpc_acc_hor_max, + (ParamFloat) _param_mpc_brake_factor, (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 aaff96e00b..f718e7ff5d 100644 --- a/src/modules/mc_pos_control/mc_pos_control_params.c +++ b/src/modules/mc_pos_control/mc_pos_control_params.c @@ -508,9 +508,22 @@ PARAM_DEFINE_FLOAT(MPC_ACC_HOR_MAX, 5.0f); * @decimal 2 * @group Multicopter Position Control */ - PARAM_DEFINE_FLOAT(MPC_ACC_HOR, 3.0f); +/** + * Factor for faster braking than accelerating in position mode + * + * Note: In manual, this parameter is only used in MPC_POS_MODE 1. + * + * @unit m/s^2 + * @min 2.0 + * @max 15.0 + * @increment 1 + * @decimal 2 + * @group Multicopter Position Control + */ +PARAM_DEFINE_FLOAT(MPC_BRAKE_FACTOR, 2.0f); + /** * Maximum vertical acceleration in velocity controlled modes upward *