mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-23 19:43:34 +08:00
Merge branch 'master' into beta
This commit is contained in:
@@ -75,23 +75,23 @@ MulticopterAttitudeControl::MulticopterAttitudeControl() :
|
|||||||
|
|
||||||
/* parameters */
|
/* parameters */
|
||||||
_params_handles({
|
_params_handles({
|
||||||
.roll_p = px4::ParameterFloat("MC_ROLL_P", PARAM_MC_ROLL_P_DEFAULT),
|
.roll_p = px4::ParameterFloat("MP_ROLL_P", PARAM_MP_ROLL_P_DEFAULT),
|
||||||
.roll_rate_p = px4::ParameterFloat("MC_ROLLRATE_P", PARAM_MC_ROLLRATE_P_DEFAULT),
|
.roll_rate_p = px4::ParameterFloat("MP_ROLLRATE_P", PARAM_MP_ROLLRATE_P_DEFAULT),
|
||||||
.roll_rate_i = px4::ParameterFloat("MC_ROLLRATE_I", PARAM_MC_ROLLRATE_I_DEFAULT),
|
.roll_rate_i = px4::ParameterFloat("MP_ROLLRATE_I", PARAM_MP_ROLLRATE_I_DEFAULT),
|
||||||
.roll_rate_d = px4::ParameterFloat("MC_ROLLRATE_D", PARAM_MC_ROLLRATE_D_DEFAULT),
|
.roll_rate_d = px4::ParameterFloat("MP_ROLLRATE_D", PARAM_MP_ROLLRATE_D_DEFAULT),
|
||||||
.pitch_p = px4::ParameterFloat("MC_PITCH_P", PARAM_MC_PITCH_P_DEFAULT),
|
.pitch_p = px4::ParameterFloat("MP_PITCH_P", PARAM_MP_PITCH_P_DEFAULT),
|
||||||
.pitch_rate_p = px4::ParameterFloat("MC_PITCHRATE_P", PARAM_MC_PITCHRATE_P_DEFAULT),
|
.pitch_rate_p = px4::ParameterFloat("MP_PITCHRATE_P", PARAM_MP_PITCHRATE_P_DEFAULT),
|
||||||
.pitch_rate_i = px4::ParameterFloat("MC_PITCHRATE_I", PARAM_MC_PITCHRATE_I_DEFAULT),
|
.pitch_rate_i = px4::ParameterFloat("MP_PITCHRATE_I", PARAM_MP_PITCHRATE_I_DEFAULT),
|
||||||
.pitch_rate_d = px4::ParameterFloat("MC_PITCHRATE_D", PARAM_MC_PITCHRATE_D_DEFAULT),
|
.pitch_rate_d = px4::ParameterFloat("MP_PITCHRATE_D", PARAM_MP_PITCHRATE_D_DEFAULT),
|
||||||
.yaw_p = px4::ParameterFloat("MC_YAW_P", PARAM_MC_YAW_P_DEFAULT),
|
.yaw_p = px4::ParameterFloat("MP_YAW_P", PARAM_MP_YAW_P_DEFAULT),
|
||||||
.yaw_rate_p = px4::ParameterFloat("MC_YAWRATE_P", PARAM_MC_YAWRATE_P_DEFAULT),
|
.yaw_rate_p = px4::ParameterFloat("MP_YAWRATE_P", PARAM_MP_YAWRATE_P_DEFAULT),
|
||||||
.yaw_rate_i = px4::ParameterFloat("MC_YAWRATE_I", PARAM_MC_YAWRATE_I_DEFAULT),
|
.yaw_rate_i = px4::ParameterFloat("MP_YAWRATE_I", PARAM_MP_YAWRATE_I_DEFAULT),
|
||||||
.yaw_rate_d = px4::ParameterFloat("MC_YAWRATE_D", PARAM_MC_YAWRATE_D_DEFAULT),
|
.yaw_rate_d = px4::ParameterFloat("MP_YAWRATE_D", PARAM_MP_YAWRATE_D_DEFAULT),
|
||||||
.yaw_ff = px4::ParameterFloat("MC_YAW_FF", PARAM_MC_YAW_FF_DEFAULT),
|
.yaw_ff = px4::ParameterFloat("MP_YAW_FF", PARAM_MP_YAW_FF_DEFAULT),
|
||||||
.yaw_rate_max = px4::ParameterFloat("MC_YAWRATE_MAX", PARAM_MC_YAWRATE_MAX_DEFAULT),
|
.yaw_rate_max = px4::ParameterFloat("MP_YAWRATE_MAX", PARAM_MP_YAWRATE_MAX_DEFAULT),
|
||||||
.acro_roll_max = px4::ParameterFloat("MC_ACRO_R_MAX", PARAM_MC_ACRO_R_MAX_DEFAULT),
|
.acro_roll_max = px4::ParameterFloat("MP_ACRO_R_MAX", PARAM_MP_ACRO_R_MAX_DEFAULT),
|
||||||
.acro_pitch_max = px4::ParameterFloat("MC_ACRO_P_MAX", PARAM_MC_ACRO_P_MAX_DEFAULT),
|
.acro_pitch_max = px4::ParameterFloat("MP_ACRO_P_MAX", PARAM_MP_ACRO_P_MAX_DEFAULT),
|
||||||
.acro_yaw_max = px4::ParameterFloat("MC_ACRO_Y_MAX", PARAM_MC_ACRO_Y_MAX_DEFAULT)
|
.acro_yaw_max = px4::ParameterFloat("MP_ACRO_Y_MAX", PARAM_MP_ACRO_Y_MAX_DEFAULT)
|
||||||
}),
|
}),
|
||||||
|
|
||||||
/* performance counters */
|
/* performance counters */
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_ROLL_P);
|
PX4_PARAM_DEFINE_FLOAT(MP_ROLL_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Roll rate P gain
|
* Roll rate P gain
|
||||||
@@ -62,7 +62,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_ROLL_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_ROLLRATE_P);
|
PX4_PARAM_DEFINE_FLOAT(MP_ROLLRATE_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Roll rate I gain
|
* Roll rate I gain
|
||||||
@@ -72,7 +72,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_ROLLRATE_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_ROLLRATE_I);
|
PX4_PARAM_DEFINE_FLOAT(MP_ROLLRATE_I);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Roll rate D gain
|
* Roll rate D gain
|
||||||
@@ -82,7 +82,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_ROLLRATE_I);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_ROLLRATE_D);
|
PX4_PARAM_DEFINE_FLOAT(MP_ROLLRATE_D);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pitch P gain
|
* Pitch P gain
|
||||||
@@ -93,7 +93,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_ROLLRATE_D);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_PITCH_P);
|
PX4_PARAM_DEFINE_FLOAT(MP_PITCH_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pitch rate P gain
|
* Pitch rate P gain
|
||||||
@@ -103,7 +103,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_PITCH_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_PITCHRATE_P);
|
PX4_PARAM_DEFINE_FLOAT(MP_PITCHRATE_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pitch rate I gain
|
* Pitch rate I gain
|
||||||
@@ -113,7 +113,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_PITCHRATE_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_PITCHRATE_I);
|
PX4_PARAM_DEFINE_FLOAT(MP_PITCHRATE_I);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pitch rate D gain
|
* Pitch rate D gain
|
||||||
@@ -123,7 +123,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_PITCHRATE_I);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_PITCHRATE_D);
|
PX4_PARAM_DEFINE_FLOAT(MP_PITCHRATE_D);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Yaw P gain
|
* Yaw P gain
|
||||||
@@ -134,7 +134,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_PITCHRATE_D);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_YAW_P);
|
PX4_PARAM_DEFINE_FLOAT(MP_YAW_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Yaw rate P gain
|
* Yaw rate P gain
|
||||||
@@ -144,7 +144,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_YAW_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_YAWRATE_P);
|
PX4_PARAM_DEFINE_FLOAT(MP_YAWRATE_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Yaw rate I gain
|
* Yaw rate I gain
|
||||||
@@ -154,7 +154,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_YAWRATE_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_YAWRATE_I);
|
PX4_PARAM_DEFINE_FLOAT(MP_YAWRATE_I);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Yaw rate D gain
|
* Yaw rate D gain
|
||||||
@@ -164,7 +164,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_YAWRATE_I);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_YAWRATE_D);
|
PX4_PARAM_DEFINE_FLOAT(MP_YAWRATE_D);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Yaw feed forward
|
* Yaw feed forward
|
||||||
@@ -175,7 +175,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_YAWRATE_D);
|
|||||||
* @max 1.0
|
* @max 1.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_YAW_FF);
|
PX4_PARAM_DEFINE_FLOAT(MP_YAW_FF);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max yaw rate
|
* Max yaw rate
|
||||||
@@ -187,7 +187,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_YAW_FF);
|
|||||||
* @max 360.0
|
* @max 360.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_YAWRATE_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MP_YAWRATE_MAX);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max acro roll rate
|
* Max acro roll rate
|
||||||
@@ -197,7 +197,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_YAWRATE_MAX);
|
|||||||
* @max 360.0
|
* @max 360.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_ACRO_R_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MP_ACRO_R_MAX);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max acro pitch rate
|
* Max acro pitch rate
|
||||||
@@ -207,7 +207,7 @@ PX4_PARAM_DEFINE_FLOAT(MC_ACRO_R_MAX);
|
|||||||
* @max 360.0
|
* @max 360.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_ACRO_P_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MP_ACRO_P_MAX);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max acro yaw rate
|
* Max acro yaw rate
|
||||||
@@ -216,4 +216,4 @@ PX4_PARAM_DEFINE_FLOAT(MC_ACRO_P_MAX);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MC_ACRO_Y_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MP_ACRO_Y_MAX);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file mc_att_control_params.h
|
* @file MP_att_control_params.h
|
||||||
* Parameters for multicopter attitude controller.
|
* Parameters for multicopter attitude controller.
|
||||||
*
|
*
|
||||||
* @author Tobias Naegeli <naegelit@student.ethz.ch>
|
* @author Tobias Naegeli <naegelit@student.ethz.ch>
|
||||||
@@ -43,20 +43,20 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define PARAM_MC_ROLL_P_DEFAULT 6.0f
|
#define PARAM_MP_ROLL_P_DEFAULT 6.0f
|
||||||
#define PARAM_MC_ROLLRATE_P_DEFAULT 0.1f
|
#define PARAM_MP_ROLLRATE_P_DEFAULT 0.1f
|
||||||
#define PARAM_MC_ROLLRATE_I_DEFAULT 0.0f
|
#define PARAM_MP_ROLLRATE_I_DEFAULT 0.0f
|
||||||
#define PARAM_MC_ROLLRATE_D_DEFAULT 0.002f
|
#define PARAM_MP_ROLLRATE_D_DEFAULT 0.002f
|
||||||
#define PARAM_MC_PITCH_P_DEFAULT 6.0f
|
#define PARAM_MP_PITCH_P_DEFAULT 6.0f
|
||||||
#define PARAM_MC_PITCHRATE_P_DEFAULT 0.1f
|
#define PARAM_MP_PITCHRATE_P_DEFAULT 0.1f
|
||||||
#define PARAM_MC_PITCHRATE_I_DEFAULT 0.0f
|
#define PARAM_MP_PITCHRATE_I_DEFAULT 0.0f
|
||||||
#define PARAM_MC_PITCHRATE_D_DEFAULT 0.002f
|
#define PARAM_MP_PITCHRATE_D_DEFAULT 0.002f
|
||||||
#define PARAM_MC_YAW_P_DEFAULT 2.0f
|
#define PARAM_MP_YAW_P_DEFAULT 2.0f
|
||||||
#define PARAM_MC_YAWRATE_P_DEFAULT 0.3f
|
#define PARAM_MP_YAWRATE_P_DEFAULT 0.3f
|
||||||
#define PARAM_MC_YAWRATE_I_DEFAULT 0.0f
|
#define PARAM_MP_YAWRATE_I_DEFAULT 0.0f
|
||||||
#define PARAM_MC_YAWRATE_D_DEFAULT 0.0f
|
#define PARAM_MP_YAWRATE_D_DEFAULT 0.0f
|
||||||
#define PARAM_MC_YAW_FF_DEFAULT 0.5f
|
#define PARAM_MP_YAW_FF_DEFAULT 0.5f
|
||||||
#define PARAM_MC_YAWRATE_MAX_DEFAULT 120.0f
|
#define PARAM_MP_YAWRATE_MAX_DEFAULT 120.0f
|
||||||
#define PARAM_MC_ACRO_R_MAX_DEFAULT 35.0f
|
#define PARAM_MP_ACRO_R_MAX_DEFAULT 35.0f
|
||||||
#define PARAM_MC_ACRO_P_MAX_DEFAULT 35.0f
|
#define PARAM_MP_ACRO_P_MAX_DEFAULT 35.0f
|
||||||
#define PARAM_MC_ACRO_Y_MAX_DEFAULT 120.0f
|
#define PARAM_MP_ACRO_Y_MAX_DEFAULT 120.0f
|
||||||
|
|||||||
@@ -1102,7 +1102,6 @@ MulticopterPositionControl::task_main()
|
|||||||
|
|
||||||
/* derivative of velocity error, not includes setpoint acceleration */
|
/* derivative of velocity error, not includes setpoint acceleration */
|
||||||
math::Vector<3> vel_err_d = (_sp_move_rate - _vel).emult(_params.pos_p) - (_vel - _vel_prev) / dt;
|
math::Vector<3> vel_err_d = (_sp_move_rate - _vel).emult(_params.pos_p) - (_vel - _vel_prev) / dt;
|
||||||
_vel_prev = _vel;
|
|
||||||
|
|
||||||
/* thrust vector in NED frame */
|
/* thrust vector in NED frame */
|
||||||
math::Vector<3> thrust_sp = vel_err.emult(_params.vel_p) + vel_err_d.emult(_params.vel_d) + thrust_int;
|
math::Vector<3> thrust_sp = vel_err.emult(_params.vel_p) + vel_err_d.emult(_params.vel_d) + thrust_int;
|
||||||
@@ -1406,6 +1405,9 @@ MulticopterPositionControl::task_main()
|
|||||||
reset_yaw_sp = true;
|
reset_yaw_sp = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* update previous velocity for velocity controller D part */
|
||||||
|
_vel_prev = _vel;
|
||||||
|
|
||||||
/* publish attitude setpoint
|
/* publish attitude setpoint
|
||||||
* Do not publish if offboard is enabled but position/velocity control is disabled,
|
* Do not publish if offboard is enabled but position/velocity control is disabled,
|
||||||
* in this case the attitude setpoint is published by the mavlink app
|
* in this case the attitude setpoint is published by the mavlink app
|
||||||
|
|||||||
@@ -69,26 +69,26 @@ MulticopterPositionControl::MulticopterPositionControl() :
|
|||||||
|
|
||||||
/* parameters */
|
/* parameters */
|
||||||
_params_handles({
|
_params_handles({
|
||||||
.thr_min = px4::ParameterFloat("MPC_THR_MIN", PARAM_MPC_THR_MIN_DEFAULT),
|
.thr_min = px4::ParameterFloat("MPP_THR_MIN", PARAM_MPP_THR_MIN_DEFAULT),
|
||||||
.thr_max = px4::ParameterFloat("MPC_THR_MAX", PARAM_MPC_THR_MAX_DEFAULT),
|
.thr_max = px4::ParameterFloat("MPP_THR_MAX", PARAM_MPP_THR_MAX_DEFAULT),
|
||||||
.z_p = px4::ParameterFloat("MPC_Z_P", PARAM_MPC_Z_P_DEFAULT),
|
.z_p = px4::ParameterFloat("MPP_Z_P", PARAM_MPP_Z_P_DEFAULT),
|
||||||
.z_vel_p = px4::ParameterFloat("MPC_Z_VEL_P", PARAM_MPC_Z_VEL_P_DEFAULT),
|
.z_vel_p = px4::ParameterFloat("MPP_Z_VEL_P", PARAM_MPP_Z_VEL_P_DEFAULT),
|
||||||
.z_vel_i = px4::ParameterFloat("MPC_Z_VEL_I", PARAM_MPC_Z_VEL_I_DEFAULT),
|
.z_vel_i = px4::ParameterFloat("MPP_Z_VEL_I", PARAM_MPP_Z_VEL_I_DEFAULT),
|
||||||
.z_vel_d = px4::ParameterFloat("MPC_Z_VEL_D", PARAM_MPC_Z_VEL_D_DEFAULT),
|
.z_vel_d = px4::ParameterFloat("MPP_Z_VEL_D", PARAM_MPP_Z_VEL_D_DEFAULT),
|
||||||
.z_vel_max = px4::ParameterFloat("MPC_Z_VEL_MAX", PARAM_MPC_Z_VEL_MAX_DEFAULT),
|
.z_vel_max = px4::ParameterFloat("MPP_Z_VEL_MAX", PARAM_MPP_Z_VEL_MAX_DEFAULT),
|
||||||
.z_ff = px4::ParameterFloat("MPC_Z_FF", PARAM_MPC_Z_FF_DEFAULT),
|
.z_ff = px4::ParameterFloat("MPP_Z_FF", PARAM_MPP_Z_FF_DEFAULT),
|
||||||
.xy_p = px4::ParameterFloat("MPC_XY_P", PARAM_MPC_XY_P_DEFAULT),
|
.xy_p = px4::ParameterFloat("MPP_XY_P", PARAM_MPP_XY_P_DEFAULT),
|
||||||
.xy_vel_p = px4::ParameterFloat("MPC_XY_VEL_P", PARAM_MPC_XY_VEL_P_DEFAULT),
|
.xy_vel_p = px4::ParameterFloat("MPP_XY_VEL_P", PARAM_MPP_XY_VEL_P_DEFAULT),
|
||||||
.xy_vel_i = px4::ParameterFloat("MPC_XY_VEL_I", PARAM_MPC_XY_VEL_I_DEFAULT),
|
.xy_vel_i = px4::ParameterFloat("MPP_XY_VEL_I", PARAM_MPP_XY_VEL_I_DEFAULT),
|
||||||
.xy_vel_d = px4::ParameterFloat("MPC_XY_VEL_D", PARAM_MPC_XY_VEL_D_DEFAULT),
|
.xy_vel_d = px4::ParameterFloat("MPP_XY_VEL_D", PARAM_MPP_XY_VEL_D_DEFAULT),
|
||||||
.xy_vel_max = px4::ParameterFloat("MPC_XY_VEL_MAX", PARAM_MPC_XY_VEL_MAX_DEFAULT),
|
.xy_vel_max = px4::ParameterFloat("MPP_XY_VEL_MAX", PARAM_MPP_XY_VEL_MAX_DEFAULT),
|
||||||
.xy_ff = px4::ParameterFloat("MPC_XY_FF", PARAM_MPC_XY_FF_DEFAULT),
|
.xy_ff = px4::ParameterFloat("MPP_XY_FF", PARAM_MPP_XY_FF_DEFAULT),
|
||||||
.tilt_max_air = px4::ParameterFloat("MPC_TILTMAX_AIR", PARAM_MPC_TILTMAX_AIR_DEFAULT),
|
.tilt_max_air = px4::ParameterFloat("MPP_TILTMAX_AIR", PARAM_MPP_TILTMAX_AIR_DEFAULT),
|
||||||
.land_speed = px4::ParameterFloat("MPC_LAND_SPEED", PARAM_MPC_LAND_SPEED_DEFAULT),
|
.land_speed = px4::ParameterFloat("MPP_LAND_SPEED", PARAM_MPP_LAND_SPEED_DEFAULT),
|
||||||
.tilt_max_land = px4::ParameterFloat("MPC_TILTMAX_LND", PARAM_MPC_TILTMAX_LND_DEFAULT),
|
.tilt_max_land = px4::ParameterFloat("MPP_TILTMAX_LND", PARAM_MPP_TILTMAX_LND_DEFAULT),
|
||||||
.man_roll_max = px4::ParameterFloat("MPC_MAN_R_MAX", PARAM_MPC_MAN_R_MAX_DEFAULT),
|
.man_roll_max = px4::ParameterFloat("MPP_MAN_R_MAX", PARAM_MPP_MAN_R_MAX_DEFAULT),
|
||||||
.man_pitch_max = px4::ParameterFloat("MPC_MAN_P_MAX", PARAM_MPC_MAN_P_MAX_DEFAULT),
|
.man_pitch_max = px4::ParameterFloat("MPP_MAN_P_MAX", PARAM_MPP_MAN_P_MAX_DEFAULT),
|
||||||
.man_yaw_max = px4::ParameterFloat("MPC_MAN_Y_MAX", PARAM_MPC_MAN_Y_MAX_DEFAULT),
|
.man_yaw_max = px4::ParameterFloat("MPP_MAN_Y_MAX", PARAM_MPP_MAN_Y_MAX_DEFAULT),
|
||||||
.mc_att_yaw_p = px4::ParameterFloat("MC_YAW_P", PARAM_MC_YAW_P_DEFAULT)
|
.mc_att_yaw_p = px4::ParameterFloat("MC_YAW_P", PARAM_MC_YAW_P_DEFAULT)
|
||||||
}),
|
}),
|
||||||
_ref_alt(0.0f),
|
_ref_alt(0.0f),
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
* @max 1.0
|
* @max 1.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_THR_MIN);
|
PX4_PARAM_DEFINE_FLOAT(MPP_THR_MIN);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maximum thrust
|
* Maximum thrust
|
||||||
@@ -63,7 +63,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_THR_MIN);
|
|||||||
* @max 1.0
|
* @max 1.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_THR_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MPP_THR_MAX);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Proportional gain for vertical position error
|
* Proportional gain for vertical position error
|
||||||
@@ -71,7 +71,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_THR_MAX);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_Z_P);
|
PX4_PARAM_DEFINE_FLOAT(MPP_Z_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Proportional gain for vertical velocity error
|
* Proportional gain for vertical velocity error
|
||||||
@@ -79,7 +79,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_Z_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_Z_VEL_P);
|
PX4_PARAM_DEFINE_FLOAT(MPP_Z_VEL_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Integral gain for vertical velocity error
|
* Integral gain for vertical velocity error
|
||||||
@@ -89,7 +89,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_Z_VEL_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_Z_VEL_I);
|
PX4_PARAM_DEFINE_FLOAT(MPP_Z_VEL_I);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Differential gain for vertical velocity error
|
* Differential gain for vertical velocity error
|
||||||
@@ -97,7 +97,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_Z_VEL_I);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_Z_VEL_D);
|
PX4_PARAM_DEFINE_FLOAT(MPP_Z_VEL_D);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maximum vertical velocity
|
* Maximum vertical velocity
|
||||||
@@ -108,7 +108,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_Z_VEL_D);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_Z_VEL_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MPP_Z_VEL_MAX);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Vertical velocity feed forward
|
* Vertical velocity feed forward
|
||||||
@@ -119,7 +119,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_Z_VEL_MAX);
|
|||||||
* @max 1.0
|
* @max 1.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_Z_FF);
|
PX4_PARAM_DEFINE_FLOAT(MPP_Z_FF);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Proportional gain for horizontal position error
|
* Proportional gain for horizontal position error
|
||||||
@@ -127,7 +127,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_Z_FF);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_XY_P);
|
PX4_PARAM_DEFINE_FLOAT(MPP_XY_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Proportional gain for horizontal velocity error
|
* Proportional gain for horizontal velocity error
|
||||||
@@ -135,7 +135,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_XY_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_XY_VEL_P);
|
PX4_PARAM_DEFINE_FLOAT(MPP_XY_VEL_P);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Integral gain for horizontal velocity error
|
* Integral gain for horizontal velocity error
|
||||||
@@ -145,7 +145,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_XY_VEL_P);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_XY_VEL_I);
|
PX4_PARAM_DEFINE_FLOAT(MPP_XY_VEL_I);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Differential gain for horizontal velocity error. Small values help reduce fast oscillations. If value is too big oscillations will appear again.
|
* Differential gain for horizontal velocity error. Small values help reduce fast oscillations. If value is too big oscillations will appear again.
|
||||||
@@ -153,7 +153,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_XY_VEL_I);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_XY_VEL_D);
|
PX4_PARAM_DEFINE_FLOAT(MPP_XY_VEL_D);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maximum horizontal velocity
|
* Maximum horizontal velocity
|
||||||
@@ -164,7 +164,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_XY_VEL_D);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_XY_VEL_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MPP_XY_VEL_MAX);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Horizontal velocity feed forward
|
* Horizontal velocity feed forward
|
||||||
@@ -175,7 +175,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_XY_VEL_MAX);
|
|||||||
* @max 1.0
|
* @max 1.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_XY_FF);
|
PX4_PARAM_DEFINE_FLOAT(MPP_XY_FF);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maximum tilt angle in air
|
* Maximum tilt angle in air
|
||||||
@@ -187,7 +187,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_XY_FF);
|
|||||||
* @max 90.0
|
* @max 90.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_TILTMAX_AIR);
|
PX4_PARAM_DEFINE_FLOAT(MPP_TILTMAX_AIR);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maximum tilt during landing
|
* Maximum tilt during landing
|
||||||
@@ -199,7 +199,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_TILTMAX_AIR);
|
|||||||
* @max 90.0
|
* @max 90.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_TILTMAX_LND);
|
PX4_PARAM_DEFINE_FLOAT(MPP_TILTMAX_LND);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Landing descend rate
|
* Landing descend rate
|
||||||
@@ -208,7 +208,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_TILTMAX_LND);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Position Control
|
* @group Multicopter Position Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_LAND_SPEED);
|
PX4_PARAM_DEFINE_FLOAT(MPP_LAND_SPEED);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max manual roll
|
* Max manual roll
|
||||||
@@ -218,7 +218,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_LAND_SPEED);
|
|||||||
* @max 90.0
|
* @max 90.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_MAN_R_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MPP_MAN_R_MAX);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max manual pitch
|
* Max manual pitch
|
||||||
@@ -228,7 +228,7 @@ PX4_PARAM_DEFINE_FLOAT(MPC_MAN_R_MAX);
|
|||||||
* @max 90.0
|
* @max 90.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_MAN_P_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MPP_MAN_P_MAX);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max manual yaw rate
|
* Max manual yaw rate
|
||||||
@@ -237,5 +237,5 @@ PX4_PARAM_DEFINE_FLOAT(MPC_MAN_P_MAX);
|
|||||||
* @min 0.0
|
* @min 0.0
|
||||||
* @group Multicopter Attitude Control
|
* @group Multicopter Attitude Control
|
||||||
*/
|
*/
|
||||||
PX4_PARAM_DEFINE_FLOAT(MPC_MAN_Y_MAX);
|
PX4_PARAM_DEFINE_FLOAT(MPP_MAN_Y_MAX);
|
||||||
|
|
||||||
|
|||||||
@@ -41,24 +41,24 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define PARAM_MPC_THR_MIN_DEFAULT 0.1f
|
#define PARAM_MPP_THR_MIN_DEFAULT 0.1f
|
||||||
#define PARAM_MPC_THR_MAX_DEFAULT 1.0f
|
#define PARAM_MPP_THR_MAX_DEFAULT 1.0f
|
||||||
#define PARAM_MPC_Z_P_DEFAULT 1.0f
|
#define PARAM_MPP_Z_P_DEFAULT 1.0f
|
||||||
#define PARAM_MPC_Z_VEL_P_DEFAULT 0.1f
|
#define PARAM_MPP_Z_VEL_P_DEFAULT 0.1f
|
||||||
#define PARAM_MPC_Z_VEL_I_DEFAULT 0.02f
|
#define PARAM_MPP_Z_VEL_I_DEFAULT 0.02f
|
||||||
#define PARAM_MPC_Z_VEL_D_DEFAULT 0.0f
|
#define PARAM_MPP_Z_VEL_D_DEFAULT 0.0f
|
||||||
#define PARAM_MPC_Z_VEL_MAX_DEFAULT 5.0f
|
#define PARAM_MPP_Z_VEL_MAX_DEFAULT 5.0f
|
||||||
#define PARAM_MPC_Z_FF_DEFAULT 0.5f
|
#define PARAM_MPP_Z_FF_DEFAULT 0.5f
|
||||||
#define PARAM_MPC_XY_P_DEFAULT 1.0f
|
#define PARAM_MPP_XY_P_DEFAULT 1.0f
|
||||||
#define PARAM_MPC_XY_VEL_P_DEFAULT 0.1f
|
#define PARAM_MPP_XY_VEL_P_DEFAULT 0.1f
|
||||||
#define PARAM_MPC_XY_VEL_I_DEFAULT 0.02f
|
#define PARAM_MPP_XY_VEL_I_DEFAULT 0.02f
|
||||||
#define PARAM_MPC_XY_VEL_D_DEFAULT 0.01f
|
#define PARAM_MPP_XY_VEL_D_DEFAULT 0.01f
|
||||||
#define PARAM_MPC_XY_VEL_MAX_DEFAULT 5.0f
|
#define PARAM_MPP_XY_VEL_MAX_DEFAULT 5.0f
|
||||||
#define PARAM_MPC_XY_FF_DEFAULT 0.5f
|
#define PARAM_MPP_XY_FF_DEFAULT 0.5f
|
||||||
#define PARAM_MPC_TILTMAX_AIR_DEFAULT 45.0f
|
#define PARAM_MPP_TILTMAX_AIR_DEFAULT 45.0f
|
||||||
#define PARAM_MPC_TILTMAX_LND_DEFAULT 15.0f
|
#define PARAM_MPP_TILTMAX_LND_DEFAULT 15.0f
|
||||||
#define PARAM_MPC_LAND_SPEED_DEFAULT 1.0f
|
#define PARAM_MPP_LAND_SPEED_DEFAULT 1.0f
|
||||||
#define PARAM_MPC_MAN_R_MAX_DEFAULT 35.0f
|
#define PARAM_MPP_MAN_R_MAX_DEFAULT 35.0f
|
||||||
#define PARAM_MPC_MAN_P_MAX_DEFAULT 35.0f
|
#define PARAM_MPP_MAN_P_MAX_DEFAULT 35.0f
|
||||||
#define PARAM_MPC_MAN_Y_MAX_DEFAULT 120.0f
|
#define PARAM_MPP_MAN_Y_MAX_DEFAULT 120.0f
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user