Skip to content

Commit 43551b7

Browse files
committed
Address review comments
1 parent e1fdb62 commit 43551b7

File tree

3 files changed

+28
-18
lines changed

3 files changed

+28
-18
lines changed

docs/en/advanced/airspeed_validation.md

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,24 @@ By default, the [Missing Data](#missing-data-check), [Data Stuck](#data-stuck-ch
99
You can configure which checks are active using the [ASPD_DO_CHECKS](#aspd_do_checks_table) parameter.
1010
:::
1111

12+
## TAS Scale Considerations
13+
14+
Airspeed conversions in PX4 typically follow this path:
15+
IAS (Indicated Airspeed) → CAS (Calibrated Airspeed) → TAS (True Airspeed)
16+
17+
- IAS to CAS accounts for sensor-specific errors and installation effects (e.g., pitot-static inaccuracies).
18+
- CAS to TAS accounts for environmental effects such as air pressure and temperature (i.e., altitude and atmospheric conditions).
19+
20+
PX4 estimates the IAS to CAS scale (referred to as the CAS scale) during flight using GNSS ground speed and wind estimation. To compute the final TAS, standard environment conversions are applied(CAS → TAS).
21+
22+
This CAS scaling plays an important role in keeping the [innovation check](#innovation-check) reliable, since a well-estimated CAS is key to spotting inconsistencies between measured and predicted airspeed. If the estimated CAS scale is innacurate, it can mask real airspeed faults or trigger false positives.
23+
24+
If you observe that the CAS scale estimate is consistently off, or if it is converging too slowly, you can manually set it using [ASPD_SCALE_n](#aspd_scale_n_table) (where `n` is the sensor number). [ASPD_SCALE_APPLY](#aspd_scale_apply_table) can be used to configure when/if the estimated scale is applied.
25+
26+
::: info
27+
For a quick manual CAS scale estimate, compare groundspeed minus windspeed (from the [VehicleLocalPosition](../msg_docs/VehicleLocalPosition.md) and [Wind](../msg_docs/Wind.md) messages, respectively) to indicated airspeed values (in the [Airspeed](../msg_docs/Airspeed.md) message). The ratio of indicated airspeed to groundspeed minus windspeed can provide a reasonable starting estimate for [ASPD_SCALE_n](#aspd_scale_n_table).
28+
:::
29+
1230
## Validation Checks
1331

1432
These checks are primarily designed to validate incoming airspeed sensor data and detect potential sensor failures during flight. However, they may also trigger due to configuration issues, estimator inaccuracies, or specific flight conditions that lead to physically inconsistent measurements.
@@ -18,8 +36,7 @@ The following overview summarizes each check, common failure causes, and relevan
1836
### Missing Data Check
1937

2038
::: info
21-
This check is independent of the other validation checks and cannot be disabled or configured.
22-
It must pass for any of the other checks to run.
39+
This check is independent of the other validation checks. It must pass for any of the other checks to run.
2340
:::
2441

2542
Triggers when no new airspeed data has been received for more than 1 second.
@@ -34,7 +51,7 @@ Triggers when the measured indicated airspeed (IAS) has not changed for more tha
3451

3552
Common failure causes:
3653

37-
- Faulty or blocked airspeed sensor (pitot tube).
54+
- Airspeed sensor driver issues.
3855
- Very low sensor resolution.
3956

4057
### Innovation Check
@@ -48,13 +65,16 @@ Common failure causes:
4865

4966
- Faulty or blocked airspeed sensor (_sensor fault_)
5067
- Poor sensor placement on vehicle (_configuration issue_)
51-
- Poor GNSS data (_estimator innacuracy_)
52-
- Inaccurate wind estimate (_estimator innacuracy_)
68+
- Badly estimated CAS scale (or convergence of estimate too slow) (_estimator innacuracy_)
5369

5470
Relevant parameters: [ASPD_FS_INNOV](#aspd_fs_innov_table), [ASPD_FS_INTEG](#aspd_fs_integ_table)
5571

5672
### Load Factor Check
5773

74+
::: info
75+
This check is disabled by default because it often triggers during manual landings, where the vehicle naturally slows down and may momentarily "stall" near touchdown. Since the system cannot reliably distinguish between a real in-flight stall and this expected behavior, false positives are common.
76+
:::
77+
5878
Checks whether the measured airspeed is physically consistent with the aircraft's current load factor.
5979
If the measured airspeed is too low to plausibly generate the required lift, the sensor reading is considered invalid.
6080

@@ -63,10 +83,10 @@ This check helps detect cases where the airspeed sensor may be under-reading dur
6383
Common failure causes:
6484

6585
- Faulty or blocked airspeed sensor (_sensor fault_)
86+
- The vehicle is stalling (_flight condition_)
6687
- Uncalibrated airspeed sensor (_configuration issue_)
6788
- Poor sensor placement on vehicle (_configuration issue_)
6889
- Incorrect stall speed configuration (_configuration issue_)
69-
- The vehicle is stalling (_flight condition_)
7090

7191
Relevant parameters: [FW_AIRSPD_STALL](#fw_airspd_stall_table)
7292

@@ -88,16 +108,6 @@ Common failure causes:
88108

89109
Relevant parameters: [ASPD_FP_T_WINDOW](#aspd_fp_t_window_table), [FW_PSP_OFF](#fw_psp_off_table), [FW_THR_TRIM](#fw_thr_trim_table), [FW_THR_MAX](#fw_thr_max_table)
90110

91-
## TAS Scale Considerations
92-
93-
The True Airspeed (TAS) scale is a dynamic correction factor used to account for discrepancies between measured Indicated Airspeed (IAS) and the actual airspeed an aircraft experiences in flight.
94-
PX4 estimates this TAS scale using GNSS ground speed and wind estimation during fixed-wing flight.
95-
96-
This scaling plays an important role in keeping the [innovation check](#innovation-check) reliable, since a well-estimated TAS is key to spotting inconsistencies between measured and predicted airspeed.
97-
If the TAS scale is incorrect, it can mask real airspeed faults or trigger false positives.
98-
99-
If the estimated scale appears consistently off, you can override it by setting a fixed value using [ASPD_SCALE_n](#aspd_scale_n_table) (where `n` is the sensor number), and disable the estimated scale with [ASPD_SCALE_APPLY](#aspd_scale_apply_table).
100-
101111
## Additional Configuration
102112

103113
To configure the delay before PX4 starts or stops using airspeed sensor data after it passes or fails validation, use:

msg/versioned/Wind.msg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Wind estimate (from EKF)
1+
# Wind estimate (from EKF2)
22
#
33
# Contains the system-wide estimate of horizontal wind velocity and its variance.
44
# Published by the navigation filter (EKF2) for use by other flight modules and libraries.

src/modules/airspeed_selector/airspeed_selector_params.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ PARAM_DEFINE_INT32(ASPD_PRIMARY, 1);
149149
*
150150
* Controls which checks are run to check airspeed data for validity. Only applied if ASPD_PRIMARY > 0.
151151
*
152-
* Note: The missing data check (bit 0) is always active and cannot be disabled.
152+
* Note: The missing data check (bit 0) is implicitly always enabled when ASPD_DO_CHECKS > 0, even if bit 0 is not explicitly set.
153153
*
154154
* @min 0
155155
* @max 31

0 commit comments

Comments
 (0)