Method and system for processing force feedback effects generated at a host for playback at a physical interaction device
First Claim
1. A system for processing force feedback effect commands generated at a host computer by an application program, said system comprising:
- (a) a physical interaction device for playing back said effects, said device being coupled to said host and configured to receive information and said force feedback effect commands and to provide information and input signals to said host for incorporation into said host application program, said device comprising;
a controller configured to receive command signals from said host, wherein said controller includes a programmable digital memory, at least one actuator coupled to said controller and configured to receive control signals from said controller and cause a physical movement in response to said control signals, an operator manipulated component movable by an operator in at least one degree-of-freedom, and connected to and movable by said at least one actuator, and an input device coupled to said controller and configured to provide input signals to said controller, where said input signal is provided to said host by said controller for incorporation into said host application program, and (b) a computer program product comprising;
a computer usable medium having computer readable code embodied therein for causing the processing of said force feedback effect commands for playback on said physical interaction device, said computer program product comprising;
a computer readable program code device configured to cause a host computer to effect the initialization of said computer program when said host calls to state an intent to use said device, where said initialization creates a virtual device object, and where said virtual device object creates and initializes a simulation thread object, where said host application program is solely cognizant of the presence of said virtual device, a computer readable program code device configured to cause a host computer to effect the running operation of said computer program, where said running operation comprises;
the running operation of said virtual device object, where said running operation of said virtual device object is closely related to said host application program'"'"'s behavior and timing, and said virtual device object receives high-level force feedback effect commands from said host application program, and the running operation of said simulation thread object, where said running operation of said simulation thread object is decoupled from said host'"'"'s application program, and where said simulation thread object receives high-level force feedback effect commands from said virtual device object and classifies said high-level force feedback effect commands into a simulated effects and native effects categories, where simulated effects are effects which are independent of the response of said device, and native effects are force effects which are dependent on the input and response of said device, and where said native effects are locally processed by said device, and where said simulated effects are processed by said host, translates said high-level force feedback effect commands into a set of simplified effects, where said simplified effects include both simulated and native effects, and periodically updates said physical interaction device by transferring to it a subset of said simplified effects comprising (n) simplified effects for on-device storage and playback, which comprise at least one simulated effect and as many as (n−
1) native effects, and where said at least one transferred simulated effect is a vector sum of all application program simulated effects computed by said device driver software program, and where said (n−
1) transferred native effects are the (n−
1) top prioritized native effects selected by said device driver software program, and where said periodic updates implement a swapping operation of the highest (n−
1) top rated native forces.
1 Assignment
0 Petitions
Accused Products
Abstract
A low-cost method and system for processing force feedback effects generated at a host for playback at a physical interaction device by moving much of the force feedback effect processing from the device back to the host, and performing this in a manner that does not adversely affect latency effects or the load on the host processor. This is achieved by a novel combination of software and hardware techniques. In particular, the device hardware uses a low-cost microcontroller with limited processing capabilities, minimal memory and a low speed USB interface. The small memory also alleviates the need for buffer assignments and memory management. On the other hand, the device driver software residing on the host computer relies on the host'"'"'s powerful processor to perform the majority of the effect management and computation, as well as translating all the complex high-level effect commands to a unique, small and simplified set of low-level commands which are periodically updated and transferred to the device for playback.
-
Citations
22 Claims
-
1. A system for processing force feedback effect commands generated at a host computer by an application program, said system comprising:
-
(a) a physical interaction device for playing back said effects, said device being coupled to said host and configured to receive information and said force feedback effect commands and to provide information and input signals to said host for incorporation into said host application program, said device comprising;
a controller configured to receive command signals from said host, wherein said controller includes a programmable digital memory, at least one actuator coupled to said controller and configured to receive control signals from said controller and cause a physical movement in response to said control signals, an operator manipulated component movable by an operator in at least one degree-of-freedom, and connected to and movable by said at least one actuator, and an input device coupled to said controller and configured to provide input signals to said controller, where said input signal is provided to said host by said controller for incorporation into said host application program, and (b) a computer program product comprising;
a computer usable medium having computer readable code embodied therein for causing the processing of said force feedback effect commands for playback on said physical interaction device, said computer program product comprising;
a computer readable program code device configured to cause a host computer to effect the initialization of said computer program when said host calls to state an intent to use said device, where said initialization creates a virtual device object, and where said virtual device object creates and initializes a simulation thread object, where said host application program is solely cognizant of the presence of said virtual device, a computer readable program code device configured to cause a host computer to effect the running operation of said computer program, where said running operation comprises;
the running operation of said virtual device object, where said running operation of said virtual device object is closely related to said host application program'"'"'s behavior and timing, and said virtual device object receives high-level force feedback effect commands from said host application program, and the running operation of said simulation thread object, where said running operation of said simulation thread object is decoupled from said host'"'"'s application program, and where said simulation thread object receives high-level force feedback effect commands from said virtual device object and classifies said high-level force feedback effect commands into a simulated effects and native effects categories, where simulated effects are effects which are independent of the response of said device, and native effects are force effects which are dependent on the input and response of said device, and where said native effects are locally processed by said device, and where said simulated effects are processed by said host, translates said high-level force feedback effect commands into a set of simplified effects, where said simplified effects include both simulated and native effects, and periodically updates said physical interaction device by transferring to it a subset of said simplified effects comprising (n) simplified effects for on-device storage and playback, which comprise at least one simulated effect and as many as (n−
1) native effects, and where said at least one transferred simulated effect is a vector sum of all application program simulated effects computed by said device driver software program, and where said (n−
1) transferred native effects are the (n−
1) top prioritized native effects selected by said device driver software program, and where said periodic updates implement a swapping operation of the highest (n−
1) top rated native forces.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A physical interaction device (“
- PID”
) for playing back force feedback effect commands generated at a host computer by an application program, said device being coupled to said host and configured to receive information and said force feedback effect commands and to provide information and input signals to said host for incorporation into said host application program, said device comprising;a controller configured to receive command signals from said host, wherein said controller includes a programmable digital memory, at least one actuator coupled to said controller and configured to receive control signals from said controller and cause a physical movement in response to said control signals, an operator manipulated component movable by an operator in at least one degree-of-freedom, and connected to said at least one actuator, an input device coupled to said controller and configured to provide input signals to said controller, where said input signal is provided to said host by said controller for incorporation into said host application program, and said physical interaction device configured to be periodically updated with a subset of simplified force feedback effects translated from high-level force feedback effects generated by said application program by a computer program product resident and running on said host which performs all force feedback effect storage, management, translation to said simplified effects, and the selection of said subset of simplified effects. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
- PID”
-
17. A computer program product comprising:
-
a computer usable medium having computer readable code embodied therein for causing the processing of force feedback effect commands issued at a host computer by an application program for playback on a physical interaction device (“
PID)”
), said computer program product comprising;
a computer readable program code device configured to cause a host computer to effect the initialization of said computer program when said host calls to state an intent to use said device, where said initialization creates a virtual device object, and where said virtual device object creates and initializes a simulation thread object, where said host application program is solely cognizant of the presence of said virtual device, a computer readable program code device configured to cause a host computer to effect the running operation of said computer program, where said running operation comprises;
the running operation of said virtual device object, where said running operation of said virtual device object is closely related to said host application program'"'"'s behavior and timing, and said virtual device object receives high-level force feedback effect commands from said host application program, and the running operation of said simulation thread object, where said running operation of said simulation thread object is decoupled from said host'"'"'s application program, and where said simulation thread object receives high-level force feedback effect commands from said virtual device object, and classifies said high-level force feedback effect commands into a simulated effects and native effects categories, where simulated effects are effects which are independent of the response of said device, and native effects are force effects which are dependent on the input and response of said device, and where said native effects are locally processed by said device, and where said simulated effects are processed by said host, translates said high-level force feedback effect commands into a set of simplified effects, where said simplified effects include both simulated and native effects, and periodically updates said physical interaction device by transferring to it a subset of said plurality of simplified effects comprising (n) simplified effects for on-device storage and playback, which comprise at least one simulated effect and as many as (n−
1) native effects, and where said at least one transferred simulated effect is a vector sum of all application program simulated effects computed by said device driver software program, and where said (n−
1) transferred native effects are the (n−
1) top prioritized native effects selected by said device driver software program, and where said periodic updates implement a swapping operation of the highest (n−
1) top rated native forces.- View Dependent Claims (18)
-
-
19. A force feedback apparatus comprising:
-
a device having a force feedback actuator and a memory for storing force feedback effects;
a software driver for installing on a host device computer to interact with an application program running on sad host device; and
said software driver containing code for translating high-level feedback effect commands into a set of simplified effects and periodically updating said device by transferring to it a subset of said simplified effects comprising (n) simplified effects for on-device storage and playback, which comprise at least one simulated effect and as many as (n−
1) native effects, and where said at least one transferred simulated effect is a vector sum of all application program simulated effects computed by said device driver software program, and where said (n−
1) transferred native effects are the (n−
1) top prioritized native effects selected by said device driver software program, and where said periodic updates implement a swapping operation of the highest (n−
1) top rated native effects.
-
-
20. A method for processing force feedback effect commands generated at a host computer by an application program said method comprising:
-
coupling to said host a device having a force feedback actuator and a memory for storing said force feedback effects;
installing on said host computer a software driver to interact with said application program running on said host computer; and
classifying said force feedback effect commands using said software driver into a simulated effects and native effects categories, where simulated effects are effects which are independent of the response of said device, and native effects are force effects which are dependent on the input and response of said device;
locally processing said native effects on said device; and
processing said simulated effects on said host.
-
-
21. A method for processing force feedback effect commands generated at a host computer by an application program, said method comprising:
-
coupling to said host a device having a force feedback actuator and a memory for storing said force feedback effects;
installing on said host computer a software driver to interact with said application program running on said host computer;
translating force feedback effect commands into a set of simplified effects including simulated and native effects;
selecting a subset of said set of simplified effects using said software driver, said subset corresponding to effects used by said application program for storage in said device at any given time, and periodically changing said subset of simplified effects stored on said device based on usage of said simplified effects.
-
-
22. A method for processing force feedback effect commands generated at a host computer by an application program, said method comprising:
-
coupling to said host a device having a force feedback actuator and a memory for storing said force feedback effects;
installing on said host computer a software driver to interact with said application program running on said host computer; and
periodically updating said device using said software driver by transferring to it a subset of a plurality of simplified effects comprising (n) simplified effects for on-device storage and playback, which comprise at least one simulated effect not requiring feedback from said device and as many as (n−
1) native effects requiring feedback from said device,computing a vector sum of all application program simulated effects using said software driver to determine said at least one simulated effect;
selecting a prioritized set of native effects using said software driver to determine said (n−
1) native effects; and
periodically updating said prioritized set of native effects by swapping the highest (n−
1) top rated native forces.
-
Specification