Hello,
It seems that there is place for improvement how ArduPilot handles critical sensor failure while flying.
Recently there was a case where IMU used by primary EKF core died while the drone was flying. Used autopilot hardware was The Cube black with one IMU still operating at the time. That working IMU was used by second EKF core.
The current EKF failure logic does not switch cores unless EKF estimation score goes bad or unless velocity, position and height test ratios go over 1.
My suggestion is to monitor directly sensor health and in case of failure core switch would be initiated immediately. This could save the drone from crash in case of primary IMU failure.
From the logs it is possible to see that Gyro (IMU.GH) and Acc (IMU.AH) health go to bad ( 0 ) at the same instant when the IMU died. Using that information to trigger core switch may have saved the drone.
Case info and logs on the cubepilot discuss forum. Link
Please correct me if Iām wrong about this.