auto mission fly home before complete loss of global position estimate

- ekf2: expose dead reckoning as control status flags
 - commander:
    - add GPS validity check
    - in AUTO MISSION if dependent on GPS then a loss of GPS will
trigger RTL so that the plane can return home while dead reckoning
This commit is contained in:
Daniel Agar
2021-12-03 11:42:05 -05:00
parent 6d0339ba0c
commit e7b7ccf68f
14 changed files with 130 additions and 46 deletions
+2 -1
View File
@@ -32,6 +32,8 @@ bool cs_ev_vel # 24 - true when local frame velocity data fusion
bool cs_synthetic_mag_z # 25 - true when we are using a synthesized measurement for the magnetometer Z component
bool cs_vehicle_at_rest # 26 - true when the vehicle is at rest
bool cs_gps_yaw_fault # 27 - true when the GNSS heading has been declared faulty and is no longer being used
bool cs_inertial_dead_reckoning # 28 - true if we are no longer fusing measurements that constrain horizontal velocity drift
bool cs_wind_dead_reckoning # 29 - true if we are navigationg reliant on wind relative measurements
# fault status
uint32 fault_status_changes # number of filter fault status (fs) changes
@@ -54,7 +56,6 @@ bool fs_bad_acc_bias # 15 - true if bad delta velocity bias estimates h
bool fs_bad_acc_vertical # 16 - true if bad vertical accelerometer data has been detected
bool fs_bad_acc_clipping # 17 - true if delta velocity data contains clipping (asymmetric railing)
# innovation test failures
uint32 innovation_fault_status_changes # number of innovation fault status (reject) changes
bool reject_hor_vel # 0 - true if horizontal velocity observations have been rejected
+7
View File
@@ -13,12 +13,19 @@ bool condition_local_altitude_valid
bool condition_local_position_valid # set to true by the commander app if the quality of the local position estimate is good enough to use for navigation
bool condition_local_velocity_valid # set to true by the commander app if the quality of the local horizontal velocity data is good enough to use for navigation
bool condition_global_position_valid # set to true by the commander app if the quality of the global position estimate is good enough to use for navigation
bool condition_gps_position_valid
bool condition_home_position_valid # indicates a valid home position (a valid home position is not always a valid launch)
bool condition_power_input_valid # set if input power is valid
bool condition_battery_healthy # set if battery is available and not low
bool condition_escs_error # set to true if one or more ESCs reporting esc_status are offline
bool condition_escs_failure # set to true if one or more ESCs reporting esc_status has a failure
bool position_reliant_on_gps
bool position_reliant_on_optical_flow
bool position_reliant_on_vision_position
bool dead_reckoning
bool circuit_breaker_engaged_power_check
bool circuit_breaker_engaged_airspd_check
bool circuit_breaker_engaged_enginefailure_check