0

I have a setup of three IMUs, consisting of MPU9250 and two MPU6050's;

I am using this triple - IMU setup with STM32H7 processor and running quaternion based EKF solution for each IMU separately. As a result, I get healty Pitch - Yaw - Roll readings for each IMU. In other words, I have three different Pitch - Yaw - Roll readings, coming from three different IMUs simultaneously.

How and in what way should I combine this three seperate values from the three IMUs so that I can get a healthy Attitude orientation? For example, adding three pitch data and dividing them by three seems simple, but it doesn't sound reliable and healthy to me.

What method should I follow?

Thank you.

DroneKid
  • 29
  • 1
  • 6
  • 1
    You should probably keep them as quaternions; [averaging quaternions](https://stackoverflow.com/q/12374087/2472827). Then you can transform them into pitch, yaw, roll. – Neil Mar 20 '22 at 00:04
  • IMUs generally provide Pitch, Yaw and Roll (*Gyroscopic Rates*) as well as acceleration. Many also have 3-axis magnetometers on board as well. Determining a stable orientation requires more than averaging 3 different sensor outputs (unless you have already done the *Sensor Fusion* on each). You can find a number of good articles (and code on github) searching *"mems sensor fusion determine attitude"* Related pdf [Sensor Fusion for Attitude Estimation](http://www.ijeetc.com/uploadfile/2018/0720/20180720114913688.pdf) – David C. Rankin Mar 20 '22 at 05:00
  • Is a Kalman filter appropriate for combining the sensor readings? – Tom V Mar 20 '22 at 08:41
  • Yes, A Kalman filter is the primary (efficient) approach to combining and stabilizing the sensor data to produce position and attitude data. There are several good implementations on github for C and Python that will work for most IMUs. – David C. Rankin Mar 20 '22 at 08:45
  • @DavidC.Rankin I already have 9DoF Quaternion based fusion: https://github.com/ibrahimcahit/MPU9255-Quaternion-AHRS-STM32 I just need to figure out how to combine different IMU's different pitch - yaw - roll readings. And I think it will be posibble by averaging quaternions. My question is not quite about sensor fusion for one IMU. Because I already solved that. – DroneKid Mar 20 '22 at 11:57
  • @DroneKid Okay, that makes sense. An average or an odd-man-out (if difference greater than some `X`) and average the other two, or average all 3 if they are all within `X` of each other. That will protect against a spurious signal from one of the IMUs skewing the attitude. – David C. Rankin Mar 21 '22 at 02:53

0 Answers0