IP Library Granted Patent US 7,860,676
Granted Patent B2
US 7,860,676 · App. 12/163,229 · Granted Dec 28, 2010

Real-time dynamic tracking of bias

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 7,860,676
App. No.
12/163,229
Granted
Dec 28, 2010
Kind
B2
Abstract

A bias value associated with a sensor, e.g., a time-varying, non-zero value which is output from a sensor when it is motionless, is estimated using at least two, different bias estimating techniques. A resultant combined or selected bias estimate may then be used to compensate the biased output of the sensor in, e.g., a 3D pointing device.

Claims (226)

1. A device comprising:

at least one sensor for sensing rotation of said device about a first axis and generating at least one first output associated therewith and for sensing rotation of said device about a second axis and generating at least one second output associated therewith;

an accelerometer for sensing an acceleration of said device and outputting at least one third output associated therewith;

a temperature sensor for sensing a temperature of said device and outputting at least one temperature output associated therewith; and

a processing unit for determining a bias estimate associated with said at least one sensor using:

(a) a first bias estimate technique for generating first bias estimate data based upon determining whether said device is stationary using said at least one first, second and third outputs;

(b) a second bias estimate technique for generating second bias estimate data based upon detection of a pitch of said device using said at least one first, second and third outputs;

(c) a third bias estimate technique for generating third bias estimate data based upon slew-rate filtering using said at least one first and second outputs; and

(d) a fourth bias estimate technique for generating fourth bias estimate data based upon said temperature output and said at least one first and second outputs.

2. The device of claim 1 , wherein said sensed rotation of said device involves at least one of: an angular velocity, an angular rate, and an angular position of said device.

3. The device of claim 1 , wherein said bias estimate is associated with a non-zero value output from said at least one sensor when said device is stationary.

4. A method for estimating bias associated with a sensor comprising:

estimating said bias associated with said sensor using at least a first bias estimating technique to generate a first bias estimate and a second bias estimating technique to generate a second bias estimate.

5. The method of claim 4 , wherein said first bias estimate and said second bias estimate are associated with a non-zero value output from said sensor when an object to which said sensor is attached is stationary.

6. The method of claim 4 , further comprising:

selecting one of said first bias estimate and said second bias estimate to generate an output bias estimate.

7. The method of claim 4 , wherein said first bias estimating technique generates said first bias estimate based upon detection of a change in angle of said device relative to one of a plurality of different axes.

8. The method of claim 4 , wherein said sensor is one of a gyroscope, and a Coriolis effect rotational sensor.

9. The method of claim 4 , wherein said sensor is a MEMS device.

10. The method of claim 4 , wherein said first bias estimating technique generates said first bias estimate based upon determining whether a device within which said sensor is located is stationary.

11. The method of claim 10 , wherein said first bias estimating technique determines that said device is stationary when peak-to-peak values received from said sensor are less than a predetermined threshold.

12. The method of claim 4 , wherein said first bias estimating technique generates said first bias estimate based upon a detected temperature associated with a device within which said sensor is located.

13. The method of claim 12 , wherein said first bias estimating technique generates said first bias estimate B by calculating:

B =slope( t )* T +intercept( t ),

where T (in units of degrees Centigrade) is a temperature measurement associated with said device, slope(t) is a change of bias per unit temperature as a function of time, intercept(t) is a bias at a temperature of zero as a function of time and t is the time.

14. The method of claim 4 , wherein said first bias estimating technique generates said first bias estimate based upon slew-rate filtering.

15. The method of claim 14 , wherein said slew rate filter calculates said first bias estimate as the sum of a previous first bias estimate plus y, where y is:

y={B:x>B,x:−B<x<B,−B:x<−B;}

where x is an input from the sensor and B is a slew-rate filter threshold.

16. The method of claim 15 , wherein B is periodically calculated based on at least one of a temperature change rate and a bias temperature slope estimate.

17. The method of claim 4 , further comprising:

combining said first bias estimate and said second bias estimate to generate an output bias estimate.

18. The method of claim 17 , wherein said combining is performed by a Kalman filter to generate said output bias estimate.

19. The method of claim 18 , wherein a process model associated with said Kalman filter can be expressed as:

X

t

n

+

1

=

X

t

n

+

(

slope

(

t

n

)

+

slope

(

t

n

+

1

)

2

)

·

Δ

T

+

W

t

n

,

Δ

T

=

FiltT

(

t

n

+

1

)

-

FiltT

(

t

n

)

where:

slope(t n ) and slope(t n+1 ) are bias temperature slope estimates at time t n and t n+1 , respectively, FiltT(t n ) and FiltT(t n+1 ) are filtered temperature estimates at time t n and t n+1 , respectively, ΔT is a temperature change between a current filtered temperature estimate FiltT(t n+1 ) and a last filtered temperature estimate FiltT(t n ) associated with a last time at which the Kalman filter was executed, and {right arrow over (W)} t n is an error with zero mean and covariance 2×2 matrix Q.

20. The method of claim 4 , wherein said first bias estimating technique generates said first bias estimate based upon detection of a pitch of a device within which said sensor is located.

21. The method of claim 20 , wherein said first bias estimate is determined over a variable time window, said variable time window varying based upon measurement noise associated with data generated by said sensor.

22. The method of claim 20 , wherein said first bias estimating technique operates in one mode to generate said first bias estimates as individual data points which converge over time.

23. The method of claim 20 , wherein said first bias estimating technique operates in one mode to generate said first bias estimates using a line intersection technique associated with two individual bias estimates by combining two measurements of biases of pitch angular rates at two different roll angles.

24. The method of claim 20 , wherein said first bias estimating technique operates in one mode to generate said first bias estimates by mapping averaged values output by said sensor into a bias of a yaw angular rate and a bias of a pitch angular rate defined in a user frame of reference.

25. The method of claim 20 , wherein said first bias estimating technique calculates a difference between a first change of elevation angle determined using data output from said sensor and a second change of elevation angle determined using data output from another sensor.

26. The method of claim 25 , wherein said sensor is an accelerometer and said another sensor is a sensor which measures rotation of said device about an axis.

27. The method of claim 20 , wherein said first bias estimating technique operates in one of three modes to generate said first bias estimates including:

(a) a first mode for generating said first bias estimates as individual data points which converge over time;

(b) a second mode to generate said first bias estimates using a line intersection technique associated with two individual bias estimates; and

(c) a third mode for generating said first bias estimates by mapping averaged values output by said sensor into a bias of a yaw angular rate and a bias of a pitch angular rate defined in a user frame of reference.

28. The method of claim 27 , wherein said first bias estimating technique operates in said third mode if (a) a measurement error variance associated with said first bias estimate is smaller than a first predetermined threshold, (b) a time window size over which said first bias estimate is calculated is smaller than a second predetermined threshold, and (c) a difference between a roll angle measured in a current time window and a roll angle measured in a previous time window is smaller than a third predetermined threshold.

29. The method of claim 27 , wherein said first bias estimating technique operates in said second mode if (a) a difference between a roll angle measured in a current time window and a roll angle measured in a previous time window is greater than a first predetermined threshold and (b) a time gap between a current time window and a previous time window is shorter than a predetermined amount of time.

30. The method of claim 27 , wherein said first bias estimating technique will change from operating in said third mode to subsequently operate in said first mode if a difference between a newest first bias estimate and a previous first bias estimate is greater than a predetermined value.

31. The method of claim 30 , wherein said predetermined value is k*sqrt(P), where k is a predetermined constant, sqrt is a square root operation and P is a bias estimate error covariance value.

32. The method of claim 27 , wherein said first bias estimating technique will change from operating in said third mode to subsequently operate in said first mode if a slope estimate from a bias estimating technique based on temperature is available.

33. A computer-readable medium containing instructions which, when executed on a processor, perform the step of:

estimating a bias associated with an sensor using at least a first bias estimating technique to generate a first bias estimate and a second bias estimating technique to generate a second bias estimate.

34. The computer-readable medium of claim 33 , wherein said first bias estimate and said second bias estimate are associated with a non-zero value output from said sensor when an object to which said sensor is attached is stationary.

35. The computer-readable medium of claim 33 , further comprising:

selecting one of said first bias estimate and said second bias estimate to generate an output bias estimate.

36. The computer-readable medium of claim 33 , wherein said first bias estimating technique generates said first bias estimate based upon detection of a change in angle of said device relative to one of a plurality of different axes.

37. The computer-readable medium of claim 33 , wherein said sensor is one of a gyroscope, and a Coriolis effect rotational sensor.

38. The computer-readable medium of claim 33 , wherein said sensor is a MEMS device.

39. The computer-readable medium of claim 33 , wherein said first bias estimating technique generates said first bias estimate based upon determining whether a device within which said sensor is located is stationary.

40. The computer-readable medium of claim 39 , wherein said first bias estimating technique determines that said device is stationary when peak-to-peak values received from said sensor are less than a predetermined threshold.

41. The computer-readable medium of claim 33 , wherein said first bias estimating technique generates said first bias estimate based upon a detected temperature associated with a device within which said sensor is located.

42. The computer-readable medium of claim 41 , wherein said first bias estimating technique generates said first bias estimate B by calculating:

B =slope( t )* T +intercept( t ),

where T (in units of degrees Centigrade) is a temperature measurement associated with said device, slope(t) is a change of bias per unit temperature as a function of time, intercept(t) is a bias at a temperature of zero as a function of time and t is the time.

43. The computer-readable medium of claim 33 , further comprising:

combining said first bias estimate and said second bias estimate to generate an output bias estimate.

44. The computer-readable medium of claim 43 , wherein said combining is performed by a Kalman filter to generate said output bias estimate.

45. The computer-readable medium of claim 4 , wherein a process model associated with said Kalman filter can be expressed as:

X

t

n

+

1

=

X

t

n

+

(

slope

(

t

n

)

+

slope

(

t

n

+

1

)

2

)

·

Δ

T

+

W

t

n

,

Δ

T

=

FiltT

(

t

n

+

1

)

-

FiltT

(

t

n

)

where:

slope(t n ) and slope(t n+1 ) are bias temperature slope estimates at time t n and t n+1 , respectively, FiltT(t n ) and FiltT(t n+1 ) are filtered temperature estimates at time t n and t n+1 , respectively, ΔT is a temperature change between a current filtered temperature estimate FiltT(t n+1 ) and a last filtered temperature estimate FiltT(t n ) associated with a last time at which the Kalman filter was executed, and {right arrow over (W)} t n is an error with zero mean and covariance 2×2 matrix Q.

46. The computer-readable medium of claim 33 , wherein said first bias estimating technique generates said first bias estimate based upon slew-rate filtering.

47. The computer-readable medium of claim 46 , wherein said slew rate filter calculates said first bias estimate as the sum of a previous first bias estimate plus y, where y is:

y={B:x>B,x:−B<x<B,−B:x<−B;}

where x is an input from the sensor and B is a slew-rate filter threshold.

48. The computer-readable medium of claim 47 , wherein B is periodically calculated based on at least one of a temperature change rate and a bias temperature slope estimate.

49. The computer-readable medium of claim 33 , wherein said first bias estimating technique generates said first bias estimate based upon detection of a pitch of a device within which said sensor is located.

50. The computer-readable medium of claim 49 , wherein said first bias estimate is determined over a variable time window, said variable time window varying based upon measurement noise associated with data generated by said sensor.

51. The computer-readable medium of claim 49 , wherein said first bias estimating technique operates in one mode to generate said first bias estimates as individual data points which converge over time.

52. The computer-readable medium of claim 49 , wherein said first bias estimating technique operates in one mode to generate said first bias estimates using a line intersection technique associated with two individual bias estimates by combining two adjacent measurements of biases of pitch angular rates at two different roll angles.

53. The computer-readable medium of claim 49 , wherein said first bias estimating technique operates in one mode to generate said first bias estimates by mapping averaged values output by said sensor into a bias of a yaw angular rate and a bias of a pitch angular rate defined in a user frame of reference.

54. The computer-readable medium of claim 49 , wherein said first bias estimating technique calculates a difference between a first change of elevation angle determined using data output from said sensor and a second change of elevation angle determined using data output from another sensor.

55. The computer-readable medium of claim 54 , wherein said sensor is an accelerometer and said another sensor is a sensor which measures rotation of said device about an axis.

56. The computer-readable medium of claim 49 , wherein said first bias estimating technique operates in one of three modes to generate said first bias estimates including:

(a) a first mode for generating said first bias estimates as individual data points which converge over time;

(b) a second mode to generate said first bias estimates using a line intersection technique associated with two individual bias estimates; and

(c) a third mode for generating said first bias estimates by mapping averaged values output by said sensor into a bias of a yaw angular rate and a bias of a pitch angular rate defined in a user frame of reference.

57. The computer-readable medium of claim 56 , wherein said first bias estimating technique operates in said third mode if (a) a measurement error variance associated with said first bias estimate is smaller than a first predetermined threshold, (b) a time window size over which said first bias estimate is calculated is smaller than a second predetermined threshold, and (c) a difference between a roll angle measured in a current time window and a roll angle measured in a previous time window is smaller than a third predetermined threshold.

58. The computer-readable medium of claim 56 , wherein said first bias estimating technique operates in said second mode if (a) a difference a difference between a roll angle measured in a current time window and a roll angle measured in a previous time window is greater than a first predetermined threshold and (b) a time gap between a current time window and a previous time window is shorter than a predetermined amount of time.

59. The computer-readable medium of claim 56 , wherein said first bias estimating technique will change from operating in said third mode to subsequently operate in said first mode if a difference between a newest first bias estimate and a previous first bias estimate is greater than a predetermined value.

60. The computer-readable medium of claim 59 , wherein said predetermined value is k*sqrt(P), where k is a predetermined constant, sqrt is a square root operation and P is a bias estimate error covariance value.

61. The computer-readable medium of claim 56 , wherein said first bias estimating technique will change from operating in said third mode to subsequently operate in said first mode if a slope estimate from a bias estimating technique based on temperature is available.

62. A 3D pointing device comprising:

at least one sensor for detecting rotation of said 3D pointing device about at least one axis and generating a first output associated therewith;

an accelerometer for detecting acceleration of said 3D pointing device and generating a second output associated therewith; and

a processor for receiving said first and second outputs, determining a bias value associated with said first output using at least a first bias estimation technique and a second bias estimation technique and compensating said first output using said bias value, and using at least one of said second output and a temperature in at least one of said first bias estimation technique and said second bias estimation technique.

63. A system comprising:

a device including at least one sensor generating a first output and an accelerometer generating a second output; and

a processor for receiving said first and second outputs, determining a bias value associated with said first output using at least a first bias estimation technique and a second bias estimation technique and compensating said first output using said bias value, and using at least one of said second output and a temperature in at least one of said first bias estimation technique and said second bias estimation technique.

64. The system of claim 63 , wherein said processor is disposed within said device.

65. The system of claim 63 , wherein said processor is disposed in a second device that is in communication with said device.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: IDHL HOLDINGS, INC.
To: DRNC HOLDINGS, INC.
Reel/Frame 063327/0188 →
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 →
RELEASE OF SECURITY INTEREST Recorded Jun 12, 2015
From: HERCULES TECHNOLOGY III, L.P.
To: HILLCREST LABORATORIES, INC.
Reel/Frame 035899/0239 →
SECURITY AGREEMENT Recorded Apr 10, 2012
From: HILLCREST LABORATORIES, INC.
To: HERCULES TECHNOLOGY III, L.P.
Reel/Frame 028023/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2008
From: SHENG, HUA; LIBERTY, MATTHEW G.; ROLLER, CHRISTOPHER D.; GRITTON, CHARLES W.K.
To: HILLCREST LABORATORIES, INC.
Reel/Frame 021672/0855 →