mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-20 06:33:33 +08:00
EKF: Enable compensation for static pressure positional error (#7264)
* msg: add reporting of multi rotor drag fusion * ekf2: add reporting of multi rotor drag fusion * ekf2: Add parameters required to tune multi-rotor wind estimation * ekf2: Add correction for static pressure position error * ekf2: Use correct air density for position error corrections * ekf2: fix parameter documentation error * ekf2: Add separate forward and reverse position error correction factors * ekf2: Fix formatting and parameter descriptions * ekf2: Improve comments
This commit is contained in:
@@ -541,15 +541,17 @@ PARAM_DEFINE_INT32(EKF2_REC_RPL, 0);
|
||||
* 2 : Set to true to inhibit IMU bias estimation
|
||||
* 3 : Set to true to enable vision position fusion
|
||||
* 4 : Set to true to enable vision yaw fusion
|
||||
* 5 : Set to true to enable multi-rotor drag specific force fusion
|
||||
*
|
||||
* @group EKF2
|
||||
* @min 0
|
||||
* @max 28
|
||||
* @max 63
|
||||
* @bit 0 use GPS
|
||||
* @bit 1 use optical flow
|
||||
* @bit 2 inhibit IMU bias estimation
|
||||
* @bit 3 vision position fusion
|
||||
* @bit 4 vision yaw fusion
|
||||
* @bit 5 multi-rotor drag fusion
|
||||
*/
|
||||
PARAM_DEFINE_INT32(EKF2_AID_MASK, 1);
|
||||
|
||||
@@ -1056,3 +1058,97 @@ PARAM_DEFINE_FLOAT(EKF2_RNG_A_HMAX, 5.0f);
|
||||
* @max 5.0
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(EKF2_RNG_A_IGATE, 1.0f);
|
||||
|
||||
/**
|
||||
* Specific drag force observation noise variance used by the multi-rotor specific drag force model.
|
||||
* Increasing it makes the multi-rotor wind estimates adjust more slowly.
|
||||
*
|
||||
* @group EKF2
|
||||
* @min 0.5
|
||||
* @max 10.0
|
||||
* @unit (m/sec**2)**2
|
||||
* @decimal 2
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(EKF2_DRAG_NOISE, 2.5f);
|
||||
|
||||
/**
|
||||
* X-axis ballistic coefficient used by the multi-rotor specific drag force model.
|
||||
* This should be adjusted to minimise variance of the X-axis drag specific force innovation sequence.
|
||||
*
|
||||
* @group EKF2
|
||||
* @min 1.0
|
||||
* @max 100.0
|
||||
* @unit kg/m**2
|
||||
* @decimal 1
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(EKF2_BCOEF_X, 25.0f);
|
||||
|
||||
/**
|
||||
* Y-axis ballistic coefficient used by the multi-rotor specific drag force model.
|
||||
* This should be adjusted to minimise variance of the Y-axis drag specific force innovation sequence.
|
||||
*
|
||||
* @group EKF2
|
||||
* @min 1.0
|
||||
* @max 100.0
|
||||
* @unit kg/m**2
|
||||
* @decimal 1
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(EKF2_BCOEF_Y, 25.0f);
|
||||
|
||||
/**
|
||||
* Upper limit on airspeed along individual axes used to correct baro for position error effects
|
||||
*
|
||||
* @group EKF2
|
||||
* @min 5.0
|
||||
* @max 50.0
|
||||
* @unit m/s
|
||||
* @decimal 1
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(EKF2_ASPD_MAX, 20.0f);
|
||||
|
||||
/**
|
||||
* Static pressure position error coefficient for the positive X axis
|
||||
* This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis.
|
||||
* If the baro height estimate rises during forward flight, then this will be a negative number.
|
||||
*
|
||||
* @group EKF2
|
||||
* @min -0.5
|
||||
* @max 0.5
|
||||
* @decimal 2
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(EKF2_PCOEF_XP, 0.0f);
|
||||
|
||||
/**
|
||||
* Static pressure position error coefficient for the negative X axis.
|
||||
* This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis.
|
||||
* If the baro height estimate rises during backwards flight, then this will be a negative number.
|
||||
*
|
||||
* @group EKF2
|
||||
* @min -0.5
|
||||
* @max 0.5
|
||||
* @decimal 2
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(EKF2_PCOEF_XN, 0.0f);
|
||||
|
||||
/**
|
||||
* Pressure position error coefficient for the Y axis.
|
||||
* This is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the Y body axis.
|
||||
* If the baro height estimate rises during sideways flight, then this will be a negative number.
|
||||
*
|
||||
* @group EKF2
|
||||
* @min -0.5
|
||||
* @max 0.5
|
||||
* @decimal 2
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(EKF2_PCOEF_Y, 0.0f);
|
||||
|
||||
/**
|
||||
* Static pressure position error coefficient for the Z axis.
|
||||
* This is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the Z body axis.
|
||||
*
|
||||
* @group EKF2
|
||||
* @min -0.5
|
||||
* @max 0.5
|
||||
* @decimal 2
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(EKF2_PCOEF_Z, 0.0f);
|
||||
|
||||
Reference in New Issue
Block a user