Offline force effect rendering
First Claim
1. A force feedback device that is responsive to a request from a host computer to generate a force effect, comprising:
- (a) a member adapted to be grasped by a user of the force feedback device;
(b) a prime mover coupled to the member, said prime mover producing a force that acts on the member;
(c) a processor coupled to the prime mover, said processor rendering the force effect to produce a drive signal that is coupled to the prime mover, causing the prime mover to generate a force corresponding to the force effect; and
(d) a communication link coupling the host computer to the processor, the communication link conveying the request to render the force effect from the host computer to the processor, said processor determining whether the processor is linked to the host computer through a musical instrument digital interface port or through a serial port and automatically configuring the communication link to employ an appropriate one of a musical instrument digital interface protocol and a serial protocol to communicate with the host computer.
2 Assignments
0 Petitions
Accused Products
Abstract
A processor in a haptic joystick renders force effects that are applied to control handle gripped by a user. A plurality of force effects specified by a host computer to the processor are stored in a random access memory (RAM) that is coupled to the processor. Further, a plurality of force effects are stored in a read only memory (ROM) that is coupled to the processor. The processor employs a scheduler to render the force effects in a specified order, for specified time intervals. The scheduler controls how the force effects are rendered, i.e., sequentially, concatenated, and/or superimposed. A play list employed by the scheduler indicates for each increment of a servo clock when each force effect should be rendered by the processor. The scheduler has a round robin queue that can implement at least five types of effects, including: behavioral, synthesized, wave table, variable parameter, and process list.
-
Citations
16 Claims
-
1. A force feedback device that is responsive to a request from a host computer to generate a force effect, comprising:
-
(a) a member adapted to be grasped by a user of the force feedback device; (b) a prime mover coupled to the member, said prime mover producing a force that acts on the member; (c) a processor coupled to the prime mover, said processor rendering the force effect to produce a drive signal that is coupled to the prime mover, causing the prime mover to generate a force corresponding to the force effect; and (d) a communication link coupling the host computer to the processor, the communication link conveying the request to render the force effect from the host computer to the processor, said processor determining whether the processor is linked to the host computer through a musical instrument digital interface port or through a serial port and automatically configuring the communication link to employ an appropriate one of a musical instrument digital interface protocol and a serial protocol to communicate with the host computer.
-
-
2. A force feedback device that is responsive to a request from a host computer to generate scheduled force effects, comprising:
-
(a) a member adapted to be grasped by a user of the force feedback device; (b) a prime mover coupled to the member, said prime mover producing a force that acts on the member; (c) a processor coupled to the prime mover, said processor rendering the force effect to produce a drive signal that is coupled to the prime mover, causing the prime mover to generate a force corresponding to the force effects; (d) a scheduler implemented by the processor, said scheduler scheduling the force effects so that they are generated during time intervals requested by the host computer; (e) a communication link coupling the host computer to the processor, said communication link conveying the request to render the force effects from the host computer to the processor, for scheduling the force effects; and (f) a memory in which a profile of a force effect initially received from the host computer and a unique identifier that is assigned to said profile are stored, said scheduler receiving the unique identifier for each force effect requested by the host computer for use in scheduling the force effects, wherein the processor receives a plurality of force effect profiles from the host computer that are combined into a single force effect by the scheduler, said single force effect being assigned a unique identifier.
-
-
3. A force feedback device that generates force effects in accord with a schedule, comprising:
-
(a) a force generator that responds to a drive signal by producing a force that acts on a member, said member transmitting the force to a user in contact with the member so that the user experiences a force effect; (b) a sensor that detects a position of the member and produces a signal indicative of the position, said signal being used in defining at least one of the force effects; (c) a memory for storing data that specify the force effects; and (d) a processor, coupled to the force generator, the sensor, and the memory, said processor executing machine instructions that are stored in the memory and carrying out a plurality of functions defined by said machine instructions, including determining when each force effect is initiated and a duration of each force effect in accord with the schedule, said processor rendering each force effect as specified by the data stored in the memory, and when a force effect is required by the schedule, providing a corresponding drive signal to the force generator, said processor storing profiles for the plurality of force effects in the memory and assigning unique identifiers to the plurality of force effects, each unique identifier being associated with a profile for a different one of the plurality of force effects, said processor rendering a force effect that is specified in the schedule by the unique identifier for said force effect, in accord with the profile for said force effect, wherein a plurality of profiles are combined to indicate a single force effect that is assigned a unique identifier.
-
-
4. A method for controlling a device that generates force effects, comprising the steps of:
-
(a) storing data that define the force effects in a memory of the device; (b) creating a schedule of force effects that defines when each force effect that is included on the schedule should be initiated and a duration of each force effect; (c) as a function of the schedule, providing a drive signal that enables a force corresponding to the force effect to be produced by the device, so that the force effects are generated in accord with the schedule; (d) assigning a unique identifier to each force effect; and (e) specifying each force effect included in the schedule with the unique identifier for said force effect, wherein data specifying a plurality of force effects are combined to specify a single force effect, the combined single force effect being assigned a unique identifier.
-
-
5. A force feedback device that is responsive to a request from a host computer to generate scheduled force effects, comprising:
-
(a) a member adapted to be grasped by a user of the force feedback device; (b) a prime mover coupled to the member, said prime mover producing a force that acts on the member; (c) a processor coupled to the prime mover, said processor rendering the force effect to produce a drive signal that is coupled to the prime mover, causing the prime mover to generate forces corresponding to the force effects; (d) a scheduler implemented by the processor, said scheduler scheduling the force effects so that they are generated during time intervals requested by the host computer; and (e) a communication link coupling the host computer to the processor, said communication link conveying the request to render the force effects from the host computer to the processor, for scheduling the force effects, wherein a concatenated force effect comprising multiple force effects that are executed sequentially is defined, each force effect having a force effect amplitude envelope, the concatenated force effect having a predetermined amplitude concatenation envelope, said predetermined amplitude concatenation envelope superseding said force effect amplitude envelopes so as to control an amplitude of the force effects that are executed sequentially.
-
-
6. A force feedback device that generates force effects in accord with a schedule, comprising:
-
(a) a force generator that responds to a drive signal by producing a force that acts on a member, said member transmitting the force to a user in contact with the member so that the user experiences a force effect; (b) a sensor that detects a position of the member and produces a signal indicative of the position, said signal being used in defining at least one of the force effects; (c) a memory for storing data that specify the force effects; and (d) a processor, coupled to the force generator, the sensor, and the memory, said processor executing machine instructions that are stored in the memory and carrying out a plurality of functions defined by said machine instructions, including determining when each force effect is initiated and a duration of each force effect in accord with the schedule, said processor rendering each force effect as specified by the data stored in the memory, and when a force effect is required by the schedule, providing a corresponding drive signal to the force generator, wherein a concatenated force effect included on the schedule comprises multiple force effects that are executed sequentially, each force effect having a force effect amplitude envelope, the concatenated force effect having a predetermined amplitude concatenation envelope, said predetermined amplitude concatenation envelope superseding said force effect amplitude envelopes so as to control an amplitude of the force effects that are executed sequentially.
-
-
7. A method for controlling a device that generates force effects, comprising the steps of:
-
(a) storing data that define the force effects in a memory of the device; (b) creating a schedule of force effects that defines when each force effect that is included on the schedule should be initiated and a duration of each force effect; and (c) as a function of the schedule, providing a drive signal that enables a force corresponding to the force effect to be produced by the device, so that the force effects are generated in accord with the schedule, wherein a concatenated force effect included on the schedule comprises multiple force effects that are produced sequentially, each force effect having a force effect amplitude envelope, the concatenated force effect having a predetermined amplitude concatenation envelope, said predetermined amplitude concatenation envelope superseding said force effect amplitude envelopes so as to control an amplitude of the force effects that are produced sequentially.
-
-
8. A method for controlling a device that generates force effects, comprising the steps of:
-
(a) storing data that define the force effects in a memory of the device; (b) creating a schedule of force effects that defines when each force effect that is included on the schedule should be initiated and a duration of each force effect; (c) as a function of the schedule, providing a drive signal that enables a force corresponding to the force effect to be produced by the device, so that the force effects are generated in accord with the schedule; and (d) terminating a force effect if execution of a command invoking the force effect exceeds a predetermined time interval.
-
-
9. A force feedback device that is responsive to a request from a host computer to generate scheduled force effects, comprising:
-
(a) a member adapted to be grasped by a user of the force feedback device; (b) a prime mover coupled to the member, said prime mover producing a force that acts on the member; (c) a processor coupled to the prime mover, said processor rendering the force effect to produce a drive signal that is coupled to the prime mover, causing the prime mover to generate a force corresponding to the force effects; (d) a servo clock, coupled to the processor and providing a tick at a predetermined time interval; (e) a scheduler implemented by the processor, said scheduler scheduling the force effects so that they are generated during time intervals requested by the host computer; (f) a communication link coupling the host computer to the processor, said communication link conveying the request to render the force effects from the host computer to the processor, for scheduling the force effects; and (g) a memory in which a plurality of force effect profiles, each having a unique force effect identifier, are stored, said host computer sending a plurality of force effect commands comprising a playlist, each of said force effect commands comprising timing information concerning when the commanded force effect is to be active and a force effect identifier corresponding to one of the stored force effect profiles, said processor evaluating said playlist at each servo clock tick to render a force effect that imparts forces to said member, said rendered force effect being a summation of all of the force effect profiles on the playlist that are active at that time. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for controlling a device that generates force effects, comprising the steps of:
-
(a) storing data that define the force effects in a memory of the device; (b) creating a schedule of force effect commands that defines when each force effect that is included on the schedule should be initiated and a duration of each force effect; (c) as a function of the schedule, executing the force effect commands so as to provide a drive signal that enables a force corresponding to a commanded force effect to be produced by the device, so that the force effects are generated in accord with the schedule; and (d) performing a sanity check for each force effect command prior to its execution so that the force effect command is not executed unless it is found among a predefined set of valid force effect commands for the device.
-
Specification