Author Topic: How to filter vibration noise from IMU data?  (Read 2895 times)

0 Members and 1 Guest are viewing this topic.

Offline christheman200Topic starter

  • Newbie
  • Posts: 6
How to filter vibration noise from IMU data?
« on: August 21, 2015, 06:03:50 pm »
Hi all,

This is going to be more software related than electronics, but I feel that some of you should know a thing or two about this. I'm using the Adafruit 10DOF IMU in an rc drone airplane, but realize it is extremely sensitive to vibrations induced by the motors. The results are similar to what is experienced here: https://www.youtube.com/watch?v=tNXcTY7Qecg. I've tried to isolate the sensor from the vibrations by placing it on a sponge, but this has little effect. So here's my question:

What kind of software filter would do a good job to get rid of the effects of the vibration? Perhaps performing an FFT to find the most prominent frequencies and chopping them out, or simply running a moving average? I don't think a Kalman filter could work as I don't have a system model.

Thanks for any help!
Chris
 

Offline unitedatoms

  • Frequent Contributor
  • **
  • !
  • Posts: 324
  • Country: us
Re: How to filter vibration noise from IMU data?
« Reply #1 on: August 21, 2015, 06:11:15 pm »
The problem is more mechanical than DSP/Software problem. Mount the sensor in some thick foamy housing to get rid of vibrations. Signal wise, the foam is mathematically equivalentt to 3D low pass filter with lag proportional to mass of sensor subassembly. And wiring incoming into subassembly can be made spiraled/spring like to reflect vibrations back (lossless mechanical low pass equivalent). May be also replace wires with less rigid light weight wires.
« Last Edit: August 22, 2015, 01:57:57 am by unitedatoms »
Interested in all design related projects no matter how simple, or complicated, slow going or fast, failures or successes
 

Offline christheman200Topic starter

  • Newbie
  • Posts: 6
Re: How to filter vibration noise from IMU data?
« Reply #2 on: August 22, 2015, 08:33:44 am »
OK, after a bit more research I fed the gyro data into Matlab and ran a low pass filter on it. This worked well enough so I implemented it in live software. It seems to work well albeit the plane's response time is a bit slower. But only testing will see if my fixes work!
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf