diff --git a/docs/uk/debug/failure_injection.md b/docs/uk/debug/failure_injection.md index 7470efe0c9a..5f1c4ea063d 100644 --- a/docs/uk/debug/failure_injection.md +++ b/docs/uk/debug/failure_injection.md @@ -26,7 +26,7 @@ A `—` means the module still accepts the command, but no consumer applies it i | `vio` | — | — | `off` | — | | `battery` | `off`, `wrong` | `off`, `wrong` | `off`, `wrong` | `off`, `wrong` | | `traffic` | `off` | `off` | `off` | `off` | -| `motor` | `off` | `off` | `off` | `off` | +| `motor` | `off`, `wrong` | `off`, `wrong` | `off`, `wrong` | `off`, `wrong` | | `esc` | `off`, `wrong` | `off`, `wrong` | `off`, `wrong` | `off`, `wrong` | | `can` | — | — | — | `off` | @@ -39,7 +39,7 @@ A `—` means the module still accepts the command, but no consumer applies it i - `airspeed off | stuck | wrong` on Gazebo (Gz): only injectable when airspeed is provided by the simulated-airspeed module ([SENS_EN_ARSPDSIM](../advanced_config/parameter_reference.md#SENS_EN_ARSPDSIM)); worlds that model an airspeed sensor directly are not injected. - `battery wrong` reports the remaining charge just below the [SYS_FAIL_BAT_LVL](../advanced_config/parameter_reference.md#SYS_FAIL_BAT_LVL) warning threshold to trigger the battery failsafe; `off` stops publishing the battery status entirely. - `traffic off` suppresses incoming reports and marks the ADS-B/FLARM link unhealthy. -- `motor off` also requires [CA_FAILURE_MODE](../advanced_config/parameter_reference.md#CA_FAILURE_MODE). +- `motor off` and `motor wrong` are the two motor failures, and both require [CA_FAILURE_MODE](../advanced_config/parameter_reference.md#CA_FAILURE_MODE). `motor off` is the _detected_ failure: the motor is reported as failed, so the control allocator removes it from the allocation and handles the opposite motor per `CA_FAILURE_MODE`. Only a single failed motor can be recovered from, so an instance mask naming several motors has no effect. `motor wrong` is the _undetected_ failure: the output is stopped without informing the allocator, which models a failure with no feedback path (such as PWM ESCs), and any number of motors can be addressed. - `esc off` reports the addressed ESC as offline and blanks its telemetry; `esc wrong` keeps it online but reports implausible telemetry (voltage and current at 10% of the real value, RPM 10x). ESCs are addressed by motor instance (the ESC's actuator function), so `-i 1` targets the ESC driving motor 1. - On hardware, ESC injection is applied only by the UAVCAN (DroneCAN) ESC driver; the other ESC drivers (DShot, Cyphal, VOXL, TAP ESC) publish their telemetry unmodified. - `can off` takes the addressed CAN bus offline entirely, so every node on it stops responding; the instance selects the bus. Only applied on fmu-v6x-class hardware. @@ -98,7 +98,7 @@ failure [-i ] [-m - `off`: Stop publishing - `stuck`: Constantly report the same value which _can_ happen on a malfunctioning sensor - `garbage`: Publish random noise. This looks like reading uninitialized memory - - `wrong`: Publish invalid values that still look reasonable/aren't "garbage" + - `wrong`: Publish invalid values that still look reasonable/aren't "garbage". For an actuator such as `motor` there is nothing to publish, so `wrong` means the motor stops without anything reporting it - `slow`: Publish at a reduced rate - `delayed`: Publish valid data with a significant delay - `intermittent`: Publish intermittently @@ -121,7 +121,7 @@ A failure can also be injected from an RC switch, without a console or telemetry - [SYS_FAIL_RC_MODE](../advanced_config/parameter_reference.md#SYS_FAIL_RC_MODE): the failure type (the `FAILURE_TYPE` value; e.g. `1` = off). - [SYS_FAIL_RC_INST](../advanced_config/parameter_reference.md#SYS_FAIL_RC_INST): the affected instances, as a bitmask (bit 0 = instance 1, e.g. `5` = instances 1 and 3; `0` = all instances). -While the selected aux switch is on the configured failure is injected; switching it back off clears the failure. The injection goes through the same path as the console/MAVLink commands, so for a motor it stops the motor exactly as `failure motor off` does (which also requires [CA_FAILURE_MODE](../advanced_config/parameter_reference.md#CA_FAILURE_MODE)). +While the selected aux switch is on the configured failure is injected; switching it back off clears the failure. The injection goes through the same path as the console/MAVLink commands, so for a motor it fails the motor exactly as `failure motor off` (`SYS_FAIL_RC_MODE` = `1`) or `failure motor wrong` (`SYS_FAIL_RC_MODE` = `4`) does, with the same [CA_FAILURE_MODE](../advanced_config/parameter_reference.md#CA_FAILURE_MODE) requirement. A `SYS_FAIL_RC_INST` mask addressing several motors only takes effect for `wrong`, the undetected failure. ## MAVSDK відлагоджувальний плагін @@ -147,16 +147,25 @@ To test the GPS failsafe by stopping GPS: ## Example: Motor -To stop a motor mid-flight without the system anticipating it or excluding it from allocation effectiveness: +To fail a motor mid-flight: 1. Enable the [SYS_FAILURE_EN](../advanced_config/parameter_reference.md#SYS_FAILURE_EN) parameter. 2. Enable [CA_FAILURE_MODE](../advanced_config/parameter_reference.md#CA_FAILURE_MODE) parameter to allow turning off motors. -3. Enter the following commands on the MAVLink console or SITL _pxh shell_: +3. Pick the failure type for the behavior you want to test: + - `off` — detected: the motor is flagged as failed and removed from control allocation, so the allocator compensates using the remaining motors (per `CA_FAILURE_MODE`). + Only one failed motor can be recovered from, so an instance mask naming several motors has no effect. + - `wrong` — undetected: the motor output is stopped without notifying the allocator, so its effectiveness is not excluded. + This models a failure with no feedback path, such as PWM ESCs. + Any number of motors can be addressed. +4. Enter the following commands on the MAVLink console or SITL _pxh shell_: ```sh - # Turn off first motor + # Detected failure: motor 1 is reported as failed and removed from the allocation failure motor off -i 1 + # Undetected failure: motor 1 stops, the allocator is not informed + failure motor wrong -i 1 + # Turn it back on failure motor ok -i 1 ``` diff --git a/docs/uk/msg_docs/FixedWingLateralGuidanceStatus.md b/docs/uk/msg_docs/FixedWingLateralGuidanceStatus.md index 899a40458ab..da87be2b86c 100644 --- a/docs/uk/msg_docs/FixedWingLateralGuidanceStatus.md +++ b/docs/uk/msg_docs/FixedWingLateralGuidanceStatus.md @@ -4,7 +4,7 @@ pageClass: is-wide-page # FixedWingLateralGuidanceStatus (UORB message) -Fixed Wing Lateral Guidance Status message. Published by fw_pos_control module to report the resultant lateral setpoints and NPFG debug outputs. +Fixed Wing Lateral Guidance Status message. Published by fw_mode_manager module to report the resultant lateral setpoints and NPFG debug outputs. **TOPICS:** fixed_wing_lateral_guidance_status @@ -32,7 +32,7 @@ Click here to see original file ```c # Fixed Wing Lateral Guidance Status message -# Published by fw_pos_control module to report the resultant lateral setpoints and NPFG debug outputs +# Published by fw_mode_manager module to report the resultant lateral setpoints and NPFG debug outputs uint64 timestamp # time since system start (microseconds) diff --git a/docs/uk/msg_docs/GeofenceStatus.md b/docs/uk/msg_docs/GeofenceStatus.md index c4cc80af276..cc1ffdc9699 100644 --- a/docs/uk/msg_docs/GeofenceStatus.md +++ b/docs/uk/msg_docs/GeofenceStatus.md @@ -20,6 +20,7 @@ pageClass: is-wide-page | ------------------------------------------------------------------------------------------- | ------- | -------- | ---- | | GF_STATUS_LOADING | `uint8` | 0 | | | GF_STATUS_READY | `uint8` | 1 | | +| GF_STATUS_FAILED | `uint8` | 2 | | ## Source Message @@ -36,6 +37,7 @@ uint8 status # Current geofence status uint8 GF_STATUS_LOADING = 0 uint8 GF_STATUS_READY = 1 +uint8 GF_STATUS_FAILED = 2 ``` ::: diff --git a/docs/uk/msg_docs/LongitudinalControlConfiguration.md b/docs/uk/msg_docs/LongitudinalControlConfiguration.md index f60e76837ad..6265559fd57 100644 --- a/docs/uk/msg_docs/LongitudinalControlConfiguration.md +++ b/docs/uk/msg_docs/LongitudinalControlConfiguration.md @@ -13,18 +13,18 @@ and configure the resultant setpoints. ## Fields -| Назва | Тип | Unit [Frame] | Range/Enum | Опис | -| ---------------------------------------------------------------------------------------------------------------------------------------- | --------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| timestamp | `uint64` | us | | Time since system start | -| pitch_min | `float32` | rad | [-pi : pi] | Defaults to FW_P_LIM_MIN if NAN. | -| pitch_max | `float32` | rad | [-pi : pi] | Defaults to FW_P_LIM_MAX if NAN. | -| throttle_min | `float32` | norm | [0 : 1] | Defaults to FW_THR_MIN if NAN. | -| throttle_max | `float32` | norm | [0 : 1] | Defaults to FW_THR_MAX if NAN. | -| climb_rate_target | `float32` | m/s | | Target climbrate to change altitude. Defaults to FW_T_CLIMB_MAX if NAN. Not used if height_rate is directly set in FixedWingLongitudinalSetpoint. | -| sink_rate_target | `float32` | m/s | | Target sinkrate to change altitude. Defaults to FW_T_SINK_MAX if NAN. Not used if height_rate is directly set in FixedWingLongitudinalSetpoint. | -| speed_weight | `float32` | | [0 : 2] | 0=pitch controls altitude only, 2=pitch controls airspeed only | -| enforce_low_height_condition | `bool` | | | If true, the altitude controller is configured with an alternative timeconstant for tighter altitude tracking | -| disable_underspeed_protection | `bool` | | | If true, underspeed handling is disabled in the altitude controller | +| Назва | Тип | Unit [Frame] | Range/Enum | Опис | +| ---------------------------------------------------------------------------------------------------------------------------------------- | --------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| timestamp | `uint64` | us | | Time since system start | +| pitch_min | `float32` | rad | [-pi : pi] | Defaults to FW_P_LIM_MIN if NAN. | +| pitch_max | `float32` | rad | [-pi : pi] | Defaults to FW_P_LIM_MAX if NAN. | +| throttle_min | `float32` | norm | [0 : 1] | Defaults to FW_THR_MIN if NAN. | +| throttle_max | `float32` | norm | [0 : 1] | Defaults to FW_THR_MAX if NAN. | +| climb_rate_target | `float32` | m/s | | Target climbrate to change altitude. Defaults to FW_T_CLMB_R_SP if NAN. Not used if height_rate is directly set in FixedWingLongitudinalSetpoint. | +| sink_rate_target | `float32` | m/s | | Target sinkrate to change altitude. Defaults to FW_T_SINK_R_SP if NAN. Not used if height_rate is directly set in FixedWingLongitudinalSetpoint. | +| speed_weight | `float32` | | [0 : 2] | 0=pitch controls altitude only, 2=pitch controls airspeed only | +| enforce_low_height_condition | `bool` | | | If true, the altitude controller is configured with an alternative timeconstant for tighter altitude tracking | +| disable_underspeed_protection | `bool` | | | If true, underspeed handling is disabled in the altitude controller | ## Constants @@ -53,8 +53,8 @@ float32 pitch_min # [rad] [@range -pi, pi] Defaults to FW_P_LIM_MIN if NAN. float32 pitch_max # [rad] [@range -pi, pi] Defaults to FW_P_LIM_MAX if NAN. float32 throttle_min # [norm] [@range 0,1] Defaults to FW_THR_MIN if NAN. float32 throttle_max # [norm] [@range 0,1] Defaults to FW_THR_MAX if NAN. -float32 climb_rate_target # [m/s] Target climbrate to change altitude. Defaults to FW_T_CLIMB_MAX if NAN. Not used if height_rate is directly set in FixedWingLongitudinalSetpoint. -float32 sink_rate_target # [m/s] Target sinkrate to change altitude. Defaults to FW_T_SINK_MAX if NAN. Not used if height_rate is directly set in FixedWingLongitudinalSetpoint. +float32 climb_rate_target # [m/s] Target climbrate to change altitude. Defaults to FW_T_CLMB_R_SP if NAN. Not used if height_rate is directly set in FixedWingLongitudinalSetpoint. +float32 sink_rate_target # [m/s] Target sinkrate to change altitude. Defaults to FW_T_SINK_R_SP if NAN. Not used if height_rate is directly set in FixedWingLongitudinalSetpoint. float32 speed_weight # [-] [@range 0,2] 0=pitch controls altitude only, 2=pitch controls airspeed only bool enforce_low_height_condition # If true, the altitude controller is configured with an alternative timeconstant for tighter altitude tracking bool disable_underspeed_protection # If true, underspeed handling is disabled in the altitude controller diff --git a/docs/uk/msg_docs/index.md b/docs/uk/msg_docs/index.md index d3819033b3f..9b4ae314c59 100644 --- a/docs/uk/msg_docs/index.md +++ b/docs/uk/msg_docs/index.md @@ -138,7 +138,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m - [FiducialMarkerPosReport](FiducialMarkerPosReport.md) — Relative position of a precision-landing target detected by a vision pipeline (e.g. an ArUco marker). - [FiducialMarkerYawReport](FiducialMarkerYawReport.md) — Yaw of a precision-landing target relative to the NED (North, East, Down) frame, reported by a vision pipeline. - [FigureEightStatus](FigureEightStatus.md) -- [FixedWingLateralGuidanceStatus](FixedWingLateralGuidanceStatus.md) — Fixed Wing Lateral Guidance Status message. Published by fw_pos_control module to report the resultant lateral setpoints and NPFG debug outputs. +- [FixedWingLateralGuidanceStatus](FixedWingLateralGuidanceStatus.md) — Fixed Wing Lateral Guidance Status message. Published by fw_mode_manager module to report the resultant lateral setpoints and NPFG debug outputs. - [FixedWingLateralStatus](FixedWingLateralStatus.md) — Fixed Wing Lateral Status message. Published by the fw_lateral_longitudinal_control module to report the resultant lateral setpoint. - [FixedWingRunwayControl](FixedWingRunwayControl.md) — Auxiliary control fields for fixed-wing runway takeoff/landing. - [FixedWingTakeoffStatus](FixedWingTakeoffStatus.md) — Status of a fixed-wing takeoff. Passes information from the FixedWingModeManager to the Navigator. diff --git a/docs/uk/releases/1.18.md b/docs/uk/releases/1.18.md index edb352a0781..abd05d24180 100644 --- a/docs/uk/releases/1.18.md +++ b/docs/uk/releases/1.18.md @@ -144,6 +144,7 @@ For users upgrading from v1.17, please take a moment to review the following bef - VL53L0X rangefinder: invalid 8.19 m readings are filtered out and measurements now carry a quality field; VL53L1X maps its range status to the quality field. ([PX4-Autopilot#27214](https://github.com/PX4/PX4-Autopilot/pull/27214), [PX4-Autopilot#27355](https://github.com/PX4/PX4-Autopilot/pull/27355), [PX4-Autopilot#27308](https://github.com/PX4/PX4-Autopilot/pull/27308)) - PCA9685 PWM output board now uses the correct internal oscillator frequency, so configured servo PWM rates match the actual output. ([PX4-Autopilot#27425](https://github.com/PX4/PX4-Autopilot/pull/27425)) - MAVLink OpenDroneID Basic ID messages are now forwarded to DroneCAN Remote ID peripherals. ([PX4-Autopilot#27274](https://github.com/PX4/PX4-Autopilot/pull/27274)) +- Analog battery voltage and current filters keep their state across parameter updates, so a parameter change no longer restarts them from zero and reports the battery as disconnected. ([PX4-Autopilot#28452](https://github.com/PX4/PX4-Autopilot/pull/28452)) ## Загальні @@ -198,6 +199,8 @@ For users upgrading from v1.17, please take a moment to review the following bef - GCS connection-loss failsafe no longer triggers flight termination while the vehicle is disarmed, preventing a termination state from latching before or at arming after a ground station link loss. ([PX4-Autopilot#26820](https://github.com/PX4/PX4-Autopilot/pull/26820)) - New [NAV_RCL_ACT](../advanced_config/parameter_reference.md#NAV_RCL_ACT) option `7` (Hold without failsafe): on manual control (RC) loss the vehicle holds position but does not enter a failsafe state, so an external mode or offboard controller can keep commanding it. ([PX4-Autopilot#27792](https://github.com/PX4/PX4-Autopilot/pull/27792)) - Control allocator now stops the motors when it receives a NaN thrust setpoint, instead of forwarding invalid values to the ESCs. ([PX4-Autopilot#26494](https://github.com/PX4/PX4-Autopilot/pull/26494)) +- The home position altitude filter receives its barometer time delta in seconds instead of microseconds. ([PX4-Autopilot#28415](https://github.com/PX4/PX4-Autopilot/pull/28415)) +- A mission that ends on an exhausted DO_JUMP no longer reports "Waypoint could not be read" at critical severity. ([PX4-Autopilot#28464](https://github.com/PX4/PX4-Autopilot/pull/28464)) ## Оцінки @@ -212,6 +215,7 @@ For users upgrading from v1.17, please take a moment to review the following bef - DroneCAN GNSS receivers can now provide UTC-coherent timestamps: a new leaky-min clock-offset estimator maps a node's PPS-anchored `Fix2.timestamp` into the flight controller's HRT and subtracts the node's processing delay. Nodes that do not provide a valid UTC timestamp fall back to the `SENS_GPS*_DELAY` path. ([PX4-Autopilot#27427](https://github.com/PX4/PX4-Autopilot/pull/27427)) - EKF2 can now use GNSS height as the height reference when GNSS is in dead-reckoning mode, provided it can start without requiring a reset. ([PX4-Autopilot#27766](https://github.com/PX4/PX4-Autopilot/pull/27766)) - EKF2 now counts NED-frame external vision velocity fusion as a horizontal (NE) aiding source (and only counts vision position when it is in the NED frame), so vehicles aided only by vision velocity are no longer treated as dead-reckoning. ([PX4-Autopilot#27538](https://github.com/PX4/PX4-Autopilot/pull/27538)) +- The EKF2 selector no longer falls back to an instance whose vertical test ratio is already failing, which stepped the published altitude on every switch after a brief fault on the selected instance. ([PX4-Autopilot#28418](https://github.com/PX4/PX4-Autopilot/pull/28418)) ## RC @@ -231,9 +235,12 @@ For users upgrading from v1.17, please take a moment to review the following bef - Yaw stick nudging in auto modes ([MPC_AUTO_NUDGING](../advanced_config/parameter_reference.md#MPC_AUTO_NUDGING)). Bit 0 lets the yaw stick rotate vehicle heading during any auto mode (mission, RTL, hold, landing, takeoff) without switching modes. The heading is held when the stick is released and cleared on a flight mode switch. Requires stick override to be disabled ([MAN_OVERRIDE_SPD](../advanced_config/parameter_reference.md#MAN_OVERRIDE_SPD) = -1). ([PX4-Autopilot#27691](https://github.com/PX4/PX4-Autopilot/pull/27691)) +- Multicopter position control now handles a rejected velocity filter cutoff instead of freezing the velocity feedback at zero, which caused an altitude oscillation with `MPC_VEL_LP` at its maximum. ([PX4-Autopilot#28451](https://github.com/PX4/PX4-Autopilot/pull/28451)) + ### VTOL - [Return mode VTOL Rally Point Approach Loiters](../flight_modes_vtol/return.md#vtol-rally-point-approach-loiters): VTOLs returning in fixed-wing mode can now use the approach loiter associated with the selected home/rally landing location (instead of home) to choose the most wind-aligned valid approach (if several are defined). ([PX4-Autopilot#27004: fix(navigator): rtl compute wind angle to select best land approach based on rally point location instead of home location](https://github.com/PX4/PX4-Autopilot/pull/27004)) +- Mission return modes keep a VTOL that is flying as a multicopter in multicopter mode instead of commanding a fixed-wing transition at return altitude, which could leave the vehicle armed instead of landing. ([PX4-Autopilot#28399](https://github.com/PX4/PX4-Autopilot/pull/28399)) ### Fixed-wing