commander: add failsafe state machine with webassembly simulation

to run the simulation:
install sdk: https://emscripten.org/docs/getting_started/downloads.html
make run_failsafe_web_server
open http://0.0.0.0:8000/

Co-authored-by: Konrad <konrad@auterion.com>
This commit is contained in:
Beat Küng
2022-10-11 22:31:20 -04:00
committed by Daniel Agar
co-authored by Konrad
parent 82911e48be
commit a04230faa1
13 changed files with 2115 additions and 10 deletions
+16 -9
View File
@@ -1,5 +1,8 @@
# TODO: rename to failsafe_flags (will be input to failsafe state machine)
#
# Input flags for the failsafe state machine.
# 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)
@@ -19,22 +22,26 @@ uint32 mode_req_other # other requirements, not covered above (for e
bool calibration_enabled
bool pre_flight_checks_pass # true if all checks necessary to arm pass
bool auto_mission_available
bool angular_velocity_valid
bool attitude_valid
bool local_altitude_valid
bool 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 auto_mission_available # Mission available
bool angular_velocity_valid # Angular velocity valid
bool attitude_valid # Attitude valid
bool local_altitude_valid # Local altitude valid
bool local_position_valid # Local position estimate valid
bool local_position_valid_relaxed # Local position with reduced accuracy requirements (e.g. flying with optical flow)
bool 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 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 global_position_valid # Global position estimate valid
bool gps_position_valid
bool home_position_valid # indicates a valid home position (a valid home position is not always a valid launch)
bool home_position_valid # Home position valid
bool offboard_control_signal_lost
bool offboard_control_signal_lost # Offboard signal lost
bool geofence_violated # Geofence violated
bool rc_signal_found_once
bool rc_signal_lost # RC signal lost
bool data_link_lost # Data link lost
bool mission_failure # Mission failure
bool rc_calibration_in_progress
bool vtol_transition_failure # Set to true if vtol transition failed
bool vtol_transition_failure # VTOL transition failed
bool battery_low_remaining_time
bool battery_unhealthy