Baseline IMU Background
The baseline DVL contains an IMU that has internal magnetometers, accelerometers, and gyros. These sensors are imperfect and can have manufacturing biases and linearity errors. Additionally, external magnetic disturbances can cause the magnetometers to make a bad estimate of magnetic north. The dominant error source for the IMU is usually electrical currents nearby. The currents on circuit boards are a big error source, but we have minimized these by separating the IMU/sensor head from the electronics stack. Other big error sources are the power systems and ferrous materials on the ROV. Thus, we recommend doing a recalibration every time the DVL is mounted in a different way on the ROV.
The IMU has a built-in processing system (an Extended Kalman Filter) that attempts to compensate for drift and offsets in the IMU’s sensors and for external magnetic influences by running a self-calibration process. When you “calibrate” the IMU, what you are really doing is moving the system around so the IMU self-calibration process gets enough motion input to complete its self-calibration. The IMU does not have to start this process from scratch each time it powers up if the calibration coefficients can be loaded from a source external to the IMU.
The calibration coefficients are stored in non-volatile memory in the DVL. On first power-up out of the box, the DVL executive waits until the IMU reports it has achieved a full calibration. As soon as the executive sees this, it stores the calibration coefficients and holds onto them for use on subsequent power-up. If you re-mount the sensor head, you want to manually invalidate the calibration, and the DVL executive will then start looking for the IMU to report it is fully calibrated so it can save new coefficients.
Any time after either an initial calibration or a subsequent boot-up calibration is complete, you can “grab” calibration data and the newest calibration data will immediately store in flash as soon as the IMU thinks its calibration is fully valid. Generally, you should only invalidate the stored calibration set while the IMU is happy and thinks it is self-calibrated. This is so you can be confident a new calibration set gets stored right away. When you power up the DVL, restoring the IMU to fully calibrated should be simple – like turning the ROV upside down a couple of times and waving it around once or twice.
We recommend you do the initial IMU dance (see below) on your boat or on the dock next to your boat rather than back in the shop, as this is likely to be the least magnetically-disturbed environment and most similar to where it is used in the water. Remember your boat engines are probably big cast iron blocks so try not to do it right on top of them.
Leaving the system sit for a long time doesn’t get you a better calibration. The IMU’s Kalman filter wants to see motion and change in orientation so it can self-calibrate. It starts at “zero,” and after enough motion, it determines a set of self-calibration coefficients. These are what we store in the DVL’s flash memory. When the system starts up again, we re-load this set of self-calibration constants back into the IMU, and it then only needs to see enough motion to say “oh yeah, the calibration is reasonable, let’s go.” It’s not starting the calibration from zero again.
The IMU normally goes up and down in calibration confidence as the system moves around.
Of course, if you put the system next to a big iron boat after calibrating, all bets are off on the effectiveness of the calibration.
Things to remember about IMU calibration (baseline IMU only):
IMU calibration coefficients are saved in receiver flash memory and a good saved calibration set will result in much faster calibration on startup.
The IMU should be fully calibrated each time it is mounted in a new or different location on the ROV.
You need to tell the DVL to invalidate its IMU calibration coefficients when you remount it, then you need to do calibration maneuvers until calibration completes (see below). Invalidating a calibration set schedules a new set to be stored.
Failing to invalidate old IMU data when re-mounting the receiver may result in long, annoying, difficult startups.
Last updated