mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-25 07:13:35 +08:00
EKF: Combine GPS velocity innovation gate parameters
Separate vertical and horizontal parameters for GPS velocity innovation gates are not required
This commit is contained in:
committed by
bugobliterator
parent
466a104534
commit
f1b82057c0
@@ -134,10 +134,9 @@ namespace estimator {
|
|||||||
float gps_vel_noise = 0.05f;
|
float gps_vel_noise = 0.05f;
|
||||||
float gps_pos_noise = 1.0f;
|
float gps_pos_noise = 1.0f;
|
||||||
float baro_noise = 0.1f;
|
float baro_noise = 0.1f;
|
||||||
float baro_innov_gate = 5.0f; // barometer fusion innovation consistency gate size in standard deviations
|
float baro_innov_gate = 5.0f; // barometric height innovation consistency gate size in standard deviations
|
||||||
float velD_innov_gate = 5.0f; // Vertical velocity fusion innovation consistency gate size in standard deviations
|
float posNE_innov_gate = 5.0f; // GPS horizontal position innovation consistency gate size in standard deviations
|
||||||
float posNE_innov_gate = 5.0f; // Horizontal position innovation consistency gate size in standard deviations
|
float vel_innov_gate = 3.0f; // GPS velocity innovation consistency gate size in standard deviations
|
||||||
float velNE_innov_gate = 5.0f; // Horizontal velocity fusion innovation consistency gate size in standard deviations
|
|
||||||
|
|
||||||
float mag_heading_noise = 3e-2f; // measurement noise used for simple heading fusion
|
float mag_heading_noise = 3e-2f; // measurement noise used for simple heading fusion
|
||||||
float mag_declination_deg = 0.0f; // magnetic declination in degrees
|
float mag_declination_deg = 0.0f; // magnetic declination in degrees
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ void Ekf::fuseVelPosHeight()
|
|||||||
_vel_pos_innov[1] = _state.vel(1) - _gps_sample_delayed.vel(1);
|
_vel_pos_innov[1] = _state.vel(1) - _gps_sample_delayed.vel(1);
|
||||||
R[0] = _params.gps_vel_noise;
|
R[0] = _params.gps_vel_noise;
|
||||||
R[1] = _params.gps_vel_noise;
|
R[1] = _params.gps_vel_noise;
|
||||||
gate_size[0] = fmaxf(_params.velNE_innov_gate, 1.0f);
|
gate_size[0] = fmaxf(_params.vel_innov_gate, 1.0f);
|
||||||
gate_size[1] = gate_size[0];
|
gate_size[1] = gate_size[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ void Ekf::fuseVelPosHeight()
|
|||||||
fuse_map[2] = true;
|
fuse_map[2] = true;
|
||||||
_vel_pos_innov[2] = _state.vel(2) - _gps_sample_delayed.vel(2);
|
_vel_pos_innov[2] = _state.vel(2) - _gps_sample_delayed.vel(2);
|
||||||
R[2] = _params.gps_vel_noise;
|
R[2] = _params.gps_vel_noise;
|
||||||
gate_size[2] = fmaxf(_params.velD_innov_gate, 1.0f);
|
gate_size[2] = fmaxf(_params.vel_innov_gate, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_fuse_pos) {
|
if (_fuse_pos) {
|
||||||
|
|||||||
Reference in New Issue
Block a user