Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does it need to do mag calibration every time power is up? #3

Open
howardmah opened this issue Sep 7, 2015 · 6 comments
Open

Does it need to do mag calibration every time power is up? #3

howardmah opened this issue Sep 7, 2015 · 6 comments

Comments

@howardmah
Copy link

Hello Kris,

I have been testing BNO055 and found that it's hardware fusion result is very good. The result, however, is good only with good mag calibration.
When I am testing it, it will be no problem to move the sensor in a 8 figure. However, if it is attached to a big body, like a robot, moving the whole thing in an 8 figure every time it reboots would not be possible.
Therefore, I tried to save mag offset values and wrote them into the registers directly without calibration. It seemed not working well. It's result was very far from the accuracy with a good calibration.

Is it possible to save mag calibration and reuse it without any new calibration?
If so, could you explain how to do that?

Thanks,

Howard

@kriswiner
Copy link
Owner

Hi Howard,

There are two ways. You could simply calculate (measure) the mag biases and
hard code them into your program. Or you could store them in non-volatile
flash memory or EEPROM either on a separate I2C breakout board or on your
microcontroller. Most microcontrollers (like the Teensy 3.x) have some spare
(~2 Kbyte) flash available and you can write small amounts of data there and
retrieve it on start up. Simply writing the values into your program is
surely the easiest method. This is possible since most of the mag
calibration is to compensate for board stresses and other changes to the
magnetometer during assembly; they don't change very much. However, if your
robot has a lot of iron and high-current wires, this might be a problem
since the magnetic environment will be affected by these and you might have
to perform at least one bias calibration with the magnetometer in its
working position; on the robot!

Kris

-----Original Message-----
From: howardmah [mailto:notifications@github.com]
Sent: September 7, 2015 2:12 AM
To: kriswiner/BNO-055
Subject: [BNO-055] Does it need to do mag calibration every time power is
up? (#3)

Hello Kris,

I have been testing BNO055 and found that it's hardware fusion result is
very good. The result, however, is good only with good mag calibration.
When I am testing it, it will be no problem to move the sensor in a 8
figure. However, if it is attached to a big body, like a robot, moving the
whole thing in an 8 figure every time it reboots would not be possible.
Therefore, I tried to save mag offset values and wrote them into the
registers directly without calibration. It seemed not working well. It's
result was very far from the accuracy with a good calibration.

Is it possible to save mag calibration and reuse it without any new
calibration?
If so, could you explain how to do that?

Thanks,

Howard

Reply to this email directly or view it on GitHub
#3 .
<https://github.com/notifications/beacon/AGY1qi5rOUCD_m04YZtqEI0Ee7ERiQXoks5
ovUxXgaJpZM4F415m.gif>

@chrisspen
Copy link

chrisspen commented May 29, 2017

I'm running into the same problem. I was able to store and reload the calibration offsets, the way you describe. Immediately after loading the offsets, the system flag shows full calibration.

However, the default setting seems to have it continuously recalibrating, because the system flag, and sometimes magnetometer flag, with sometimes revert back to uncalibrated or partial calibration status. This forces me to manually move the sensor around to recalibrate it, defeating the purpose of saving the offsets.

Is there any way to disable the auto-calibration function once you've loaded the correct calibration offsets, so it doesn't lose calibration?

@kriswiner
Copy link
Owner

kriswiner commented May 29, 2017 via email

@rvincent25
Copy link

I have been running into the same issue anyone found out how to prevent the IMU to recalibrate?

@chrisspen
Copy link

I save the last known calibration settings, and then re-load it upon power-up.

@rvincent25
Copy link

That's what I do but the calibration flags are still 0 (instead of 3) after reloading the values, so I'm doing something wrong here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants