Calibration of the IMU


#1

There have been some questions about how to properly calibrate the IMU on the OpenROV. I wanted to make this quick tutorial to let you know how the system works.

Just like a smartphone that needs to be calibrated before the compass works, the ROV needs to be moved around in order to be calibrated.


Before Calibration: BNO055.CALIB_SYS 0

Moving ROV around



After Calibration: BNO055.CALIB_SYS 3

The compass also uses two different systems in order to remain accurate. The compass uses both a magnetometer as well as a gyro. After the system is calibrated it has a magnetometer value. When the motors are running there is interference between the magnetometer and the motors so the compass switches into a gyro mode. This eliminates the interference. The problem with gyro based compasses is that they drift over time. In order to counteract this when the motors are turned off for more than 5 seconds, the system re-engages the magnetometer and pulls a true value. When the motors start running, it switches back to the gyro mode. This eliminates the drift associated with long period of gyro usage.


In the video you can see the BNO055.CALIB_MAG go from 0 (not calibrated) to 3 (calibrated)

You should calibrate the IMU using this procedure every time the ROV is turned on.


IMU Calibration (compass and tilt)
30.0.3 software release notes
I can't get the IMU working
Blue Robotics/OpenROV 2.8 Hybrid ROV
I can't get the IMU working
I can't get the IMU working
#2

Excellent, this is very helpful! I do however have the issue that the value of BNO055.CALIB_SYS does not stay at 3 but it changes between 2 and 3. Why is this? And what is the impact on the IMU?


#3

You will see this under normal operation. A value of 2 and a value of 3 is fine for the system. The number changes based on different calibration states. Your IMU will work in either state.


#5

So…this may be something obvious that I’m not seeing…but is there something I have to click on to initiate the calibration? Or does it just wait to be calibrated as soon as the ROV is powered on? My line for calib_sys is in its own folder, and had a value of 3 right away without doing anything.


#6

Hi Brian,
I can’t even get BNO to show up on my screen. I upadated to the latest flash 30.0.3 and still nothing. Is there a way I can find out if my IMU module itself is bad?

I’m kind of in dire need of help with this.

Justin


#7

@eyediver1,
You might try updating the Arduino firmware from the Cockpit and see if that helps.
Regards,
TCIII AVD


#8

Has the IMU ever worked or is this your first time booting up after installing it? Is the depth working (they share the same I2C bus so this will give a clue as to where the issue is).