After some struggle ADXL335 was replaced by ADXL350. Although smaller provides superior performance. Especially when it comes to initial offset which does not exceed 0.1m/s^2 and its drift also fits application requirements. This means that compared to the ADXL335 it does not have to be re-calibrated just to compensate for changes in initial offset.
The most significant problem is sensitivity to motor vibrations . The only proper solution is mechanical damping.
Here you can see the effect vibrations close to accelerometer’s resonant frequency have on the accelerometer (INS board is firmly attached to the chasis). Engines, which started at time 0 gain speed and around 600 s the quadrocopter starts hovering above ground. The engines slow down at 800 s. Accelerometer measurements return to sane levels. Magnetometer stays perfectly calm all the time.
With the board properly damped no such problems are observed.
Original Melexis MLX90609 gyros were replace by ADRS450. When it comes to bias stability they perform even better than the old MLX90609. It is not susceptible to high frequency motor vibrations (due to integrated low pass filter).
Good choice. The magnetometer used is Micromag3 from PNI. It uses magneto-inductive technology and data is read by SPI. Provides nice packaging, 75 Hz sampling rate for 3 axes (when targeted for measurement of Earth magnetic field and some usable resolution) and data is stable over time. Due to it’s nature, high frequency vibrations are not a problem.
But as with any magnetometer measured magnetic field has to be compensated due to hard and soft iron distortions. See page calibration for details.
I am using a module based on uBlox-5 with integrated helical antenna. uBlox unlike many other platforms it enables various settings and provides data in ECEF format and 3D velocity measurement.