Issues related to IMU sensor

Firmware Version - ArduCopter 4.0.4

This is something which also happened on one of my 5 inch quadcopter in the past which is briefly described already in this post Continuous uncommanded climb, suspecting EKF issues

Now, this issue comes back to haunt again on multiple 5 inch quadcopters build, basically i am using 2 different FC boards which running on our small quadcopters, one is omnibusf4pro FC and other one is a similar clone with same F405 MCU, ICM20602 IMU and MS5611 baro, i have 2 separate logs of these 2 boards on which this issue arrived again.

Omnibusf4pro FC log:
https://drive.google.com/file/d/1vjC42XMtkGEvfU9Muk0Vm7qSzbnDDoea/view?usp=sharing

F405 custom board log:
https://drive.google.com/file/d/1w1O204_ZDLP-E3ggt3R4TFQnkl-CSILv/view?usp=sharing

Unlike last time, i have most of the arming checks enabled in both of these logs, vibrations seems to be good from the logs, but i have not tuned both of these quadcopters that well at this moment, but both quadcopters flying well and quite stably, i don’t think tuning playing a part in causing this issue.

EK3_alt_source is different on both, f405 custom board using baro and omnibusf4pro using M8P RTK GPS with RTCM corrections. From logs, i cannot see any issues related to baro and gps altitudes.

Issues:
From logs, you can observe, in all the logs, even in this post Continuous uncommanded climb, suspecting EKF issues, previous flights went well without issues, but checkout just the last flights in all logs, you can see a common pattern-

  • sudden noises in IMU data
  • high XKF4.SH innovation variations
  • looks like having some relation with keeping the quadcopters on for long time

During the last flights, all quadcopters behaved in similar manner too, very sudden increase in altitude with large extent, and tendency to drift sideways while taking off, as can be seen, on the current logs, last flights are too short cause it looked really unsafe in real time.

Some observations:
Continuous uncommanded climb, suspecting EKF issues with that issue XKF4.SH is not even close to be normal, so i can understand some issues related to some IMU sensor fault, but in above 2 logs, i don’t think too much is going wrong, and on same quadcopters build, i also took more flights after this issue, everything went alright, this issue occur rarely and mostly when quadcopters left on for long time.

I understand that there still might be issues with my current IMU sensors, but then firmware not able to handle this issue well at this moment, and i also can see why, in above 2 logs, while taking off, XKF4.SH was close and under 1, so probably passed all arming checks, but at runtime there is no option either for me and for the firmware to deal with this issue. Probably some failsafe might have triggered if i would have kept them flying when they were misbehaving but they really looked unsafe.

Hello Notorioous7,

I have been looking through your log and I noticed a few peculiarities. Starting with your first log,

Omnibusf4pro FC log:

In this log, it appears to you autonomously takeoff, stayed at hover for 3-4 minutes, and landed normally. After staying in the ground for more than 10 minutes height and climb rate estimation show a correlation between arming moment and estimation divergence. This can be seen in the graph below. Each time vehicle is armed, the climb rate estimation starts to diverge and it converges to zero after disarming.
There is also a correlation between arming moment and a small decrease in temperature. But it could be due to the breeze created by the spinning motor.

In the last flight, the altitude estimation started to diverge linearly before arming. It only got worse after arming.

You might want to enable harmonic notch filter.

I don’t know if there is a cause-effect relationship between arming events and bad altitude, climb rate estimation. I could not find a reason for estimation to diverge like this. The vibration level and reported GPS accuracy seem good. Someone more experienced with EKF might want to pitch in.

F405 custom board log:

This barometer in this board shows a sudden change in altitude. The throttle(CTUN.ThO) is right-scaled.

The sudden jump in barometer measurement occurs 3 times in a single flight.

Interestingly at the end of the flight log, EKF position and velocity estimation started to jump, even though position and velocity variance stays under recommended value 1. Reported GPS horizontal and speed accuracy is the same throughout the flight. So, I assume there is no interference on GPS.

I hope this help to address some of the irregularity in your flight.
Emre

1 Like

Thanks for more insightful observations, i will have a look on harmonic notch filter feature, i know barometer on f405 custom board having some issues, but don’t think that contributed that much during the arming and takeoff phase EKF innovation variations, one thing it seems like in all the cases that, over time when FC board temperature rises and after the arming and takeoff phase, sudden fall of temperature seems to be causing some unwanted noises on IMU. Not sure if that is playing any part in causing this issue.

One more thing which i worry about to keep flying when that scenario repeats again is that EKF/IMU might not able to recover from this once its starts getting high EKF innovations as happened in this case Continuous uncommanded climb, suspecting EKF issues, that’s why i am looking what can be safer options which can be in place from the firmware or failsafes end during that scenario.

Its really not worth asking about this if you have not enabled the harmonic notch filter on a small quad

1 Like

I see, i thought its used mainly to handle vibrations and getting a better tune, i am going to test this feature asap

There is a gyro->accel->gyro feedback loop that the harmonic notch can break.

i didn’t get much about that, but it does sounds like it can probably manage my IMU issue during runtime, i will definitely get this feature running asap, will provide more updates soon

https://github.com/ArduPilot/ardupilot/pull/16842 this patch has resolved this issue