Patent US6300937B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6300937B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for controlling force feedback for a computer interface device

Assignee: Immersion Corp
•
Filing: 1998-04-09
•
Granted: 2001-10-09
•
Expires: 2018-04-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for controlling and providing force feedback using an interface device manipulated by a user. A microprocessor is provided local to the interface device and reads sensor data from sensors that describes the position and/or other information about an object grasped and moved by the user, such as a joystick. The microprocessor provides the sensor data to a host computer that is coupled to the interface device by a communication bus that preferably includes a serial interface. In a “host-controlled” embodiment, the host computer calculates force values using the sensor data and other parameters of a host application program and sends the force values to the local microprocessor, which directly provides the force values to actuators to apply forces to the user object. In a “reflex” embodiment, the host computer sends high level supervisory commands to the local microprocessor, and the microprocessor independently implements a local process based on the high level command for reading sensor data and providing force values to the actuators using sensor data and other parameters.

Inventors

  • 👤 Louis B. Rosenberg

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 06:51
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/01; G06F3/016; A; A63; A63F; A63F13/00; A63F13/25; A63F13/28; A63F13/285; B; B25; B25J; B25J9/00; B25J9/16; B25J9/1679; B25J9/1692; G01; G01B; G01B21/00; G01B21/02; G01B21/04; G01B5/00; G01B5/004; G01B5/008; G01B7/00; G01B7/004; G05; G05B; G05B19/00; G05B19/02; G05B19/42; G05B19/4202; G05B19/4207; G05G; G05G9/00; G05G9/02; G05G9/04; G05G9/047; G06F3/011; G06F3/03; G06F3/033; G06F3/0346; G06F3/0354; G06F3/03545; G06F3/038; G06F3/0383; A63F2300/00; A63F2300/10; A63F2300/1025; A63F2300/1037; G05G2009/04766; G05G2009/04777; G06F2203/00; G06F2203/01; G06F2203/015; H; H01; H01H; H01H3/00; H01H2003/008

Claims Analysis

Total Claims: 53
Claim 1
Independent Claim 295 words
A force feedback interface device manipulated by a user and communicating with a host computer implementing a host application program executed in parallel with operation of said force feedback interface device, said host computer updating said host application program in response to input data, said force feedback interface device comprising: a microprocessor, separate from said host computer, that communicates with said host computer via a communication interface by receiving a host force command from said host computer and by sending said input data to said host computer, said input data being derived from sensor data received by said microprocessor, wherein said host computer updates said parallel execution of said host application program in response to said input data and wherein said microprocessor can receive both high level host force commands and low level host force commands selectively sent by said host computer, said high level host force commands instructing said local microprocessor to compute force magnitudes and output said computed force magnitudes in a processor force signal, and said low level host force commands including force magnitudes and causing said local microprocessor to output said processor force signal based on said included force magnitudes; a user object movable in at least one degree of freedom by a user and adapted to be physically contacted and manipulated by said user; an actuator electrically coupled to said microprocessor and operative to apply a force to said user in accordance with said processor force signal from said microprocessor; and at least one sensor that detects a position of said user object in said at least one degree of freedom and outputs said sensor data to said microprocessor, said sensor data including information representative of said position of said user object in said at least one degree of freedom.
Claim 2
Dependent Claim 295 words
A force feedback interface device manipulated by a user and communicating with a host computer implementing a host application program executed in parallel with operation of said force feedback interface device, said host computer updating said host application program in response to input data, said force feedback interface device comprising: a microprocessor, separate from said host computer, that communicates with said host computer via a communication interface by receiving a host force command from said host computer and by sending said input data to said host computer, said input data being derived from sensor data received by said microprocessor, wherein said host computer updates said parallel execution of said host application program in response to said input data and wherein said microprocessor can receive both high level host force commands and low level host force commands selectively sent by said host computer, said high level host force commands instructing said local microprocessor to compute force magnitudes and output said computed force magnitudes in a processor force signal, and said low level host force commands including force magnitudes and causing said local microprocessor to output said processor force signal based on said included force magnitudes; a user object movable in at least one degree of freedom by a user and adapted to be physically contacted and manipulated by said user; an actuator electrically coupled to said microprocessor and operative to apply a force to said user in accordance with said processor force signal from said microprocessor; and at least one sensor that detects a position of said user object in said at least one degree of freedom and outputs said sensor data to said microprocessor, said sensor data including information representative of said position of said user object in said at least one degree of freedom.
Claim 3
Dependent Claim 27 words
A force feedback interface device as recited in claim 1 wherein said processor force signal includes said force magnitudes includes in said low level host force command.
Claim 4
Dependent Claim 64 words
A force feedback interface device as recited in claim 1 wherein said high level host force command instructs said microprocessor to select one of a plurality of force processes available to said microprocessor, wherein each of said force processes instructs said microprocessor to output said processor force signal to said actuator and input said sensor data from said sensor independently of said host computer.
Claim 5
Dependent Claim 43 words
A force feedback interface device as recited in claim 1 further comprising circuitry for receiving said sensor data from said sensor and for calculating velocity or acceleration values from said sensor data, said velocity and acceleration values being included in said input data.
Claim 6
Dependent Claim 30 words
A force feedback interface device as recited in claim 1 wherein said input data includes a current position of said user object in said at least one degree of freedom.
Claim 7
Dependent Claim 53 words
A force feedback interface device as recited in claim 5 wherein said sensor data is received by said microprocessor at a rate greater than 1000 times per second, and wherein said input data is sent to said host computer at a rate that is less than said rate of receiving said sensor data.
Claim 8
Dependent Claim 49 words
A force feedback interface device as recited in claim 5 wherein said user object is a joystick moveable in two degrees of freedom and further comprising a slotted yoke mechanism coupled to said joystick, said slotted yoke mechanism providing at least two degrees of freedom to said user object.
Claim 9
Dependent Claim 23 words
A force feedback interface device as recited in claim 1 wherein said actuator is one of a servo motor and a voice coil.
Claim 10
Dependent Claim 21 words
A force feedback interface device as recited in claim 1 wherein said communication interface is a Universal Serial Bus (USB) interface.
Claim 11
Independent Claim 168 words
A method for providing force feedback using a force feedback device in communication with a host computer, the method comprising: providing a user manipulatable object for said force feedback device, said user manipulatable object moveable in at least one degree of freedom and physically contacted by a user; sensing positions of said user manipulatable object in said at least one degree of freedom with at least one sensor and producing sensor signals therefrom; using a microprocessor local to said force feedback device and separate from said host computer to receive said sensor signals and to retrieve a force profile from a memory device local to said force feedback device, said force profile including a sequence of stored force magnitudes to be output as a function of time; outputting said sensor signals to said host computer from said microprocessor; and outputting said force magnitudes as a function of time to an actuator coupled to said microprocessor, wherein said actuator outputs forces derived from said force magnitudes to said user.
Claim 12
Independent Claim 168 words
A method for providing force feedback using a force feedback device in communication with a host computer, the method comprising: providing a user manipulatable object for said force feedback device, said user manipulatable object moveable in at least one degree of freedom and physically contacted by a user; sensing positions of said user manipulatable object in said at least one degree of freedom with at least one sensor and producing sensor signals therefrom; using a microprocessor local to said force feedback device and separate from said host computer to receive said sensor signals and to retrieve a force profile from a memory device local to said force feedback device, said force profile including a sequence of stored force magnitudes to be output as a function of time; outputting said sensor signals to said host computer from said microprocessor; and outputting said force magnitudes as a function of time to an actuator coupled to said microprocessor, wherein said actuator outputs forces derived from said force magnitudes to said user.
Claim 13
Dependent Claim 37 words
A method as recited in claim 10 wherein said force magnitudes are digitized force sensation values previously stored in said memory device, said digitized force sensation values collectively defining a force sensation when output by said actuator.
Claim 14
Dependent Claim 35 words
A method as recited in claim 11 wherein said stored digitized force sensation values are output to said actuator also based on a position of said user manipulatable object as derived from said sensor signals.
Claim 15
Dependent Claim 48 words
A method as recited in claim 10 wherein said microprocessor retrieves said force profile and outputs said force magnitudes in response to receiving a high level command from said host computer, said high level command being associated with said output of said force magnitudes of said force profile.
Claim 16
Independent Claim 42 words
A method as recited in claims 10 wherein said outputting said force magnitudes as a function of time includes retrieving timing information from a clock device, wherein said clock device is coupled to said microprocessor and is local to said interface device.
Claim 17
Dependent Claim 23 words
A method as recited in claim 14 wherein said force magnitudes are output in sequence to said actuator as a function of time.
Claim 18
Dependent Claim 40 words
A method as recited in claim 14 wherein a length of a time interval provided between said force magnitudes of said force profile can be varied to provide different force sensations to said user physically contacting said user manipulatable object.
Claim 19
Dependent Claim 271 words
A force feedback device manipulated by a user and communicating with a host computer implementing a host application program in parallel with operation of said force feedback interface device, said host computer updating said host application program in response to input data, said force feedback device comprising: at least one sensor detecting motion of a user manipulatable object of said force feedback device in at least one degree of freedom and outputting a sensor signal representative of a position or motion of said user manipulatable object in said at least one degree of freedom, said user manipulatable object being physically contacted and manipulated by a user; an actuator receiving actuator signals and outputting forces to a user of said force feedback device in accordance with said actuator signals; and a microprocessor local to said force feedback device and separate from said host computer, said microprocessor operative to receive said sensor signal from said at least one sensor and send sensor information derived from said sensor signal to said host computer, wherein said microprocessor receives host commands from said host computer and outputs control signals based on said host commands, said actuator signals received by said actuator being based on said control signals, and wherein said microprocessor is operative to receive both high level host commands and low level host commands selectively sent by said host computer, said high level host commands causing said microprocessor to determine force information in said control signals based on parameters in said high level host commands, and said low level host commands including force information that is directly output by said microprocessor in said control signals.
Claim 20
Dependent Claim 271 words
A force feedback device manipulated by a user and communicating with a host computer implementing a host application program in parallel with operation of said force feedback interface device, said host computer updating said host application program in response to input data, said force feedback device comprising: at least one sensor detecting motion of a user manipulatable object of said force feedback device in at least one degree of freedom and outputting a sensor signal representative of a position or motion of said user manipulatable object in said at least one degree of freedom, said user manipulatable object being physically contacted and manipulated by a user; an actuator receiving actuator signals and outputting forces to a user of said force feedback device in accordance with said actuator signals; and a microprocessor local to said force feedback device and separate from said host computer, said microprocessor operative to receive said sensor signal from said at least one sensor and send sensor information derived from said sensor signal to said host computer, wherein said microprocessor receives host commands from said host computer and outputs control signals based on said host commands, said actuator signals received by said actuator being based on said control signals, and wherein said microprocessor is operative to receive both high level host commands and low level host commands selectively sent by said host computer, said high level host commands causing said microprocessor to determine force information in said control signals based on parameters in said high level host commands, and said low level host commands including force information that is directly output by said microprocessor in said control signals.
Claim 21
Dependent Claim 37 words
A force feedback device as recited in claim 17 wherein said force output by said actuator is output in said at least one degree of freedom to said user manipulatable object that is coupled to said actuator.
Claim 22
Dependent Claim 34 words
A force feedback device as recited in claim 17 wherein said force feedback device includes a digital-to-analog converter to convert said control signals output by said microprocessor to analog signals received by said actuator.
Claim 23
Dependent Claim 28 words
A force feedback device as recited in claim 17 wherein said determined force information is based at least in part on said sensor signal received from said sensor.
Claim 24
Dependent Claim 59 words
A force feedback device as recited in claim 17 wherein each of said high level commands instructs said microprocessor to select one of a plurality of force processes available to said microprocessor, wherein each of said force processes instructs said microprocessor to output said control signals and input said sensor signal from said sensor independently of said host computer.
Claim 25
Dependent Claim 41 words
A force feedback device as recited in claim 21 further comprising circuitry for receiving said sensor signal from said sensor and for calculating velocity or acceleration values from said sensor signal, said velocity and acceleration values being received by said microprocessor.
Claim 26
Dependent Claim 48 words
A force feedback device as recited in claim 17 wherein said microprocessor receives said sensor signal and outputs said control signals at a rate greater than the rate at which said sensor information is sent to said host computer, thereby reducing a computational burden on said host computer.
Claim 27
Dependent Claim 56 words
A force feedback device as recited in claim 23 wherein said sensor signal is received by said microprocessor at a rate greater than 1000 times per second, and wherein said sensor information is sent to said host computer at a rate that is about the refresh rate of a display screen coupled to said host computer.
Claim 28
Dependent Claim 23 words
A force feedback device as recited in claim 17 wherein said user manipulatable object is a joystick moveable in two degrees of freedom.
Claim 29
Dependent Claim 25 words
A force feedback device as recited in claim 17 wherein said microprocessor is coupled to said host computer by a Universal Serial Bus (USB) interface.
Claim 30
Dependent Claim 65 words
A force feedback device as recited in claim 17 further comprising a clock device coupled to and accessible by said microprocessor, said clock device separate from said host computer, wherein said clock device is accessed by said microprocessor for timing data to ensure that force feedback sensations provided by said actuator feel consistent to said user regardless of an operating speed of said host computer.
Claim 31
Dependent Claim 36 words
A force feedback device as recited in claim 17 wherein said microprocessor receives a high level host command from said host computer indicating that said microprocessor should process succeeding received host commands as low level commands.
Claim 32
Dependent Claim 64 words
A force feedback device as recited in claim 17 further comprising a physical button coupled to said force feedback device, said button having a button state, wherein said microprocessor sends button information to said host computer, said button information derived from said button state, and wherein said host computer uses said button information in determining whether to send a host command to said microprocessor.
Claim 33
Independent Claim 304 words
A method for providing force feedback to a user manipulating a force feedback device, said force feedback device communicating with a host computer implementing a host application program in parallel with operation of said force feedback device, the method comprising: detecting motion of a user manipulable object of said force feedback device in at least one degree of freedom and providing a sensor signal representative of a position of said user manipulatable object in said at least one degree of freedom, said user manipulatable object being physically contacted and manipulated by a user; sending sensor information derived from said sensor signal to said host computer, said host computer updating said host application program in response to said sensor information; receiving host commands from said host computer on a microprocessor local to said force feedback device and separate from said host computer, wherein said microprocessor can receive high level host commands and can receive low level host commands, said high level host commands and low level host commands being selectively sent by said host computer; and outputting control signals from said microprocessor based on said host commands, wherein said high level host commands cause said microprocessor to output said control signals based on parameters in said high level host commands, said output performed during time periods between receiving host commands, and said low level host commands including low level force information and cause said microprocessor to output said control signals based on said low level force information only when each of said low level host commands are received and not during periods between receiving said low level host commands, wherein an actuator of said force feedback device receives actuator signals that are based on said control signals, said actuator outputting forces to a user of said force feedback device in accordance with said actuator signals.
Claim 34
Independent Claim 304 words
A method for providing force feedback to a user manipulating a force feedback device, said force feedback device communicating with a host computer implementing a host application program in parallel with operation of said force feedback device, the method comprising: detecting motion of a user manipulable object of said force feedback device in at least one degree of freedom and providing a sensor signal representative of a position of said user manipulatable object in said at least one degree of freedom, said user manipulatable object being physically contacted and manipulated by a user; sending sensor information derived from said sensor signal to said host computer, said host computer updating said host application program in response to said sensor information; receiving host commands from said host computer on a microprocessor local to said force feedback device and separate from said host computer, wherein said microprocessor can receive high level host commands and can receive low level host commands, said high level host commands and low level host commands being selectively sent by said host computer; and outputting control signals from said microprocessor based on said host commands, wherein said high level host commands cause said microprocessor to output said control signals based on parameters in said high level host commands, said output performed during time periods between receiving host commands, and said low level host commands including low level force information and cause said microprocessor to output said control signals based on said low level force information only when each of said low level host commands are received and not during periods between receiving said low level host commands, wherein an actuator of said force feedback device receives actuator signals that are based on said control signals, said actuator outputting forces to a user of said force feedback device in accordance with said actuator signals.
Claim 35
Dependent Claim 20 words
A method as recited in claim 30 wherein said microprocessor directly outputs said low-level force information in said control signals.
Claim 36
Dependent Claim 35 words
A method as recited in claim 30 wherein said forces output by said actuator is output in said at least one degree of freedom to said user manipulatable object that is coupled to said actuator.
Claim 37
Dependent Claim 25 words
A method as recited in claim 30 further comprising converting said control signals output by said microprocessor to analog actuator signals received by said actuator.
Claim 38
Dependent Claim 46 words
A method as recited in claim 30 wherein said microprocessor receives said sensor signal and outputs said control signals at a rate greater than the rate at which said sensor information is sent to said host computer, thereby reducing a computational burden on said host computer.
Claim 39
Dependent Claim 36 words
A method as recited in claim 30 wherein said microprocessor receives one of said high level host commands from said host computer that indicates that said microprocessor should process succeeding host commands as low level commands.
Claim 40
Dependent Claim 20 words
A method as recited in claim 30 wherein said host computer calculates said force information in said low level commands.
Claim 41
Dependent Claim 29 words
A method as recited in claim 36 wherein said host computer calculates said force information based at least in part on said sensor information derived from said sensor signal.
Claim 42
Dependent Claim 35 words
A method as recited in claim 37 wherein said sensor information sent to said host computer includes position data describing a position of said user manipulatable object in said at least one degree of freedom.
Claim 43
Dependent Claim 49 words
A method as recited in claim 30 wherein said force information in said low level commands is predetermined and stored in a storage device on said host computer, wherein said host computer retrieves said force information and sends said force information to said microprocessor in said low level commands.
Claim 44
Dependent Claim 29 words
A method as recited in claim 30 wherein said microprocessor calculates force information based on said parameters in said high level commands, said control signals including said force information.
Claim 45
Dependent Claim 55 words
A method as recited in claim 30 wherein said high level commands instruct said microprocessor to select one of a plurality of force processes available to said microprocessor, wherein each of said force processes instructs said microprocessor to output said control signals and input said sensor signal from said sensor independently of said host computer.
Claim 46
Dependent Claim 27 words
A method as recited in claim 41 wherein said host computer checks said sensor information to determine whether to issue said high level commands to said microprocessor.
Claim 47
Dependent Claim 53 words
A method as recited in claim 42 further comprising sending button information to said host computer, said button information derived from a button state of a physical button positioned on said force feedback device, wherein said host computer uses said button information in determining whether to send a host command to said microprocessor.
Claim 48
Dependent Claim 303 words
A force feedback device manipulated by a user and communicating with a host computer implementing a host application program in parallel with operation of said force feedback interface device, said host computer updating said host application program in response to input data, said force feedback device comprising: at least one sensor detecting motion of a user manipulable object of said force feedback device in at least one degree of freedom and outputting a sensor signal representative of a position of said user manipulatable object in said at least one degree of freedom, said user manipulatable object being physically contacted and manipulated by a user; an actuator operative to receive actuator signals and output forces to a user of said force feedback device in accordance with said actuator signals; and a microprocessor local to said force feedback device and separate from said host computer, said microprocessor operative to receive said sensor signal from said at least one sensor and send sensor information derived from said sensor signal to said host computer, wherein said microprocessor receives host commands from said host computer and outputs control signals based on said host commands, said actuator signals received by said actuator being based on said control signals, and wherein said microprocessor is operative to receive both high level host commands and low level host commands selectively sent by said host computer, said high level host commands causing said microprocessor to determine force information in said control signals based on a position of said user manipulatable object in said at least one degree of freedom or based on time, and said low level host commands causing said microprocessor to output said control signals based on low level information in said low level host commands and not based on said position of said user manipulatable object nor based on time.
Claim 49
Dependent Claim 303 words
A force feedback device manipulated by a user and communicating with a host computer implementing a host application program in parallel with operation of said force feedback interface device, said host computer updating said host application program in response to input data, said force feedback device comprising: at least one sensor detecting motion of a user manipulable object of said force feedback device in at least one degree of freedom and outputting a sensor signal representative of a position of said user manipulatable object in said at least one degree of freedom, said user manipulatable object being physically contacted and manipulated by a user; an actuator operative to receive actuator signals and output forces to a user of said force feedback device in accordance with said actuator signals; and a microprocessor local to said force feedback device and separate from said host computer, said microprocessor operative to receive said sensor signal from said at least one sensor and send sensor information derived from said sensor signal to said host computer, wherein said microprocessor receives host commands from said host computer and outputs control signals based on said host commands, said actuator signals received by said actuator being based on said control signals, and wherein said microprocessor is operative to receive both high level host commands and low level host commands selectively sent by said host computer, said high level host commands causing said microprocessor to determine force information in said control signals based on a position of said user manipulatable object in said at least one degree of freedom or based on time, and said low level host commands causing said microprocessor to output said control signals based on low level information in said low level host commands and not based on said position of said user manipulatable object nor based on time.
Claim 50
Dependent Claim 29 words
A force feedback device as recited in claim 44 wherein said microprocessor calculates said force information in said control signals based on parameters in said high level host commands.
Claim 51
Dependent Claim 29 words
A force feedback device as recited in claim 45 wherein said parameters include a direction in said at least one degree of freedom in which to output said force.
Claim 52
Dependent Claim 58 words
A force feedback device as recited in claim 44 wherein at least one of said high level commands causes said microprocessor to determine said force information in said control signals by retrieving force values of a force profile stored in local memory, wherein said microprocessor outputs said force values in said control signals as a function of time.
Claim 53
Dependent Claim 33 words
A force feedback device as recited in claim 44 wherein said low level commands cause said microprocessor to output said control signals that include said low level information received from said host computer.

References Cited (Backward Citations)

US3919691A Cited
US4398889A Cited
EP0085518B1 Cited
US4560983A Cited
US4477043A Cited
US4604016A Cited
US4603284A Cited
US4782327A Cited
US4632341A Cited
US4706294A Cited
US5103404A Cited
US4879556A Cited
US4795296A Cited
US4800721A Cited
US4961138A Cited
US4868549A Cited
US4896554A Cited
US4925312A Cited
US4907970A Cited
US5116180A Cited
US4962448A Cited
US5007085A Cited
US4949119A Cited
US5044956A Cited
US5116051A Cited
US5007300A Cited
US4983901A Cited
US5076517A Cited
US4961038A Cited
US5107080A Cited
US5184319A Cited
US5197003A Cited
US5181181A Cited
US5296846A Cited
US5634794A Cited
US5193963A Cited
US5781172A Cited
US5223776A Cited
US5142931A Cited
US5143505A Cited
US5354162A Cited
US5203563A Cited
US5275565A Cited
US5146566A Cited
US5445166A Cited
US5185561A Cited
US5186629A Cited
US5889670A Cited
US5414337A Cited
US5220260A Cited
US5889672A Cited
US5228356A Cited
US5230623A Cited
US5381080A Cited
US5589828A Cited
US5512919A Cited
US5189355A Cited
US5296871A Cited
US5428748A Cited
US5264768A Cited
US5286203A Cited
US5790108A Cited
US5389865A Cited
US6104158A Cited
US5769640A Cited
US5629594A Cited
US5550562A Cited
US5451924A Cited
US5402582A Cited
EP0626634A2 Cited
US5429140A Cited
US5405152A Cited
US5396266A Cited
US5513100A Cited
US5805140A Cited
US5576727A Cited
US5880714A Cited
US5739811A Cited
US6057828A Cited
US5701140A Cited
US5734373A Cited
US5625576A Cited
US5583407A Cited
US5577981A Cited
US5742278A Cited
US5709219A Cited
US5482051A Cited
US5656901A Cited
US6004134A Cited
US5643087A Cited
US5623582A Cited
US5642469A Cited
US5666138A Cited
US5767839A Cited
US5721566A Cited
US5755577A Cited
US5736978A Cited
US5589854A Cited
US5771037A Cited
US5724068A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-10-08 2005-04-09 2005-10-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-10-08 2009-04-09 2009-10-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-10-08 2013-04-09 2013-10-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag