I still feel there must be a way to get a fixed 0g offset algorithm, based on the fact off-the-shelf quads won’t have to undergo this level of faff by the user; there must be a simple setup for the manufacturer.
Here’s what I got in my latest attempt:
Look’s good, doesn’t it? Nice trend lines which the samples offsets are really tightly aligned with.
The graph X-axis shows the change in temperature since the IMU started. The 333.87 is about 1ºC, so this is what the test plots offset changes as the chip temperature increases away from the boot temperature.
The graph Y-axis shows the 0g offsets: the accelerometers scale is configured as ±4g so the vetical axis covering -1000 ⇒ +800 is the equivalent of -0.12g ⇒ +0.10g.
The lines show the 0g offsets as the difference in temperature increases from the initial boot termperature: the green ones are the accelerometer X-axis offsets; the blue ones are the accelerometer Y-axis offsets; the paler -464 lines come from a garage estimated +10ºC test environment; the darker +1600 lines come from an indoor estimated +20ºC.
OK, with that explained, down to so positive interesting bits:
- the 0g offsets are all very close to 0 when the test starts i.e. when the temperature difference from ambient is near to 0.
- all of the samples fit a linear trend line beautifully.
- the 2 y-axis trends are very similar despite the tests being booted at very different temperatures
But there are very odd bits too:
- in contrast to the y-axis trends, the x-axes trends are virtually the opposite of each over when booted at the very different temperatures
- all of the offets are hugely different from the ones I’ve measured by the same method previously, perhaps by a factor of 10!
Net: I critically need to try to understand these oddities if I stand any chance of using these offsets in a meaningful way. If I can, then this gives me the best possible / nigh on perfect way to allow for offsets shifting as the difference from ambient changes.