Main Content

fusemag

Correct states using magnetometer data for insfilterMARG

Description

example

[res,resCov] = fusemag(FUSE,magReadings,magReadingsCovariance) fuses magnetometer data to correct the state estimate.

Examples

collapse all

Create an insfilterMARG object and display its state.

filter = insfilterMARG;
disp(filter.State')
    1.0000         0         0         0         0         0         0         0         0         0         0         0         0         0         0         0   27.5550   -2.4169  -16.0849         0         0         0

Define a magnetometer reading and its covariance. Fuse the reading.

magReading = [132.7000   91.1000   60.5000];
magCovariance = eye(3);
[res,resCovariance] = fusemag(filter,magReading,magCovariance)
res = 1×3

  105.1450   93.5169   76.5849

resCovariance = 3×3

    1.0041    0.0000   -0.0000
   -0.0000    1.0041    0.0000
    0.0000   -0.0000    1.0041

Display the filter state.

disp(filter.State')
    1.0000   -0.0026    0.0076   -0.0056         0         0         0         0         0         0         0         0         0         0         0         0   27.5551   -2.4168  -16.0848    0.0001    0.0001    0.0001

Input Arguments

collapse all

insfilterMARG, specified as an object.

Magnetometer readings in µT, specified as a 3-element row vector of finite real numbers.

Data Types: single | double

Magnetometer readings error covariance in µT2, specified as a scalar, 3-element row vector, or 3-by-3 matrix.

Data Types: single | double

Output Arguments

collapse all

Residual, returned a 1-by-3 vector of real values in µT.

Data Types: single | double

Residual covariance, returned a 3-by-3 matrix of real values in (µT)2.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2018b