mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
multiplatform port of #1741: move params from att control to pos control
This commit is contained in:
parent
f1c6b24f7a
commit
a56c16dfab
@ -89,9 +89,6 @@ MulticopterAttitudeControl::MulticopterAttitudeControl() :
|
||||
.yaw_rate_d = px4::ParameterFloat("MC_YAWRATE_D", PARAM_MC_YAWRATE_D_DEFAULT),
|
||||
.yaw_ff = px4::ParameterFloat("MC_YAW_FF", PARAM_MC_YAW_FF_DEFAULT),
|
||||
.yaw_rate_max = px4::ParameterFloat("MC_YAWRATE_MAX", PARAM_MC_YAWRATE_MAX_DEFAULT),
|
||||
.man_roll_max = px4::ParameterFloat("MC_MAN_R_MAX", PARAM_MC_MAN_R_MAX_DEFAULT),
|
||||
.man_pitch_max = px4::ParameterFloat("MC_MAN_P_MAX", PARAM_MC_MAN_P_MAX_DEFAULT),
|
||||
.man_yaw_max = px4::ParameterFloat("MC_MAN_Y_MAX", PARAM_MC_MAN_Y_MAX_DEFAULT),
|
||||
.acro_roll_max = px4::ParameterFloat("MC_ACRO_R_MAX", PARAM_MC_ACRO_R_MAX_DEFAULT),
|
||||
.acro_pitch_max = px4::ParameterFloat("MC_ACRO_P_MAX", PARAM_MC_ACRO_P_MAX_DEFAULT),
|
||||
.acro_yaw_max = px4::ParameterFloat("MC_ACRO_Y_MAX", PARAM_MC_ACRO_Y_MAX_DEFAULT)
|
||||
@ -146,11 +143,6 @@ MulticopterAttitudeControl::parameters_update()
|
||||
_params.yaw_ff = _params_handles.yaw_ff.update();
|
||||
_params.yaw_rate_max = math::radians(_params_handles.yaw_rate_max.update());
|
||||
|
||||
/* manual control scale */
|
||||
_params.man_roll_max = math::radians(_params_handles.man_roll_max.update());
|
||||
_params.man_pitch_max = math::radians(_params_handles.man_pitch_max.update());
|
||||
_params.man_yaw_max = math::radians(_params_handles.man_yaw_max.update());
|
||||
|
||||
/* acro control scale */
|
||||
_params.acro_rate_max(0) = math::radians(_params_handles.acro_roll_max.update());
|
||||
_params.acro_rate_max(1) = math::radians(_params_handles.acro_pitch_max.update());
|
||||
|
||||
@ -110,9 +110,6 @@ private:
|
||||
px4::ParameterFloat yaw_ff;
|
||||
px4::ParameterFloat yaw_rate_max;
|
||||
|
||||
px4::ParameterFloat man_roll_max;
|
||||
px4::ParameterFloat man_pitch_max;
|
||||
px4::ParameterFloat man_yaw_max;
|
||||
px4::ParameterFloat acro_roll_max;
|
||||
px4::ParameterFloat acro_pitch_max;
|
||||
px4::ParameterFloat acro_yaw_max;
|
||||
|
||||
@ -66,9 +66,6 @@ MulticopterAttitudeControlBase::MulticopterAttitudeControlBase() :
|
||||
_params.rate_d.zero();
|
||||
_params.yaw_ff = 0.0f;
|
||||
_params.yaw_rate_max = 0.0f;
|
||||
_params.man_roll_max = 0.0f;
|
||||
_params.man_pitch_max = 0.0f;
|
||||
_params.man_yaw_max = 0.0f;
|
||||
_params.acro_rate_max.zero();
|
||||
|
||||
_rates_prev.zero();
|
||||
|
||||
@ -119,9 +119,6 @@ protected:
|
||||
float yaw_ff; /**< yaw control feed-forward */
|
||||
float yaw_rate_max; /**< max yaw rate */
|
||||
|
||||
float man_roll_max;
|
||||
float man_pitch_max;
|
||||
float man_yaw_max;
|
||||
math::Vector<3> acro_rate_max; /**< max attitude rates in acro mode */
|
||||
|
||||
int32_t autostart_id;
|
||||
|
||||
@ -189,35 +189,6 @@ PX4_PARAM_DEFINE_FLOAT(MC_YAW_FF);
|
||||
*/
|
||||
PX4_PARAM_DEFINE_FLOAT(MC_YAWRATE_MAX);
|
||||
|
||||
/**
|
||||
* Max manual roll
|
||||
*
|
||||
* @unit deg
|
||||
* @min 0.0
|
||||
* @max 90.0
|
||||
* @group Multicopter Attitude Control
|
||||
*/
|
||||
PX4_PARAM_DEFINE_FLOAT(MC_MAN_R_MAX);
|
||||
|
||||
/**
|
||||
* Max manual pitch
|
||||
*
|
||||
* @unit deg
|
||||
* @min 0.0
|
||||
* @max 90.0
|
||||
* @group Multicopter Attitude Control
|
||||
*/
|
||||
PX4_PARAM_DEFINE_FLOAT(MC_MAN_P_MAX);
|
||||
|
||||
/**
|
||||
* Max manual yaw rate
|
||||
*
|
||||
* @unit deg/s
|
||||
* @min 0.0
|
||||
* @group Multicopter Attitude Control
|
||||
*/
|
||||
PX4_PARAM_DEFINE_FLOAT(MC_MAN_Y_MAX);
|
||||
|
||||
/**
|
||||
* Max acro roll rate
|
||||
*
|
||||
|
||||
@ -57,9 +57,6 @@
|
||||
#define PARAM_MC_YAWRATE_D_DEFAULT 0.0f
|
||||
#define PARAM_MC_YAW_FF_DEFAULT 0.5f
|
||||
#define PARAM_MC_YAWRATE_MAX_DEFAULT 120.0f
|
||||
#define PARAM_MC_MAN_R_MAX_DEFAULT 35.0f
|
||||
#define PARAM_MC_MAN_P_MAX_DEFAULT 35.0f
|
||||
#define PARAM_MC_MAN_Y_MAX_DEFAULT 120.0f
|
||||
#define PARAM_MC_ACRO_R_MAX_DEFAULT 35.0f
|
||||
#define PARAM_MC_ACRO_P_MAX_DEFAULT 35.0f
|
||||
#define PARAM_MC_ACRO_Y_MAX_DEFAULT 120.0f
|
||||
|
||||
@ -82,7 +82,10 @@ MulticopterPositionControl::MulticopterPositionControl() :
|
||||
.xy_ff = px4::ParameterFloat("MPC_XY_FF", PARAM_MPC_XY_FF_DEFAULT),
|
||||
.tilt_max_air = px4::ParameterFloat("MPC_TILTMAX_AIR", PARAM_MPC_TILTMAX_AIR_DEFAULT),
|
||||
.land_speed = px4::ParameterFloat("MPC_LAND_SPEED", PARAM_MPC_LAND_SPEED_DEFAULT),
|
||||
.tilt_max_land = px4::ParameterFloat("MPC_TILTMAX_LND", PARAM_MPC_TILTMAX_LND_DEFAULT)
|
||||
.tilt_max_land = px4::ParameterFloat("MPC_TILTMAX_LND", PARAM_MPC_TILTMAX_LND_DEFAULT),
|
||||
.man_roll_max = px4::ParameterFloat("MC_MAN_R_MAX", PARAM_MPC_MAN_R_MAX_DEFAULT),
|
||||
.man_pitch_max = px4::ParameterFloat("MC_MAN_P_MAX", PARAM_MPC_MAN_P_MAX_DEFAULT),
|
||||
.man_yaw_max = px4::ParameterFloat("MC_MAN_Y_MAX", PARAM_MPC_MAN_Y_MAX_DEFAULT)
|
||||
}),
|
||||
_ref_alt(0.0f),
|
||||
_ref_timestamp(0),
|
||||
@ -146,6 +149,11 @@ MulticopterPositionControl::parameters_update()
|
||||
_params.land_speed = _params_handles.land_speed.update();
|
||||
_params.tilt_max_land = math::radians(_params_handles.tilt_max_land.update());
|
||||
|
||||
/* manual control scale */
|
||||
_params.man_roll_max = math::radians(_params_handles.man_roll_max.update());
|
||||
_params.man_pitch_max = math::radians(_params_handles.man_pitch_max.update());
|
||||
_params.man_yaw_max = math::radians(_params_handles.man_yaw_max.update());
|
||||
|
||||
_params.pos_p(0) = _params.pos_p(1) = _params_handles.xy_p.update();
|
||||
_params.pos_p(2) = _params_handles.z_p.update();
|
||||
_params.vel_p(0) = _params.vel_p(1) = _params_handles.xy_vel_p.update();
|
||||
|
||||
@ -126,6 +126,9 @@ protected:
|
||||
px4::ParameterFloat tilt_max_air;
|
||||
px4::ParameterFloat land_speed;
|
||||
px4::ParameterFloat tilt_max_land;
|
||||
px4::ParameterFloat man_roll_max;
|
||||
px4::ParameterFloat man_pitch_max;
|
||||
px4::ParameterFloat man_yaw_max;
|
||||
} _params_handles; /**< handles for interesting parameters */
|
||||
|
||||
struct {
|
||||
@ -134,6 +137,9 @@ protected:
|
||||
float tilt_max_air;
|
||||
float land_speed;
|
||||
float tilt_max_land;
|
||||
float man_roll_max;
|
||||
float man_pitch_max;
|
||||
float man_yaw_max;
|
||||
|
||||
math::Vector<3> pos_p;
|
||||
math::Vector<3> vel_p;
|
||||
|
||||
@ -210,3 +210,32 @@ PX4_PARAM_DEFINE_FLOAT(MPC_TILTMAX_LND);
|
||||
*/
|
||||
PX4_PARAM_DEFINE_FLOAT(MPC_LAND_SPEED);
|
||||
|
||||
/**
|
||||
* Max manual roll
|
||||
*
|
||||
* @unit deg
|
||||
* @min 0.0
|
||||
* @max 90.0
|
||||
* @group Multicopter Attitude Control
|
||||
*/
|
||||
PX4_PARAM_DEFINE_FLOAT(MPC_MAN_R_MAX);
|
||||
|
||||
/**
|
||||
* Max manual pitch
|
||||
*
|
||||
* @unit deg
|
||||
* @min 0.0
|
||||
* @max 90.0
|
||||
* @group Multicopter Attitude Control
|
||||
*/
|
||||
PX4_PARAM_DEFINE_FLOAT(MPC_MAN_P_MAX);
|
||||
|
||||
/**
|
||||
* Max manual yaw rate
|
||||
*
|
||||
* @unit deg/s
|
||||
* @min 0.0
|
||||
* @group Multicopter Attitude Control
|
||||
*/
|
||||
PX4_PARAM_DEFINE_FLOAT(MPC_MAN_Y_MAX);
|
||||
|
||||
|
||||
@ -58,4 +58,7 @@
|
||||
#define PARAM_MPC_TILTMAX_AIR_DEFAULT 45.0f
|
||||
#define PARAM_MPC_TILTMAX_LND_DEFAULT 15.0f
|
||||
#define PARAM_MPC_LAND_SPEED_DEFAULT 1.0f
|
||||
#define PARAM_MPC_MAN_R_MAX_DEFAULT 35.0f
|
||||
#define PARAM_MPC_MAN_P_MAX_DEFAULT 35.0f
|
||||
#define PARAM_MPC_MAN_Y_MAX_DEFAULT 120.0f
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user