Unhealthy Estimator

I am running roslaunch rosflight_sim multirotor.launch on 1.0.0-beta.1. I connect my Taranis QX7 with rosflight_joy and set my MIXER to 1 (Quad+). I calibrate IMU and am able to arm and fly (RC mappings are correct).

I can fly, but as soon as I take off I get an Unhealthy Estimator error. I've heard about this before around the lab, but couldn't find it documented anywhere.

What does the error mean, why is it happening, and how do I fix it?

Confirmed that problem persists on master

[ INFO] [1508619050.808206948, 13.360000000]: Got HEARTBEAT, connected.
[ WARN] [1508619050.808267653, 13.360000000]: RC override active
[ERROR] [1508619050.808299012, 13.360000000]: Autopilot ERROR: Invalid mixer
[ERROR] [1508619050.808328595, 13.360000000]: Autopilot ERROR: Uncalibrated IMU
[ WARN] [1508619050.808372085, 13.360000000]: Autopilot now in ANGLE mode
[ INFO] [1508619051.177714956, 13.729000000]: Received all parameters
[ INFO] [1508619065.602897540, 28.143000000]: Parameter ACC_X_BIAS has new value -1.54229e-10
[ WARN] [1508619065.602940694, 28.143000000]: There are unsaved changes to onboard parameters
[ INFO] [1508619065.602980153, 28.143000000]: Parameter ACC_Y_BIAS has new value -1.78976e-10
[ INFO] [1508619065.603024217, 28.143000000]: Parameter ACC_Z_BIAS has new value 0.00664997
[ INFO] [1508619065.603070750, 28.143000000]: [Autopilot]: IMU offsets captured
[ INFO] [1508619065.603109216, 28.143000000]: Autopilot RECOVERED ERROR: Uncalibrated IMU
[ INFO] [1508619065.603151201, 28.143000000]: Parameter GYRO_X_BIAS has new value -1.82613e-10
[ INFO] [1508619065.603194158, 28.143000000]: Parameter GYRO_Y_BIAS has new value 1.57358e-10
[ INFO] [1508619065.603235898, 28.143000000]: Parameter GYRO_Z_BIAS has new value 1.14186e-19
[ INFO] [1508619070.829028474, 33.365000000]: Autopilot RECOVERED ERROR: Invalid mixer
[ INFO] [1508619070.829076334, 33.365000000]: Parameter MIXER has new value 1
[ WARN] [1508619070.829106875, 33.365000000]: There are unsaved changes to onboard parameters
[ INFO] [1508619095.189920265, 57.706000000]: Parameter MIXER has new value 2
[ WARN] [1508619095.189955493, 57.706000000]: There are unsaved changes to onboard parameters
[ INFO] [1508619100.364849238, 62.876000000]: Parameter MIXER has new value 1
[ WARN] [1508619100.364887223, 62.876000000]: There are unsaved changes to onboard parameters
[ WARN] [1508619116.468383379, 78.966000000]: Autopilot ARMED
[ERROR] [1508619121.094116145, 83.589000000]: Autopilot ERROR: Unhealthy estimator
[ INFO] [1508619122.415177552, 84.909000000]: Autopilot RECOVERED ERROR: Unhealthy estimator


  • edited November 2017

    The unhealthy estimator is triggered if no IMU message was received within 0.1% of gravity for more than 1 second. (This often happens when flying fixedwing aircraft in coordinated turns). It looks like somehow the simulation in this case had a weird time jump when calibrating that might have triggered that error. I say that because it immediately recovered.

    The underlying issue is that there is an underlying assumption in the estimator that the direction of gravity can be inferred from the accelerometer measurement. This is obviously not true if the measurement is much larger or smaller than 9.8m/s^2 in magnitude. Therefore, we ignore those kinds of measurements, and the estimator is simply integrating gyros. If this situation persists for a long time, then the attitude estimate will drift significantly and we throw an error to indicate that.

    An IMU calibration should remove it, so I don't know why it's being triggered. Something to look into.

Sign In or Register to comment.