You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/zh/advanced_config/airspeed_validation.md
+3-26Lines changed: 3 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,36 +10,13 @@ By default, the [Missing Data](#missing-data-check), [Data Stuck](#data-stuck-ch
10
10
You can configure which checks are active using the [ASPD_DO_CHECKS](#aspd_do_checks_table) parameter.
11
11
:::
12
12
13
-
## Airspeed in PX4
14
-
15
-
PX4 handles multiple types of airspeed:
16
-
17
-
-**IAS (Indicated Airspeed):** The raw measurement from the airspeed sensor, directly influenced by sensor characteristics and installation effects (e.g., pitot-static errors).
18
-
19
-
-**CAS (Calibrated Airspeed):** IAS corrected for sensor-specific and installation-related errors.
20
-
21
-
-**EAS (Equivalent Airspeed):**_Not explicitly handled by PX4_ - Calibrated airspeed corrected for compressibility effects.
22
-
While PX4 does not currently model EAS separately, this correction is negligible at low speeds and altitudes, so EAS is treated as equivalent to CAS for simplicity.
23
-
24
-
-**TAS (True Airspeed):** CAS adjusted for atmospheric effects such as air pressure and temperature (i.e., altitude and atmospheric conditions).
25
-
26
-
The standard conversion chain used in PX4 is: `IAS → CAS (= EAS) → TAS`.
27
-
28
13
## CAS Scale Estimation
29
14
30
-
PX4 estimates the IAS to CAS scale (referred to as the CAS scale) during flight using GNSS ground speed and wind estimation.
31
-
To compute the final TAS, standard environment conversions are applied (CAS → TAS).
32
-
33
-
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.
15
+
Calibrated Airspeed (CAS) is the measured Indicated Airspeed (IAS) scaled to correct for sensor-specific and installation-related errors.
16
+
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.
34
17
If the estimated CAS scale is inaccurate, it can mask real airspeed faults or trigger false positives.
35
18
36
-
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).
37
-
[ASPD_SCALE_APPLY](#aspd_scale_apply_table) can be used to configure when/if the estimated scale is applied.
38
-
39
-
:::info
40
-
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).
41
-
The ratio of indicated airspeed to groundspeed minus windspeed can provide a reasonable starting estimate for [ASPD_SCALE_n](#aspd_scale_n_table).
42
-
:::
19
+
If you observe that the CAS scale estimate is consistently off, or if it is converging too slowly, follow the steps outlined in [Airspeed Scale Handling](../config_fw/airspeed_scale_handling.md#recommended-first-flight-process).
Copy file name to clipboardExpand all lines: docs/zh/advanced_config/prearm_arm_disarm.md
+6-8Lines changed: 6 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,19 +55,17 @@ RC controllers will use different sticks for throttle and yaw [based on their mo
55
55
-_Arm:_ Left-stick to right, right-stick to bottom.
56
56
-_Disarm:_ Left-stick to left, right-stick to the bottom.
57
57
58
-
The required hold time can be configured using [COM_RC_ARM_HYST](#COM_RC_ARM_HYST).
59
58
Note that by default ([COM_DISARM_MAN](#COM_DISARM_MAN)) you can also disarm in flight using gestures/buttons: you may choose to disable this to avoid accidental disarming.
| <aid="COM_DISARM_MAN"></a>[COM_DISARM_MAN](../advanced_config/parameter_reference.md#COM_DISARM_MAN)| Enable disarming in flight via switch/stick/button in MC manual thrust modes. `0`: Disabled, `1`: Enabled (default). |
65
-
| <aid="COM_RC_ARM_HYST"></a>[COM_RC_ARM_HYST](../advanced_config/parameter_reference.md#COM_RC_ARM_HYST)| Time that RC stick must be held in arm/disarm position before arming/disarming occurs (default: `1` second). |
| <aid="COM_DISARM_MAN"></a>[COM_DISARM_MAN](../advanced_config/parameter_reference.md#COM_DISARM_MAN)| Enable disarming in flight via switch/stick/button in MC manual thrust modes. `0`: Disabled, `1`: Enabled (default). |
66
64
67
65
## Arming Button/Switch {#arm_disarm_switch}
68
66
69
67
An _arming button_ or "momentary switch" can be configured to trigger arm/disarm _instead_ of [gesture-based arming](#arm_disarm_gestures) (setting an arming switch disables arming gestures).
70
-
The button should be held down for ([nominally](#COM_RC_ARM_HYST)) one second to arm (when disarmed) or disarm (when armed).
68
+
The button should be held down for one second to arm (when disarmed) or disarm (when armed).
71
69
72
70
A two-position switch can also be used for arming/disarming, where the respective arm/disarm commands are sent on switch _transitions_.
73
71
@@ -80,7 +78,7 @@ The switch or button is assigned (and enabled) using [RC_MAP_ARM_SW](#RC_MAP_ARM
| <aid="RC_MAP_ARM_SW"></a>[RC_MAP_ARM_SW](../advanced_config/parameter_reference.md#RC_MAP_ARM_SW)| RC arm switch channel (default: 0 - unassigned). If defined, the specified RC channel (button/switch) is used for arming instead of a stick gesture. <br>**Note:**<br>- This setting _disables the stick gesture_!<br>- This setting applies to RC controllers. It does not apply to Joystick controllers that are connected via _QGroundControl_. |
83
-
| <aid="COM_ARM_SWISBTN"></a>[COM_ARM_SWISBTN](../advanced_config/parameter_reference.md#COM_ARM_SWISBTN)| Arm switch is a momentary button. <br>- `0`: Arm switch is a 2-position switch where arm/disarm commands are sent on switch transitions.<br>-`1`: Arm switch is a button or momentary button where the arm/disarm command ae sent after holding down button for set time ([COM_RC_ARM_HYST](#COM_RC_ARM_HYST)).|
81
+
| <aid="COM_ARM_SWISBTN"></a>[COM_ARM_SWISBTN](../advanced_config/parameter_reference.md#COM_ARM_SWISBTN)| Arm switch is a momentary button. <br>- `0`: Arm switch is a 2-position switch where arm/disarm commands are sent on switch transitions.<br>-`1`: Arm switch is a momentary button where the arm/disarm command is sent after holding down the button for one second. |
84
82
85
83
:::info
86
84
The switch can also be set as part of _QGroundControl_[Flight Mode](../config/flight_mode.md) configuration.
Copy file name to clipboardExpand all lines: docs/zh/advanced_config/tuning_the_ecl_ekf.md
+54Lines changed: 54 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -350,6 +350,60 @@ The `hpos_drift_rate`, `vpos_drift_rate` and `hspd` are calculated over a period
350
350
Note that `ekf2_gps_drift` is not logged!
351
351
:::
352
352
353
+
#### GNSS Fault Detection
354
+
355
+
PX4's GNSS fault detection protects against malicious or erroneous GNSS signals using selective fusion control based on measurement validation.
356
+
357
+
The fault detection logic depends on the GPS mode, and also operates differently for horizontal position and altitude measurements.
358
+
The mode is set using the [EKF2_GPS_MODE](../advanced_config/parameter_reference.md#EKF2_GPS_MODE) parameter:
359
+
360
+
-**Automatic (`0`)** (Default): Assumes that GNSS is generally reliable and is likely to be recovered.
361
+
EKF2 resets on fusion timeouts if no other source of position is available.
362
+
-**Dead-reckoning (`1`)**: Assumes that GNSS might be lost indefinitely, so resets should be avoided while we have other estimates of position data.
363
+
EKF2 may reset if no other sources of position or velocity are available.
364
+
If GNSS altitude OR horizontal position data drifts, the system disables fusion of both measurements simultaneously (even if one would still pass validation) and avoids performing resets.
365
+
366
+
##### Detection Logic
367
+
368
+
Horizontal Position:
369
+
370
+
-**Automatic mode**: Horizontal position resets to GNSS data if no other horizontal position source is currently being fused (e.g., Auxiliary Global Position - AGP).
371
+
-**Dead-reckoning mode**: Horizontal position resets to GNSS data only if no other horizontal position OR velocity source is currently being fused (e.g., AGP, airspeed, optical flow).
372
+
373
+
Altitude:
374
+
375
+
- The altitude logic is more complex due to the height reference sensor ([EKF2_HGT_REF](../advanced_config/parameter_reference.md#EKF2_HGT_REF)) parameter, which is typically set to GNSS or baro in GNSS-denied scenarios.
376
+
- If height reference is set to baro, GNSS-based height resets are prevented (except when baro fusion fails completely and height reference automatically switches to GNSS).
377
+
- When height reference is set to GNSS:
378
+
-**Automatic mode**: Resets occur on drifting GNSS altitude measurements.
379
+
-**Dead-reckoning mode**: When validation starts failing, the system prevents GNSS altitude resets and labels the GNSS data as faulty.
380
+
381
+
##### Faulty GNSS Data During Boot
382
+
383
+
The system cannot automatically detect faulty GNSS data during vehicle boot as no baseline comparison exists.
384
+
385
+
If GNSS fusion is enabled ([EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL)), operators will observe incorrect positions on maps and should disable GNSS fusion, then manually set the correct position via ground control station.
386
+
The global position gets corrected, and if [SENS_BAR_AUTOCAL](../advanced_config/parameter_reference.md#SENS_BAR_AUTOCAL) was enabled, baro offsets are automatically adjusted (through bias correction, not parameter changes).
387
+
388
+
##### Enabling GNSS Fusion Mid-Flight
389
+
390
+
With Faulty GNSS Data:
391
+
392
+
-**Automatic mode**: Vehicle will reset to faulty position - potentially dangerous.
393
+
-**Dead-reckoning mode**: Large measurement differences cause GNSS rejection and fault detection activation.
394
+
395
+
With Valid GNSS Data:
396
+
397
+
-**Automatic mode**: Vehicle will reset to GNSS measurements.
398
+
-**Dead-reckoning mode**: If estimated position/altitude is close enough to measurements, fusion resumes; if too far apart, data gets labeled as faulty.
399
+
400
+
##### 备注
401
+
402
+
-**Dual Detection**: Horizontal and altitude checks run completely separately but both lead to the same result when triggered - all GNSS fusion gets disabled.
403
+
-**Recovery**: Only the specific check that labeled data as invalid can re-enable fusion.
404
+
-**Alternative Sources**: Dead-reckoning mode provides enhanced protection by requiring absence of alternative navigation sources before allowing resets.
405
+
-**Boot Vulnerability**: Initial faulty GNSS data cannot be detected automatically; requires operator intervention and manual position correction.
406
+
353
407
### 测距仪
354
408
355
409
[Range finder](../sensor/rangefinders.md) distance to ground is used by a single state filter to estimate the vertical position of the terrain relative to the height datum.
0 commit comments