I’m flying an X500 Quadcopter with the Holybro Pixhawk 4 running PX4 V12.3. Last year everything on the UAV worked fine in V11. After updating to firmware version V12 the UAV became virtually unflyable in Position Mode.
The quad had random big twitches every couple of seconds which I wasn’t able to control. I was trying to hover in Position Mode and suddenly the UAV moved 1m to the side, up, down without me giving any inputs.
I already solved this and hope this helps some, since many people I talked to had the same issue and weren’t able to fix it:
TL/DR: Fix vibrations on your UAV and if it doesn’t help try setting the Parameter EKF2_MULTI_IMU to 1.
Have a look at your logs. I had really high vibrations on my UAV.
In V12 Multi-EKF was enabled for some boards by default. I haven’t taken a deep dive into this topic so take this with a grain of salt, but here’s what it does as far as I understand it:
This functionality looks at the state of the IMU during the flight. If vibrations get too high it switches to a different IMU. If there is a mismatch between both IMUs (?) the quad does a small jump or twitch. Back in V11 this only happened before the flight. With EKF2_MULTI_IMU enabled in V12 it can now happen during the flight as well. You can spot this beaviour by looking at your logged messages:
To fix this problem you can set the Parameter EKF2_MULTI_IMU" to 1. This stops the IMU from switching midair. What you should do first instead is fixing the vibrations on your quad. I put a lot of effort into this, but it still wasn’t enough in the end.
I think it’s actually a nice safety feature, but it happened to often for me which rendered the UAV unflyable. So it would be nice if we could edit the threshhold at which the IMU switch happens with a parameter.
Hope this helps some of you