real-tintin / ugglan

Ugglan is a drone project using a Raspberry Pi Zero 2 W.
3 stars 1 forks source link

Low-pass filter acceleration & update Kalman noise covariance matrix #17

Open real-tintin opened 2 years ago

real-tintin commented 2 years ago

Due to vibration's the IMU acceleration needs to be low-pass filtered before entering the Kalman sensor fusion in the attitude estimation. Also, the R matrix should be computed such that the estimation can cope with linear acceleration e.g., dynamic R which favors the gyro more during acceleration (the acceleration should be used for long-term estimation due to bias in gyro).

real-tintin commented 2 years ago

Inspiration https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9032181

real-tintin commented 2 years ago

Consider using the gyro variance only, with some scaling function e.g., r_a in [0, 1] and r_g in [0, 1] where r_a -> 1 as r_g -> 0 and r_a+r_g = 1.

Besides using the gyro variance var_g we could also incorporate the t i.e., to fade the dynamics.

real-tintin commented 2 years ago

To handle motor-induced vibration's we should also balance the motors + propellers.

https://ardupilot.org/copter/docs/common-vibration-damping.html

real-tintin commented 2 years ago

Write a simple iir filter class that takes the coefficients of a digital biquad filter as input and implement the following transformation: https://en.wikipedia.org/wiki/Bilinear_transform#Transformation_of_a_second-order_biquad.