Small IMU drifts and Rotor Unidentical nature

Dear PX4 community,

This question is about quadrotors or any flying machine but the flight controls is not PX4. I have built my own system using raspberry pi and MCU.

Everything is checked multiple times like propeller directions, motor-propeller combinations IMU’s etc.

The problem is all four motors are not identical. I have used 4 motors from same vendor. I did a quite good estimation/identification for thrust by using RC testbench. However, still due to motor different properties there is a drift in UAV.

One thing is to do some observations on each motor while unstable hover and premultiply motors by some relative percentage values. I tried this it reduced the drift but still uav is drifting. I also studied rotor fitness thing in some ETH paper but i don’t really understand how they average out the thrust?

Is there some algorithm on this?
How px4 solves this problem?

The other things IMU I am using also has a resolution of 1 degree and also testing my data if put static the values have some 0.5 degree of offset, not completely zero. This also a potential cause of drift.

Is there any way to correct this IMU error either by using Vicon motion capture system or others.