mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-15 03:23:34 +08:00
Sticks: globalize MPC_HOLD_DZ to MAN_DEADZONE
This commit is contained in:
committed by
Silvan Fuhrer
parent
a9720cf1ef
commit
2bf9fce577
@@ -57,10 +57,10 @@ bool Sticks::checkAndUpdateStickInputs()
|
||||
_positions(3) = manual_control_setpoint.yaw;
|
||||
|
||||
// Exponential scale
|
||||
_positions_expo(0) = math::expo_deadzone(_positions(0), _param_mpc_xy_man_expo.get(), _param_mpc_hold_dz.get());
|
||||
_positions_expo(1) = math::expo_deadzone(_positions(1), _param_mpc_xy_man_expo.get(), _param_mpc_hold_dz.get());
|
||||
_positions_expo(2) = math::expo_deadzone(_positions(2), _param_mpc_z_man_expo.get(), _param_mpc_hold_dz.get());
|
||||
_positions_expo(3) = math::expo_deadzone(_positions(3), _param_mpc_yaw_expo.get(), _param_mpc_hold_dz.get());
|
||||
_positions_expo(0) = math::expo_deadzone(_positions(0), _param_mpc_xy_man_expo.get(), _param_man_deadzone.get());
|
||||
_positions_expo(1) = math::expo_deadzone(_positions(1), _param_mpc_xy_man_expo.get(), _param_man_deadzone.get());
|
||||
_positions_expo(2) = math::expo_deadzone(_positions(2), _param_mpc_z_man_expo.get(), _param_man_deadzone.get());
|
||||
_positions_expo(3) = math::expo_deadzone(_positions(3), _param_mpc_yaw_expo.get(), _param_man_deadzone.get());
|
||||
|
||||
_aux_positions(0) = manual_control_setpoint.aux1;
|
||||
_aux_positions(1) = manual_control_setpoint.aux2;
|
||||
|
||||
@@ -101,7 +101,7 @@ private:
|
||||
uORB::Subscription _failsafe_flags_sub{ORB_ID(failsafe_flags)};
|
||||
|
||||
DEFINE_PARAMETERS(
|
||||
(ParamFloat<px4::params::MPC_HOLD_DZ>) _param_mpc_hold_dz,
|
||||
(ParamFloat<px4::params::MAN_DEADZONE>) _param_man_deadzone,
|
||||
(ParamFloat<px4::params::MPC_XY_MAN_EXPO>) _param_mpc_xy_man_expo,
|
||||
(ParamFloat<px4::params::MPC_Z_MAN_EXPO>) _param_mpc_z_man_expo,
|
||||
(ParamFloat<px4::params::MPC_YAW_EXPO>) _param_mpc_yaw_expo
|
||||
|
||||
@@ -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
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user