mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-10 06:39:25 +08:00
2a0a4ac3e2
Detects when a rotary-wing vehicle drops more than FD_ALT_LOSS metres below a NED-z reference while altitude control is active, and immediately triggers flight termination (parachute deployment). Detection (FailureDetector): - FD_ALT_LOSS: drop threshold in metres (0 = disabled, default) - FD_ALT_LOSS_T: hysteresis time - Guards: rotary-wing only, altitude control active, z_valid, setpoint fresh (<1 s). Manual, Acro and FW/VTOL-FW modes are excluded. - Ratcheting reference: initialises to lpos.z on first sample below setpoint, preventing false triggers on new waypoints Failsafe action (commander): - New fd_alt_loss flag in FailsafeFlags.msg - COM_ALT_LOSS_ACT: -1=Disabled (default), 0=Terminate - Terminate fires immediately, cannot be overridden, and never clears until disarm (parachute deployment is irreversible)
63 lines
3.2 KiB
Plaintext
63 lines
3.2 KiB
Plaintext
# Input flags for the failsafe state machine set by the arming & health checks.
|
|
#
|
|
# Flags must be named such that false == no failure (e.g. _invalid, _unhealthy, _lost)
|
|
# The flag comments are used as label for the failsafe state machine simulation
|
|
|
|
uint64 timestamp # time since system start (microseconds)
|
|
|
|
# Per-mode requirements
|
|
uint32 mode_req_angular_velocity
|
|
uint32 mode_req_attitude
|
|
uint32 mode_req_local_alt
|
|
uint32 mode_req_local_position
|
|
uint32 mode_req_local_position_relaxed
|
|
uint32 mode_req_global_position
|
|
uint32 mode_req_global_position_relaxed
|
|
uint32 mode_req_mission
|
|
uint32 mode_req_offboard_signal
|
|
uint32 mode_req_home_position
|
|
uint32 mode_req_wind_and_flight_time_compliance # if set, mode cannot be entered if wind or flight time limit exceeded
|
|
uint32 mode_req_prevent_arming # if set, cannot arm while in this mode
|
|
uint32 mode_req_manual_control
|
|
uint32 mode_req_other # other requirements, not covered above (for external modes)
|
|
|
|
|
|
# Mode requirements
|
|
bool angular_velocity_invalid # Angular velocity invalid
|
|
bool attitude_invalid # Attitude invalid
|
|
bool local_altitude_invalid # Local altitude invalid
|
|
bool local_position_invalid # Local position estimate invalid
|
|
bool local_position_invalid_relaxed # Local position with reduced accuracy requirements invalid (e.g. flying with optical flow)
|
|
bool local_velocity_invalid # Local velocity estimate invalid
|
|
bool global_position_invalid # Global position estimate invalid
|
|
bool global_position_invalid_relaxed # Global position estimate invalid with relaxed accuracy requirements
|
|
bool auto_mission_missing # No mission available
|
|
bool offboard_control_signal_lost # Offboard signal lost
|
|
bool home_position_invalid # No home position available
|
|
|
|
# Control links
|
|
bool manual_control_signal_lost # Manual control (RC) signal lost
|
|
bool gcs_connection_lost # GCS connection lost
|
|
|
|
# Battery
|
|
uint8 battery_warning # Battery warning level (see BatteryStatus.msg)
|
|
bool battery_low_remaining_time # Low battery based on remaining flight time
|
|
bool battery_unhealthy # Battery unhealthy
|
|
|
|
# Failure detector
|
|
bool fd_critical_failure # Critical failure (attitude limit exceeded, or external ATS)
|
|
bool fd_esc_arming_failure # ESC failed to arm
|
|
bool fd_imbalanced_prop # Imbalanced propeller detected
|
|
bool fd_motor_failure # Motor failure
|
|
bool fd_alt_loss # Uncommanded altitude loss (rotary-wing, altitude-controlled flight)
|
|
|
|
# Other
|
|
bool geofence_breached # Geofence breached (one or multiple)
|
|
bool mission_failure # Mission failure
|
|
bool vtol_fixed_wing_system_failure # vehicle in fixed-wing system failure failsafe mode (after quad-chute)
|
|
bool wind_limit_exceeded # Wind limit exceeded
|
|
bool flight_time_limit_exceeded # Maximum flight time exceeded
|
|
bool position_accuracy_low # Position estimate has dropped below threshold, but is currently still declared valid
|
|
bool navigator_failure # Navigator failed to execute a mode
|
|
bool parachute_unhealthy # Parachute system missing or unhealthy
|