At our lab, we have a several "Kurt" type robots (about the size of a Pioneer, six wheels, differential drive). The built-in gyroscopes are by now really outdated; the main problem is that the gyroscopes have a large drift that increases as the gyro heats up (the error is up to 3°/s). We mainly use the IMU (inertial measurement unit) to get initial pose estimates that are later corrected by some localization algorithm, but even doing that the large initial pose error caused by the IMU is often annoying.

We've temporarily used an Android phone (Galaxy S2) as a replacement IMU, and the results are so much better compared to the old IMUs. However, I don't like depending on a WiFi connection between IMU and the control computer (a laptop running ROS/Ubuntu), so we're looking to buy a new IMU.

What IMU should we choose? What criteria are important to consider for our application?

  • $\begingroup$ Since you are talking about not depending on the wifi link, I guess that you want an IMU with an internal filter ? $\endgroup$ Nov 8 '12 at 6:49
  • 1
    $\begingroup$ On stack exchange, it is better to edit your question to add information requested in comments, rather than adding more comments. Comments are for helping to improve questions and answers, and are distracting, so we try to keep them to a minimum. If all of the information needed to answer the question is contained within it, the comments can be tidied up (deleted). $\endgroup$
    – Mark Booth
    May 18 '17 at 15:46

I have used a VN-100 IMU to replace an old one (which could be quite inaccurate).

My experience with the VN-100 is quite good. It includes an internal Kalman filter to estimate pitch, roll and yaw (using magnetic sensors), and you can tune the gains on the Kalman filter yourself. How they should be tuned will depend on your application (eg. vibration, usual rates of rotation and acceleration).

My experience is that it is easily within 1 degree accuracy, and if tuned well, can be almost 0.1 degree accuracy. Having said that, it requires the use of the active tuning parameter (depending on how far acceleration differs from gravity). While I have looked closely at the angular position data, I have not specifically investigated the accuracy of the acceleration or angular rate data (although I have some data, but I used encoders as a ground truth, and differentiation makes the encoder data too noisy to compare).

Things you might want to consider:

  • It is definitely a bonus to be able to tune the Kalman filter gains. If the gains are not well tuned, even good raw data can result in inferior filtered data.
  • Other than that, sampling time may be important (if you want samples at a high frequency - the VN-100 has a maximum frequency of 200Hz).
  • Consider the communication protocol (the VN-100 supports RS-232, or SPI with the SMD package). With RS-232, you will want to consider the maximum rate available on your DAQ system, eg. 460kHz baud rate is required to get data at 200Hz, otherwise you will not get all the data at such a high frequency
  • Size? Our old IMU was quite large (5cm), but the VN-100 is tiny.
  • Magnetic sensors - if you want yaw position data, but be aware that motors in close proximity (depends on the size of motors, but perhaps within 10cm or more) will stop them working.
  • Kalman filter - unless you want to process the data yourself
  • $\begingroup$ The effect of static magnetic disturbance can be compensated for. On our system, we used Xsens' magnetic field calibration tool and that performed pretty well. $\endgroup$ Nov 8 '12 at 6:48
  • 1
    $\begingroup$ only for static disturbances (ie. due to proximity of iron, and fixed magnets), my answer mentioned motors, thus the magnetic disturbance is dynamically changing, and cannot be compensated for. $\endgroup$
    – ronalchn
    Nov 8 '12 at 7:23

I assume that you are looking for an IMU that provides you with an orientation estimation. The complete package is usually called an Attitude and Heading Reference System (AHRS). What really is the most defining criteria is your budget. Getting above 3 degrees/s should be within reach though.

  • We have been working with the XSens MTi and had good enough results for navigation of ground vehicles. They have a new line out, which has improved on the accuracy quite a bit.

  • Budget options are also available, this one looks quite promising as it is a single chip solution. There is also an IMU buyers guide at Sparkfun.

  • Usually pitch and roll are fine with most IMUs for ground vehicles, as the gravity vector can be used to compensate the drift. Not so with the yaw axis, which is often a problem even when compensated with a magnetometer. For that reason we often use a single fibre optic gyro to minimize the heading drift.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.