mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-07-26 16:28:06 +08:00
docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
This commit is contained in:
@@ -172,7 +172,7 @@ Some of the most useful ones are listed below.
|
||||
| <a id="PLD_MOVING_T_MAX"></a>[PLD_MOVING_T_MAX](../advanced_config/parameter_reference.md#PLD_MOVING_T_MAX) | Maximum moving-target prediction time for the precision landing setpoint. |
|
||||
| <a id="PLD_BTOUT"></a>[PLD_BTOUT](../advanced_config/parameter_reference.md#PLD_BTOUT) | Landing Target Timeout, after which the target is assumed lost. Default is 5 seconds. |
|
||||
| <a id="PLD_FAPPR_ALT"></a>[PLD_FAPPR_ALT](../advanced_config/parameter_reference.md#PLD_FAPPR_ALT) | Final approach altitude. Default is 0.1 metres. |
|
||||
| <a id="PLD_MAX_SRCH"></a>[PLD_MAX_SRCH](../advanced_config/parameter_reference.md#PLD_MAX_SRCH) | Maximum number of search attempts in a required landing. |
|
||||
| <a id="PLD_MAX_SRCH"></a>[PLD_MAX_SRCH](../advanced_config/parameter_reference.md#PLD_MAX_SRCH) | Maximum number of search attempts in a required landing. |
|
||||
| <a id="PLD_YAW_EN"></a>[PLD_YAW_EN](../advanced_config/parameter_reference.md#PLD_YAW_EN) | Enable yaw alignment during precision landing when target orientation is available. |
|
||||
| <a id="RTL_PLD_MD"></a>[RTL_PLD_MD](../advanced_config/parameter_reference.md#RTL_PLD_MD) | RTL precision land mode. `0`: disabled, `1`: [Opportunistic](#opportunistic-mode), `2`: [Required](#required-mode). |
|
||||
|
||||
|
||||
@@ -377,7 +377,7 @@ Enabled sensors are defined by the [VTE_AID_MASK](#sensor-fusion-selection) bitm
|
||||
| ---------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Target GNSS position | [`target_gnss`](../msg_docs/TargetGnss.md) | $z = r + b$ once the bias is observable, otherwise $z = r$ | The vehicle GNSS sample is interpolated to the target timestamp using the vehicle velocity so the two receivers share a common epoch. Requires [VTE_AID_MASK](../advanced_config/parameter_reference.md#VTE_AID_MASK) bit 0. Before bias activation, this source is held back if the estimator is already vision-referenced. |
|
||||
| Mission landing waypoint | `navigator_mission_item` with validated `position_setpoint_triplet` fallback | $z = r$ | Provides a fallback absolute reference when target GNSS is unavailable. At precision-land task start VTEST caches the logical landing waypoint published by Navigator and keeps using that cached point even after precland rewrites the live triplet. The triplet remains a fallback for modes that do not publish `navigator_mission_item`. Enable [VTE_AID_MASK](../advanced_config/parameter_reference.md#VTE_AID_MASK) bit 3 and avoid combining it with target GNSS because only one GNSS bias can be estimated. Before bias activation, this source is held back if the estimator is already vision-referenced. |
|
||||
| Vision pose | [`fiducial_marker_pos_report`](../msg_docs/FiducialMarkerPosReport.md) | $z = r$ after rotating the measurement (`rel_pos`) into NED using `q` | Uses the message variances, lower-bounded by [VTE_EVP_NOISE](../advanced_config/parameter_reference.md#VTE_EVP_NOISE). Recent vision fusions are required for EKF aiding. During the initial GNSS/vision bias averaging phase, valid vision samples update the bias low-pass filter but are not fused into the position state yet. This averaging phase only exists when GNSS became the active reference first. |
|
||||
| Vision pose | [`fiducial_marker_pos_report`](../msg_docs/FiducialMarkerPosReport.md) | $z = r$ after rotating the measurement (`rel_pos`) into NED using `q` | Uses the message variances, lower-bounded by [VTE_EVP_NOISE](../advanced_config/parameter_reference.md#VTE_EVP_NOISE). Recent vision fusions are required for EKF aiding. During the initial GNSS/vision bias averaging phase, valid vision samples update the bias low-pass filter but are not fused into the position state yet. This averaging phase only exists when GNSS became the active reference first. |
|
||||
| Vehicle GNSS velocity | `sensor_gps` | $z = v^{uav}$ | Removes rotation-induced velocity using `vehicle_gps_position.antenna_offset_{x,y,z}`, which are populated from the vehicle GPS antenna offset parameters (`SENS_GPS0_OFF*`). Enable [VTE_AID_MASK](../advanced_config/parameter_reference.md#VTE_AID_MASK) bit 1. |
|
||||
| Target GNSS velocity (moving mode) | `target_gnss` | $z = v^{t}$ | Only used by the experimental [Moving-target mode](../advanced_features/vision_target_estimator_advanced.md#moving-target-mode-experimental). |
|
||||
| Vision yaw | [`fiducial_marker_yaw_report`](../msg_docs/FiducialMarkerYawReport.md) | $z = \psi$ | Only source used by the orientation filter. Requires [VTE_YAW_EN](../advanced_config/parameter_reference.md#VTE_YAW_EN) and [VTE_AID_MASK](../advanced_config/parameter_reference.md#VTE_AID_MASK) bit 2. Variance is taken from the message and lower-bounded by [VTE_EVA_NOISE](../advanced_config/parameter_reference.md#VTE_EVA_NOISE). |
|
||||
|
||||
@@ -117,8 +117,8 @@ $$
|
||||
R_{\text{eff}} = \max\bigl(R_{\text{reported}},\ \text{VTE\_*\_NOISE}^2\bigr).
|
||||
$$
|
||||
|
||||
| Parameter | Units | Default | Applies to |
|
||||
| ------------------------------------------------------------------------------ | ----- | ------- | ---------------------------------- |
|
||||
| Parameter | Units | Default | Applies to |
|
||||
| ---------------------------------------------------------------------------- | ----- | ------- | ---------------------------------- |
|
||||
| [VTE_EVP_NOISE](../advanced_config/parameter_reference.md#VTE_EVP_NOISE) | m | 0.10 | Vision relative position |
|
||||
| [VTE_EVA_NOISE](../advanced_config/parameter_reference.md#VTE_EVA_NOISE) | rad | 0.07 | Vision yaw |
|
||||
| [VTE_GPS_P_NOISE](../advanced_config/parameter_reference.md#VTE_GPS_P_NOISE) | m | 0.50 | GNSS position (target and mission) |
|
||||
@@ -143,8 +143,8 @@ All process-noise parameters are continuous-time **power spectral densities** (P
|
||||
A PSD describes the strength of a continuous white-noise process: it is the variance the noise injects per second into the state it directly drives, with units chosen so that `PSD × time` is the variance of that state.
|
||||
See [Spectral density (Wikipedia)](https://en.wikipedia.org/wiki/Spectral_density) for background.
|
||||
|
||||
| Parameter | Drives directly | Unit | What it represents |
|
||||
| ------------------------------------------------------------------------------ | ------------------- | ----------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| Parameter | Drives directly | Unit | What it represents |
|
||||
| ---------------------------------------------------------------------------- | ------------------- | ----------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| [VTE_BIAS_UNC](../advanced_config/parameter_reference.md#VTE_BIAS_UNC) | `bias` (m) | $m^2/s$ | PSD of the bias random walk |
|
||||
| [VTE_ACC_D_UNC](../advanced_config/parameter_reference.md#VTE_ACC_D_UNC) | `vel_uav` (m/s) | $m^2/s^3$ | PSD of white acceleration noise on the UAV acceleration input |
|
||||
| [VTE_YAW_ACC_UNC](../advanced_config/parameter_reference.md#VTE_YAW_ACC_UNC) | `yaw_rate` (rad/s) | $rad^2/s^3$ | PSD of white yaw-acceleration noise |
|
||||
@@ -651,15 +651,15 @@ When the debug bit is set the estimator always runs, making it ideal for bench t
|
||||
Enable **debug prints** (`PX4_DEBUG`).
|
||||
:::
|
||||
|
||||
| Symptom | Likely cause | Remedy |
|
||||
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Vehicle misses the pad or ignores target yaw | Mission land waypoint not set to precision mode or yaw alignment disabled | In QGroundControl set the land waypoint `Precision landing` field (or `MAV_CMD_NAV_LAND` `param2`) to Opportunistic/Required as described in [Precision landing missions](../advanced_features/precland.md#mission), and enable [PLD_YAW_EN](../advanced_config/parameter_reference.md#PLD_YAW_EN). In logs verify that `trajectory_setpoint.x/y` converge to `landing_target_pose.x_abs/y_abs` and that `trajectory_setpoint.yaw` follows `vte_orientation.yaw`. |
|
||||
| Symptom | Likely cause | Remedy |
|
||||
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Vehicle misses the pad or ignores target yaw | Mission land waypoint not set to precision mode or yaw alignment disabled | In QGroundControl set the land waypoint `Precision landing` field (or `MAV_CMD_NAV_LAND` `param2`) to Opportunistic/Required as described in [Precision landing missions](../advanced_features/precland.md#mission), and enable [PLD_YAW_EN](../advanced_config/parameter_reference.md#PLD_YAW_EN). In logs verify that `trajectory_setpoint.x/y` converge to `landing_target_pose.x_abs/y_abs` and that `trajectory_setpoint.yaw` follows `vte_orientation.yaw`. |
|
||||
| Frequent innovation rejections | Incorrect noise floors, miscalibrated measurement variance, or timestamp skew | The NIS gate uses `test_ratio = innov^2 / S` with `S = H P H^T + R`, where `R` is the observation variance. If `R` is under-reported (measurement noise floor set too low), even small innovations exceed the gate and healthy data is rejected; if `R` is over-reported, even corrupted samples pass the gate and pollute the state. Read `fusion_status` to find which branch fires. `STATUS_REJECT_NIS` points at the noise floors and the [VTE_POS_NIS_THRE](../advanced_config/parameter_reference.md#VTE_POS_NIS_THRE) / [VTE_YAW_NIS_THRE](../advanced_config/parameter_reference.md#VTE_YAW_NIS_THRE) thresholds: for vision raise [VTE_EVP_NOISE](../advanced_config/parameter_reference.md#VTE_EVP_NOISE) or [VTE_EVA_NOISE](../advanced_config/parameter_reference.md#VTE_EVA_NOISE), for GNSS check [VTE_GPS_P_NOISE](../advanced_config/parameter_reference.md#VTE_GPS_P_NOISE) and [VTE_GPS_V_NOISE](../advanced_config/parameter_reference.md#VTE_GPS_V_NOISE), and compare with the `observation_variance` field on the corresponding `vte_aid_*` topic. `STATUS_REJECT_TOO_OLD` / `STATUS_REJECT_TOO_NEW` point at latency or time-sync; `time_since_meas_ms` on the same `vte_aid_*` topic gives the latency directly. |
|
||||
| Bias does not converge | No secondary position source, or the GNSS/vision agreement check is too strict for the available vision quality | Ensure vision fusion is enabled so the filter can observe GNSS bias. If GNSS is active before vision and the bias stays near zero, inspect the first GNSS/vision agreement window and tune [VTE_BIA_AVG_THR](../advanced_config/parameter_reference.md#VTE_BIA_AVG_THR) / [VTE_BIA_AVG_TOUT](../advanced_config/parameter_reference.md#VTE_BIA_AVG_TOUT). If vision is active first, expect the bias to appear on the first overlapping GNSS+vision sample rather than after an averaging phase. |
|
||||
| Orientation estimate drifts | Missing yaw measurements or low NIS gate | Enable [VTE_YAW_EN](../advanced_config/parameter_reference.md#VTE_YAW_EN) and ensure vision yaw data is present. Increase [VTE_YAW_NIS_THRE](../advanced_config/parameter_reference.md#VTE_YAW_NIS_THRE) if legitimate data is being rejected. |
|
||||
| `rel_pos_valid` toggles during descent | Position measurements arriving too slowly | Increase [VTE_TGT_TOUT](../advanced_config/parameter_reference.md#VTE_TGT_TOUT) or improve the measurement rate so updates remain inside [VTE_M_REC_TOUT](../advanced_config/parameter_reference.md#VTE_M_REC_TOUT). |
|
||||
| No `vte_aid_*` topics in the log | Sensor not publishing or fusion mask disabled | Use `listener` on the raw sensor topic, confirm [VTE_AID_MASK](../advanced_config/parameter_reference.md#VTE_AID_MASK) includes the relevant bit, and rerun the test with the debug task active. |
|
||||
| Estimator never starts | Task mask disabled or mission not requesting precision landing | Set [VTE_TASK_MASK](../advanced_config/parameter_reference.md#VTE_TASK_MASK)=1 (or 3 for continuous debugging) and verify that new measurements arrive with valid timestamps. |
|
||||
| Bias does not converge | No secondary position source, or the GNSS/vision agreement check is too strict for the available vision quality | Ensure vision fusion is enabled so the filter can observe GNSS bias. If GNSS is active before vision and the bias stays near zero, inspect the first GNSS/vision agreement window and tune [VTE_BIA_AVG_THR](../advanced_config/parameter_reference.md#VTE_BIA_AVG_THR) / [VTE_BIA_AVG_TOUT](../advanced_config/parameter_reference.md#VTE_BIA_AVG_TOUT). If vision is active first, expect the bias to appear on the first overlapping GNSS+vision sample rather than after an averaging phase. |
|
||||
| Orientation estimate drifts | Missing yaw measurements or low NIS gate | Enable [VTE_YAW_EN](../advanced_config/parameter_reference.md#VTE_YAW_EN) and ensure vision yaw data is present. Increase [VTE_YAW_NIS_THRE](../advanced_config/parameter_reference.md#VTE_YAW_NIS_THRE) if legitimate data is being rejected. |
|
||||
| `rel_pos_valid` toggles during descent | Position measurements arriving too slowly | Increase [VTE_TGT_TOUT](../advanced_config/parameter_reference.md#VTE_TGT_TOUT) or improve the measurement rate so updates remain inside [VTE_M_REC_TOUT](../advanced_config/parameter_reference.md#VTE_M_REC_TOUT). |
|
||||
| No `vte_aid_*` topics in the log | Sensor not publishing or fusion mask disabled | Use `listener` on the raw sensor topic, confirm [VTE_AID_MASK](../advanced_config/parameter_reference.md#VTE_AID_MASK) includes the relevant bit, and rerun the test with the debug task active. |
|
||||
| Estimator never starts | Task mask disabled or mission not requesting precision landing | Set [VTE_TASK_MASK](../advanced_config/parameter_reference.md#VTE_TASK_MASK)=1 (or 3 for continuous debugging) and verify that new measurements arrive with valid timestamps. |
|
||||
|
||||
### Plot Examples
|
||||
|
||||
@@ -683,7 +683,7 @@ PlotJuggler (or the PX4 DevTools log viewer) is the easiest way to inspect the e
|
||||
- Green (`#1ac938`): filter state output (`vte_position.*`)
|
||||
- Purple (`#bd22a0`): controller-facing pose (`landing_target_pose.*`)
|
||||
- Orange (`#ec8414`): EKF reference (`vehicle_local_position.*`)
|
||||
:::
|
||||
:::
|
||||
|
||||
#### Nominal Behaviour
|
||||
|
||||
|
||||
Reference in New Issue
Block a user