mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-02 05:11:36 +08:00
ekf2: move airspeed buffer pop to controlAirDataFusion
This commit is contained in:
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
#include <mathlib/mathlib.h>
|
#include <mathlib/mathlib.h>
|
||||||
|
|
||||||
void Ekf::controlAirDataFusion()
|
void Ekf::controlAirDataFusion(const imuSample &imu_delayed)
|
||||||
{
|
{
|
||||||
// control activation and initialisation/reset of wind states required for airspeed fusion
|
// control activation and initialisation/reset of wind states required for airspeed fusion
|
||||||
|
|
||||||
@@ -66,6 +66,10 @@ void Ekf::controlAirDataFusion()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_airspeed_buffer) {
|
||||||
|
_tas_data_ready = _airspeed_buffer->pop_first_older_than(imu_delayed.time_us, &_airspeed_sample_delayed);
|
||||||
|
}
|
||||||
|
|
||||||
if (_tas_data_ready) {
|
if (_tas_data_ready) {
|
||||||
updateAirspeed(_airspeed_sample_delayed, _aid_src_airspeed);
|
updateAirspeed(_airspeed_sample_delayed, _aid_src_airspeed);
|
||||||
|
|
||||||
|
|||||||
@@ -174,10 +174,6 @@ void Ekf::controlFusionModes(const imuSample &imu_delayed)
|
|||||||
_control_status.flags.rng_kin_consistent = _rng_consistency_check.isKinematicallyConsistent();
|
_control_status.flags.rng_kin_consistent = _rng_consistency_check.isKinematicallyConsistent();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_airspeed_buffer) {
|
|
||||||
_tas_data_ready = _airspeed_buffer->pop_first_older_than(imu_delayed.time_us, &_airspeed_sample_delayed);
|
|
||||||
}
|
|
||||||
|
|
||||||
// run EKF-GSF yaw estimator once per imu_delayed update after all main EKF data samples available
|
// run EKF-GSF yaw estimator once per imu_delayed update after all main EKF data samples available
|
||||||
runYawEKFGSF(imu_delayed);
|
runYawEKFGSF(imu_delayed);
|
||||||
|
|
||||||
@@ -185,7 +181,7 @@ void Ekf::controlFusionModes(const imuSample &imu_delayed)
|
|||||||
controlMagFusion();
|
controlMagFusion();
|
||||||
controlOpticalFlowFusion(imu_delayed);
|
controlOpticalFlowFusion(imu_delayed);
|
||||||
controlGpsFusion();
|
controlGpsFusion();
|
||||||
controlAirDataFusion();
|
controlAirDataFusion(imu_delayed);
|
||||||
controlBetaFusion(imu_delayed);
|
controlBetaFusion(imu_delayed);
|
||||||
controlDragFusion();
|
controlDragFusion();
|
||||||
controlHeightFusion(imu_delayed);
|
controlHeightFusion(imu_delayed);
|
||||||
|
|||||||
@@ -887,7 +887,7 @@ private:
|
|||||||
void run3DMagAndDeclFusions(const Vector3f &mag);
|
void run3DMagAndDeclFusions(const Vector3f &mag);
|
||||||
|
|
||||||
// control fusion of air data observations
|
// control fusion of air data observations
|
||||||
void controlAirDataFusion();
|
void controlAirDataFusion(const imuSample &imu_delayed);
|
||||||
|
|
||||||
// control fusion of synthetic sideslip observations
|
// control fusion of synthetic sideslip observations
|
||||||
void controlBetaFusion(const imuSample &imu_delayed);
|
void controlBetaFusion(const imuSample &imu_delayed);
|
||||||
|
|||||||
Reference in New Issue
Block a user