Claims
- 1. An interface device capable of communicating with a computer running an application program and generating a graphical environment, the interface device comprising:
a user manipulatable object capable of controlling the motion of a cursor displayed in the graphical environment; an actuator operative to output a haptic effect to a user of the interface device; and a modulator to modulate the magnitude of the haptic effect in relation to a velocity of said cursor in the graphical environment, wherein said magnitude of said haptic effect at a lower cursor velocity is greater than said magnitude of said haptic effect at a higher cursor velocity.
- 2. An interface device as recited in claim 1 wherein said actuator outputs a haptic effect for each of a plurality of graphical objects over which said cursor moves in a path of said cursor within said graphical environment.
- 3. An interface device as recited in claim 2 wherein said each haptic effect associated with said plurality of graphical objects is modulated in magnitude based on said cursor velocity using a single function.
- 4. An interface device as recited in claim 1 wherein said magnitude of said haptic effect is modulated after said haptic effect has been determined and is ready for output.
- 5. An interface device as recited in claim 3 wherein said single function is a step function, wherein said haptic effect is output at full magnitude for cursor velocities under a velocity threshold, and wherein said haptic effect is at zero magnitude for cursor velocities above said velocity threshold.
- 6. An interface device as recited in claim 3 wherein said single function includes a linear sloped function, wherein said magnitude of said haptic effect is inversely proportional to said cursor velocity.
- 7. An interface device as recited in claim 6 wherein said magnitude of said haptic effect is adjusted by a constant first gain for a predetermined velocity range between zero and a first threshold, and is adjusted by a constant second gain for a predetermined velocity range between a second threshold and a maximum velocity, where said linear sloped function is provided between said first threshold and said second threshold.
- 8. An interface device as recited in claim 1 wherein said modulator includes a processor local to said interface device and separate from said host computer.
- 9. An interface device as recited in claim 1 wherein said modulator determines a function to be used in modulating said magnitude based on said cursor velocity, wherein said function is based on previous motion of said cursor in said graphical environment.
- 10. An interface device as recited in claim 1 wherein said modulator modulates said magnitude of said haptic effect if said cursor is engaged with a target in said graphical environment for more than a predetermined amount of time.
- 11. An interface device as recited in claim 10 wherein said modulator modulates said magnitude based on a time function, wherein said time function provides a magnitude of said haptic effect that is inversely proportional to an amount of time that has lapsed since said cursor engaged said target.
- 12. An interface device as recited in claim 2 wherein said application program is a word processing program and said graphical objects include text characters or text words.
- 13. An interface device as recited in claim 2 wherein said application program is a spreadsheet and said graphical objects include cells of said spreadsheet.
- 14. An interface device as recited in claim 1 wherein said modulator uses different predetermined functions to modulate said magnitude, wherein the function used is based on a cursor navigation task.
- 15. An interface device capable of communicating with a computer running an application program and generating a graphical environment, the interface device comprising:
a user manipulatable object capable of controlling the motion of a cursor displayed in the graphical environment; an actuator operative to output a haptic effect to a user of the interface device; and a modulator to modulate the magnitude of the haptic effect in relation to a rate of interaction of said cursor with a plurality of graphical objects displayed in said graphical environment, wherein said magnitude of said haptic effect at a lower rate of interaction is greater than said magnitude of said haptic effect at a higher rate of interaction.
- 16. An interface device as recited in claim 15 wherein said actuator outputs a haptic effect for each of a plurality of graphical objects over which said cursor moves in a path of said cursor within said graphical environment.
- 17. An interface device as recited in claim 16 wherein said each haptic effect associated with said plurality of graphical objects is modulated in magnitude based on said rate of interaction using a single function.
- 18. An interface device as recited in claim 15 wherein said magnitude of said haptic effect is modulated after said haptic effect has been determined and is ready for output.
- 19. An interface device as recited in claim 15 wherein said modulation includes examining a velocity of said cursor in said graphical environment and further modulating said magnitude of said haptic effect based on said cursor velocity, wherein said magnitude of said haptic effect is at least approximately inversely proportional to said cursor velocity.
- 20. An interface device as recited in claim 15 wherein said modulation includes examining a number of graphical objects encountered by said cursor in a predetermined period of time to determine said rate of interaction.
- 21. An interface device as recited in claim 15 wherein said haptic effect magnitude is modulated based on a time elapsed from said cursor exiting one graphical object and interacting with another graphical object.
- 22. An interface device as recited in claim 15 wherein said modulator modulates said magnitude of said haptic effect if said cursor is engaged with a target in said graphical environment for more than a predetermined amount of time.
- 23. A method for adjusting a magnitude of haptic effects associated with graphical objects displayed in a graphical environment provided by a computer, the method comprising:
determining a haptic effect to be output by an actuator to a user of an interface device, said haptic effect initiated based on an interaction of a cursor with one of said graphical objects, said determining a haptic effect including determining a magnitude of said haptic effect; and adjusting said determined magnitude of said haptic effect based on a current velocity of said cursor in said graphical environment, said adjusting being performed after said haptic effect is determined.
- 24. A method as recited in claim 23 further comprising determining a haptic effect for each of a plurality of graphical objects with which said cursor interacts, and adjusting all of said haptic effects based on said current velocity of said cursor.
- 25. A method as recited in claim 23 wherein said haptic effect associated with said graphical object is modulated in magnitude based on said cursor velocity using a predetermined function.
- 26. A method as recited in claim 25 wherein said single predetermined function is a step function, wherein said haptic effect is output at full magnitude for cursor velocities under a velocity threshold, and wherein said haptic effect is at zero magnitude for cursor velocities above said velocity threshold.
- 27. A method as recited in claim 25 wherein said single function includes a linear sloped function, wherein said magnitude of said haptic effect is inversely proportional to said cursor velocity.
- 28. A method as recited in claim 27 wherein said magnitude of said haptic effect is adjusted by a constant first gain for a predetermined velocity range between zero and a first threshold, and is adjusted by a constant second gain for a predetermined velocity range between a second threshold and a maximum velocity, where said linear sloped function is provided between said first threshold and said second threshold.
- 29. A method as recited in claim 23 wherein said modulator determines a function to be used in modulating said magnitude based on said cursor velocity, wherein said function is based on previous motion of said cursor in said graphical environment.
- 30. A method as recited in claim 24 wherein said haptic effect associated with said graphical object is modulated in magnitude based on said cursor velocity using one of a plurality of predetermined functions.
- 31. A method as recited in claim 30 wherein said haptic effect associated with said graphical object is modulated in magnitude according to a first function if said user is selecting one of said graphical objects, and according to a second function if said user is positioning said cursor with respect to said graphical objects.
- 32. A method as recited in claim 15 wherein said magnitude of said haptic effect is adjusted if said cursor is engaged with a target in said graphical environment for more than a predetermined amount of time.
- 33. An interface device capable of communicating with a computer running an application program and generating a graphical environment, the interface device comprising:
a user manipulatable object capable of controlling the motion of a cursor displayed in the graphical environment; an actuator operative to output a haptic effect to a user of the interface device; and a modulator to modulate the magnitude of the haptic effect based on an amount of time that said cursor engages said graphical object displayed in said graphical environment, wherein said magnitude of said haptic effect is reduced after a predetermined period of time.
- 34. An interface device as recited in claim 33 wherein said actuator outputs a haptic effect for each of a plurality of graphical objects over which said cursor moves within said graphical environment.
- 35. An interface device as recited in claim 33 wherein said magnitude of said haptic effect is modulated after said haptic effect has been determined and is ready for output.
- 36. An interface device as recited in claim 33 wherein said modulator modulates said magnitude based on a time function, wherein said time function provides a magnitude of said haptic effect that is inversely proportional to an amount of time that has lapsed since said cursor engaged said target.
- 37. An interface device as recited in claim 33 wherein said haptic effect is reduced to a zero magnitude after said predetermined amount of time.
- 38. An interface device as recited in claim 34 wherein said application program is a CAD program providing said graphical objects.
- 39. A method for adjusting a magnitude of haptic effects associated with graphical objects displayed in a graphical environment provided by a computer, the method comprising:
determining a haptic effect to be output by an actuator to a user of an interface device, said haptic effect initiated based on an interaction of a cursor with one of said graphical objects, said determining a haptic effect including determining a magnitude of said haptic effect; selecting one of a plurality of predetermined functions based on a navigation task being performed using said cursor; and adjusting said determined magnitude of said haptic effect according to said selected function and based on a characteristic of said cursor in said graphical environment, said adjusting being performed after said haptic effect is determined.
- 40. A method as recited in claim 39 further comprising determining a haptic effect for each of a plurality of graphical objects with which said cursor interacts, and adjusting all of said haptic effects based on said selected function.
- 41. A method as recited in claim 39 wherein said characteristic of said cursor includes a velocity of said cursor in said graphical environment, which corresponds to a velocity of a user object of said interface device.
- 42. A method as recited in claim 39 wherein said characteristic of said cursor includes a time of engagement of said cursor with one of said graphical objects.
- 43. A method as recited in claim 39 wherein said navigation task being performed includes selecting at least one of said graphical objects.
- 44. A method as recited in claim 39 wherein said navigation task being performed includes positioning said cursor with respect to said graphical objects.
- 45. A method as recited in claim 39 wherein said navigation task being performed includes moving or dragging one of said graphical objects.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of to the following co-pending U.S. patent applications:
[0002] U.S. patent application Ser. No. 09/756,617, filed Jan. 4, 2001, which is a continuation of U.S. Pat. No. 6,219,032, filed on Dec. 13, 1995;
[0003] U.S. patent application Ser. No. 09/903,209, filed Jul. 10, 2001, which is a continuation of U.S. Pat. No. 6,259,382, filed on Feb. 4, 2000, which is a continuation of U.S. Pat. No. 6,232,891, filed on Sep. 24, 1998, which is a continuation of U.S. Pat. No. 5,825,308, filed on Nov. 26, 1996; and
[0004] U.S. patent application Ser. No. 09/590,856 filed on Jun. 8, 2000, which is a continuation of U.S. Pat. No. 6,078,308, filed on Jun. 18, 1997;
[0005] and this application claims the benefit of U.S. Provisional Application No. 60/262,286, filed Jan. 16, 2001, and entitled, “Controlling Haptic Feedback During Graphical Image Navigation”;
[0006] all of these disclosures being incorporated herein by reference in their entireties.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60262286 |
Jan 2001 |
US |
Continuations (5)
|
Number |
Date |
Country |
Parent |
08571606 |
Dec 1995 |
US |
Child |
09756617 |
Jan 2001 |
US |
Parent |
09499338 |
Feb 2000 |
US |
Child |
09903209 |
Jul 2001 |
US |
Parent |
09160985 |
Sep 1998 |
US |
Child |
09499338 |
Feb 2000 |
US |
Parent |
08756745 |
Nov 1996 |
US |
Child |
09160985 |
Sep 1998 |
US |
Parent |
08879296 |
Jun 1997 |
US |
Child |
09590856 |
Jun 2000 |
US |
Continuation in Parts (3)
|
Number |
Date |
Country |
Parent |
09756617 |
Jan 2001 |
US |
Child |
10051756 |
Jan 2002 |
US |
Parent |
09903209 |
Jul 2001 |
US |
Child |
10051756 |
Jan 2002 |
US |
Parent |
09590856 |
Jun 2000 |
US |
Child |
10051756 |
Jan 2002 |
US |