I know they are bad for positional tracking and drift from actual position over time but would like to know what is the situation with rotation only.

I know Oculus DK1 used ordinary off the shelf cheap IMUs for rotation tracking of the users head, as does any other VR headset such as GearVR where there is no positional tracking, but I havent had chance to use them more than few minutes to know how much they (their IMUs) drift from original orientation over time.

  • \$\begingroup\$ Depends on if the IMU contains a magnetometer/compass \$\endgroup\$
    – Justin
    Aug 29, 2018 at 12:33
  • \$\begingroup\$ Well you can give an answer for both cases since there's only two \$\endgroup\$ Aug 29, 2018 at 12:35
  • \$\begingroup\$ Do you mean "realiable" (MEMS devices are generally very reliable), or "accurate" (the raw accuracy is generally poor)? \$\endgroup\$
    – Dave Tweed
    Aug 29, 2018 at 12:42

2 Answers 2


MEMS gyros, which are rate gyros, when integrated to produce orientation angles, generally have high rates of drift that are due to offset errors and noise. You can find these values in the datasheets.

This can be mitigated by finding another source of data that provides an absolute reference. For example, you can use the accelerometers to measure the gravity vector, which stablizes the pitch and roll measurements from the gyros. And if you have a magnetometer available, you can use it to stabilize the yaw measurement.

  • \$\begingroup\$ +1 but I liked the typo. Even the best MEMS gyros seem to be about an order of magnitude worse than inexpensive Russian FOGs. And I'm sure they're not using the best in those headsets. \$\endgroup\$ Aug 29, 2018 at 13:07
  • \$\begingroup\$ The IMUs I was thinking of consist of accelerometers, gyroscopes and magnetometers inside one IC. Didnt realize there were ones without all 3. If all 3 are present, Im good to go? \$\endgroup\$ Aug 29, 2018 at 13:25
  • \$\begingroup\$ It depends. First of all, you won't find all three in one IC. You can buy modules that have all three kinds of chips inside. Second, does the module combine the raw sensor data internally, or does it just supply raw sensor readings? Finally, you've told us nothing at all about your application, so "good to go" is impossible to answer. \$\endgroup\$
    – Dave Tweed
    Aug 29, 2018 at 13:36
  • \$\begingroup\$ @DaveTweed I believe ICM-20948 from Invensense is already 10th generation of the IC with all three integrated. Plus for many years they also include DMP capable of on-chip sensor fusion. \$\endgroup\$
    – Maple
    Aug 29, 2018 at 17:28
  • \$\begingroup\$ @Maple It's in one package, but not on one die. There are two. One die houses a 3-axis gyroscope, a 3-axis accelerometer, and a Digital Motion Processor™ (DMP). The other die houses the AK09916 3-axis magnetometer from Asahi Kasei Microdevices Corporation. I think the Bosch equivalent has more than two dies. \$\endgroup\$ Aug 29, 2018 at 18:02

The orientation drift from gyro data is unavoidable because of integration. However it is easily mitigated by sensor fusion with accelerometer and magnetometer. So, the combined stability of the system depends on the drifts of accelerometer and magnetometer only, which are mostly thermal in nature.

For this reason many modern IMUs include temperature sensor as well. So, consult the datasheets and see if accelerometer and magnetometer thermal drifts (both sensitivity and offset) are within your requirements. If you have a choice then select IMU with built-in thermal sensor. Implement offset calibration routines in your software. Finally do the experiments over wide temperature range and capture sensor drift data (which also can be slightly different from chip to chip due to manufacturing variations). Then incorporate this data into your code as dynamic offset based on temperature sensor.

Note that all of the above is only necessary if your requirements are extremely high. For most consumer devices a simple 9D sensor fusion is sufficient.

  • \$\begingroup\$ From what I've read there is still some drift over extended period of usage, but not sure what causes it. Perhaps the imperfect accuracy per rotation adding up? Bosch BNO055 and Bosch BNO080 sparkfun.com/products/14686 , learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor/ \$\endgroup\$ Aug 30, 2018 at 7:19
  • \$\begingroup\$ I've pointed out the cause of the drift in the very first paragraph. Of course, that assumes correct fusion software. The datasheet for BNO confirms what I said, providing all kinds of drift specifications, temperature and voltage related, as well as age related for accelerometer. That is all there is, I am not sure what else you are looking for \$\endgroup\$
    – Maple
    Aug 30, 2018 at 8:26
  • \$\begingroup\$ Well you seem to assume the data from accelerometer and magnetometer are perfect and free from error themselves to fix the drift from the gyro completely and that's just not the case with gyro+accel+magneto IMUs, they still drift. That's the whole reason VR HMDs use IMU + optical tracking for positional tracking vs purely relying on an IMU. \$\endgroup\$ Aug 30, 2018 at 9:03
  • \$\begingroup\$ Where on earth did I assume THAT? This is what I said: "stability of the system depends on the drifts of accelerometer and magnetometer". And what "positional tracking" has to do with this? You specifically asked "what is the situation with rotation only". Of course you cannot use IMU alone for position tracking. The only source of linear movement in IMU is an accelerometer. If you integrate that you will have exactly same drift problem as with integrated gyro data for rotation, but no correction data available for fusion. \$\endgroup\$
    – Maple
    Aug 30, 2018 at 9:29
  • \$\begingroup\$ probably somewhere in my head, I'll reread your comment \$\endgroup\$ Aug 30, 2018 at 11:31

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