Method and apparatus for data fusion of a three-axis magnetometer and three axis accelerometer
First Claim
1. A computer-implemented method of fusing data from a three-axis magnetometer and a three-axis accelerometer to provide a magnetic heading of a device, the method comprising:
- receiving, as input, unprocessed magnetic field measurements from the magnetometer associated with the device and unprocessed acceleration measurements from the accelerometer associated with the device;
filtering the unprocessed magnetic field measurements to remove outlying data points and noise and obtaining filtered magnetic field data;
applying a first Kalman filter to the filtered magnetic field data to generate first soft iron and hard iron matrices, wherein the first Kalman filter is based on the principle that the magnitude of local Earth'"'"'s magnetic field vector is constant;
applying a second Kalman filter to the filtered magnetic field data to generate a coupled soft iron/misalignment correction matrix, wherein the second Kalman filter is based on the principle that an angle between the local Earth'"'"'s magnetic field vector and the gravitational acceleration vector is constant;
multiplying the coupled soft iron/misalignment correction matrix by the first soft iron matrix to generate a soft-iron correction matrix;
filtering the unprocessed acceleration measurements to remove outlying data points and noise and obtaining filtered acceleration measurements;
correcting the filtered acceleration measurements as a function of one or more error sources and obtaining corrected acceleration measurements;
correcting the filtered magnetic field data for hard-iron and soft-iron distortions and obtaining corrected magnetic field measurements;
computing quasi-static roll and pitch angles of the device as a function of the corrected acceleration measurements;
forming a transformation matrix from a body frame to a level coordinate frame as a function of the computed quasi-static roll and pitch angles;
transforming the corrected magnetic field measurements from the body frame to the level frame and generating a horizontal magnetic field vector;
determining a magnetic heading of the device as a function of the generated horizontal magnetic field vector and the generated soft-iron correction matrix;
providing, to an application operating on the device, the magnetic heading of the device;
deriving, by the application, angular rates of the device; and
performing auto-calibration of at least one of;
the magnetometer and the accelerometer, based on the corrected acceleration measurements and the derived angular rates.
3 Assignments
0 Petitions
Accused Products
Abstract
Method and apparatus of integrating a three-axis magnetometer and a three-axis accelerometer to provide attitude and heading, calibrated magnetometer and accelerometer data, and angular rate, while removing sensor error sources over time and temperature and to compensate for hard and soft iron distortions of the Earth magnetic field. Filtered accelerometer data are corrected to account for various error sources. The magnetic heading is calculated from a horizontal magnetic field vector transformed from three dimensional Earth'"'"'s magnetic field vector by using quasi-static roll and pitch angles from the filtered accelerometer data. A first Kalman filter estimates the state vector, based on the principle that the magnitude of local Earth'"'"'s magnetic field vector is constant, to form hard and soft iron correction matrices. A second Kalman filter estimates a correction matrix of coupled remaining soft iron and the misalignment of the magnetometer and the accelerometer, as the dot product of local Earth'"'"'s magnetic field vector and a corrected gravitational acceleration vector, at a quasi-static position, is constant. The three dimensional Earth'"'"'s magnetic field vector is received by removing the hard and soft irons through the soft iron and hard iron correction matrixes.
-
Citations
17 Claims
-
1. A computer-implemented method of fusing data from a three-axis magnetometer and a three-axis accelerometer to provide a magnetic heading of a device, the method comprising:
-
receiving, as input, unprocessed magnetic field measurements from the magnetometer associated with the device and unprocessed acceleration measurements from the accelerometer associated with the device; filtering the unprocessed magnetic field measurements to remove outlying data points and noise and obtaining filtered magnetic field data; applying a first Kalman filter to the filtered magnetic field data to generate first soft iron and hard iron matrices, wherein the first Kalman filter is based on the principle that the magnitude of local Earth'"'"'s magnetic field vector is constant; applying a second Kalman filter to the filtered magnetic field data to generate a coupled soft iron/misalignment correction matrix, wherein the second Kalman filter is based on the principle that an angle between the local Earth'"'"'s magnetic field vector and the gravitational acceleration vector is constant; multiplying the coupled soft iron/misalignment correction matrix by the first soft iron matrix to generate a soft-iron correction matrix; filtering the unprocessed acceleration measurements to remove outlying data points and noise and obtaining filtered acceleration measurements; correcting the filtered acceleration measurements as a function of one or more error sources and obtaining corrected acceleration measurements; correcting the filtered magnetic field data for hard-iron and soft-iron distortions and obtaining corrected magnetic field measurements; computing quasi-static roll and pitch angles of the device as a function of the corrected acceleration measurements; forming a transformation matrix from a body frame to a level coordinate frame as a function of the computed quasi-static roll and pitch angles; transforming the corrected magnetic field measurements from the body frame to the level frame and generating a horizontal magnetic field vector; determining a magnetic heading of the device as a function of the generated horizontal magnetic field vector and the generated soft-iron correction matrix; providing, to an application operating on the device, the magnetic heading of the device; deriving, by the application, angular rates of the device; and performing auto-calibration of at least one of;
the magnetometer and the accelerometer, based on the corrected acceleration measurements and the derived angular rates. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-implemented method of fusing data from a three-axis magnetometer and a three-axis accelerometer to provide a magnetic heading of a device, the method comprising:
-
receiving unprocessed magnetic field measurements from the magnetometer associated with the device; receiving unprocessed acceleration measurements from the accelerometer associated with the device; filtering the unprocessed magnetic field measurements to remove outlying data points and noise and obtaining filtered magnetic field data; filtering the unprocessed acceleration measurements to remove outlying data points and noise and obtaining filtered acceleration measurements; correcting the filtered acceleration measurements as a function of one or more error sources and obtaining corrected acceleration measurements; correcting the filtered magnetic field data for hard-iron and soft-iron distortions and obtaining corrected magnetic field measurements, wherein correcting the filtered magnetic field data for hard-iron and soft-iron distortions comprises applying a first Kalman filter to the filtered magnetic field data and generating first soft iron and hard iron matrices, wherein the first Kalman filter is based on the principle that the magnitude of local Earth'"'"'s magnetic field vector is constant; computing quasi-static roll and pitch angles of the device as a function of the corrected acceleration measurements; forming a transformation matrix from a body frame to a level coordinate frame as a function of the computed quasi-static roll and pitch angles; transforming the corrected magnetic field measurements from the body frame to the level frame and generating a horizontal magnetic field vector; and determining a magnetic heading of the device as a function of the generated horizontal magnetic field vector; providing to an application operating on the device the magnetic heading of the device, deriving, by the application, angular rates of the device, and performing auto-calibration of at least one of;
the magnetometer and the accelerometer, based on the corrected acceleration measurements and the derived angular ratesthe method further comprising; determining when the device is in a quasi-static condition and, if so determined, then; applying a second Kalman filter to the filtered magnetic field data and generating a coupled soft iron/misalignment correction matrix, wherein the second Kalman filter is based on the principle that an angle between the local Earth'"'"'s magnetic field vector and the gravitational acceleration vector is constant; and multiplying the coupled soft iron/misalignment correction matrix by the first soft iron matrix and generating a soft-iron correction matrix, wherein the magnetic heading of the device is determined as a function of the generated soft-iron correction matrix.
-
-
10. A computer system including a storage device storing computer instructions that, when executed by a computer, implements a method of fusing data from a three-axis magnetometer and a three-axis accelerometer to provide a magnetic heading of a corresponding device, the method comprising:
-
receiving, as input, unprocessed magnetic field measurements from the magnetometer associated with the device and unprocessed acceleration measurements from the accelerometer associated with the device; filtering the unprocessed magnetic field measurements to remove outlying data points and noise and obtaining filtered magnetic field data; applying a first Kalman filter to the filtered magnetic field data to generate first soft iron and hard iron matrices, wherein the first Kalman filter is based on the principle that the magnitude of local Earth'"'"'s magnetic field vector is constant; applying a second Kalman filter to the filtered magnetic field data to generate a coupled soft iron/misalignment correction matrix, wherein the second Kalman filter is based on the principle that an angle between the local Earth'"'"'s magnetic field vector and the gravitational acceleration vector is constant; multiplying the coupled soft iron/misalignment correction matrix by the first soft iron matrix to generate a soft-iron correction matrix; filtering the unprocessed acceleration measurements to remove outlying data points and noise and obtaining filtered acceleration measurements; correcting the filtered acceleration measurements as a function of one or more error sources and obtaining corrected acceleration measurements; correcting the filtered magnetic field data for hard-iron and soft-iron distortions and obtaining corrected magnetic field measurements; computing quasi-static roll and pitch angles of the device as a function of the corrected acceleration measurements; forming a transformation matrix from a body frame to a level coordinate frame as a function of the computed quasi-static roll and pitch angles; transforming the corrected magnetic field measurements from the body frame to the level frame and generating a horizontal magnetic field vector; determining a magnetic heading of the device as a function of the generated horizontal magnetic field vector and the generated soft-iron correction matrix; and providing, to an application operating on the device, the magnetic heading of the device; deriving, by the application, angular rates of the device; and performing auto-calibration of at least one of;
the magnetometer and the accelerometer, based on the corrected acceleration measurements and the derived angular rates. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
Specification