10 years, 2 months ago.

IMU Calibration

Hi I'm new to the micro controller world so apologies if these are obvious questions but I seem to be missing something.

I'm using the Pololu minimu v2 with the mbed LPC1768 and this library for calibration etc: http://mbed.org/users/Euler/code/IMU/

The object I'm measuring has a maximum movement of 500 dps +/- a few tens. My question is what settings do I need to send to the IMU to accurately record this?

The gyro has a maximum data output rate of 760 Hz which I assume I must use as the next highest is 380 Hz which is below 500, however I don't understand the bandwidth and cutoff settings. Also I'm fairly certain I must change CTRL_REG4 to have a full scale resolution of 2000 dps?

The accelerometer has a maximum data rate of 5.376 KHz so that setting or the one below should be acceptable. After reading around for quick movements asensitivity of 5g seems to be okay, so the 8g full scale with high resolution on CTRL_REG4 should be selected?

The magnetometer is to be used to compensate for gyro drift. From reading around the earthe magnetic field is roughly between 0.3 and 0.6 Gauss so the default +/-1.3 Gauss setting is acceptable, and the 220 Hz continuous conversion mode.

My last question is; All of the outputs are expressed in 2's compliment but is this degrees/radians per second, or something different?

Any help would be greatly appreciated Thanks Tom

2 Answers

10 years, 2 months ago.

The movement rate of 500 degrees per second says nothing about the required update rate of your gyro. It corresponds with roughly 1.5 rotations per second, and it does relate to how fast you want to update your accelerometer (not that is will be very useful while rotating at that speed) and magnetometer. But if it rotates at a constant rate, the gyroscope will measure a constant value. Its update speed is related to how fast the rotation changes. Although in practise you will probbaly just run it at the same speed as your accelerometer.

What you do need to check is indeed the full-scale resolution. You can try it with 500dps in your sensor, but it is probably a better idea to use the next step, which is indeed 2000dps.

The outputs are just integers without unit. From the datasheet you can read at 2000dps full-scale, it has 0.07dps/step.

Tom A
poster
10 years, 2 months ago.

Hi First off thanks for your answer.

The sensor I'm using is mounted on the head of a pigeon so its not a constant rotation its random small or large movements of at max 500dps. With this do you reckon its best to set the update rate at maximum?

I dont think there is much reason not to do it, it might consume less power on lower update rates, but I don't know how large of a battery you can place on a pigeon ;).

It also depends on how fast your program can handle it. If the difference in power consumption doesn't matter, I would just keep it on max. Otherwise you can probably do it quite a bit slower than max, it also depends on how fast your program can handle the information.

posted by Erik - 14 Feb 2014