The present invention relates generally to the interfacing with computer devices by a user, and more particularly to devices used to provide input to computer systems and which provide force feedback to the user.
Humans interface with electronic devices in a variety of applications, and there is a constant need for a more natural, easy-to-use, and versatile interface device. One of those applications includes interacting directly with computer-generated environments. Interface devices are used extensively with computer systems in the implementation of computer-controlled games, simulations, and other applications very popular with the mass market of home consumers. In a typical implementation, a computer system such as a personal computer, home video game console, portable computer, stand-up arcade machine, etc., displays a graphical environment to a user on a display device. Users can interact with the displayed environment by inputting commands or data from the interface device. Popular interface devices include joysticks, “gamepad” button controllers, mice, trackballs, styluses, tablets, steering wheels, pressure spheres, foot or hand pedals, or the like, that are connected to the computer system controlling the displayed environment. The computer updates the environment in response to input signals from the interface device based on the user's manipulation of a moved manipulandum such as a joystick handle, wheel, or mouse. The computer provides visual feedback to the user using the display screen.
In some interface devices, tactile and/or kinesthetic feedback is also provided to the user, more generally known as “haptic feedback” herein. These types of interface devices can provide physical sensations to the user manipulating the physical object of the interface device. Typically, motors or other actuators of the interface device are coupled to the manipulandum and are connected to the controlling computer system. The computer system receives sensor signals from the interface device and sends appropriate force feedback control signals to the actuators in conjunction with host events. The actuators then provide forces on the manipulandum. The computer system can thus convey physical sensations to the user in conjunction with other visual and auditory feedback as the user is contacting the manipulandum. Commercially available force feedback devices include the Wingman Force joystick and Wingman Formula Force steering wheel from Logitech, Inc., and the Sidewinder Force Feedback Pro joystick from Microsoft Corporation.
Many types of actuators for generating computer-controlled forces are known, including DC and stepper motors, voice coils, hydraulic actuators, and pneumatic actuators. Some devices are active, such as motors, which means that the device provides an active force that has the ability to move an object or push back on the user. Other actuators are passive, such as brakes, which provide a resistance to motion generated by another source (such as the user) and cannot generate forces on their own. An advantage of active devices is their ability to simulate all kinds of force sensations. However, disadvantages of active actuators include instability: the actuators can settle into a feedback loop in which oscillating forces are output on the manipulandum, for example. Other disadvantages of active actuators include a high cost, and large size and weight. Passive actuators, on the other hand, while not able to output all the types of force sensations of active actuators, can provide relatively high magnitude forces and are inherently stable and safe, and are typically of low cost and weight. However, standard passive actuators can still be expensive for lower-cost devices and can still add significant weight to an interface device.
The present invention provides a number of embodiments for a force feedback interface device that uses an efficient and small-sized fluid viscosity-controlled brake that outputs high forces at low cost while maintaining inherent safety.
More particularly, an interface device of the present invention is manipulated by a user and provides input signals to a host computer. The device includes a manipulandum physically contacted by the user and moveable in at least one degree of freedom. A sensor, such as a rotary optical encoder or analog potentiometer, senses a position of the manipulandum in the degree of freedom and outputs a sensor signal, where a representation of the sensor signal is provided to the host computer. The interface device also includes a fluid-controlled brake including a fluid having a viscosity that can be controlled by controlling an electric current, wherein a resistive force or drag on the manipulandum is controlled by controlling a viscosity of the fluid. In one preferred embodiment, the resistive force is controlled by adjusting a degree of contact of the brake with the manipulandum based on the fluid's viscosity. The fluid can be a magnetorheological fluid having a viscosity controlled by a magnetic field provided by current in a coil, or an electorheological fluid having a viscosity controlled by an electric field.
Several embodiments of the invention can be implemented. For example, a magnetorheological fluid can be suspended in a sponge, such as available from Lord Corporation, which includes an absorbent matrix material, allowing different resistances to be controlled. The sponge can contact a surface that is coupled to the manipulandum, where the surface can be part of a disk or plate. Other embodiments may provide pistons in the fluid. The manipulandum can be moved in rotary or linear degrees of freedom such that the brake can be a rotary or linear brake. The brake can also include a U-shaped member, where an element is coupled to a prong of the U-shaped member and the coil is wound about a central portion of the U-shaped member. Multiple sponges or other such elements can be provided for increased resistive control.
The host computer preferably runs a graphical simulation or game that is influenced by the movement of the manipulandum by the user. In one embodiment, the simulation portrays a fishing activity, and the manipulandum includes a crank arm of a fishing reel, the fishing reel coupled to at least a portion of a fishing rod. Different resistances on the crank arm can simulate the catching of fish. In a different embodiment, the manipulandum includes a pedal assembly of a stationary bicycle device, where the user interacts with the computer simulation by pedaling and steering the bicycle device and resistance can be output on pedal motion to simulate riding the bicycle up and down inclines. In yet other embodiments, the manipulandum includes a rotary knob for adjusting settings of an electronic device, or includes a cylinder that can be moved in a rotary and translatory degrees of freedom for controlling a cursor. Some embodiments may further include an actuator that outputs a vibrotactile sensation on a housing of the interface device.
The present invention provides compact, low-cost, and light weight embodiments for interface devices providing braking forces to an interface device. The controlled viscosity brake used in the present invention provides high-magnitude braking forces and is well-suited to small, inexpensive haptic feedback devices, allowing the interface device of the present invention to be used in mass-produced consumer devices.
These and other advantages of the present invention will become apparent to those skilled in the art upon a reading of the following specification of the invention and a study of the several figures of the drawing.
a is a perspective view of a third embodiment of an interface device of the present invention;
b is a perspective view of the third embodiment of
Interface device 10 of the described embodiment is in the form of a fishing rod and reel, of similar shape and size to rods and reels used by fisherman, and includes a reel unit 14 and a rod 16. Reel unit 14 of the interface device 10 can be shaped and sized similarly to a reel used on a standard fishing rod, and includes a reel housing 16 and a reel crank arm 18. Reel housing 16 encloses mechanisms for reading the position of the reel crank 18 and providing haptic feedback on the reel crank 18, as described in greater detail below with respect to
Rod 16 is a generally cylindrically-shaped member that includes a grip 22 on one end and which is coupled to the reel unit 14. Rod 16 can be coupled to the reel unit 14 with standard couplings similar to those used on standard fishing rods, or by some coupling specific to the device 10. The rod 16 is preferably not a full-length fishing rod due to the unwieldiness of such a long device, but is instead a portion of a full-length rod (some embodiments can include a full length rod). Weights can be distributed in the rod as necessary to simulate the weight and motion of a full length rod. In other embodiments, differently-shaped reel units 14, rods 16, crank arm 20, and other components can be used. In addition, the rod 16 can be made to pass through apertures in the housing 18 of the reel unit 14 in some embodiments. Furthermore, some embodiments can include one or more buttons or similar controls (dials, knobs, direction pads, sliders, trackballs, etc.) provided on the surface of reel unit 14 and/or rod 16 that can provide input signals to the host computer 14.
Additional sensors and actuators can be included in the device 10 in other embodiments. For example, one or more gyroscopes, accelerometers, visual sensors, or other types of sensors well known to those skilled in the art can be provided to detect the angle and/or motion of the entire device 10 as it is being moved around by the user in a fishing simulation. With such sensors, the host computer 12 can track the position and orientation of the device 10 with respect to a ground, and can orient a virtual fishing rod and/or hook in response to the determined position and orientation. In addition, other actuators can be provided to output other types of force sensations to the user in addition to the haptic feedback output on the crank arm 20. For example, an actuator such as a motor can be provided to drive an inertial mass and output inertial forces on the device 10. The inertial mass can be oscillated or rotated to provide oscillations, pulses, or textures on the rod 16 and reel unit 14 and therefore to the user. In some embodiments, an eccentric mass can be rotated by a rotary actuator to provide forces. Some methods of controlling such an actuator for providing different force sensations is described in copending U.S. provisional application No. 60/156,354, incorporated herein by reference. In other embodiments, a mass can be moved linearly in a particular direction by a linear or rotary actuator to provide a vibrotactile sensation. An example of such an actuator is described in copending provisional application No. 60/172,953, incorporated herein by references. Such forces can be used to provide tugs and jolts from a simulated fish caught within a game or simulation. For example, a pulse or vibration in the up-down direction might simulate the fishing pole being bent and tugged by a fish in that direction.
Interface device 10 is coupled to host computer 12 by a bus 24, which can be any of several types of communication media. For example, a serial interface bus, parallel interface bus, or wireless communication link (e.g., infrared, radio frequency, etc.) can be used. Specific implementations can include Universal Serial Bus (USB), IEEE 1394 (Firewire), RS-232, or other standards.
Host computer 12 is preferably a personal computer, workstation, video game console, or other computing or electronic device. Personal computers, such as an IBM-compatible or Macintosh personal computer, or a workstation, such as a SUN or Silicon Graphics workstation, can be used. Alternatively, one of a variety of home video game systems, such as systems available from Nintendo, Sega, or Sony, a television “set top box” or a “network computer”, etc. can be used. Or, the host 12 and device 10 can be included in a single housing in an arcade game machine, portable computer, or other device. Host computer system 12 preferably implements a host application program with which a user is interacting via peripherals and interface device 10. For example, the host application program can be a video or computer game, medical simulation, scientific analysis program, operating system, graphical user interface, or other application program.
The host application preferably displays graphical images of the environment on a display device included with the host computer, such as a display screen 30, a television, 3D display goggles, LCD display, etc. The software and environment running on the host computer 12 may be of a wide variety. For example, the host application program can be a video game, simulation, graphical user interface (GUI), Web page or browser that implements HTML or VRML instructions, scientific analysis program, virtual reality training program or application, or other application program that utilizes input from the interface device 10 and outputs force feedback commands to the device 10. For example, many game application programs include force feedback functionality and may communicate with the force feedback interface device 10 using standard force feedback protocols/drivers such as the Immersion API available from Immersion Corporation of San Jose, Calif. Herein, computer 12 may be referred as displaying “graphical objects” or “entities.” These objects are not physical objects, but are logical software unit collections of data and/or procedures that may be displayed as images by computer 12 on display screen 34, as is well known to those skilled in the art. A displayed cursor or a simulated view of a controlled character might be considered a graphical object.
In operation, the controls of interface device 10 are manipulated by the user, which indicates to the computer how to update the implemented application program(s). An electronic interface can be included in housing 18 of device 10 and can couple the device 10 to the computer 12. The host computer 12 receives the input from the interface device and updates an application program in response to the input. For example, a game presents a graphical environment in which the user controls one or more graphical objects or entities using the device 10 and other controls such as buttons. In force feedback embodiments, the host computer provides force feedback commands and data to the device 10 to cause force feedback to be output on crank arm 20 and/or other controls.
In the described embodiment, the host application is preferably a fishing game or simulation in which the user controls a fishing character or a hook that is directed out into water and used to reel in fish caught within the game or simulation. The user grasps the device 10 with one hand at grip 22 and the other hand grasping the rotational handle of the crank arm 20. The force feedback output on crank arm 20 allows the simulation of a fish caught on a fishing line, where the crank arm 20 is more difficult to move due to the fish tugging at the other end of the simulated fishing line.
Sensor 52 is coupled to the crank arm 20 by a rotary shaft 53 in the embodiment shown in
Forces are applied to the crank arm 20 using the components including disk 54 and braking mechanism 56. Disk 54 is made of a magnetically permeable material such as a suitable metal plate or the like having a engagement surface and is rigidly coupled to the crank arm 20 at approximately the center of the disk so that the disk 54 rotates about axis A as the crank arm is rotated. Braking mechanism 56 includes a U-shaped support that is oriented such that the disk 54 may be rotated between the prongs of the U shaped support. The disk 54 and the U-shaped support are made of a material that can provide a flux path for a magnetic field produced by the braking mechanism, such as iron.
In the embodiment shown, a magnetorheological “sponge” 62 is coupled to each of the two prongs of the U-shaped member 60 such that each sponge contacts the surface of the disk 54. A magnetorheological sponge allows magnetorheological fluid to be used in a braking device or method. Magnetorheological fluid is a fluid that has a viscosity that can be changed by a magnetic field. By applying the magnetic field at different strengths, different viscosities are produced. Each sponge 62 includes an absorbent matrix material which holds the magnetorheological fluid. When a magnetic field is applied to the sponge, the magnetorheological fluid suspended in the sponge changes its viscosity and the disk 54 contacting the sponge encounters greater or less resistance, depending on whether viscosity has increased or decreased, respectively. A magnetorheological sponge suitable for use with the present invention is available from Lord Corporation of Cary, N.C. Other elements besides sponges can also be used which can suspend a fluid and/or provide varying degrees of resistance on a surface (such as the surface of disk 54) based on the viscosity of the fluid.
A coil 64 of wire is wound at the base portion of the U-shaped support 60. When an electric current is flowed through the coil 64, a magnetic field is generated; the magnetic field extends through the sponges 62 and changes the viscosity of the magnetorheological fluid suspended in the sponges. This creates more drag between the disk 54 and the sponges 62, thus creating more force resistance in the rotary degree of freedom of the disk 54. The resistance can be increased or decreased by adjusting the current in the coil. In some embodiments, a single magnetorheological sponge can be provided on only one side of the support 60 to contact the disk 54 on only one of its sides. In still other embodiments, other-shaped supports can be used and other flat members instead of a circular-shaped disk.
Magnetorheological braking devices achieve high force for low component cost. In addition, these devices can be very low power, thereby allowing for further reduction in system cost. In addition, these devices, like all braking devices, are inherently stable, thereby allowing for reduced cost on control electronics/processor electronics. In addition, these devices are light weight.
In other embodiments, a linear magnetorheological brake can be implemented by providing a plate similar to the disk 54 and coupling a magnetorheological sponge to a linearly-moving member. The sponge is put in contact with the plate and resistance on the linearly-moving member can be controlled similarly as described above for the rotary brake. In still other embodiments, magnetorheological fluid can be forced through valves or other channels similar to hydraulic devices and its viscosity controlled to resist motion of a piston or other member through the fluid in varying degrees. Some embodiments using valves and pistons that can be used with the present invention are described in U.S. Pat. No. 5,721,566, which is incorporated herein by reference.
In other embodiments, other types of fluids having a controllable viscosity can be used. For example, an electrorheological fluid can be used instead of the magnetorheological fluid discussed above, where the fluid's viscosity is controlled with an electric field instead of a magnetic field. The electric field can be produced between parallel plates having a voltage potential, similar to a capacitor used in electronic circuits. A sponge or other element that is positioned in the electric field and frictionally engages a surface can include an eletrorheological fluid and control its degree of contact with the surface, similarly to the magnetorheological sponge described above. Some other embodiments of a fluid-controlled brake using an electrorheological fluid are described in U.S. Pat. No. 5,721,566 and can be used in the present invention. For example, the crank arm 20 can be rotatably coupled to a piston in a cylinder including such a fluid, where the resistance on the crank arm is determined by the resistance on the piston moving through the fluid.
In the intended operation of the fishing embodiment of
Braking devices typically hold or resist a moveable object in both directions within a degree of freedom. In some devices, there can be a problem simulating walls or obstruction forces with passive actuators such as brakes due to the difficulty of detecting motion in an opposite direction to the obstruction while the object is being held by the brake. However, since a reel crank arm is only rotated in one direction by a user in normal use during fishing, rotation in the opposite direction need not be sensed, and this problem is bypassed. In other embodiments where bi-directional rotation needs to be sensed, a desired amount of play can be introduced between the sensor and the manipulandum to allow sensing of motion during braking forces for a uni-directional obstruction. Embodiments of such desired play are described in U.S. Pat. No. 5,767,839, incorporated herein by reference.
Furthermore, a local microprocessor (or other local processing device) can be coupled between the host computer and the reel mechanism to locally control braking forces. Embodiments including such a local microprocessor are described below with reference to
One limitation of the magnetorheological braking described above is that it cannot simulate the active feel of a live fish (like the jolt of a catch or the vibration of a fish struggling at the end of the fishing line). To add this capability, a low cost vibrotactile actuator in combination with the brake can be provided on the fishing rod device, as mentioned above. The vibrotactile actuator can be an inertial vibrotactile actuator such as a motor with an eccentric weight or a linear motor with a moving mass. The vibrotactile actuator can be positioned, for example, directly in the housing 18 of the reel unit 14. The rod device can be a full fishing rod, or it can be a smaller device, e.g. just the reel portion and grip portion of the rod. Such a system would allow for very large resistance forces on the crank arm 20 and small vibration forces when a fish is caught or a snag is encountered.
Bicycle device 10′ preferably includes a number of transducers to interface with the host computer 12. A mechanism similar to that shown in
To complete the realism of the simulator, other sensors and actuators can be provided for other functions and effects of the bicycle. For example, a sensor coupled to the handlebars 84 preferably detects the position of the handlebars in their rotary degree of freedom. Additional sensors can be used to measure the position of a gear selector and the position of hand brakes (if present) of the bicycle device. Buttons or other extra controls can also be provided in some embodiments, e.g. for use in a video game.
During operation, the handlebar sensor(s) indicate to the host computer where the user is steering the bicycle within the game or simulation. When the user rotates the pedal arms (similar to rotating crank arm 20 about axis A), the host computer 14 can track the motion and uses that motion to simulate the motion of the simulated bicycle in the game or simulated environment. The system also may generate force resistance on the pedals. For example, the drag on the pedals can be increased when the user is peddling up an incline in the simulation to simulate the increased effort required to move the bicycle in such a situation. When the bicycle is moving down a simulated hill, the drag can be decreased. This can be used for realistic video game applications where a user is peddling and watching the course, road, track, etc. go by on the display device.
When the user steers the bicycle to move up a hill, the computer or processor can command “drag” upon the pedals by causing the magnetorheological brake to activate. A small hill might result in a low voltage on the brake, thereby applying a small drag force. A large hill might result in a high voltage, thereby providing a large drag force. Since the pedal is only rotated in one direction by the user, the typical limitations of force feedback braking related to rapid direction changes of the user manipulatable object are not present. A local processor can be provided between the host computer and the pedal mechanism, or direct computer control can be used as explained above.
As with the fishing embodiment described above, this embodiment is low cost, achieves very high forces, and is inherently safe. One limitation of the magnetorheological brake is that it cannot realistically simulate the active vibration feel of going over a bump or a rough road. In some embodiments, this vibration can be simulated using a vibrotactile actuator, e.g. the actuator can be coupled to the bicycle seat 82 on which the user is sitting. As described above, the vibrotactile actuator can be an inertial vibrotactile actuator such as a motor with an eccentric weight or a linear motor with a linearly-moving mass. Such a complete system would allow for very large forces on the pedals and small vibration forces on the seat.
A single local processor can be located on the stationary bicycle, its function being to read the sensor that measures pedal motion, read the sensor that measures handle bar angle or motion, read the sensors that indicate choice of gear, and read the sensors that measure the state of the hand brake(s). All of these sensor values can be sent back to the host computer via communication bus 92. In addition, the local processor can receive commands or data back from the host computer indicating the amount of drag to be applied to the pedals based upon the terrain in the computer-generated environment.
In some embodiments, the host computer can be networked to other host computers over a network such as a LAN or the Internet, such that a distributed biking simulation can allow players to compete. For example, data about the course layout as well as the terrain characteristics can be downloaded over the Internet, including incline data used by the host computer to control the drag feel. Also, data about road conditions (bumpiness of feel) can be downloaded from the Internet. A server can keep track of the simulated race, allowing players from distant locations to compete and be timed against each other. Each local processor and/or host application program can have a unique ID number that is transmitted to the host and then back to the server so that every simulated bike in the race can be uniquely identified. By this method, hundred or thousands of racers can compete at once upon the same course while feeling the same terrain. To allow players to compete for cash prices without worry that a competitor has disabled the drag function on their stationary bike or has doctored the pedaling means in some way, the local processor and/or software can also report a self diagnostic status signal to the host which gets relayed to the server, indicating normal functioning (or no tampering).
a is a perspective view of a mechanism 100 similar to the mechanism 50 of
The force feedback knob controller using a magnetorheological brake is inherently stable, allowing for controllable damping, controllable hard stops, and controllable detents in the rotational degree of freedom of the knob. For example, hard stops can be programmed at desired locations in the range of travel of the knob using the magnetorheological brake, which can provide higher obstruction forces than many active actuators. Detents can be set at desired positions; a detent can be implemented by outputting a high resistance for a short time or for a short range of travel of the knob, giving the user a sensation of a jolt or pulse at a particular position. Damping can provide a desired resistance to rotational motion and can make selection of a value or positioning of a cursor easier for the user.
The knob can be provided on a variety of computer devices or interface devices, such as a laptop computer, a consumer electronics device such as a stereo or television, on a handheld remote control, on the dashboard of a car, etc. The knob 102 of
One space-limited application for use with the knob 102 is a selection knob for a laptop computer to provide similar functionality to a standard mouse wheel, and additional functionality if desired. For example, a knob having a rotational axis extending perpendicularly to the laptop's top surface can be placed on the side of the laptop in easy access to user's fingers. The knob can be rotated to scroll documents, move a cursor across the screen or through a list of objects, icons, or selections, etc. Preferably, the knob can be pressed in a direction perpendicular (transverse) to the axis of rotation to provide a selection function, e.g. to select an item, icon, or link at which the cursor is currently pointing. The knob preferably is spring-loaded to rest at a normal operating position, and can be pushed in to select a mechanical switch, where the knob returns to the operating position when the user removes pressure in the pushing direction. One such knob is provided in the Vaio XG19 laptop computer from Sony Corp.
b illustrates one example of the present invention including the knob described above provided with a fluid-controlled brake. The knob can be sensed and actuated in its rotary degree of freedom similar to the embodiment of
In other embodiments, the transverse motion can be implemented in other ways. For example, a flex joint can be used to allow the shaft 104 pivot about one end of the shaft. Or, the shaft 104 can be placed in a slot in a grounded member that allows the motion in the desired transverse direction. Other mechanisms currently used in rotatable wheels for mice can also be used. In still other embodiments, the transverse motion of the knob 110 can be actuated by an actuator so that the feel of the push of the knob 102 can be made to feel differently as controlled by a microprocessor or other controller. This transverse actuator is preferably separate from the fluid brake 56, e.g. a linear actuator can be coupled between the shaft 104 and a grounded surface. In other embodiments, the knob 102 can be pushed in a direction parallel to the axis B of rotation of the knob. Some examples of such an embodiment are disclosed in copending patent application Ser. No. 09/179,382, filed Oct. 26, 1998.
The magnetorheological fluid brakes allow for controllable drag during cursor control tasks. For example, two magnetorheological fluid sponge controllers can be used for the cylinder, one for the rotary axis and one for the linear axis. Alternatively, the rotary axis of the cylinder can use a rotary metal disk, and the linear axis of the cylinder can use a linear sliding metal member in place of the rotary disk, where the magnetorheological brake contacts a sponge with the linearly-moving surface of the metal member. Host computer 12 preferably controls the braking resistance, and a device microprocessor can also be used local to the device in addition to the host computer as described above.
Each axis of the cylinder can be controlled independently to control drag related to cursor motion in x and y independently. For example, a user interacting with a pull-down menu can be provided with resistance sensations when a controlled cursor in a graphical user interface moves between menu elements when using a cylinder controller fitted with a magnetorheological fluid brake. Drag can be momentarily output for other cursor interactions such as moving over a window border or window interior or moving over an icon. Drag can be output continuously when moving in force “grooves” to guide the cursor to particular areas or graphical objects displayed on the screen of the host computer. This is ideal for laptop computers because of the low power consumption and low size and weight of the magnetorheological fluid brakes. Some GUI force feedback interactions are described in copending patent application Ser. No. 08/571,606, incorporated herein by reference.
As explained with reference to
Clock 204 can be a standard clock crystal or equivalent component used by host computer 12 to provide timing to electrical signals used by host microprocessor 202 and other components of the computer 12 and can be used to provide timing information that may be necessary in determining force or position values. Display device 30 is described with reference to
Interface device 10 is coupled to host computer 12 by bi-directional bus 208, which sends signals in either direction between host computer 12 and the interface device 10. Bus 208 can be a serial interface bus, such as USB, RS-232, or Firewire (IEEE 1394), providing data according to a serial communication protocol, a parallel bus using a parallel protocol, or other types of buses. An interface port of host computer 12, such as a USB or RS232 serial interface port, can connect bus 208 to host computer 12.
Interface device 10 can include a local microprocessor 220, local clock 222, local memory 224, sensor interface 226, and actuator interface 228. Device 10 may also include additional electronic components for communicating via standard protocols on bus 208.
Local microprocessor 220 preferably coupled to bus 208 and is considered “local” to device 10, where “local” herein refers to processor 220 being a separate microprocessor from any processors 202 in host computer 12. “Local” also preferably refers to processor 220 being dedicated to haptic feedback and sensor I/O of the device 10, and being closely coupled to sensors and actuators of the device 10, such as within a housing of the device 10. Microprocessor 220 can be provided with software instructions to wait for commands or requests from computer host 12, parse/decode the command or request, and handle/control input and output signals according to the command or request. In addition, processor 220 can operate independently of host computer 12 by reading sensor signals and calculating appropriate forces from those sensor signals, time signals, and force processes selected in accordance with a host command, and outputting appropriate control signals to the actuators. Suitable microprocessors for use as local microprocessor 220 include the Immersion Touchsense Processor from Immersion Corporation, the 8X930AX by Intel Corp., the MC68HC711E9 by Motorola, or the PIC16C74 by Microchip, for example. Microprocessor 220 can include one microprocessor chip, or multiple processors and/or co-processor chips. In other embodiments, microprocessor 220 can include digital signal processor (DSP) functionality, or control logic components or a hardware state machine can be used instead of a microprocessor.
For example, in one host-controlled embodiment that utilizes microprocessor 220, host computer 12 can provide low-level force commands over bus 208, which microprocessor 220 directly transmits to the actuators. In a different local control embodiment, host computer 12 provides high level supervisory commands to microprocessor 220 over bus 208, and microprocessor 220 manages low level force control loops to sensors and actuators in accordance with the high level commands and independently of the host computer 12. In the local control embodiment, the microprocessor 220 can process sensor signals to determine appropriate output actuator signals by following the instructions of a “force process” that may be stored in local memory 224 and includes calculation instructions, conditions, formulas, force magnitudes, or other data. The force process can command distinct force sensations, such as vibrations, textures, jolts, or even simulated interactions between displayed objects. The host can send the local processor 220 force sensation parameters to store in local memory, or can clear other force sensations to load new force sensations in memory.
A local clock 222 can be coupled to the microprocessor 220 to provide timing data, similar to system clock 204 of host computer 12; the timing data might be required, for example, to compute forces output by actuators 70. Local memory 224, such as RAM and/or ROM, is preferably coupled to microprocessor 220 to store instructions for microprocessor 220 and store temporary and other data.
Sensor interface 226 may optionally be included in device 10 to convert sensor signals to signals that can be interpreted by the microprocessor 220 and/or host computer 12. For example, sensor interface 226 can receive and convert signals from a digital sensor such as an encoder or from an analog sensor using an analog to digital converter (ADC). Such circuits, or equivalent circuits, are well known to those skilled in the art. Alternately, microprocessor 220 or host computer 12 can perform these interface functions. Actuator interface 228 can be optionally connected between the actuators of device 10 and microprocessor 220 to convert signals from microprocessor 220 into signals appropriate to drive the actuators. Interface 228 can include power amplifiers, switches, digital to analog controllers (DACs), and other components well known to those skilled in the art. Power supply 230 can optionally be coupled to actuator interface 228 and/or the actuators to provide electrical power. Alternatively, actuators and other components can draw power from the bus 208 (such as USB) from the host computer. Or, power can be stored and regulated by device 10 and used when needed to drive the actuators.
Sensors 72 sense the position, motion, and/or other characteristics of particular controls of device 10 as described above. Sensors 72 provide signals to microprocessor 220 including information representative of those characteristics. The sensor 72 or sensor interface 226 can optionally provide sensor signals directly to computer 12 as shown by busses 209a and 209b. Example of sensors suitable for embodiments described herein are digital rotary optical encoders, Hall effect sensors, linear optical encoders, analog sensors such as potentiometers, optical sensors such as a lateral effect photo diode, velocity sensors (e.g., tachometers) and/or acceleration sensors (e.g., accelerometers). Furthermore, either relative or absolute sensors can be employed.
Actuators 70 transmit forces to particular controls of device 10 in one or more directions along one or more degrees of freedom in response to signals output by microprocessor 220 and/or host computer 12, i.e., they are “computer controlled.” Actuators 70 include a magnetorheological brake as described in greater detail above.
The manipulandum 56 can be a variety of different objects or manipulandums that are manipulated by a user and which can receive haptic feedback. For example, manipulandum 56 can be a crank arm of a fishing pole device, pedals of bicycle simulator, or a knob. Manipulandum can be in other embodiments a joystick, mouse, steering wheel, stylus, or other object. The housing of the entire device 10 can also be actuated, e.g. with vibrotactile sensations.
Other input devices 234 can optionally be included in device 10 and send input signals to microprocessor 220 and/or host computer 12. Such input devices can include buttons, dials, knobs, switches, voice recognition hardware (with software implemented by host 12), or other input mechanisms as described above. Safety or “deadman” switch 236 can be included in some embodiments of device 10 to provide a mechanism to allow a user to override and deactivate forces output by actuators 70, or require a user to activate actuators 70, for safety reasons.
While this invention has been described in terms of several preferred embodiments, it is contemplated that alterations, permutations, and equivalents thereof will become apparent to those skilled in the art upon a reading of the specification and study of the drawings. Furthermore, certain terminology has been used for the purposes of descriptive clarity, and not to limit the present invention. It is therefore intended that the following appended claims include all such alterations, permutations and equivalents as fall within the true spirit and scope of the present invention.
This application is a continuation-in-part of the following applications: U.S. patent application Ser. No. 09/028,082, now U.S. Pat. No. 6,486,872, filed Feb. 23, 1998, which is a continuation of U.S. patent application Ser. No. 08/489,068, now U.S. Pat. No. 5,721,566, filed Jun. 9, 1995, and U.S. patent application Ser. No. 08/965,720, filed Nov. 7, 1997, now U.S. Pat. No. 6,166,723 each of which are incorporated by reference in their entirety. This application also claims priority to U.S. Provisional Application No. 60/128,975, filed Apr. 12, 1999 on behalf of L. Rosenberg; which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
2906179 | Bower | Sep 1959 | A |
2972140 | Hirsch | Feb 1961 | A |
3157853 | Hirsch | Nov 1964 | A |
3220121 | Cutler | Nov 1965 | A |
3490059 | Paulsen et al. | Jan 1970 | A |
3497668 | Hirsch | Feb 1970 | A |
3517446 | Corlyon et al. | Jun 1970 | A |
3531868 | Stevenson | Oct 1970 | A |
3623064 | Kagan | Nov 1971 | A |
3765624 | Kaniuka | Oct 1973 | A |
3795150 | Eckhardt | Mar 1974 | A |
3832895 | Strandh | Sep 1974 | A |
3875488 | Crocker et al. | Apr 1975 | A |
3890958 | Fister et al. | Jun 1975 | A |
3902687 | Hightower | Sep 1975 | A |
3903614 | Diamond et al. | Sep 1975 | A |
3911416 | Feder | Oct 1975 | A |
3919691 | Noll | Nov 1975 | A |
3944798 | Eaton | Mar 1976 | A |
4127752 | Lowthorp | Nov 1978 | A |
4160508 | Frosch et al. | Jul 1979 | A |
4184014 | Dey | Jan 1980 | A |
4216467 | Colston | Aug 1980 | A |
4227319 | Guy et al. | Oct 1980 | A |
4236325 | Hall et al. | Dec 1980 | A |
4262549 | Schwellenbach | Apr 1981 | A |
4333070 | Barnes | Jun 1982 | A |
4391282 | Ando et al. | Jul 1983 | A |
4398889 | Lam et al. | Aug 1983 | A |
4414984 | Zarudiansky | Nov 1983 | A |
4436188 | Jones | Mar 1984 | A |
4448083 | Hayashi | May 1984 | A |
4464117 | Foerst | Aug 1984 | A |
4477043 | Repperger | Oct 1984 | A |
4477973 | Davies | Oct 1984 | A |
4484191 | Vavra | Nov 1984 | A |
4489304 | Hayes | Dec 1984 | A |
4513235 | Acklam et al. | Apr 1985 | A |
4550221 | Mabusth | Oct 1985 | A |
4550617 | Fraignier et al. | Nov 1985 | A |
4560983 | Williams | Dec 1985 | A |
4571834 | Fraser et al. | Feb 1986 | A |
4581491 | Boothroyd | Apr 1986 | A |
4593470 | Davies | Jun 1986 | A |
4599070 | Hladky et al. | Jul 1986 | A |
4601206 | Watson | Jul 1986 | A |
4604016 | Joyce | Aug 1986 | A |
4632341 | Repperger et al. | Dec 1986 | A |
4638798 | Shelden et al. | Jan 1987 | A |
4653011 | Iwano | Mar 1987 | A |
4654648 | Herrington et al. | Mar 1987 | A |
4676002 | Slocum | Jun 1987 | A |
4679331 | Koontz | Jul 1987 | A |
4688983 | Lindbom | Aug 1987 | A |
4689449 | Rosen | Aug 1987 | A |
4703443 | Moriyasu | Oct 1987 | A |
4704909 | Grahn et al. | Nov 1987 | A |
4706294 | Ouchida | Nov 1987 | A |
4708656 | de Vries et al. | Nov 1987 | A |
4713007 | Alban | Dec 1987 | A |
4750487 | Zanetti | Jun 1988 | A |
4758692 | Roeser et al. | Jul 1988 | A |
4769763 | Trieb et al. | Sep 1988 | A |
4782327 | Kley et al. | Nov 1988 | A |
4787051 | Olson | Nov 1988 | A |
4791934 | Brunnett | Dec 1988 | A |
4794388 | Matthews | Dec 1988 | A |
4794392 | Selinko | Dec 1988 | A |
4798919 | Miessler et al. | Jan 1989 | A |
4800721 | Cemenska et al. | Jan 1989 | A |
4803413 | Kendig et al. | Feb 1989 | A |
4811608 | Hilton | Mar 1989 | A |
4819195 | Bell et al. | Apr 1989 | A |
4823634 | Culver | Apr 1989 | A |
4825157 | Mikan | Apr 1989 | A |
4839838 | LaBiche et al. | Jun 1989 | A |
4849692 | Blood | Jul 1989 | A |
4861269 | Meenen, Jr. | Aug 1989 | A |
4868549 | Affinito et al. | Sep 1989 | A |
4874998 | Hollis, Jr. | Oct 1989 | A |
4879556 | Duimel | Nov 1989 | A |
4885565 | Embach | Dec 1989 | A |
4888877 | Enderle et al. | Dec 1989 | A |
4891764 | McIntosh | Jan 1990 | A |
4891889 | Tomelleri | Jan 1990 | A |
4907970 | Meenen, Jr. | Mar 1990 | A |
4907973 | Hon | Mar 1990 | A |
4930770 | Baker | Jun 1990 | A |
4934694 | McIntosh | Jun 1990 | A |
4942545 | Sapia | Jul 1990 | A |
4945305 | Blood | Jul 1990 | A |
4945501 | Bell et al. | Jul 1990 | A |
4949119 | Moncrief et al. | Aug 1990 | A |
4961038 | MacMinn | Oct 1990 | A |
4961138 | Gorniak | Oct 1990 | A |
4961267 | Herzog | Oct 1990 | A |
4962448 | DeMaio et al. | Oct 1990 | A |
4962591 | Zeller et al. | Oct 1990 | A |
4982504 | Soderberg et al. | Jan 1991 | A |
4983786 | Stevens et al. | Jan 1991 | A |
4983901 | Lehmer | Jan 1991 | A |
4994669 | Stern | Feb 1991 | A |
5007085 | Greanias et al. | Apr 1991 | A |
5007300 | Siva | Apr 1991 | A |
5019761 | Kraft | May 1991 | A |
5022384 | Freels et al. | Jun 1991 | A |
5022407 | Horch et al. | Jun 1991 | A |
5035242 | Franklin et al. | Jul 1991 | A |
5038089 | Szakaly | Aug 1991 | A |
5040306 | McMurtry et al. | Aug 1991 | A |
5044956 | Behensky et al. | Sep 1991 | A |
5050608 | Watanabe et al. | Sep 1991 | A |
5072361 | Davis et al. | Dec 1991 | A |
5076517 | Ferranti et al. | Dec 1991 | A |
5078152 | Bond et al. | Jan 1992 | A |
5088046 | McMurtry | Feb 1992 | A |
5088055 | Oyama | Feb 1992 | A |
5095303 | Clark et al. | Mar 1992 | A |
5103404 | McIntosh | Apr 1992 | A |
5107080 | Rosen | Apr 1992 | A |
5116051 | Moncrief et al. | May 1992 | A |
5126948 | Mitchell et al. | Jun 1992 | A |
5128671 | Thomas, Jr. | Jul 1992 | A |
5131844 | Marinaccio et al. | Jul 1992 | A |
5132672 | Clark | Jul 1992 | A |
5139261 | Openiano | Aug 1992 | A |
5142506 | Edwards | Aug 1992 | A |
5142931 | Menahem | Sep 1992 | A |
5143505 | Burdea et al. | Sep 1992 | A |
5146566 | Hollis, Jr. et al. | Sep 1992 | A |
5148377 | McDonald | Sep 1992 | A |
5165897 | Johnson | Nov 1992 | A |
5175459 | Danial et al. | Dec 1992 | A |
5178012 | Culp | Jan 1993 | A |
5181181 | Glynn | Jan 1993 | A |
5182557 | Lang | Jan 1993 | A |
5184306 | Erdman et al. | Feb 1993 | A |
5184319 | Kramer | Feb 1993 | A |
5185561 | Good et al. | Feb 1993 | A |
5186629 | Rohen | Feb 1993 | A |
5186695 | Mangseth et al. | Feb 1993 | A |
5187874 | Takahashi et al. | Feb 1993 | A |
5189355 | Larkins et al. | Feb 1993 | A |
5189806 | McMurtry et al. | Mar 1993 | A |
5193963 | McAffee et al. | Mar 1993 | A |
5204824 | Fujimaki | Apr 1993 | A |
5209131 | Baxter | May 1993 | A |
5212473 | Louis | May 1993 | A |
5220260 | Schuler | Jun 1993 | A |
5223776 | Radke et al. | Jun 1993 | A |
5228356 | Chuang | Jul 1993 | A |
5230623 | Guthrie et al. | Jul 1993 | A |
5235868 | Culver | Aug 1993 | A |
5240417 | Smithson et al. | Aug 1993 | A |
5243266 | Kasagami et al. | Sep 1993 | A |
5251127 | Raab | Oct 1993 | A |
5251156 | Heier et al. | Oct 1993 | A |
5259120 | Chapman et al. | Nov 1993 | A |
5259894 | Sampson | Nov 1993 | A |
5262777 | Low et al. | Nov 1993 | A |
5264768 | Gregory et al. | Nov 1993 | A |
5271290 | Fischer | Dec 1993 | A |
5275174 | Cook | Jan 1994 | A |
5275565 | Moncrief | Jan 1994 | A |
5277281 | Carlson et al. | Jan 1994 | A |
5283970 | Aigner | Feb 1994 | A |
5284330 | Carlson et al. | Feb 1994 | A |
5286203 | Fuller et al. | Feb 1994 | A |
5296846 | Ledley | Mar 1994 | A |
5296871 | Paley | Mar 1994 | A |
5299810 | Pierce et al. | Apr 1994 | A |
5309140 | Everett, Jr. et al. | May 1994 | A |
5334027 | Wherlock | Aug 1994 | A |
5351692 | Dow et al. | Oct 1994 | A |
5354162 | Burdea et al. | Oct 1994 | A |
5379663 | Hara | Jan 1995 | A |
5381080 | Schnell et al. | Jan 1995 | A |
5384460 | Tseng | Jan 1995 | A |
5389865 | Jacobus et al. | Feb 1995 | A |
5390296 | Crandall et al. | Feb 1995 | A |
5396266 | Brimhall | Mar 1995 | A |
5396267 | Bouton | Mar 1995 | A |
5397323 | Taylor et al. | Mar 1995 | A |
5402582 | Raab | Apr 1995 | A |
5405152 | Katanics et al. | Apr 1995 | A |
5412880 | Raab | May 1995 | A |
5414337 | Schuler | May 1995 | A |
5417696 | Kashuba et al. | May 1995 | A |
5428748 | Davidson et al. | Jun 1995 | A |
5429140 | Burdea et al. | Jul 1995 | A |
5436542 | Petelin et al. | Jul 1995 | A |
5436622 | Gutman et al. | Jul 1995 | A |
5436640 | Reeves | Jul 1995 | A |
5437607 | Taylor | Aug 1995 | A |
5440183 | Denne | Aug 1995 | A |
5445166 | Taylor | Aug 1995 | A |
5451924 | Massimino et al. | Sep 1995 | A |
5459382 | Jacobus et al. | Oct 1995 | A |
5466213 | Hogan et al. | Nov 1995 | A |
5467763 | McMahon et al. | Nov 1995 | A |
5492312 | Carlson | Feb 1996 | A |
5513100 | Parker et al. | Apr 1996 | A |
5542672 | Meredith | Aug 1996 | A |
5547382 | Yamasaki et al. | Aug 1996 | A |
5575761 | Hajianpour | Nov 1996 | A |
5577981 | Jarvik | Nov 1996 | A |
5580249 | Jacobsen et al. | Dec 1996 | A |
5584700 | Feldman et al. | Dec 1996 | A |
5587937 | Massie et al. | Dec 1996 | A |
5589828 | Armstrong | Dec 1996 | A |
5629594 | Jacobus et al. | May 1997 | A |
5666138 | Culver | Sep 1997 | A |
5669818 | Thorner et al. | Sep 1997 | A |
5690582 | Ulrich et al. | Nov 1997 | A |
5696537 | Solhjell | Dec 1997 | A |
5701140 | Rosenberg et al. | Dec 1997 | A |
5709219 | Chen et al. | Jan 1998 | A |
5711746 | Carlson | Jan 1998 | A |
5721566 | Rosenberg et al. | Feb 1998 | A |
5734373 | Rosenberg et al. | Mar 1998 | A |
5739811 | Rosenberg et al. | Apr 1998 | A |
5742278 | Chen et al. | Apr 1998 | A |
5749533 | Daniels | May 1998 | A |
5755577 | Gillio | May 1998 | A |
5766016 | Sinclair et al. | Jun 1998 | A |
5767839 | Rosenberg | Jun 1998 | A |
5769640 | Jacobus et al. | Jun 1998 | A |
5781172 | Engel et al. | Jul 1998 | A |
5782639 | Beal | Jul 1998 | A |
5784052 | Keyson | Jul 1998 | A |
5785630 | Bobick et al. | Jul 1998 | A |
5790108 | Salcudean et al. | Aug 1998 | A |
5805140 | Rosenberg et al. | Sep 1998 | A |
5816823 | Naimark et al. | Oct 1998 | A |
5821920 | Rosenberg et al. | Oct 1998 | A |
5823876 | Unbehand | Oct 1998 | A |
5872438 | Roston | Feb 1999 | A |
5889670 | Schuler et al. | Mar 1999 | A |
5890995 | Bobick et al. | Apr 1999 | A |
5897437 | Nishiumi et al. | Apr 1999 | A |
5944151 | Jakobs et al. | Aug 1999 | A |
5980256 | Carmein | Nov 1999 | A |
5984880 | Lander et al. | Nov 1999 | A |
5986643 | Harvill et al. | Nov 1999 | A |
6001014 | Ogata et al. | Dec 1999 | A |
6004134 | Marcus et al. | Dec 1999 | A |
6004243 | Ewert | Dec 1999 | A |
6088019 | Rosenberg | Jul 2000 | A |
6100874 | Schena et al. | Aug 2000 | A |
6111577 | Zilles et al. | Aug 2000 | A |
6128006 | Rosenberg et al. | Oct 2000 | A |
6160489 | Perry et al. | Dec 2000 | A |
6184868 | Shahoian et al. | Feb 2001 | B1 |
6215470 | Rosenberg et al. | Apr 2001 | B1 |
6256011 | Culver | Jul 2001 | B1 |
6271828 | Rosenberg et al. | Aug 2001 | B1 |
6275213 | Tremblay et al. | Aug 2001 | B1 |
6300938 | Culver | Oct 2001 | B1 |
6310604 | Furusho et al. | Oct 2001 | B1 |
6339419 | Jolly et al. | Jan 2002 | B1 |
6422941 | Thorner et al. | Jul 2002 | B1 |
Number | Date | Country |
---|---|---|
0 349 086 | Jan 1990 | EP |
0626634 | Nov 1994 | EP |
2254911 | Oct 1992 | GB |
2-079892 | Mar 1990 | JP |
H2-185278 | Jul 1990 | JP |
H4-8381 | Jan 1992 | JP |
4-34612 | Feb 1992 | JP |
H5-192449 | Aug 1993 | JP |
H7-24147 | Jan 1995 | JP |
WO9502233 | Jan 1995 | WO |
WO9520788 | Aug 1995 | WO |
WO9520787 | Aug 1995 | WO |
WO9520877 | Aug 1995 | WO |
WO 9532459 | Nov 1995 | WO |
WO9616397 | May 1996 | WO |
WO9622591 | Jul 1996 | WO |
Number | Date | Country | |
---|---|---|---|
60128975 | Apr 1999 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 08965720 | Nov 1997 | US |
Child | 09028082 | US | |
Parent | 08489068 | Jun 1995 | US |
Child | 08965720 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09028082 | Feb 1998 | US |
Child | 09547782 | US |