IP Library Granted Patent US 10,325,005
Granted Patent B2
US 10,325,005 · App. 13/885,248 · Granted Jun 18, 2019

Apparatuses and methods for calibrating magnetometer attitude-independent parameters

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,325,005
App. No.
13/885,248
Granted
Jun 18, 2019
Kind
B2
Abstract

Methods and apparatuses for calibrating attitude-independent parameters of a 3-D magnetometer are provided. A calibration method includes storing and updating data related to a N×9 matrix T and a N×1 matrix U extended for each measurement with an additional row and an additional element, respectively, the additional row and the additional element being calculated based on values measured by the 3-D magnetometer for the respective measurement. The method further includes calculating analytically (1) a symmetric non-orthogonal 3×3 matrix D representing scaling and skew of the 3-D magnetometer measured values and (2) a vector b representing bias of the 3-D magnetometer measured values, using the stored data and a singular value decomposition (SVD) method.

Claims (1946)

1. A method for determining an orientation of a 3-D device, by calibrating attitude -independent parameters of a 3-D magnetometer attached to the 3-D device, the method comprising:

receiving movement data of the 3-D device via the 3-D magnetometer;

storing and updating data related to a T matrix of size N×9 and a U matrix of size N×1, each of the N rows of matrix T corresponding to a respective measured value of the 3-D magnetometer and comprising values calculated based on a first set of 9 functions of the respective measured value by the 3-D magnetometer, wherein N is a number of sample measurements by the 3-D magnetometer, and each of the N rows of matrix U corresponding to a respective measured of the 3-D magnetometer and comprising a value calculated based on a second function of the respective measured value by the 3-D magnetometer;

calculating analytically (1 )a symmetric nonorthogonal 3×3 matrix D representing scaling and skew of each axis of the 3-D magnetometer measured values and (2) a vector b representing bias of each axis of the 3-D magnetometer measured values, using the stored data and a singular value decomposition method; and wherein the calculating comprises:

computing a vector K=(T T ×T) −1 ×T T ×U;

generating a matrix F using elements of the vector K, and determining a matrix G, where F=G×G, using a singular value decomposition method;

determining a scale offset bias

{tilde over (b)}= G −1 ×[ K (6) K (7) k (8)] T

determining a scale factor

co

=

H

2

[

K

(

6

)

K

(

7

)

K

(

8

)

]

×

F

-

1

×

[

K

(

6

)

K

(

7

)

K

(

8

)

]

T

-

K

(

9

)

 where |H| 2 is a square of local geomagnetic field strength;

calculating the vector b =sqrt(co) {tilde over (b)}and matrix pD =sqrt(co)·G ; and

extracting the symmetric non-orthogonal 3×3 matrix D=pD−1 3×3 , wherein K(i) represents the i th element of vector K

further wherein a 9×9 matrix L is used to accumulate T T ×T , and a 9×1 matrix M is used to accumulate T T ×U, wherein at time step n+1 , matrix L and matrix M are updated according to:

L n+1 = L n +( T n+1 T × T n+1 )

M n+1 = M n +( T n+1 T × U n+1 )

wherein T n+1 ,is an element at n+1 row of T, and U n+1 , is an element at n+1 row of U, and are functions of a magnetometer sample measurement at a current time step;

calibrating attitude-independent parameters of a 3-D magnetometer attached to the 3-D device using matrix D to compensate for soft iron effect and matrix b to compensate for hard iron effect; and

determining an orientation of the device using the attitude-independent parameters.

2. The method of claim 1 , wherein

F

=

[

1

+

K

(

1

)

+

K

(

2

)

K

(

3

)

K

(

4

)

K

(

3

)

1

+

K

(

1

)

-

2

K

(

2

)

K

(

5

)

K

(

4

)

K

(

5

)

1

-

2

K

(

1

)

+

K

(

2

)

]

.

3. The method of claim 1 , wherein

T

=

[

[

B

x

2

+

B

y

2

-

2

B

z

2

B

x

2

-

2

B

y

2

+

B

z

2

2

B

x

·

B

y

2

B

x

·

B

z

2

·

B

y

·

B

z

-

2

B

x

-

2

B

y

-

2

B

z

1

]

1

[

B

x

2

+

B

y

2

-

2

B

z

2

B

x

2

-

2

B

y

2

+

B

z

2

2

B

x

·

B

y

2

B

x

·

B

z

2

·

B

y

·

B

z

-

2

B

x

-

2

B

y

-

2

B

z

1

]

N

]

and

U

=

[

-

(

B

x

2

+

B

y

2

+

B

z

2

)

1

-

(

B

x

2

+

B

y

2

+

B

z

2

)

N

]

,

wherein B x is a measurement of axis x, B y is a measurement of axis y, and B z is a measurement of axis z.

4. The method of claim 1 , further comprising estimating accuracy of determining the symmetric non-orthogonal 3×3 matrix D and the vector b.

5. The method of claim 4 , wherein the accuracy of determining the symmetric non-orthogonal 3×3 matrix D and the vector b is estimated by computing matrices

Y

1

=

[

0

0

0

2

3

pD

11

0

-

2

3

pD

33

2

3

pD

12

0

-

2

3

pD

23

0

0

0

2

3

pD

11

-

2

3

pD

22

0

0

2

3

pD

13

-

2

3

pD

23

0

0

0

pD

12

pD

12

0

pD

11

+

pD

22

pD

23

pD

13

0

0

0

pD

13

0

pD

13

pD

23

pD

11

+

pD

33

pD

12

0

0

0

0

pD

23

pD

23

pD

13

pD

12

pD

22

+

pD

33

pD

11

pD

12

pD

13

b

x

0

0

b

y

b

z

0

pD

12

pD

22

pD

23

0

b

y

0

b

x

0

b

z

pD

13

pD

23

pD

33

0

0

b

z

0

b

x

b

y

2

b

x

2

b

y

2

b

z

0

0

0

0

0

0

]

Y

2

=

K

×

[

0

0

0

4

3

pD

11

4

3

pD

22

4

3

pD

33

2

pD

12

2

pD

13

2

pD

23

]

K

J

=

1

co

·

(

Y

1

-

Y

2

)

A

=

A

+

(

T

n

+

1

T

×

T

n

+

1

)

and

P

KK

=

σ

z

2

·

A

-

1

;

calculating an error covariance matrix

P

JJ

=

(

K

J

)

-

1

×

P

KK

×

(

K

J

)

-

1

;

 and

computing error of the elements of b and D as elements of J=[b x b y b z pD 11 pD 22 pD 33 pD 12 pD 13 pD 23 ] T according to ε J =sqrt(diag(P JJ ))

wherein

pD

=

I

3

×

3

+

D

=

[

pD

11

pD

12

pD

13

pD

12

pD

22

pD

23

pD

13

pD

23

pD

33

]

.

6. An apparatus for determining an orientation of a 3-D device, wherein the apparatus is configured to perform a calibration of attitude-independent parameters of a 3-D) magnetometer attached to the 3-D device, comprising:

an interface configured to receive field values measured on each of three axes by the 3-D magnetometer; and

a data processing unit configured

to receive movement data of the 3-D device via the 3-D magnetometer,

to store and update data related to a T matrix of size N×9 and a U matrix of size N×1 ,each of the N rows of matrix T responding to a respective measured value of the 3-D magnetometer and comprising values calculated based on a first set of 9 functions of the respective measured value by the 3-D magnetometer, each of the N rows of matrix U corresponds to a respective measured value by the 3-D magnetometer and comprises a value calculated based on a second function of the respective measured value by the 3-D magnetometer, wherein N is a number of sample measurements by the 3-D) magnetometer,

to calculate analytically (1) a symmetric non-orthogonal 3×3 matrix D representing scaling and skew of each axis of the 3-D magnetometer measured values and (2) a vector b representing bias of each axis of the 3-D magnetometer measured values, using the stored data and a singular value decomposition method, and

wherein the data processing unit is configured to calculate the symmetric non-orthogonal 3×3 matrix D and the vector b

by: (1) computing a vector K=(T T ×T) −3 ×T T ×U;

(2) generating a matrix F using elements of the vector K, and determining a matrix G, where F=G×G, using a singular value decomposing method;

(3) determining a scale offset bias

{tilde over (b)}= G −1 ×[ K (6) K (7) k (8)] T

(4) determining a scale factor

co

=

H

2

[

K

(

6

)

K

(

7

)

K

(

8

)

]

×

F

-

1

×

[

K

(

6

)

K

(

7

)

K

(

8

)

]

T

-

K

(

9

)

 where |H| 2 a square of local geomagnetic field strength;

(5) calculating the vector b =sqrt(co) {tilde over (b)}and matrix pD =sqrt(co)·G ; and

(6) extracting the symmetric non-orthogonal 3×3 matrix D =pD−I 3×3 , wherein K(i) represents the i th element of vector K,

further wherein the data processing unit is configured to use a 9×9 matrix L is to accumulate T T ×T , and a 9×1 matrix M to accumulate T T ×U , wherein at time step n+1, matrix L and matrix M are updated according to:

L n+1 = L n +( T n+1 T × T n+1 )

M n+1 = M n +( T n+1 T × U n+1 )

wherein T n+1 , is an element at n+ 1 row of T, and U n+1 , is an element at n+1 row of U, and are functions of a magnetometer sample measurement at a current time step;

to calibrate attitude-independent parameters of a 3-D magnetometer attached to the 3-D) device using matrix D to compensate for soft iron effect and matrix b to compensate for hard iron effect; and

to determine an orientation of the device using the attitude-independent parameters.

7. The method of claim 6 further comprising:

determining if the 3-D magnetometer measured values meet a predetermined criterion; and

using the 3-D magnetometer measured values in the updating of the matrices T and U only if they meet the predetermined criterion.

8. The apparatus of claim 7 , where

F

=

[

1

+

K

(

1

)

+

K

(

2

)

K

(

3

)

K

(

4

)

K

(

3

)

1

+

K

(

1

)

-

2

K

(

2

)

K

(

5

)

K

(

4

)

K

(

5

)

1

-

2

K

(

1

)

+

K

(

2

)

]

.

9. The apparatus of claim 7 , wherein

T

=

[

[

B

x

2

+

B

y

2

-

2

B

z

2

B

x

2

-

2

B

y

2

+

B

z

2

2

B

x

·

B

y

2

B

x

·

B

z

2

·

B

y

·

B

z

-

2

B

x

-

2

B

y

-

2

B

z

1

]

1

[

B

x

2

+

B

y

2

-

2

B

z

2

B

x

2

-

2

B

y

2

+

B

z

2

2

B

x

·

B

y

2

B

x

·

B

z

2

·

B

y

·

B

z

-

2

B

x

-

2

B

y

-

2

B

z

1

]

N

]

and

U

=

[

-

(

B

x

2

+

B

y

2

+

B

z

2

)

1

-

(

B

x

2

+

B

y

2

+

B

z

2

)

N

]

wherein B x is a measurement of axis x, B y is a measurement of axis y, and B z is a measurement of axis z.

10. The apparatus of claim 7 , wherein the data processing unit is further configured to estimate accuracy of determining the symmetric non-orthogonal 3×3 matrix D and the vector b.

11. The apparatus of claim 10 , further wherein the data processing unit estimates the accuracy of determining the symmetric non-orthogonal 3×3 matrix D and the vector b is estimated by computing matrices

Y

1

=

[

0

0

0

2

3

pD

11

0

-

2

3

pD

33

2

3

pD

12

0

-

2

3

pD

23

0

0

0

2

3

pD

11

-

2

3

pD

22

0

0

2

3

pD

13

-

2

3

pD

23

0

0

0

pD

12

pD

12

0

pD

11

+

pD

22

pD

23

pD

13

0

0

0

pD

13

0

pD

13

pD

23

pD

11

+

pD

33

pD

12

0

0

0

0

pD

23

pD

23

pD

13

pD

12

pD

22

+

pD

33

pD

11

pD

12

pD

13

b

x

0

0

b

y

b

z

0

pD

12

pD

22

pD

23

0

b

y

0

b

x

0

b

z

pD

13

pD

23

pD

33

0

0

b

z

0

b

x

b

y

2

b

x

2

b

y

2

b

z

0

0

0

0

0

0

]

Y

2

=

K

×

[

0

0

0

4

3

pD

11

4

3

pD

22

4

3

pD

33

2

pD

12

2

pD

13

2

pD

23

]

K

J

=

1

co

·

(

Y

1

-

Y

2

)

A

=

A

+

(

T

n

+

1

T

×

T

n

+

1

)

and

P

KK

=

σ

z

2

·

A

-

1

;

calculating an error covariance matrix

P

JJ

=

(

K

J

)

-

1

×

P

KK

×

(

K

J

)

-

1

;

 and

computing error of the elements of b and D as elements of J=[b x b y b z pD 11 pD 22 pD 33 pD 12 pD 13 pD 23 ] T according to ε J =sqrt(diag(P JJ ))

wherein

pD

=

I

3

×

3

+

D

=

[

pD

11

pD

12

pD

13

pD

12

pD

22

pD

23

pD

13

pD

23

pD

33

]

.

12. The apparatus of claim 7 wherein the data processing unit is further configured to:

determine if the 3-D magnetometer measured values meet a predetermined criterion; and

use the 3-D magnetometer measured values in the updating of the matrices T and U only if they meet the predetermined criterion.

13. A non-transitory computer readable medium storing executable codes, which, when executed by a processor, make the processor execute a method for determining an orientation of a 3-D device by calibrating attitude-independent parameters of a 3-D magnetometer attached to the 3-D device, the method comprising

receiving movement data of the 3-D device via the 3-D magnetometer;

storing and updating data related to a T matrix of size N×9 and a U matrix of size N×1, each of the N rows of matrix T corresponding to a respective measured value of the 3-D magnetometer and comprising values calculated based on a first set of 9 functions of the respective measured value by the 3-D magnetometer, wherein N is a number of samples measurements by the 3-D magnetometer, and each of the N rows of matrix U corresponding to a respective measured vale of the 3-D magnetometer and comprising a value calculated based on a second function of the respective measured value by the 3-D magnetometer;

calculating analytically (1) a symmetric non-orthogonal 3×3 matrix D representing scaling and skew of each axis of the 3-D magnetometer measured values and (2) a vector b representing bias of each axis of the 3-D magnetometer measured values, using the stored data and a singular value decomposition method;

wherein the calculating comprises:

computing a vector K=(T T ×T) −1 ×T T ×U;

generating a matrix F using elements of the vector K, and determining a matrix G, where F=G×G, using a singular value decomposition method:

determining a scale offset bias

{tilde over (b)}= G −1 ×[ K (6) K (7) k (8)] T

determining a scale factor

co

=

H

2

[

K

(

6

)

K

(

7

)

K

(

8

)

]

×

F

-

1

×

[

K

(

6

)

K

(

7

)

K

(

8

)

]

T

-

K

(

9

)

 where |H| 2 is a square of local geomagnetic field strength;

calculating the vector b =sqrt(co)·{tilde over (b)}and matrix pD =sqrt(co)·G ; and

extracting the symmetric non-orthogonal 3×3 matrix D=pD−I 3×3 , wherein K(i) represents the i th element of vector K,

wherein a 9×9 matrix L is used to accumulate T T×T, and a 9×1 matrix M is used to accumulate T T ×U , wherein at time step n+ 1 , matrix L and matrix M are updated according to:

L n+1 = L n +( T n+1 T × T n−1 )

M n+1 = M n +( T n+1 T × U n−1 )

further wherein T n+1 is an element at n+1 row of T, and U n+1 , is an element at n+1 row of U, and are functions of a magnetometer sample measurement at a current time step;

calibrating attitude-independent parameters of a 3-D magnetometer attached to the 3-D device using matrix D to compensate for soft iron effect and matrix b to compensate for hard iron effect and

determining an orientation of the device using the attitude-independent parameters.

14. The computer readable medium of claim 13 , where

F

=

[

1

+

K

(

1

)

+

K

(

2

)

K

(

3

)

K

(

4

)

K

(

3

)

1

+

K

(

1

)

-

2

K

(

2

)

K

(

5

)

K

(

4

)

K

(

5

)

1

-

2

K

(

1

)

+

K

(

2

)

]

.

15. The computer readable medium of claim 13 , wherein

T

=

[

[

B

x

2

+

B

y

2

-

2

B

z

2

B

x

2

-

2

B

y

2

+

B

z

2

2

B

x

·

B

y

2

B

x

·

B

z

2

·

B

y

·

B

z

-

2

B

x

-

2

B

y

-

2

B

z

1

]

1

[

B

x

2

+

B

y

2

-

2

B

z

2

B

x

2

-

2

B

y

2

+

B

z

2

2

B

x

·

B

y

2

B

x

·

B

z

2

·

B

y

·

B

z

-

2

B

x

-

2

B

y

-

2

B

z

1

]

N

]

and

U

=

[

-

(

B

x

2

+

B

y

2

+

B

z

2

)

1

-

(

B

x

2

+

B

y

2

+

B

z

2

)

N

]

wherein B x is a measurement of axis x, B y is a measurement of axis y, and B z is a measurement of axis z.

16. The computer readable medium of claim 13 , wherein the method further comprises estimating accuracy of determining the symmetric non-orthogonal 3×3 matrix D and the vector b.

17. The computer readable medium of claim 16 , wherein the method further comprising wherein the accuracy of determining the symmetric non-orthogonal 3×3 matrix D and the vector b is estimated by computing matrices

Y

1

=

[

0

0

0

2

3

pD

11

0

-

2

3

pD

33

2

3

pD

12

0

-

2

3

pD

23

0

0

0

2

3

pD

11

-

2

3

pD

22

0

0

2

3

pD

13

-

2

3

pD

23

0

0

0

pD

12

pD

12

0

pD

11

+

pD

22

pD

23

pD

13

0

0

0

pD

13

0

pD

13

pD

23

pD

11

+

pD

33

pD

12

0

0

0

0

pD

23

pD

23

pD

13

pD

12

pD

22

+

pD

33

pD

11

pD

12

pD

13

b

x

0

0

b

y

b

z

0

pD

12

pD

22

pD

23

0

b

y

0

b

x

0

b

z

pD

13

pD

23

pD

33

0

0

b

z

0

b

x

b

y

2

b

x

2

b

y

2

b

z

0

0

0

0

0

0

]

Y

2

=

K

×

[

0

0

0

4

3

pD

11

4

3

pD

22

4

3

pD

33

2

pD

12

2

pD

13

2

pD

23

]

K

J

=

1

co

·

(

Y

1

-

Y

2

)

A

=

A

+

(

T

n

+

1

T

×

T

n

+

1

)

and

P

KK

=

σ

z

2

·

A

-

1

;

calculating an error covariance matrix

P

JJ

=

(

K

J

)

-

1

×

P

KK

×

(

K

J

)

-

1

;

 and

computing error of the elements of b and D as elements of J=[b x b y b z pD 11 pD 22 pD 33 pD 12 pD 13 pD 23 ] T according to ε J =sqrt(diag(P JJ )),

wherein

pD

=

I

3

×

3

+

D

=

[

pD

11

pD

12

pD

13

pD

12

pD

22

pD

23

pD

13

pD

23

pD

33

]

.

18. The computer readable medium of claim 13 wherein the method further comprises:

determining if the 3-D magnetometer measured values meet a predetermined criterion; and

using the 3-D magnetometer measured values in the updating of the matrices T and U only if they meet the predetermined criterion.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2017
From: MULTIPLIER CAPITAL, LP
To: HILLCREST LABORATORIES, INC.
Reel/Frame 043339/0214 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HILLCREST LABORATORIES, INC.
To: IDHL HOLDINGS, INC.
Reel/Frame 042747/0445 →
SECURITY AGREEMENT Recorded Mar 1, 2016
From: HILLCREST LABORATORIES, INC.
To: MULTIPLIER CAPITAL, LP
Reel/Frame 037963/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2013
From: SHENG, HUA
To: HILLCREST LABORATORIES, INC.
Reel/Frame 030412/0364 →