Prior to using sensor measurements in the Kalman, Greensea uses several different prefilters on the sensor data. These prefilters are typically used to impose some sanity and logical boundaries to the sensor data. These prefilters do not smooth or mean the sensor data, though. Meaning and smoothing introduces lags to the data and corrupts the error estimation process of the Kalman.
The Kalman filter is structured on the assumption that each sensor has Gaussian noise such that the noise is centered about zero and that each sensor is entirely decoupled from the other. The Kalman fuses two discrete measurements to determine a single state estimate that is closer to the actual state than possibly measured by either sensor. It does this by estimating the error of each sensor and weighting each measurement by the estimated quality such that, theoretically, if one sensor is noise and error free the filter would not allow any contribution by the other sensor.
The filter calculates the weightings for each measurement based on the covariance of the measurement. The covariance states the general expected uncertainly in the measurement and controls the development of the weighting. The weighting is essentially a confidence figure in the measurement and determines how much the measurement will contribute to the final state estimate.
USBL is a special case for sensor fusion. If USBL is the only aiding sensor, it is used in the INS solution when it is available. If there is another aiding sensor for the X and Y position channels though, the USBL is often not included in the solution. USBL data is relatively noisy and contains significant errors compared to DVL or other velocimetry data. While the USBL measurements provide good large-scale drift corrections, the noise inherent in that measurement can destabilize the overall navigation solution. Greensea often will not include the USBL measurements beyond the initial updates when the DVL has a valid bottom lock unless the operator specifically configures the INS otherwise. We have found a more effective inclusion of the USBL data with DVL data is to allow the operator to manually update the solution with the USBL fix when it is stable.