Continuing the quest started earlier for a good IMU, I listed some popular accelerometers, gyroscopes, magnetometers, and pressure sensors with their most(?) important attributes.
I have to admit that I’m quite unexperienced with these so I could have easily left off something important or listed something irrelevant. And trying to figure out the exact behaviour for several sensors is too time consuming so at least the maximum sampling rate might not be what you actually get out from the sensor in all cases. All corrections are welcome.
|Sensor||Max. sampling rate||Sensitivity (8g)||Noise (2g)||Price|
|MPU-60x0||1000||0.3 mg/digit||400 μg / √Hz||11.4 €|
|LSM330DL||760||4 mg/digit||220 μg / √Hz||7.35 €|
|LSM303DLM||1000||3.9 mg/digit||??||7.35 €|
|ADXL345||3200||15.6 mg/digit||1.1 LSB rms (all g)||6.47 €|
|BMA180||1200||0.98 mg/digit||150 μg / √Hz||5.53 €|
|LIS331DLH||1000||3.9 mg/digit||218 μg / √Hz||4.27 €|
|MMA8451Q||800||0.98 mg/digit||126 μg / √Hz (99 in 4g mode)||1.59 €|
Judging from the numbers the MMA8451Q from Freescale has decent sensitivity and low noise. And it’s really cheap at Digikey unless I’ve missed something. MPU-60×0 is the most sensitive but with highest noise. It’s also the most expensive and it seems to be really hard to buy.
|Sensor||Max. sampling rate||Sensitivity (500 dps)||Noise||Price|
|MPU-60x0||8000||15.28 mdps/digit||0.005 dps / √Hz||11.4 €|
|MPU-3050||8000||15.28 mdps/digit||0.01dps / √Hz||9.2 €|
|LSM330DL||760||17.50 mdps/digit||0.03 dps / √Hz||7.35 €|
|L3G4200D||800||17.50 mdps/digit||0.03 dps / √Hz||12.95 €|
|ITG-3200||8000||15 mdps/digit (guess)||0.03 dps / √Hz||7.6 €|
|L3GD20||760||17.50 mdps/digit||0.03 dps / √Hz||7.05 €|
I’ve understood that the gyroscope is the most important sensor in an IMU as it provides the change in the orientation, the rest are used just to compensate the gyroscope drifting. Based on the numbers the MPU-60×0 is the best one. It’s also quite expensive but since it contains both the accelerometer and the gyroscope, it’s only 6 € each. The MPU-3050 is similar to MPU-60×0 but doesn’t have internal accelerometer and the noise is slightly larger.
LSM330DL from STMicroelectronics contains also both the accelerometer and the gyroscope. It doesn’t quite match up to MPU-60×0 but at least Digikey has plenty of LSM330DLTR in stock.
|Sensor||Max. sampling rate||Sensitivity||Price|
|LSM303DLM||1000||3.9 mgauss/digit||7.35 €|
|HMC5883L||75/160||4.3 mgauss/digit||3.15 €|
There seems to be clearly less options in magnetometers and their maximum sampling rates seem to be less than with the other sensors. The LSM303 from STMicroelectronics is an exception which makes me wonder if I’ve read the datasheet correctly (EDIT: I guess I haven’t, read more from rcgroups.com in here).
The HMC5883L from Honeywell is one of the most popular magnetometers in quadrotor IMUs currently but its sampling rate is quite low.
|Sensor||Max. sampling rate||Relative accuracy||Resolution||Price|
|BMP085||39 Hz||0.5 hPa||0.01 hPa||6.56 €|
|MS5611-01BA01||121 - 2000 Hz||0.5 - 1.5 hPa||0.012 - 0.065 hPa||??|
|MS5611-01BA03||121 - 2000 Hz||0.5 - 1.5 Hpa||0.012 - 0.065 hPa||??|
|MPL015A||1600 Hz||10 hPa||1.5 hPa||??|
|MPL115A||300 Hz||10 hPa||1.5 hPa||1.84 €|
|MPL3115A2||100 Hz||0.5 hPa||0.015 hPa||??|
MS5611 from Measurement Specialties is probably the best sensor at the moment but like the MPU-60×0 it’s hard to actually get one. BMP085 from Bosch is common even though its sampling rate is really low. The low sampling rate is not that big issue as the pressue sensor used to control the hight which is not changing as rapidly as the orientation of the device.
All in all, it’s more tricky to select the sensors for an IMU than I originally assumed. Magnetometers doesn’t have any obvious winner although the LSM303 could be a good solution for a high sampling rate IMU. For the rest the MPU-60×0 + MS5611 would be nice but since their availability is so poor something else could be a safer bet. LSM330 + LSM303 + BMP085 would enable fast orientation calculation (EDIT: or not) and decent altitude estimation for slow paced movement.