mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-26 17:50:34 +08:00
78bbb66568
- introduce per module parameters (EKF2_EN, LPE_EN, ATT_EN) - add basic checks to prevent EKF2 + LPE running simultaneously
474 lines
8.5 KiB
C
474 lines
8.5 KiB
C
#include <parameters/param.h>
|
|
|
|
/**
|
|
* Local position estimator enable (unsupported)
|
|
*
|
|
* @group Local Position Estimator
|
|
* @boolean
|
|
*/
|
|
PARAM_DEFINE_INT32(LPE_EN, 0);
|
|
|
|
/**
|
|
* Optical flow z offset from center
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min -1
|
|
* @max 1
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_FLW_OFF_Z, 0.0f);
|
|
|
|
/**
|
|
* Optical flow scale
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.1
|
|
* @max 10.0
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_FLW_SCALE, 1.3f);
|
|
|
|
/**
|
|
* Optical flow rotation (roll/pitch) noise gain
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s/rad
|
|
* @min 0.1
|
|
* @max 10.0
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_FLW_R, 7.0f);
|
|
|
|
/**
|
|
* Optical flow angular velocity noise gain
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/rad
|
|
* @min 0.0
|
|
* @max 10.0
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_FLW_RR, 7.0f);
|
|
|
|
/**
|
|
* Optical flow minimum quality threshold
|
|
*
|
|
* @group Local Position Estimator
|
|
* @min 0
|
|
* @max 255
|
|
*/
|
|
PARAM_DEFINE_INT32(LPE_FLW_QMIN, 150);
|
|
|
|
/**
|
|
* Sonar z standard deviation.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.01
|
|
* @max 1
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_SNR_Z, 0.05f);
|
|
|
|
/**
|
|
* Sonar z offset from center of vehicle +down
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min -1
|
|
* @max 1
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_SNR_OFF_Z, 0.00f);
|
|
|
|
/**
|
|
* Lidar z standard deviation.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.01
|
|
* @max 1
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_LDR_Z, 0.03f);
|
|
|
|
/**
|
|
* Lidar z offset from center of vehicle +down
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min -1
|
|
* @max 1
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_LDR_OFF_Z, 0.00f);
|
|
|
|
/**
|
|
* Accelerometer xy noise density
|
|
*
|
|
* Data sheet noise density = 150ug/sqrt(Hz) = 0.0015 m/s^2/sqrt(Hz)
|
|
*
|
|
* Larger than data sheet to account for tilt error.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s^2/sqrt(Hz)
|
|
* @min 0.00001
|
|
* @max 2
|
|
* @decimal 4
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_ACC_XY, 0.012f);
|
|
|
|
/**
|
|
* Accelerometer z noise density
|
|
*
|
|
* Data sheet noise density = 150ug/sqrt(Hz) = 0.0015 m/s^2/sqrt(Hz)
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s^2/sqrt(Hz)
|
|
* @min 0.00001
|
|
* @max 2
|
|
* @decimal 4
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_ACC_Z, 0.02f);
|
|
|
|
/**
|
|
* Barometric presssure altitude z standard deviation.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.01
|
|
* @max 100
|
|
* @decimal 2
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_BAR_Z, 3.0f);
|
|
|
|
/**
|
|
* GPS delay compensaton
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit s
|
|
* @min 0
|
|
* @max 0.4
|
|
* @decimal 2
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_GPS_DELAY, 0.29f);
|
|
|
|
|
|
/**
|
|
* Minimum GPS xy standard deviation, uses reported EPH if greater.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.01
|
|
* @max 5
|
|
* @decimal 2
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_GPS_XY, 1.0f);
|
|
|
|
/**
|
|
* Minimum GPS z standard deviation, uses reported EPV if greater.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.01
|
|
* @max 200
|
|
* @decimal 2
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_GPS_Z, 3.0f);
|
|
|
|
/**
|
|
* GPS xy velocity standard deviation.
|
|
*
|
|
* EPV used if greater than this value.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s
|
|
* @min 0.01
|
|
* @max 2
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_GPS_VXY, 0.25f);
|
|
|
|
/**
|
|
* GPS z velocity standard deviation.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s
|
|
* @min 0.01
|
|
* @max 2
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_GPS_VZ, 0.25f);
|
|
|
|
/**
|
|
* Max EPH allowed for GPS initialization
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 1.0
|
|
* @max 5.0
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_EPH_MAX, 3.0f);
|
|
|
|
/**
|
|
* Max EPV allowed for GPS initialization
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 1.0
|
|
* @max 5.0
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_EPV_MAX, 5.0f);
|
|
|
|
/**
|
|
* Vision delay compensation.
|
|
*
|
|
* Set to zero to enable automatic compensation from measurement timestamps
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit s
|
|
* @min 0
|
|
* @max 0.1
|
|
* @decimal 2
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_VIS_DELAY, 0.1f);
|
|
|
|
/**
|
|
* Vision xy standard deviation.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.01
|
|
* @max 1
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_VIS_XY, 0.1f);
|
|
|
|
/**
|
|
* Vision z standard deviation.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.01
|
|
* @max 100
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_VIS_Z, 0.5f);
|
|
|
|
/**
|
|
* Vicon position standard deviation.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.0001
|
|
* @max 1
|
|
* @decimal 4
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_VIC_P, 0.001f);
|
|
|
|
/**
|
|
* Position propagation noise density
|
|
*
|
|
* Increase to trust measurements more.
|
|
* Decrease to trust model more.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s/sqrt(Hz)
|
|
* @min 0
|
|
* @max 1
|
|
* @decimal 8
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_PN_P, 0.1f);
|
|
|
|
/**
|
|
* Velocity propagation noise density
|
|
*
|
|
* Increase to trust measurements more.
|
|
* Decrease to trust model more.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s^2/sqrt(Hz)
|
|
* @min 0
|
|
* @max 1
|
|
* @decimal 8
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_PN_V, 0.1f);
|
|
|
|
/**
|
|
* Accel bias propagation noise density
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s^3/sqrt(Hz)
|
|
* @min 0
|
|
* @max 1
|
|
* @decimal 8
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_PN_B, 1e-3f);
|
|
|
|
/**
|
|
* Terrain random walk noise density, hilly/outdoor (0.1), flat/Indoor (0.001)
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s/sqrt(Hz)
|
|
* @min 0
|
|
* @max 1
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_PN_T, 0.001f);
|
|
|
|
/**
|
|
* Terrain maximum percent grade, hilly/outdoor (100 = 45 deg), flat/Indoor (0 = 0 deg)
|
|
*
|
|
* Used to calculate increased terrain random walk nosie due to movement.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit %
|
|
* @min 0
|
|
* @max 100
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_T_MAX_GRADE, 1.0f);
|
|
|
|
/**
|
|
* Flow gyro high pass filter cut off frequency
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit Hz
|
|
* @min 0
|
|
* @max 2
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_FGYRO_HP, 0.001f);
|
|
|
|
/**
|
|
* Enable publishing of a fake global position (e.g for AUTO missions using Optical Flow)
|
|
*
|
|
* By initializing the estimator to the LPE_LAT/LON parameters when global information is unavailable
|
|
*
|
|
* @group Local Position Estimator
|
|
* @min 0
|
|
* @max 1
|
|
*/
|
|
PARAM_DEFINE_INT32(LPE_FAKE_ORIGIN, 0);
|
|
|
|
/**
|
|
* Local origin latitude for nav w/o GPS
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit deg
|
|
* @min -90
|
|
* @max 90
|
|
* @decimal 8
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_LAT, 47.397742f);
|
|
|
|
/**
|
|
* Local origin longitude for nav w/o GPS
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit deg
|
|
* @min -180
|
|
* @max 180
|
|
* @decimal 8
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_LON, 8.545594);
|
|
|
|
/**
|
|
* Cut frequency for state publication
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit Hz
|
|
* @min 5
|
|
* @max 1000
|
|
* @decimal 0
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_X_LP, 5.0f);
|
|
|
|
/**
|
|
* Required velocity xy standard deviation to publish position
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s
|
|
* @min 0.01
|
|
* @max 1.0
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_VXY_PUB, 0.3f);
|
|
|
|
/**
|
|
* Required z standard deviation to publish altitude/ terrain
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.3
|
|
* @max 5.0
|
|
* @decimal 1
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_Z_PUB, 1.0f);
|
|
|
|
/**
|
|
* Land detector z standard deviation
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m
|
|
* @min 0.001
|
|
* @max 10.0
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_LAND_Z, 0.03f);
|
|
|
|
/**
|
|
* Land detector xy velocity standard deviation
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m/s
|
|
* @min 0.01
|
|
* @max 10.0
|
|
* @decimal 3
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_LAND_VXY, 0.05f);
|
|
|
|
/**
|
|
* Minimum landing target standard covariance, uses reported covariance if greater.
|
|
*
|
|
* @group Local Position Estimator
|
|
* @unit m^2
|
|
* @min 0.0
|
|
* @max 10
|
|
* @decimal 2
|
|
*/
|
|
PARAM_DEFINE_FLOAT(LPE_LT_COV, 0.0001f);
|
|
|
|
/**
|
|
* Integer bitmask controlling data fusion
|
|
*
|
|
* Set bits in the following positions to enable:
|
|
* 0 : Set to true to fuse GPS data if available, also requires GPS for altitude init
|
|
* 1 : Set to true to fuse optical flow data if available
|
|
* 2 : Set to true to fuse vision position
|
|
* 3 : Set to true to enable landing target
|
|
* 4 : Set to true to fuse land detector
|
|
* 5 : Set to true to publish AGL as local position down component
|
|
* 6 : Set to true to enable flow gyro compensation
|
|
* 7 : Set to true to enable baro fusion
|
|
*
|
|
* default (145 - GPS, baro, land detector)
|
|
*
|
|
* @group Local Position Estimator
|
|
* @min 0
|
|
* @max 255
|
|
* @bit 0 fuse GPS, requires GPS for alt. init
|
|
* @bit 1 fuse optical flow
|
|
* @bit 2 fuse vision position
|
|
* @bit 3 fuse landing target
|
|
* @bit 4 fuse land detector
|
|
* @bit 5 pub agl as lpos down
|
|
* @bit 6 flow gyro compensation
|
|
* @bit 7 fuse baro
|
|
*/
|
|
PARAM_DEFINE_INT32(LPE_FUSION, 145);
|