MiniIMU problem: keep sensor still but value are changing

Hi!
I have just bought a miniIMU imu01c 0J003. I’m using it with a BLEND Micro ( redbearlab.com/blendmicro/ ) Arduino board compatible (“Arduino at heart” fully certified from Arduino Store Italy).

After installation and Calibration though the LSM303 > Calibration example, if I check the serial monitor with the MinIMU-9-Arduino-AHRS sketch I see the number changing during the time even if I keep the sensor still (fixed with tape on the table).

Calibration value from LSM303: min: { -2587, -2815, -2770} max: { +3213, +3184, +3101}

One of the first value I read on the Serial Monitor:

!ANG:13.09,-3.95,-65.97

After two minutes:

!ANG:-103.39,16.19,108.66

I’m expect the sensor data not to change during the time.
Any advice?

You are reporting the output of the AHRS program, not the sensor data.

I suspect that the output angles are changing as a result of gyro drift, which is always a problem (although the problem can be reduced by proper calibration).

You should output the actual sensor values to make sure that the calibration step was done correctly, and is working as well as possible.

Hello.

What it probably means is that the short-timescale orientation estimates from integrating the gyro readings are disagreeing with the longer-timescale absolute orientation calculated from the accelerometer and magnetometer readings, so the IMU program is slowly correcting its output to match the latter, and that could be for a number of reasons (e.g. imperfectly calibrated magnetometer). The MinIMU-9-Arduino-AHRS program is usually reasonably accurate when calibrated, but if you double check that your calibration was done correctly like Jim said, and you are still not getting good enough accuracy, you might want to look into alternative AHRS implementations and calibration methods.

-Jon

Thank you very much for the answer.

I have some comments:

  1. The board I’m using Blend micro redbearlab.com/blendmicro/ ) it’s at 8MHz and it could be overclocked at 16MHz. Can this be a problem?

  2. Where can I find some introduction-level document about different types of algorithm?

  3. I’ll try to re-calibrate and print raw data as soon as possible, thanks!

This web page describes implementations of a couple of the most popular types of AHRS algorithms, compares them and gives useful links to introductory material. robottini.altervista.org/tag/com … ary-filter

Processor frequency should not affect the IMU’s operation at all. (I2C frequency might, but that would make it not work at all instead of giving inaccurate readings.)

-Jon

thank you, a better calibration made it works perfectly.

I have build a support by wood for the imu sensor: more easy to visually check the movements and to be sure to touch the min and maximum in each axis.

last question: do I have to re-do the calibration during the time? I mean, in one month is it possible that the calibration datas has to be found again? or once done… it is done forever?

We have not tried using those sensors for long periods of time like that, so we are not entirely sure what you might need to do to account for that. In general, you should just think about various things that would change over that period of time. For example, if the sensor is on a platform that moves or might be moved, then the magnetic field might be changed relative to the area the sensor was initially placed.

-Jon