# Patent

## Title
Hierarchical methods for generating force feedback effects

## Abstract

Embodiments of the invention relate to a hierarchical method for generating force feedback effects. In one embodiment, a method comprises receiving a first force contribution associated with a first (e.g., previous) position of a manipulandum; determining a second force contribution associated with a second (e.g., current) position of the manipulandum; and outputting a force signal to an actuator coupled to the manipulandum, such that the actuator renders a feedback force having a sum of the first and second force contributions. The method may further include classifying force effects according to a predetermined “hierarchy” (or “priority”) scheme, whereby the second force contribution is related to “high” priority force effects associated with the second position, and the first force contribution is related to “low” priority force effects associated with the first position. As such, computation delay in outputting force feedback effects can be substantially reduced, thereby enhancing the stability and performance of the underlying force feedback system.

## Background
FIELD OF THE INVENTION
This invention relates generally to haptic feedback systems. More specifically, embodiments of the invention relate to a hierarchical method for computing force feedback effects.
BACKGROUND
Haptic feedback provides for a new modality of sensing and enhances human experiences in many applications. Kinesthetic force feedback is desired, for instance, in situations where force feedback effects are provided in an interactive (or dynamic) manner, such as flying/driving applications, medical simulations, gaming, virtual reality environments, and consumer electronics.
FIG. 1 shows a flowchart of a conventional method for generated kinesthetic force feedback effects. Flowchart 100 includes determining a position of a manipulandum (e.g., a joystick), as recited in step 110; computing force feedback effects associated with the position, as recited in step 120; and outputting a force signal to an actuator coupled to the manipulandum that renders the computed force feedback effects, as recited in step 130.
In the above, the amount of time it takes for computing the force feedback effects in the step 120 constitutes a delay in outputting the force feedback effects associated with the current position of the manipulandum. This computational delay can significantly compromise the stability, robustness and temporal accuracy of the underlying force feedback system.
A need thus exists for minimizing the computational delay and enhancing the stability and performance of kinesthetic force feedback systems.
BRIEF SUMMARY OF THE INVENTION
Embodiments of the invention relate to a hierarchical method for generating kinesthetic force feedback effects.
In one embodiment, a first force contribution associated with a first position of a manipulandum is received. A second force contribution associated with a second position of the manipulandum is determined. A force signal is output to an actuator coupled to the manipulandum, such that the actuator renders a feedback force that includes a sum of the first and second force contributions.



A BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a flowchart of a conventional method for generating kinesthetic force feedback effects;
FIG. 2 depicts a flowchart of a hierarchical method for generating kinesthetic force feedback effects, according to an embodiment of the invention; and
FIG. 3 illustrates a block diagram of a kinesthetic force feedback system, according to an embodiment of the invention.



DETAILED DESCRIPTION
Embodiments of the invention relate to a hierarchical method for generating kinesthetic force feedback effects.
In one embodiment, force effects are classified according to a predetermined hierarchy (or priority) scheme. For example, such a priority scheme can associate force effects with priority values such as, for example, “high” priority force effects and “low” priority force effects. The terms “high” and “low” used to connote the priority of force effects are used for embodiments having two possible priority values; alternative embodiments can have a different number of possible priority values. The association of force effects with priority values can be, for example, stored in a look-up table. The priority determination may be based on system stability, for instance, such that the high priority force effects have a greater impact on the system stability than the low priority force effects.
At a current position of a manipulandum (e.g., a knob), a first force contribution including the low priority force effects associated with a previous position of the manipulandum is received; and a second force contribution including the high priority force effects associated with the current position is determined. In this example, the previous position of the manipulandum can be referred to as a first position, and the current position of the manipulandum can be referred to as a second position.
A force signal is then output to an actuator coupled to the manipulandum, such that the actuator renders a feedback force that includes a sum of the first and second force contributions. As such, the computation delay in outputting the force feedback effects can be substantially reduced, thereby enhancing the stability, performance and temporal accuracy of the underlying force feedback system.
The second force contribution including the high priority force effects associated with the current position can be determined in a number of ways. For example, the second force contribution can be determined by a concurrent calculation or a look-up table of predetermined calculations.
The ensuing description provides further examples of the invention.
FIG. 2 depicts a flowchart 200 of a hierarchical method for generating kinesthetic force feedback effects, according to an embodiment of the invention. As shown by the example of the flowchart 200, a first force contribution associated with a first position of a manipulandum is received, as recited in step 210. A second force contribution associated with a second position of the manipulandum is determined, where the second position is subsequent to the first position, as recited in step 220 A force signal is output to an actuator coupled to the manipulandum. The actuator is configured to render a feedback force having a sum of the first and second force contributions, as recited in step 230.
In the above description, the first and second positions of the manipulandum may refer to a previous position and a current position of the manipulandum, respectively. Alternatively, the first and second positions of the manipulandum can refer to different positions of the manipulandum at different times, for example where the manipulandum is in the second position after the first position. The flowchart 200 may further include classifying force effects according to a predetermined hierarchy (or priority) scheme, as recited in step 240, such that each force effect is assigned with a priority value. In one embodiment, the first force contribution may include one or more force effects that are characterized by a first (e.g., “low”) priority value; and the second force contribution may include one or more force effects that are characterized by a second (e.g., “high”) priority value. The “priority” determination may be based on system stability and performance, for example, as further described below. The flowchart 200 may additionally include determining a third force contribution associated with the second position of the manipulandum after outputting the force signal, as recited in step 250. The third force contribution may be related to one or more “low” priority force effects associated with the second position.
As described above, the priority determination may be based on the system stability, such that the “high” priority force effects have a greater impact on the system stability than the “low” priority force effects. In one scenario, the high priority force effects for example may be associated with “condition effects” that are characteristic of some of the underlying physical properties of a force feedback system, such as the stiffness, inertia, damping, and friction characteristics of the manipulandum (e.g., a knob), and can therefore be a function of the manipulandum's motion. The “low” priority force effects for example may be correlated with “temporal events” and can thus be characterized by predetermined temporal profiles. Such “temporal effects” are typically predefined functions of time (e.g., vibrations and/or jolts) that are “overlaid” on top of the background “condition effects” described above, thus imposing less impact on the system stability. U.S. Pat. No. 6,147,674 describes in greater detail various “condition” and “temporal” effects, and describes methods for designing suitable force sensations thereof, which is incorporated herein by reference.
Referring back to the flowchart 200 of FIG. 2, the high priority force effects associated with a current (or “second”) position of the manipulandum, along with the low priority force effect associated with a previous (or “first”) position of the manipulandum, are output at, or substantially near the current position of the manipulandum. (The latter scenario may be due to a small delay between calculating and outputting the forces effects.) The low priority force effects associated with the current position of the manipulandum may then be computed, and likewise output at a next position of the manipulandum. In this way, the computation delay can be substantially reduced, without markedly compromising the force sensations to be delivered.
In another scenario, the high priority force effects may be associated with the force effects that are characterized by a high gain (termed “high gain force effects” herein), and the low priority force effects associated with the force effects that are characterized by a low gain (termed herein “low gain force effects”), where the “high gain force effects” impose a more critical impact on the system stability than the “low gain force effects.”
In other embodiments, the first force contribution may include force effects that are associated with, for example, a first range of priority values. The second force contribution may likewise include force effects associated with a second range of priority values. The priority values may be assigned based on other factors or metrics of interest. Moreover, the priority (or hierarchy) scheme for classifying force effects may be modified on a dynamic basis. It will be appreciated that by prioritizing the generation of force effects such as described above, the computation delay in outputting the force feedback effects can be substantially reduced. This can enhance the stability and robustness of a force feedback system, and can afford more realistic feedback sensations to a user.
FIG. 3 shows a block diagram of a force feedback system 300, according to an embodiment of the invention. The force feedback system 300 includes an actuator 310, a sensor 320, and a “local” processor 330 in communication with the actuator 310 and the sensor 320. The actuator 310 and the sensor 320 can be coupled to a manipulandum 340, and are operable to detect the motion of and output force feedback to the manipulandum 340. The manipulandum 340 can be for example a knob, a scroll wheel, a steering wheel, a jog dial, a joystick, a shifter, a medical instrument, or any other known user-manipulable device. The local processor 330 is further in communication with a “host” processor 350 (e.g., a central processor/controller), and is configured to transmit the signals from the sensor 320 to the host processor 350 and output force feedback signals to the actuator 310 based on the instructions from the host processor 350. Such a “local” processor has been used in various force feedback systems to alleviate the work load of the host processor, so as to reduce the delay in delivering force feedback effects. For further details, see U.S. Pat. Nos. 5,734,373; 6,285,351; and 6,300,936; the disclosures of which are all incorporated herein by reference.
By adapting a hierarchical method of the invention, such as described above, the local processor 330 may become optional or eliminated in some applications (as indicated by the phantom line), thereby enabling the force feedback system to be simpler, more modular and cost-effective in configuration and performance. This may be suitable in devices desired to deliver stable, high magnitude force effects. In such scenario, a processor-executable program comprising codes to practice a method of the invention can be stored in a memory 360, coupled to the host processor 350.
Code to implement the methods described above can be, for example, stored in memory 360, or can be present in local processor 330 or host processor 350. The code can be, for example, in a form that is executable by local processor 330 or host processor 350. Alternatively, the code can be in a form that is not immediately executed by a process. For example, the code can be compressed or encrypted so that through additional processing the code can be executable by a processor such as local processor 330 or host processor 350.
Those skilled in the art will recognize that the embodiments described above are provided by way of example, to elucidate the general principles of the invention. Various means and methods can be devised to perform the designated functions in an equivalent manner. Moreover, various changes, substitutions, and alternations can be made herein without departing from the principles and the scope of the invention.

## Claims

1. A method, comprising:
assigning a priority value to each of one or more force effects, the priority value assigned to a force effect based upon a magnitude of an impact of the force effect upon one or more system parameters;
receiving a first force contribution associated with a first position of a manipulandum, the first force contribution including at least one force effect having a first priority value assigned thereto;
determining a second force contribution associated with a second position of the manipulandum, the second position being subsequent to the first position, the second force contribution including at least one force effect having a second priority value assigned thereto; and
outputting a force signal to an actuator coupled to the manipulandum, the actuator configured to render a feedback force, the feedback force including a sum of the first force contribution and the second force contribution.

2. The method of claim 1, wherein one of the one or more parameters is system stability.

3. The method of claim 2, wherein the at least one force effect having the second priority value assigned thereto includes at least one condition effect, and the at least one force effect having the first priority value assigned thereto includes at least one temporal effect.

4. The method of claim 1, wherein one of the one or more parameters is an effect gain.

5. The method of claim 4, wherein the at least one force effect having the second priority value assigned thereto includes at least one high gain force effect, and the at least one force effect having the first priority value assigned thereto includes at least one low gain force effect.

6. The method of claim 1, further comprising determining a third force contribution associated with the second position of the manipulandum, the third force contribution including at least one force effect, associated with the second position of the manipulandum, having a first priority value assigned thereto.

7. The method of claim 1, wherein the manipulandum includes one of a knob, a scroll wheel, a steering wheel, a jog dial, a joystick, and a medical instrument.

8. A processor-executable program, stored on a computer readable medium, comprising:
code to receive a first force contribution associated with a first position of a manipulandum, the first force contribution including at least one force effect having a first priority value assigned thereto, the first priority value assigned to a force effect based upon a first magnitude of an impact of the force effect upon one or more system parameters;
code to determine a second force contribution associated with a second position of the manipulandum, the second position being subsequent to the first position, the second force contribution including at least one force effect having a second priority value assigned thereto, the second priority value assigned to a force effect based upon a second magnitude of the impact of the force effect upon the one or more system parameters; and
code to output a force signal to an actuator coupled to the manipulandum, the actuator configured to render a feedback force having a sum of the first force contribution and the second force contribution.

9. The processor-executable program of claim 8 further comprising: code to determine a third force contribution associated with the second position of the manipulandum, the third force contribution including at least one force effect, associated with the second position of the manipulandum, having a first priority value assigned thereto.

10. The processor-executable program of claim 8 wherein the at least one force effect having the second priority value assigned thereto includes at least one condition effect, and the at least one force effect having the first priority value assigned thereto includes at least one temporal effect.

11. The processor-executable program of claim 8 wherein the at least one force effect having the second priority value assigned thereto includes at least one high gain force effect, and the at least one force effect having the first priority value assigned thereto includes at least one low gain force effect.

12. An apparatus, comprising:
a manipulandum having a range of motion including a first position and a second position, the second position being subsequent to the first position;
a sensor coupled to the manipulandum and operable to monitor a position of the manipulandum in the range of motion; and
an actuator coupled to the manipulandum, the actuator configured to receive a force signal and output a feedback force having a first force contribution and a second force contribution, the first force contribution associated with the first position of the manipulandum and including at least one force effect having a first priority value assigned thereto, the first priority value assigned to a force effect based upon a first magnitude of an impact of the force effect upon one or more system parameters, the second force contribution being associated with the second position of the manipulandum and including at least one force effect having a second priority value assigned thereto, the second priority value assigned to a force effect based upon a second magnitude of the impact of the force effect upon the one or more system parameters.

13. The apparatus of claim 12 wherein the at least one force effect having the second priority value assigned thereto includes at least one condition effect, and the at least one force effect having the first priority value assigned thereto includes at least one temporal effect.

14. The apparatus of claim 12 further comprising:
a processor, in communication with the sensor and the actuator, the processor operative to receive a signal from the sensor and output the force signal to the actuator.

15. The apparatus of claim 14 further comprising a memory storing a program executable by the processor, the program comprising:
code to receive the first force contribution associated with the first position of the manipulandum;
code to determine the second force contribution associated with the second position of the manipulandum, the second position being subsequent to the first position; and
code to output the force signal to the actuator coupled to the manipulandum.

16. The apparatus of claim 12 wherein the manipulandum includes one of a knob, a scroll wheel, a steering wheel, a jog dial, a joystick, and a medical instrument.

17. The apparatus of claim 12 wherein the at least one force effect having the second priority value assigned thereto includes at least one high gain force effect, and the at least one force effect having the first priority value assigned thereto includes at least one low gain force effect.