Claims
- 1. A control system for a force feedback device used in providing force sensations to a user interfacing with an application program and with visual images displayed by a display device in accordance with said application program and in accordance with manipulations of said force feedback device by said user, the control system comprising:
a force feedback processor for determining output force commands for commanding forces to be applied on a user manipulatable object grasped by a user, said forces being applied by at least one actuator coupled to said force feedback processor and to said user manipulatable object; and a haptic accelerator coupled to at least one sensor of said force feedback interface device and separate from said force feedback processor, said haptic accelerator receiving raw sensor data from said at least one sensor and providing processed data from said raw sensor data, said haptic accelerator including logic components for fast processing of said raw sensor data into said processed data, said processed data including position data representing a current position of said user object in at least one degree of freedom and velocity data representing a current velocity of said user object in at least one degree of freedom, said processed data being sent to said force feedback processor to be used in said determination of output forces on said user manipulatable object.
- 2. A control system as recited in claim 1 wherein said processed data includes acceleration data representing a current acceleration of said user object in at least one degree of freedom.
- 3. A control system as recited in claim 1 wherein said sensor is a digital optical encoder providing two raw sensor signals, and wherein said haptic accelerator determines a position of said user object and a direction of said user object in said degree of freedom using said two raw sensor signals.
- 4. A control system as recited in claim 3 wherein said haptic accelerator includes a quadrature module for determining said position data using said two raw sensor signals, said position data describing a position of said user object.
- 5. A control system as recited in claim 4 wherein said haptic accelerator includes a motion processing module having a counter for counting a time interval between raw signals from said digital optical encoder such that said haptic accelerator may provide said velocity of said user manipulatable object.
- 6. A control system as recited in claim 4 wherein said haptic accelerator includes a motion processing module having a counter for counting a time interval between raw signals from said digital optical encoder such that said haptic accelerator may provide an acceleration of said user manipulatable object.
- 7. A control system as recited in claim 6 wherein said haptic accelerator includes a plurality of latches for storing said time interval and a previous time interval such that said haptic accelerator may provide said acceleration of said user manipulatable object.
- 8. A control system as recited in claim 7 wherein said haptic accelerator includes fault prevention logic for detecting errors and invalid signals from said sensor.
- 9. A control system as recited in claim 8 wherein said haptic accelerator includes a filter for rejecting spurious raw sensor signals.
- 10. A control system as recited in claim 1 wherein said application program is executed by a host computer system coupled to said force feedback interface device, and wherein said force feedback processor is a device microprocessor separate from said host computer system and local to said force feedback interface device.
- 11. A control system as recited in claim 1 wherein said application program is executed by a host computer system coupled to said force feedback interface device, and wherein said force feedback processor is a microprocessor included in said host computer system.
- 12. A control system as recited in claim 1 wherein said device microprocessor determines time-varying effect forces, and wherein haptic accelerator includes a haptic processing unit for determining condition forces, said condition forces being output from said haptic processing unit to said actuator.
- 13. A control system as recited in claim 12 wherein said haptic accelerator includes a parameter storage register for storing parameters received from said device microprocessor, said parameters modifying said condition forces determined by said haptic processing unit.
- 14. A control system as recited in claim 13 wherein said parameters include at least one of a spring constant, a damping constant, and a simulated mass constant.
- 15. A control system as recited in claim 13 wherein said haptic accelerator includes a quadrature module for determining said position data from said raw sensor signals, and wherein said haptic accelerator further includes a multiplexer for multiplexing said position data with said velocity data.
- 16. A control system as recited in claim 1 wherein said user manipulatable object is one of a mouse and a joystick.
- 17. A control system as recited in claim 16 wherein said haptic accelerator is provided on a portion of silicon and said force feedback processor is provided on said portion of silicon.
- 18. A force feedback interface device for use with a host computer displaying a graphical simulation on a display device, said host computer displaying and updating said graphical simulation in response to user manipulation of said interface device and commanding force feedback sensations in response to said user manipulation and in coordination with events within said graphical simulation, the interface device comprising:
a user manipulatable object graspable by said user and movable in a degree of freedom; an actuator for outputting a force on said user manipulatable object; a sensor for outputting a raw sensor signal indicative of a position of said user manipulatable object in said degree of freedom; a device microprocessor separate from said host computer and coupled to said host computer and to said actuator, said device microprocessor receiving high-level host commands from said host computer and determining forces in response to said high-level commands, said microprocessor causing said determined forces to be output by said actuator; and a haptic accelerator separate from said device microprocessor that receives said raw sensor signals and outputs processed signals derived from said raw sensor signals, said processed signals being sent to and used, at least in part, by said device microprocessor for determining said forces.
- 19. A force feedback interface device as recited in claim 18 wherein said processed signals provided by said haptic accelerator include position signals indicating a position of said user manipulatable object in said degree of freedom and at least one of velocity signals
- 20. A force feedback interface device as recited in claim 19 wherein said processed signals provided by said haptic accelerator include acceleration signals indicating an acceleration of said user manipulatable object in said degree of freedom.
- 21. A force feedback interface device as recited in claim 19 wherein said sensor is a digital optical encoder providing two raw sensor signals, and wherein said haptic accelerator determines a position of said user object and a direction of said user object in said degree of freedom using said two raw sensor signals.
- 22. A force feedback interface device as recited in claim 18 wherein said haptic accelerator includes a quadrature module for determining said position signals using said two raw sensor signals, said position signals describing a position of said user object.
- 23. A force feedback interface device as recited in claim 22 wherein said haptic accelerator includes a motion processing module having a counter for counting a time interval between raw signals from said digital optical encoder such that said haptic accelerator may provide said velocity signals.
- 24. A force feedback interface device as recited in claim 23 wherein said motion processing module includes a plurality of latches for storing said time interval and a previous time interval such that said haptic accelerator may provide acceleration signals.
- 25. A force feedback interface device as recited in claim 23 wherein said device microprocessor determines time-varying effect forces, and wherein haptic accelerator includes a haptic processing unit for determining condition forces, said condition forces being output from said haptic processing unit to said actuator.
- 26. A force feedback interface device as recited in claim 25 wherein said condition forces include a restoring spring force, a damping force, and an inertia force.
- 27. A force feedback interface device as recited in claim 26 wherein said effect forces include a vibration and a force jolt.
- 28. A force feedback interface device as recited in claim 27 wherein said haptic accelerator includes a parameter storage register for storing parameters received from said device microprocessor, said parameters modifying said condition forces determined by said haptic processing unit.
- 29. A force feedback interface device as recited in claim 28 wherein said parameters may include a spring constant, a damping constant, and a simulated mass constant.
- 30. A force feedback interface device as recited in claim 25 wherein said haptic accelerator includes fault prevention logic for detecting errors and invalid signals from said sensor.
- 31. A force feedback interface device as recited in claim 28 wherein said haptic accelerator includes a filter for rejecting spurious raw sensor signals.
- 32. A force feedback interface device as recited in claim 28 wherein said haptic accelerator further includes a multiplexer for multiplexing said position signals with said velocity and acceleration signals.
- 33. A force feedback interface device as recited in claim 18 wherein said actuator includes a brushless DC motor, wherein said microprocessor controls said brushless DC motor using sinusoidal commutation.
- 34. A force feedback interface device as recited in claim 18 wherein said actuator includes a brushless DC motor, wherein said haptic accelerator controls said brushless DC motor using sinusoidal commutation.
- 35. A force feedback interface device as recited in claim 25 wherein said haptic processing unit includes a summing node for summing different condition forces determined substantially simultaneously by said haptic processing unit and outputting said summed condition force to said actuator.
- 36. A force feedback interface device as recited in claim 25 wherein said device microprocessor outputs said effect forces to said haptic processing unit, and wherein said haptic processing unit includes a summing node for summing said effect forces determined by said microprocessor with said condition forces determined by said haptic processing unit and outputting said summed forces to said actuator.
- 37. A force feedback interface device as recited in claim 25 wherein said user manipulatable object is one of a mouse and a joystick.
- 38. A haptic accelerator used in a force feedback interface device coupled to a host computer system, said haptic accelerator being separate from a force feedback processor and offloading computational burden from said force feedback processor, said haptic accelerator comprising:
a quadrature module that receives raw sensor signals from a sensor, said quadrature module utilizing a counter to provide position signals from said raw sensor signals, said position signals indicating a position of said user manipulatable object in a degree of freedom, wherein said position signals are provided to a force feedback processor to be used in a determination of forces by said force feedback processor; and a motion processing module that receives said raw sensor signals from said sensor, said motion processing module utilizing a counter to provide velocity signals, said velocity signals being provided to said force feedback processor to be used in a determination of forces by said force feedback processor.
- 39. A haptic accelerator as recited in claim 38 further comprising a filter coupled to said sensor, said filter rejecting spurious raw sensor signals from said sensor and providing filtered raw sensor signals to said quadrature module and to said processing module.
- 40. A haptic accelerator as recited in claim 38 further comprising a haptic processing unit coupled to said quadrature module and said motion processing module, said haptic processing unit receiving said position signals and said velocity and acceleration signals and determining force values using said signals, said force values being output to an actuator of said force feedback interface device to cause said actuator to apply forces to said user manipulatable object.
- 41. A haptic accelerator as recited in claim 40 wherein said force values are condition force values for causing said actuator to output condition forces on said user manipulatable object, said condition forces being dependent on a position, velocity, or an acceleration of said user manipulatable object.
- 42. A haptic accelerator as recited in claim 40 further comprising a parameter storage register coupled to said haptic processing unit and to said force feedback processor, said parameter storage register being operative to receive parameters from said force feedback processor and allow said haptic processing unit to retrieve said parameters.
- 43. A haptic accelerator as recited in claim 38 wherein said motion processing module includes latches for providing acceleration signals to be used by said force feedback processor in a determination of acceleration-dependent forces.
- 44. A haptic accelerator as recited in claim 40 further comprising a pulse width modulation circuit operative to receive said force values from said haptic processing unit and provide said force values to said actuator in pulse width modulated form.
- 45. A method for providing fast computation of forces for a force feedback interface device, the method comprising:
receiving raw sensor signals from a sensor, said raw sensor signals being provided in response to motion of a user manipulatable object in a degree of freedom; determining a position, a velocity, and an acceleration of said user manipulatable object using said raw sensor signals, said determining being implemented by a haptic accelerator; determining force values describing forces to be applied to said user manipulatable object, said force values being determined based on at least one of said position, said velocity, and said acceleration, said force values being determined by a force feedback microprocessor separate from said haptic accelerator; and outputting said force values to said actuator, said actuator outputting forces on said user manipulable object in response to and based on said force values.
- 46. A method as recited in claim 45 wherein said force values are effect force values, and further comprising determining condition force values using said haptic accelerator, said condition force values being based on at least one of said position, said velocity, and said acceleration.
- 47. A method as recited in claim 46 wherein condition force values based on said position are determined simultaneously with condition force values based on said velocity and said acceleration, and further comprising summing force values based on said position with force values based on said velocity and said acceleration.
- 48. A method as recited in claim 47 further comprising summing said condition force values with said effect force values provided by said force feedback microprocessor and outputting a resultant summed force to said actuator.
- 49. A method for providing smooth force sensations to a user manipulatable object used in a force feedback interface device, said user manipulatable object being grasped by a user, said force feedback interface device being coupled to a host computer executing a program with which said user interacts by manipulating said user manipulatable object, said method comprising:
receiving sensor signals from a sensor included in said force feedback interface device; determining force values to be output to a brushless motor included in said force feedback interface device, wherein said sensor signals are used, at least in part, in said determination of force values; outputting force signals equivalent to said force values to said brushless motor using sinusoidal commutation such that said force values are converted into forces applied to said user manipulatable object by said brushless motor, said forces being coordinated with events displayed within said program by said host computer coupled to said force feedback interface device.
- 50. A method as recited in claim 49 wherein said brushless motor is a brushless DC motor.
- 51. A method as recited in claim 49 wherein said brushless motor includes a rotor having magnets, and wherein said forces are output to said user manipulatable object by rotating said rotor at stall to provide a resistive force.
- 52. A method as recited in claim 51 wherein said program is a graphical simulation.
- 53. A method as recited in claim 51 wherein said sensor signals include information representing a position of said user manipulatable object in at least one degree of freedom.
- 54. A force feedback interface device for use with a host computer displaying a graphical simulation on a display device, said host computer displaying and updating said graphical simulation in response to user manipulation of said interface device and commanding force feedback sensations in response to said user manipulation and in coordination with events within said graphical simulation, the interface device comprising:
a user manipulatable object graspable by said user and movable in a degree of freedom; an actuator for outputting a force on said user manipulatable object; an analog position sensor for outputting an analog sensor signal representing an analog position of said user manipulatable object in said degree of freedom; an analog circuit separate from said host computer and operative to receive said raw analog sensor signals, to compute an analog velocity of said user manipulatable object from said analog position, and to output processed signals derived from said raw sensor signals, said processed signals including representations of said computed velocity; and a device microprocessor separate from said host computer and said analog circuit, said microprocessor coupled to said host computer and to said actuator, said device microprocessor receiving high-level host commands from said host computer and computing forces in response to said high-level commands, said microprocessor outputting said forces to said actuator, said device microprocessor also receiving said analog sensor signal from said analog position sensor and said processed signals from said analog circuit and using said analog position and said analog velocity, at least in part, to determine said forces.
- 55. A force feedback interface device as recited in claim 54 further comprising an analog to digital converter that receives said analog position from said analog position sensor and receives said analog velocity from said analog circuit and converts said position and said velocity into a digital form for use by said microprocessor.
- 56. A force feedback interface device for use with a host computer displaying a graphical simulation on a display device, said host computer displaying and updating said graphical simulation in response to user manipulation of said interface device and commanding force feedback sensations in response to said user manipulation and in coordination with events within said graphical simulation, the interface device comprising:
object means graspable by said user and movable in a degree of freedom; force means for outputting a force on said object means; sensing means for outputting a raw sensor signal indicative of a position of said object means in said degree of freedom; microprocessor means separate from said host computer and coupled to said host computer and to said force means, said microprocessor means receiving high-level host commands from said host computer and determining forces in response to said high-level commands, said microprocessor means causing said determined forces to be output by said force means; and means separate from said microprocessor means for receiving said raw sensor signals and outputting processed signals derived from said raw sensor signals, said processed signals being sent to and used, at least in part, by said microprocessor means for determining said forces.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of co-pending parent patent application Ser. No. 08/534,791, filed Sep. 27, 1995, on behalf of Rosenberg et al., entitled, “Method and Apparatus for Controlling Human-Computer Interface Systems Providing Force Feedback,” assigned to the assignee of the present application, and which is incorporated by reference herein.
Continuations (1)
|
Number |
Date |
Country |
Parent |
08804535 |
Feb 1997 |
US |
Child |
09414294 |
Oct 1999 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08534791 |
Sep 1995 |
US |
Child |
08804535 |
Feb 1997 |
US |