IP Library Granted Patent US 9,223,440
Granted Patent B2
US 9,223,440 · App. 13/170,604 · Granted Dec 29, 2015

Optical navigation utilizing speed based algorithm selection

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,223,440
App. No.
13/170,604
Granted
Dec 29, 2015
Kind
B2
Abstract

Embodiments of method and systems are disclosed. An embodiment of a method for optical navigation involves generating light at a light source, directing the light to a navigation surface, detecting light reflected from the navigation surface toward a sensor array, and generating movement information, which is indicative of movement of the navigation surface relative to the sensor array, in response to the detected light. Generating the movement information involves determining the speed of the movement, comparing the speed of the movement to a movement threshold, selecting a processing algorithm from a plurality of processing algorithms in response to the comparison, and processing the movement information according to the selected processing algorithm. In an embodiment, the processing algorithms include an adaptive navigation algorithm and a sensor resolution adjustment algorithm.

Claims (44)

1. A method for optical navigation, the method comprising:

generating light at a light source;

directing the light to a navigation surface;

detecting light reflected from the navigation surface toward a sensor array;

generating movement information, which is indicative of movement of the navigation surface relative to the sensor array, in response to the detected light, wherein generating the movement information comprises;

determining the speed of the movement;

comparing the speed of the movement to a speed threshold;

selecting a processing algorithm from a plurality of processing algorithms in response to the comparison; and

processing the movement information according to the selected processing algorithm:

wherein the plurality of processing algorithms comprises an adaptive navigation algorithm and a sensor resolution adjustment algorithm, and wherein the adaptive navigation algorithm is selected if the speed of the movement is greater than the speed threshold and the sensor resolution adjustment algorithm is selected if the speed of the movement is less than the speed threshold;

wherein:

the adaptive navigation algorithm comprises calculating a moving average of movement information, scaling the moving average of the movement information, and outputting movement information after being averaged and scaled; and

the sensor resolution adjustment algorithm comprises switching the resolution of the sensor array in response to the speed of the movement;

wherein the adaptive navigation algorithm further comprises storing a finite number of movement values on a first-in-first-out basis, excluding at least one outlying movement value, and averaging the remaining movement values using the movement values that are stored on the first-in-first-out basis.

2. The method of claim 1 wherein the speed threshold is in the range of 2-7 inches per second.

3. The method of claim 1 wherein at least one movement value representing the smallest movement is excluded from the moving average calculation and wherein at least one movement value representing the largest movement is excluded from the moving average calculation.

4. The method of claim 1 wherein the selection of the processing algorithm is implemented by executing firmware.

5. A user input device comprising:

a light source configured to provide light from the light source to a navigation surface;

a sensor array configured to detect light reflected from a navigation surface;

a navigation engine coupled to the sensor array, the navigation engine configured to generate movement information, which is indicative of movement of the navigation surface relative to the sensor array, in response to the detected light; and

a microcontroller connected to receive the movement information from the navigation engine and configured to:

determine the speed of the movement across the navigation surface;

compare the speed of the movement to a speed threshold;

select a processing algorithm from a plurality of processing algorithms in response to the comparison; and

process the movement information according to the selected processing algorithm:

wherein the plurality of processing algorithms comprises an adaptive navigation algorithm and a sensor resolution adjustment algorithm, and wherein the adaptive navigation algorithm is selected if the speed of the movement is greater than the speed threshold and the sensor resolution adjustment algorithm is selected if the speed of the movement is less than the speed threshold; and

wherein:

the adaptive navigation algorithm comprises calculating a moving average of movement information, scaling the moving average of the movement information, and outputting movement information after being averaged and scaled, wherein the adaptive navigation algorithm further comprises storing a finite number of movement values on a first-in-first-out basis, excluding at least one outlying movement value, and averaging the remaining movement values using the movement values that are stored on the first-in-first-out basis; and

the sensor resolution adjustment algorithm comprises switching the resolution of the sensor array in response to the speed of the movement.

6. The user input device of claim 5 wherein the adaptive navigation algorithm further comprises storing a finite number of movement values, excluding at least one outlying movement value, and averaging the remaining movement values.

7. The user input device of claim 6 wherein at least one movement value representing the smallest movement is excluded from the moving average calculation and wherein at least one movement value representing the largest movement is excluded from the moving average calculation.

8. The user input device of claim 5 wherein the selection of the processing algorithm is implemented by executing firmware in the microcontroller, and wherein the microcontroller receives native movement information from the navigation engine and wherein the speed is determined from the native movement information.

9. A user input device comprising:

an optical element comprising a navigation surface;

a light source in optical communication with the navigation surface and configured to provide light from the light source to the navigation surface;

a sensor array configured to detect light reflected from the navigation surface;

a navigation engine coupled to the sensor array, the navigation engine configured to generate movement information, which is indicative of movement of the navigation surface relative to the sensor array, in response to the detected light; and

wherein the user input device is configured to:

determine the speed of the movement across the navigation surface;

compare the speed of the movement to a speed threshold;

select an adaptive navigation algorithm if the speed of the movement is greater than the speed threshold and select a different processing algorithm if the speed of the movement is less than the speed threshold; and

process the movement information according to the selected processing algorithm;

wherein the adaptive navigation algorithm comprises calculating a moving average of movement information, scaling the moving average of the movement information, and outputting movement information after being averaged and scaled, and wherein the adaptive navigation algorithm further comprises storing a finite number of movement values on a first-in-first-out basis, excluding at least one outlying movement value, and averaging the remaining movement values using the movement values that are stored on the first-in-first-out basis, and wherein at least one movement value representing the smallest movement is excluded from the moving average calculation and wherein at least one movement value representing the largest movement is excluded from the moving average calculation.

Assignments (8)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 29, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 039862/0129 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: PIXART IMAGING INC.
Reel/Frame 039788/0572 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032851-0001) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 037689/0001 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032851/0001 →
MERGER Recorded May 7, 2013
From: AVAGO TECHNOLOGIES ECBU IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 030369/0496 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2011
From: LIM, LAY CHENG JESSIE; KOK, BOON HOW; MAU, MING YONG
To: AVAGO TECHNOLOGIES ECBU IP (SINGAPORE) PTE. LTD.
Reel/Frame 026513/0984 →