IP Library Granted Patent US 9,279,680
Granted Patent B2
US 9,279,680 · App. 13/420,753 · Granted Mar 8, 2016

Methods and devices for determining orientation

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 9,279,680
App. No.
13/420,753
Granted
Mar 8, 2016
Kind
B2
Abstract

Methods and electronic devices for determining orientation are described. In one aspect, a processor-implemented method of determining a corrected orientation of a gyroscope on an electronic device includes: generating a gyroscope reading using the gyroscope; determining, by the processor, a first orientation estimate based on the gyroscope reading and a past corrected orientation; determining, by the processor, whether the gyroscope was saturated when the gyroscope reading was generated; adjusting, by the processor, a saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated; and calculating, by the processor, the corrected orientation based on the first orientation estimate, a second orientation estimate and the saturation correction learning rate.

Claims (65)

1. A processor-implemented method for providing a corrected orientation of a gyroscope on an electronic device, the method comprising:

generating a gyroscope reading output using the gyroscope based on a first rotational movement of the electronic device;

determining, by the processor, a first orientation estimate based on the gyroscope reading and a past corrected orientation and determining a second orientation estimate based on sensor readings generated using one or more sensors other than the gyroscope;

determining, by the processor, whether the gyroscope was saturated when the gyroscope reading was generated;

adjusting, by the processor, a saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated, the saturation correction learning rate controlling an amount of correction to apply to the first orientation estimate; and

outputting the corrected orientation calculated based on the first orientation estimate, the second orientation estimate and the saturation correction learning rate,

wherein adjusting the saturation correction learning rate for the gyroscope comprises increasing the saturation correction learning rate for the gyroscope if the gyroscope was saturated and

wherein the saturation correction learning rate is iteratively increased over time if the gyroscope remains saturated for an extended period of time.

2. The method of claim 1 , wherein adjusting the saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated comprises:

increasing the saturation correction learning rate for the gyroscope to a first level if the gyroscope was saturated.

3. The method of claim 2 , further comprising:

generating a second gyroscope reading using the gyroscope based on a second rotational movement of the electronic device;

determining, by the processor, whether the gyroscope was saturated when the second gyroscope reading was generated; and

further adjusting, by the processor, the saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated when the second gyroscope reading was generated.

4. The method of claim 3 , wherein further adjusting the saturation correction learning rate comprises:

further increasing the saturation correction learning rate for the gyroscope to a second level greater than the first level if the gyroscope was saturated during the second gyroscope reading.

5. The method of claim 1 , further comprising:

determining the second orientation estimate based on an accelerometer reading and a magnetometer reading,

and wherein calculating the corrected orientation based on the first orientation estimate, the second orientation estimate and the saturation correction learning rate comprises determining the corrected orientation by determining a weight of the first orientation estimate and a weight of the second orientation estimate using the saturation correction learning rate.

6. The method of claim 5 , further comprising:

determining an orientation error as the difference between the first orientation estimate and the second orientation estimate; and

determining a saturation correction adjustment amount based on the orientation error and the saturation correction learning rate,

wherein determining a weight of the first orientation estimate and a weight of the second orientation estimate using the saturation correction learning rate comprises determining the corrected orientation based on the saturation correction adjustment amount and the first orientation estimate.

7. The method of claim 1 wherein determining whether the gyroscope was saturated when the gyroscope reading was generated comprises:

retrieving, from memory, a gyroscope saturation value; and

comparing the gyroscope reading to the gyroscope saturation value.

8. The method of claim 7 , further comprising:

determining if the gyroscope reading exceeds the gyroscope saturation value; and

when the gyroscope reading exceeds the gyroscope saturation value, replacing the gyroscope saturation value with the gyroscope reading.

9. The method of claim 1 , wherein adjusting a saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated comprises:

decreasing the saturation correction learning rate for the gyroscope if the gyroscope was not saturated.

10. An electronic device comprising:

a memory;

a gyroscope;

a processor coupled to the memory and the gyroscope, the processor being configured to provide a corrected orientation of the gyroscope by:

generating a gyroscope reading output using the gyroscope based on a first rotational movement of the electronic device;

determining a first orientation estimate based on the gyroscope reading and a past corrected orientation and determining a second orientation estimate based on readings generated using one or more sensors other than the gyroscope;

determining whether the gyroscope was saturated when the gyroscope reading was generated;

adjusting a saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated, the saturation correction learning rate controlling an amount of correction to apply to the first orientation estimate; and

outputting the corrected orientation calculated based on the first orientation estimate, a second orientation estimate and the saturation correction learning rate,

wherein adjusting the saturation correction learning rate for the gyroscope comprises increasing the saturation correction learning rate for the gyroscope if the gyroscope was saturated and wherein the saturation correction learning rate is iteratively increased over time if the gyroscope remains saturated for an extended period of time.

11. The electronic device of claim 10 , wherein adjusting the saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated comprises:

increasing the saturation correction learning rate for the gyroscope to a first level if the gyroscope was saturated.

12. The electronic device of claim 11 , wherein the processor is further configured to:

generate a second gyroscope reading using the gyroscope based on a second rotational movement of the electronic device;

determine whether the gyroscope was saturated when the second gyroscope reading was generated; and

further adjust the saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated when the second gyroscope reading was generated.

13. The electronic device of claim 12 , wherein further adjusting the saturation correction learning rate comprises:

further increasing the saturation correction learning rate for the gyroscope to a second level greater than the first level if the gyroscope was saturated during the second gyroscope reading.

14. The electronic device of claim 10 , wherein the processor is further configured to:

determine the second orientation estimate based on an accelerometer reading and a magnetometer reading,

and wherein calculating the corrected orientation based on the first orientation estimate, the second orientation estimate and the saturation correction learning rate comprises determining the corrected orientation by determining a weight of the first orientation estimate and a weight of the second orientation estimate using the saturation correction learning rate.

15. The electronic device of claim 14 , wherein the processor is further configured to:

determine an orientation error as the difference between the first orientation estimate and the second orientation estimate; and

determine a saturation correction adjustment amount based on the orientation error and the saturation correction learning rate,

wherein determining a weight of the first orientation estimate and a weight of the second orientation estimate using the saturation correction learning rate comprises determining the corrected orientation based on the saturation correction adjustment amount and the first orientation estimate.

16. The electronic device of claim 10 , wherein adjusting a saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated comprises:

decreasing the saturation correction learning rate for the gyroscope if the gyroscope was not saturated.

17. A non-transitory computer readable storage medium comprising computer-executable instructions for providing a corrected orientation for a gyroscope by:

generating a gyroscope reading using the gyroscope based on a first rotational movement of the electronic device;

determining, by a processor, a first orientation estimate based on the gyroscope reading and a past corrected orientation and determining a second orientation estimate based on readings generated using one or more sensors other than the gyroscope;

determining, by a processor, whether the gyroscope was saturated when the gyroscope reading was obtained;

adjusting, by a processor, a saturation correction learning rate for the gyroscope based on the result of the determination of whether the gyroscope was saturated, the saturation correction learning rate controlling an amount of correction to apply to the first orientation estimate; and

outputting the corrected orientation calculated based on the first orientation estimate, a second orientation estimate and the saturation correction learning rate,

wherein adjusting the saturation correction learning rate for the gyroscope comprises increasing the saturation correction learning rate for the gyroscope if the gyroscope was saturated and wherein the saturation correction learning rate is iteratively increased over time if the gyroscope remains saturated for an extended period of time.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Jan 4, 2016
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 037425/0857 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2012
From: BUCHANAN, NATHAN DANIEL POZNIAK; ALMALKI, NAZIH
To: RESEARCH IN MOTION LIMITED
Reel/Frame 027867/0348 →