I'm trying to use two BNO80 orientation sensors to measure the deflection of a universal joint in both pitch and yaw (there are components in the way that prevent the use of rotary position sensors). The BNO80 outputs a quarternion to describe its rotation. Problem is I can't seem to get the two sensors to agree on the same quarternion even when they are in the same orientation (I'm using the standard rotation vector output, game, ARVR stabilised and geomagnetic all offer no improvement). I have a feeling this has to do with the magnetometers since most of the drift is on the yaw axis. I've moved the sensors away from any metal components and tried calibration using this method several times to compensate for any remaining hard and soft iron biases, but the difference persists. It's typically not a small error either, often tens of degrees, though that changes with each calibration, sometimes worse, sometimes better.

  • \$\begingroup\$ Did you perform the calibration while the sensors were mounted or just 'hanging in free space'? \$\endgroup\$
    – brhans
    Apr 23, 2019 at 12:02
  • \$\begingroup\$ @brhans Both actually. I first calibrated them mounted, still got a drift. I then tried removing them and calibrating them in free space to see if it made any difference. I haven't mounted them back on yet. \$\endgroup\$ Apr 23, 2019 at 12:25
  • \$\begingroup\$ Very fancy system. I wasn't aware of something like this before, but I can see the need. After quickly skimming over the document, I'd like you to look around at the various places where drift is discussed and talk a little more in your question about how you interpret them into your context and why you feel their specs aren't met. There appear to be several different modes of operation, too, which have significant impact on drift -- particularly, they say, along the yaw axis. You don't say what mode you are using, from what I can see. \$\endgroup\$
    – jonk
    Apr 23, 2019 at 18:36
  • \$\begingroup\$ @jonk I've edited the question to address some of your points. The magnetometer is just a hunch, I can't say for sure as I don't know how the sensor fusion algorithm works for this rotation quarternion. I'll try to see what I can find on drift, so far I haven't found anything that would help for this particular sensor as the fusion is done in the IC, and honestly I can't see how I could get a better result in software from raw readings. \$\endgroup\$ Apr 23, 2019 at 19:31
  • \$\begingroup\$ @Crazymoomin That module already has all of the processing done for you. Anything you add, if it is to be of any real use, will have to be aware of the tiny details of their processing algorithms and, even then, it will not be a simple analysis on how to improve it. You can apply algorithms that are ignorant of the internals, but then you really don't know what you are getting as a result. And I wouldn't trust ignorant post-processing. You may want to call them and ask. Aside from that, I do see one drift number that is very fast: 0.5 degree/minute. But it is for one mode, I think. \$\endgroup\$
    – jonk
    Apr 23, 2019 at 20:15


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.