ekf2: send airspeed data to ekf backend regardless of sign

On ground the airspeed can sometimes be slightly negative but the ekf
should still know that airspeed data is flowing regularly
This commit is contained in:
bresch
2024-08-13 14:37:52 +02:00
committed by Silvan Fuhrer
parent a0d22a4d21
commit aad607e0dd
+8 -3
View File
@@ -2076,14 +2076,19 @@ void EKF2::UpdateAirspeedSample(ekf2_timestamps_s &ekf2_timestamps)
if (_airspeed_validated_sub.update(&airspeed_validated)) {
if (PX4_ISFINITE(airspeed_validated.true_airspeed_m_s)
&& PX4_ISFINITE(airspeed_validated.calibrated_airspeed_m_s)
&& (airspeed_validated.calibrated_airspeed_m_s > 0.f)
&& (airspeed_validated.selected_airspeed_index > 0)
) {
float cas2tas = 1.f;
if (PX4_ISFINITE(airspeed_validated.calibrated_airspeed_m_s)
&& (airspeed_validated.calibrated_airspeed_m_s > FLT_EPSILON)) {
cas2tas = airspeed_validated.true_airspeed_m_s / airspeed_validated.calibrated_airspeed_m_s;
}
airspeedSample airspeed_sample {
.time_us = airspeed_validated.timestamp,
.true_airspeed = airspeed_validated.true_airspeed_m_s,
.eas2tas = airspeed_validated.true_airspeed_m_s / airspeed_validated.calibrated_airspeed_m_s,
.eas2tas = cas2tas,
};
_ekf.setAirspeedData(airspeed_sample);
}