Go Down

Topic: Accelerometer and Magnetometer calibration (Read 4 times) previous topic - next topic

jjspierx

I am trying to calibrate my accelerometer and magnetometer.  I am using FreeIMU's calibration tool and I can do everything, except I have no way to reliably and smoothly rotate my sensor through the range of motion required for calibration.  Does anybody have any tips for how physically manipulate my sensors in a smooth motion 360 degrees about the X, Y and Z axis?

I thinking about making a sort of gimbal jig, but before going through that effort I was wondering what other people have done.

Thank you in advance. 

michinyon

I use a different method which doesn't require "smooth rotation",  so I don't know.

Is your sensor incorporated into a device ?

You could try building one of those spinning table centrepieces that chinese restaurants have.
You can get the circular bearing for about $4  and a round piece of plywood  or any round
thing you can find.

jjspierx

#2
Jan 30, 2013, 06:56 pm Last Edit: Jan 30, 2013, 07:04 pm by jjspierx Reason: 1
Currently, my sensors are on a breadboard and connected to my Uno R3 using Sparkfuns Ardunio/Breadboard holder.



I think I am going to be build one, maybe using various sized PVC pipe or something like this.



What method did you use michinyon, is it something that I might be interested in?  I need something to calibrate the X, Y, and Z axis for both my magnetometer and accelerometer.  Even if your method only calibrates one or the other, I would still be interested in it.



michinyon

Well it depends how you need to turn it.   Some need to be turned around only in one plane,
which you can do with some kind of turntable.

If you want to build some kind of 3-D gimbal thing,  go ahead.

I just wave mine around randomly in all directions,  collect thousands of samples on the SD card,
and them process them statistically in Matlab to get the calibration.  So far,  the calibration is
almost the same every time,   so I am currently assuming that the scaling errors are set by the
manufacturing defect   and not arising from the weather or other factors which continue to
change.


jjspierx

I am wanting my sensors to give me a full 6 DOF, or I guess 9 DOF with the magnetometer, so I assume I need to properly calibrate all 3 axis of the acc and mag.  I have tried calibrating by rotating 360 degrees around each axis, and then translating in a circle in all 3 planes. 

I am using Fabio Varesano's (may his soul rest in peace) calibration tool which is in Python and uses an ellipsoid into sphere algorithm.

http://www.varesano.net/blog/fabio/ellipsoid-sphere-optimization-using-numpy-and-linalg

Maybe the algorithm used is more sensitive than your Matlab code with respect to needing smooth data in all planes and axes of rotation.

I think I will probably create a gimbal like I mentioned above, it will be fun simple project anyway, and if I can't calibrate my sensors with that, than I will probably look into other algorithms or maybe writing my own to calibration program for my sensors. 

Thanks for the help!

Go Up