Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Page images | Web History | Sign in

Patents

  
[graphic]
[graphic]
[graphic]

1

FORCE FEEDBACK JOYSTICK WITH

DIGITAL SIGNAL PROCESSOR
CONTROLLED BY HOST PROCESSOR

CROSS REFERENCE TO RELATED
APPLICATIONS

This application is a continuation in part of U.S. application Ser. No. 08/187,646 filed Jan. 27, 1994 by Elaine Chen et al., now abandoned.

REFERENCE TO MICROFILM APPENDIX

This specification includes a listing of computer programs which are presented in an accompanying microfilm appendix consisting of 261 frames on 6 microfiche.

COPYRIGHT AUTHORIZATION

The computer program listings contained in the abovenoted microfiche appendix, as well as other portions of this patent document, contain material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. Copyright—1995—Exos, Inc.

BRIEF SUMMARY OF THE INVENTION

The present invention takes the form of an input/output control unit for a computer which includes a manually manipulated control member to which computer-controlled forces are applied in at least one degree of freedom. In accordance with a principle feature of the invention, the control unit is equipped with its own internal processor which receives and responds to commands from a connected host processor. The internal processor controls the operation of one or more drive motors to create force effects in response to commands from the host processor.

The force effects preferably consist of a group of standard effects which the internal processor is pre-programmed to provide, together with additional custom effects which are defined by the host processor and downloaded to the internal processor for subsequent invocation on command from the host processor. Both the built-in effects and the newly defined custom effects are formed by the activation of one or more primary force effects selected from a group consisting of (1) a constant force effect, (2) a spring force effect in which a component of the applied force varies in direct proportion to the displacement of the manipulated member from a reference position, (3) a damping force effect in which a component of the applied force varies in direct proportion to the velocity of the manipulated member, and (4) a time varying "rumble" force effect defined by selecting a waveshape, amplitude and frequency of a time-varying force.

The principles of the present invention may be additionally employed to create force effects which exhibit the behavior of defined physical objects having a boundary (e.g., an infinite line, circle or hole, or a convex polygon) and which generates an outward force normal to the boundary when the control member is adjacent to the boundary.

In accordance with the invention, a plurality of different force effects may be applied to the control simultaneously in response to a sequence of overlapping force effect commands from the host processor. The utilization of a dedicated processor frees the host processor from the computational burden of controlling such complex effects, thereby enabling

2

the host processor to more effectively perform complex concurrent tasks, such as the control of a graphics game display, while the control unit's internal processor controls the forces applied to the manipulated control member in

5 response to invocation commands issued by the host processor to initiate and terminate predefined force effects.

As further contemplated by the invention, communications between an application program executing on the host processor and processes executing on the dedicated proces

10 sor are facilitated by a set of standard interface routines which may be dynamically or statically linked to any application program which can usefully employ the control unit. These interface routines provide a convenient set of force effects, as well as the facility for defining and invoking

15 custom force effects, and for obtaining current state information on the position of, and the force being applied to, the control member, which are easily incorporated by programmers into electronic games, simulators, and other application programs which benefit from the enhanced sense of reality

20 that programmed force effects provide.

The preferred embodiment of the invention to be described takes the form of a joystick driven by a pair of motors in two degrees of freedom under the control of an internal digital signal processor which communicates with a

25 host computer, such as a personal computer, over a conventional low speed serial link. The joystick is gimbal mounted for movement in two degrees of freedom with computer generated forces being applied by means of a pair of low-backlash gear clusters, each of which is coupled

30 between the gimbal mount and a DC drive motor powered under the control of the digital signal processor. The invention provides a rich set of complex force effects under the control of the program executing on the host processor without slowing time-critical processing, such as the gen

35 eration of graphical images, and without adding significant complexity to the application program

BRIEF DESCRIPTION OF THE DRAWINGS

These and other objects, features and advantages of the 40 invention will be better understood by considering the following detailed description. During the course of this description, reference will frequently be made to the attached drawings in which: 45 FIG. 1 is a block schematic diagram of the preferred embodiment of the the invention;

FIG. 2 is a graph illustrating the first primary force effect: a constant force of amplitude C;

FIG. 3 is a graph depicting a second primary force effect: 50 a spring force of spring constant K;

FIG. 4 is a graph showing a third primary force effect: a damping force having the velocity coefficient B;

FIG. 5 is a graph illustrating a rumble force effect having a square waveform; 55 FIG. 6 is a graph of a rumble force effect having a sinusoidal waveform;

FIG. 7 is graph illustrating a rumble force effect having a triangular waveform;

FIG. 8 is a graph of a time varying ramp-up force effect;

FIG. 9 is a graph showing a ramp-down force effect;

FIG. 10 is a schematic of a force effect object defined as a line (wall);

FIG. 11 is a schematic showing a circular force effect 65 object;

FIG. 12 is a schematic showing a convex polygonal force effect;

FIG. 13 is an isometric view of the joystick support mechanism;

FIG. 14 is an exploded isometric view of the support mechanism;

FIG. 15 is an isometric view of the cup gimbal subas- 5 sembly utilized in the joystick support mechanism;

FIG. 16 is an exploded isometric view of the U bracket gimbal subassembly; and

FIG. 17 is an isometric view showing the socket formed 10 in the U bracket for engaging the end of the joystick rod.

DETAILED DESCRIPTION

FIG. 1 of the drawings shows the principle components of a preferred and illustrative implementation of the principles 15 of the present invention which consists of a force-feedback joystick unit 10 and a programmed personal computer 12.

The joystick unit 10 is manually manipulated by means of an upwardly extending handlegrip 12 which is mounted for movement in two degrees of freedom which may be con- 20 veniently represented by cartesian coordinates in which the positive x direction points to the user's right and the positive y direction points forward (away from the user). Bidirectional forces are applied in both the x and y directions to handlegrip 12 by means of motors 14 and 16 respectively 25 which are coupled to the handlegrip by a gimballed mount indicated at 18 in FIG. 1. Sensors 21 and 22, which may take the form of optical encoders or the like, provide rotational position signals indicative of the instantaneous x and y positions of the handlegrip 12. The position signals from 30 sensors 21 and 22 are processed by sensor input modules 24 and 25 respectively and passed to the input ports of a DSP (digital signal processor) 30. The DSP 30 produces output signals which are passed via amplifiers 31 and 32 to control the forces applied by the drive motors 14 and 16 respectively 35 to the handlegrip 12.

The joystick unit 20 is connected to the serial RS-232C serial port of a conventional personal computer by means of a conventional UART (universal asynchronous receiver transmitter) 35 which exchanges information in bit serial format with the personal computer 20 and in byte format with an input/output port of the DSP 30.

Application programs, such as the program indicated at 40 in FIG. 1, which execute on the processor in the personal 45 computer 20 are preferrably written to respond to and control the joystick unit 10 by making standard procedure calls to a standard library of interface routines 42, which may be statically linked with the application programs at compilation time, or by dynamically linking the library and 50 application program code at runtime. In accordance with the invention, a wide variety of application programs can thus be written to make effective use of the force-feedback joystick using a standard set of easily understood application program interface (API) function calls which may be con- 55 veniently expressed in the same language used by the application programmer for conventional programming.

FORCE EFFECTS

Because the creation of realistic force effects places such 60 a high computational burden on the processor used to control the drive motors 14 and 16. an attempt to perform force control calculations on the same processor used to execute an application program such as a video game would yield unacceptable performance. Too much processing 65 power would be required to accept position and force values, compute new ones, and send the appropriate commands

back to the joystick unit quickly enough to create smooth force effects without seriously degrading the performance of the application program

As contemplated by the present invention, an application program 40 may utilize the API provided by the interface routines 42 to define and invoke force effects. The routines 42 package the functions requested via the API into a message which complies with a serial communications protocol used for communications between with the DSP 30 and the personal computer 20 via the UART 35. A force effect is identified by a unique identification code when the effect is created. Once created, the effect is downloaded into DSP 30 where it resides, ready to be invoked, until it is explicitly destroyed at the request of the application program (or the power is turned off). When an application program invokes or "plays" a force effect, control returns immediately to the calling application program, freeing the personal computer processor for other functions while the force continues "playing" until it either times out or the application program explicitly terminates the effect. Because the computational burden required for actually creating the force effect is born by the DSP 30 rather than by the host processor, the benefits of a force-feedback joystick are provided without slowing down processes, such as the processing needed for game graphics.

In accordance with the invention, the application program can request and the joystick unit 10 can produce several force effects at the same time. Force effects are additive; that is, when two effects are invoked at the same time, the forces are added in the areas where the effects overlap. Force effects can be invoked and terminated on an individual basis. As an example, an effect emulating a springy damper might be already running at the time when a "rumble" effect is invoked to simulate an earthquake. On top of both effects, a short pulse might be invoked to simulate a sudden jolt. The total force applied by the stick is lim9ited to a saturation value Fj which is selected based on data on human perception of forces.

BASIC FORCE EFFECTS

The API provided by the routine library 42 lets programmers create and define many complex force effects, all of which are derived from three fundamental kinds of resistance or force types, corresponding to the three degrees of differential equations:

F = C constant force

F = Kx spring: force is proportional to displacement

F = Bdx damper: force is proportional to velocity

here C, K and B are constants, x is the displacement in some direction, and dx is the first derivative of x (i.e. velocity in the x direction). These basic forces are adequate for modeling most types of forces required by games and simulation programs. Li the case of a spring, a reference or center is assumed, and the default "center" is the physical center position of the handlegrip 12.

A constant force makes the joystick resist movement evenly, like pushing an object across a table. A constant force that lasts only briefly (0.1 seconds, say) creates a pulse or jolt.

A spring force makes the stick resist more the further the stick is pushed from the reference point of the spring. If the user releases the stick, it returns to the center position.

A damping force resists more if the stick is pushed quickly, but less if pushed slowly. If the user steps pushing.

« PreviousContinue »