Sticks: globalize MPC_HOLD_DZ to MAN_DEADZONE

This commit is contained in:
Matthias Grob
2025-09-04 14:56:34 +02:00
committed by Silvan Fuhrer
parent a9720cf1ef
commit 2bf9fce577
8 changed files with 30 additions and 27 deletions
@@ -58,3 +58,20 @@ PARAM_DEFINE_INT32(MAN_ARM_GESTURE, 1);
* @max 15
*/
PARAM_DEFINE_FLOAT(MAN_KILL_GEST_T, -1.f);
/**
* Deadzone for sticks (only specific use cases)
*
* Range around stick center ignored to prevent
* vehicle drift from stick hardware inaccuracy.
*
* Does not apply to any precise constant input like
* throttle and attitude or rate piloting.
*
* @min 0
* @max 1
* @decimal 2
* @increment 0.01
* @group Manual Control
*/
PARAM_DEFINE_FLOAT(MAN_DEADZONE, 0.1f);
@@ -161,7 +161,7 @@ private:
(ParamFloat<px4::params::MC_YAWRATE_MAX>) _param_mc_yawrate_max,
/* Stabilized mode params */
(ParamFloat<px4::params::MPC_HOLD_DZ>) _param_mpc_hold_dz,
(ParamFloat<px4::params::MAN_DEADZONE>) _param_man_deadzone,
(ParamFloat<px4::params::MPC_MAN_TILT_MAX>) _param_mpc_man_tilt_max,
(ParamFloat<px4::params::MPC_MANTHR_MIN>) _param_mpc_manthr_min,
(ParamFloat<px4::params::MPC_THR_MAX>) _param_mpc_thr_max,
@@ -147,7 +147,7 @@ MulticopterAttitudeControl::generate_attitude_setpoint(const Quatf &q, float dt)
const float yaw = Eulerf(q).psi();
const float yaw_stick_input = math::expo_deadzone(_manual_control_setpoint.yaw, _param_mpc_yaw_expo.get(),
_param_mpc_hold_dz.get());
_param_man_deadzone.get());
_stick_yaw.generateYawSetpoint(attitude_setpoint.yaw_sp_move_rate, _yaw_setpoint_stabilized, yaw_stick_input, yaw, dt,
_unaided_heading);
@@ -130,19 +130,6 @@ PARAM_DEFINE_FLOAT(MPC_ACC_HOR_MAX, 5.f);
*/
PARAM_DEFINE_FLOAT(MPC_JERK_MAX, 8.f);
/**
* Deadzone for sticks in manual piloted modes
*
* Does not apply to manual throttle and direct attitude piloting by stick.
*
* @min 0
* @max 1
* @decimal 2
* @increment 0.01
* @group Multicopter Position Control
*/
PARAM_DEFINE_FLOAT(MPC_HOLD_DZ, 0.1f);
/**
* Manual position control stick exponential curve sensitivity
*