IP Library Granted Patent US 7,274,355
Granted Patent B2
US 7,274,355 · App. 10/831,758 · Granted Sep 25, 2007

Blended transfer function for computer pointing devices

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,274,355
App. No.
10/831,758
Granted
Sep 25, 2007
Kind
B2
Abstract

A transfer function is provided for use with computer pointing devices such as trackpads. The transfer function includes a first component having characteristics of a positional transfer function and a second component having characteristics of a velocity-based transfer function. The first (positional) component and the second (velocity-based) component of the transfer function are blended so that the transfer function exhibits purely positional behavior in response to a first range of inputs and exhibits combined positional and velocity-based behavior in response to a second range of inputs. The first range of inputs may, for example, correspond to a region in the input coordinate space that is bounded by a circle having a predetermined threshold radius.

Claims (178)

1. A computer-implemented method for use with a pointing device for providing input to a computing device, the method comprising steps of:

(A) receiving an input vector representing input coordinates relative to a center of an input coordinate space associated with the pointing device, the input coordinate space comprising a first region and a second region;

(B) determining whether the input coordinates are within the first region of the input coordinate space;

(C) selecting a first transfer function if the input coordinates are determined to be within the first region;

(D) selecting a second transfer function if the input coordinates are determined not to be within the first region, the second transfer function comprising a non-constant function relating the input vector to velocity; and

(E) selecting a position and velocity of an on-screen pointer based on the selected transfer function.

2. The method of claim 1 , wherein the first transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, and wherein the first transfer function relates the velocity dh/dt of the center of the positional range of the pointer to the input vector r using the formula:

dh/dt= 0.

3. The method of claim 2 , wherein the positional gain kp comprises a value of about two millimeters per millimeter.

4. The method of claim 2 , further comprising steps of:

(F) identifying coordinates of the on-screen pointer upon commencement of a pointing operation; and

(G) setting the coordinates of the home vector h equal to the coordinates identified in step (F).

5. The method of claim 2 , wherein the positional gain kp comprises a value of about two millimeters per millimeter.

6. The method of claim 1 , wherein the second transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, and wherein the second transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

7. The method of claim 5 , wherein the velocity gain kv comprises a value of about ten per second.

8. The method of claim 5 , further comprising steps of:

(F) identifying coordinates of the on-screen pointer upon commencement of a pointing operation; and

(G) setting the coordinates of the home vector h equal to the coordinates identified in step (F).

9. The method of claim 1 , wherein the step (B) comprises steps of:

(B) (1) identifying a distance between the input coordinates and the center of the input coordinate space;

(B) (2) determining whether the distance is less than a transition radius;

(B) (3) determining that the input coordinates are within the first region if the distance is determined to be less than the transition radius; and

(B) (4) determining that the input coordinates are not within the first region otherwise.

10. The method of claim 9 , wherein the transition radius comprises a value within a range of about two millimeters to about six millimeters.

11. The method of claim 1 , wherein the input coordinate space further comprises a third region, and wherein the step (D) comprises steps of:

(D) (1) determining whether the input coordinates are within the second region;

(D) (2) selecting the second transfer function if the input coordinates are determined to be within the second region; and

(D) (3) selecting a third transfer function if the input coordinates are determined not to be within the second region.

12. The method of claim 11 , wherein the first transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein kp comprises a positional gain, and wherein the first transfer function relates the velocity dh/dt of the center of the positional range of the pointer to the input vector r using the formula:

dh/dt= 0.

13. The method of claim 11 , wherein the third transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

14. The method of claim 1 , wherein the second transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h +(( kr 2 −|r |)/( kr 2 −kr ))* kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, wherein kr comprises a first transition radius, wherein kr2 comprises a second transition radius, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

15. The method of claim 1 , wherein the first region comprises a region bounded by a rectangle.

16. An apparatus for use with a pointing device for providing input to a computing device, the apparatus comprising:

reception means for receiving an input vector representing input coordinates relative to a center of an input coordinate space associated with the pointing device, the input coordinate space comprising a first region and a second region;

determination means for determining whether the input coordinates are within the first region of the input coordinate space;

first selection means for selecting a first transfer function if the input coordinates are determined to be within the first region;

second selection means for selecting a second transfer function if the input coordinates are determined not to be within the first region, the second transfer function comprising a non-constant function relating the input vector to velocity; and

third selection means for selecting a position and velocity of an on-screen pointer based on the selected transfer function.

17. The apparatus of claim 16 , wherein the first transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, and wherein the first transfer function relates the velocity dh/dt of the center of the positional range of the pointer to the input vector r using the formula:

dh/dt =0.

18. The apparatus of claim 17 , wherein the positional gain kp comprises a value of about two millimeters per millimeter.

19. The apparatus of claim 17 , further comprising:

means for identifying coordinates of the on-screen pointer upon commencement of a pointing operation; and

means for setting the coordinates of the home vector h equal to the coordinates identified by the means for identifying.

20. The apparatus of claim 17 , wherein the positional gain kp comprises a value of about two millimeters per millimeter.

21. The apparatus of claim 16 , wherein the second transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, and wherein the second transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

22. The apparatus of claim 21 , wherein the velocity gain kv comprises a value of about ten per second.

23. The apparatus of claim 21 , further comprising:

means for identifying coordinates of the on-screen pointer upon commencement of a pointing operation; and

means for setting the coordinates of the home vector h equal to the coordinates identified in step (F).

24. The apparatus of claim 16 , wherein the determination means comprises:

means for identifying a distance between the input coordinates and the center of the input coordinate space;

means for determining whether the distance is less than a transition radius;

means for determining that the input coordinates are within the first region if the distance is determined to be less than the transition radius; and

means for determining that the input coordinates are not within the first region otherwise.

25. The apparatus of claim 24 , wherein the transition radius comprises a value within a range of about two millimeters to about six millimeters.

26. The apparatus of claim 16 , wherein the input coordinate space further comprises a third region, and wherein the second selection means comprises:

means for determining whether the input coordinates are within the second region;

means for selecting the second transfer function if the input coordinates are determined to be within the second region; and

means for selecting a third transfer function if the input coordinates are determined not to be within the second region.

27. The apparatus of claim 26 , wherein the first transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein kp comprises a positional gain, and wherein the first transfer function relates the velocity dh/dt of the center of the positional range of the pointer to the input vector r using the formula:

dh/dt =0.

28. The apparatus of claim 26 , wherein the third transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

29. The apparatus of claim 16 , wherein the second transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h +(( kr 2 −|r |)/( kr 2 −kr ))* kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, wherein kr comprises a first transition radius, wherein kr2 comprises a second transition radius, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

30. The apparatus of claim 16 , wherein the first region comprises a region bounded by a rectangle.

31. A computer-implemented method for use with a pointing device for providing input to a computing device, the method comprising steps of:

(A) receiving an input vector representing input coordinates relative to a center of an input coordinate space associated with the pointing device;

(B) determining whether the input coordinates are within a first transition radius of the center of the input coordinate space;

(C) selecting a first transfer function if the input coordinates are determined to be within the first transition radius of the center of the input coordinate space;

(D) selecting a second transfer function if the input coordinates are determined not to be within the first transition radius of the center of the input coordinate space; and

(E) selecting a position and velocity of an on-screen pointer based on the selected transfer function.

32. The method of claim 31 , wherein the first transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein kp comprises a positional gain, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt =0.

33. The method of claim 32 , wherein the positional gain kp comprises a value of about two millimeters per millimeter.

34. The method of claim 32 , wherein the positional gain kp comprises a value of about two millimeters per millimeter.

35. The method of claim 31 , wherein the second transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, and wherein the second transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

36. The method of claim 34 , wherein the velocity gain kv comprises a value of about ten per second.

37. The method of claim 31 , further comprising steps of:

(F) obtaining coordinates of an initial input point in the input coordinate space; and

(G) setting the coordinates of the home vector h equal to the input coordinates obtained in-step (F).

38. The method of claim 31 , wherein the first transition radius comprises a value within a range of about two millimeters to about six millimeters.

39. The method of claim 31 , wherein the step (D) comprises steps of:

(D) (1) determining whether the input coordinates are within a second transition radius of the center of the input coordinate space, wherein the second transition radius is greater than the first transition radius;

(D) (2) selecting the second transfer function if the input coordinates are determined to be within the second transition radius of the center of the input coordinate space; and

(D) (3) selecting a third transfer function if the input coordinates are determined not to be within the second transition radius of the input coordinate space.

40. The method of claim 39 , wherein the first transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein kp comprises a positional gain, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt =0.

41. The method of claim 39 , wherein the third transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

42. The method of claim 31 , wherein the second transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h +(( kr 2 −|r |)/( kr 2 −kr ))* kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, wherein kr comprises the first transition radius, wherein kr2 comprises the second transition radius, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

43. An apparatus for use with a pointing device for providing input to a computing device, the apparatus comprising:

reception means for receiving an input vector representing input coordinates relative to a center of an input coordinate space associated with the pointing device;

determination means for determining whether the input coordinates are within a first transition radius of the center of the input coordinate space;

first selection means for selecting a first transfer function if the input coordinates are determined to be within the first transition radius of the center of the input coordinate space;

second selection means for selecting a second transfer function if the input coordinates are determined not to be within the first transition radius of the center of the input coordinate space; and

third selection means for selecting a position and velocity of an on-screen pointer based on the selected transfer function.

44. The apparatus of claim 43 , wherein the first transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein kp comprises a positional gain, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt =0.

45. The apparatus of claim 44 , wherein the positional gain kp comprises a value of about two millimeters per millimeter.

46. The apparatus of claim 44 , wherein the positional gain kp comprises a value of about two millimeters per millimeter.

47. The apparatus of claim 43 , wherein the second transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, and wherein the second transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

48. The apparatus of claim 47 , wherein the velocity gain kv comprises a value of about ten per second.

49. The apparatus of claim 43 , further comprising:

means for obtaining coordinates of an initial input point in the input coordinate space; and

means for setting the coordinates of the home vector h equal to the input coordinates obtained in step (F).

50. The apparatus of claim 43 , wherein the first transition radius comprises a value within a range of about two millimeters to about six millimeters.

51. The apparatus of claim 43 , wherein the second selection means comprises:

means for determining whether the input coordinates are within a second transition radius of the center of the input coordinate space, wherein the second transition radius is greater than the first transition radius;

means for selecting the second transfer function if the input coordinates are determined to be within the second transition radius of the center of the input coordinate space; and

means for selecting a third transfer function if the input coordinates are determined not to be within the second transition radius of the input coordinate space.

52. The apparatus of claim 51 , wherein the first transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h+kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein kp comprises a positional gain, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt =0.

53. The apparatus of claim 51 , wherein the third transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h,

wherein h comprises a vector representing a center of a positional range of the pointer, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

54. The apparatus of claim 43 , wherein the second transfer function relates the position p of the on-screen pointer to the input vector r using the formula:

p=h +(( kr 2 |r |)/( kr 2 −kr ))* kp*r,

wherein h comprises a vector representing a center of a positional range of the pointer, wherein kp comprises a positional gain, wherein kr comprises the first transition radius, wherein kr2 comprises the second transition radius, and wherein the first transfer function relates the velocity dh/dt of the on-screen pointer to the input vector r using the formula:

dh/dt=kv*r,

wherein kv comprises a velocity gain.

Assignments (12)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044127/0735 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2011
From: ZETTA RESEARCH, LLC
To: GOOGLE INC.
Reel/Frame 025722/0470 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE, CONVEYING PARTY DATA AND RECEIVING PARTY DATA SECTIONS PREVIOUSLY RECORDED ON REEL 025689 FRAME 0593. ASSIGNOR(S) HEREBY CONFIRMS THE CONVEYANCE:RELEASE BY SECURED PARTY,CON PARTY:AZURE VENTURE PARTNERS I,LP,AS COLLATERAL AGENT,RECVING PARTY:OQO, INC.. Recorded Jan 26, 2011
From: AZURE VENTURE PARTNERS I, LP, AS COLLATERAL AGENT
To: OQO, INC.
Reel/Frame 025700/0682 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE, CONVEYING PARTY DATA AND RECEIVING PARTY DATA SECTIONS PREVIOUSLY RECORDED ON REEL 025689 FRAME 0553. ASSIGNOR(S) HEREBY CONFIRMS THE CONVEYANCE:RELEASE BY SECURED PARTY,CON PARTY:AZURE VENTURE PARTNERS I,LP,AS COLLATERAL AGENT,RECVING PARTY:OQO, INC.. Recorded Jan 26, 2011
From: AZURE VENTURE PARTNERS I, LP, AS COLLATERAL AGENT
To: OQO, INC.
Reel/Frame 025700/0739 →
SECURITY AGREEMENT Recorded Jan 25, 2011
From: OQO, INC.
To: AZURE VENTURE PARTNERS I, LP, AS COLLATERAL AGENT
Reel/Frame 025689/0593 →
SECURITY AGREEMENT Recorded Jan 25, 2011
From: OQO, INC.
To: AZURE VENTURE PARTNERS I, LP, AS COLLATERAL AGENT
Reel/Frame 025689/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2010
From: OQO (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
To: ZETTA RESEARCH, LLC
Reel/Frame 024981/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2010
From: OQO, INC.
To: OQO (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 024981/0193 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2010
From: AZURE VENTURE PARTNERS I, L.P.
To: OQO, INC.
Reel/Frame 024974/0130 →
SECURITY AGREEMENT Recorded Nov 26, 2007
From: OQO, INC.
To: AZURE VENTURE PARTNERS I, LP
Reel/Frame 020143/0967 →
SECURITY AGREEMENT Recorded Dec 8, 2006
From: OQO, INC.
To: AZURE VENTURE PARTNERS I, LP, AS COLLATERAL AGENT
Reel/Frame 018597/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2005
From: BETTS-LACROIX, JONATHAN; PRICHARD, MICHAEL
To: OQO INCORPORATED
Reel/Frame 015622/0051 →