1

my project has 4 sensors, BNO055, MPU9250, MS5611, and BME280. I just need to check IMU data and Altitude from those sensors. My goal is filtering to BNO055 with MPU9250 and MS5611 with BME280 at the same filter for the best result. I do research on the internet about filtering, I found Kalman, median and complementary filtering. Also, I am using Raspberry Pi 4. So, how I can do filtering like that?

Thanks for helping from now.

1 Answers1

1

Use a Kalman Filter (KF) algorithm with this neat trick to fuse multiple sensors readings. The resulting estimate will be more accurate than what you would get with single sensor.

  1. First implement a KF or EKF that can handle a single IMU (Accel, Gyro, Mag) and a pressure sensor. One of my Stack Overflow answer can be a good starting point for this.
  2. The Kalman Filter's prediction and correction equations will be of this form.

X_k1 = A * X_k + B * U_k

Y1 = C * X

Y1 array will contain the different readings (gyro, mag...) from a single IMU along with a single pressure sensor altitude. Similarly Y2 will correspond to the second set of readings.

Just append the output array from different sensors vertically,

Y12 = [Y1; Y2]

Similarly append the C matrix

C12 = [C; C]

New observation equation will be,

Y12 = C12 * X

Use this new observation equation instead of the old one and the Kalman Filter algorithm will fuse the data.

Manoj
  • 86
  • 5