US5323174A - Device for determining an orientation of at least a portion of a living body - Google Patents

Device for determining an orientation of at least a portion of a living body Download PDF

Info

Publication number
US5323174A
US5323174A US07/984,560 US98456092A US5323174A US 5323174 A US5323174 A US 5323174A US 98456092 A US98456092 A US 98456092A US 5323174 A US5323174 A US 5323174A
Authority
US
United States
Prior art keywords
movement
head
orientation
signal generating
movable portion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
US07/984,560
Inventor
Matthew H. Klapman
David J. Frerichs
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US07/984,560 priority Critical patent/US5323174A/en
Assigned to KLAPMAN, MATTHEW H. reassignment KLAPMAN, MATTHEW H. ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: FRERICHS, DAVID J.
Priority to US08/169,493 priority patent/US5353042A/en
Application granted granted Critical
Publication of US5323174A publication Critical patent/US5323174A/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0338Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of limited linear or angular displacement of an operating part of the device from a neutral position, e.g. isotonic or isometric joysticks

Definitions

  • the invention relates generally to position and/or orientation sensing devices and more particularly to devices for facilitating the tracking of a head or other movable object.
  • Head tracking finds many useful applications. For example, the military uses head tracking to aim gun turrets and to provide heads-up tactical information for the pilot of an aircraft.
  • the private sector uses head tracking as a third hand to allow a handicapped individual to steer a motorized wheelchair, or to allow an individual to manipulate a cursor on a computer screen.
  • Another application includes the use of head tracking to provide a virtual environment for the user--generally known as "virtual reality", Teachings of such application may be found in U.S. Pat. Nos. 4,984,179 (Waldern); 4,884,219 (Waldern); and 5,130,794 (Ritchey).
  • "Virtual realty” describes the host of applications that involve the use of a virtual environment to allow human-machine interaction at a more intuitive level than by typing commands on a keyboard or using a mouse-type device to communicate with a machine.
  • Head tracking is necessary to generate a first-person virtual environment. Typically, the user wears video screens over both eyes and a host computer generates three-dimensional views that correspond to the position of the user's head.
  • a fixed reference point is compared with the position or orientation of the head by linking the head to the fixed reference point by way of mechanical linkage, optic linkage, ultrasonic linkage, or magnetic linkage, and measuring the position or orientation of the head relative to that fixed reference point.
  • mechanical linkage optic linkage, ultrasonic linkage, or magnetic linkage
  • measuring the position or orientation of the head relative to that fixed reference point are described in U.S. Patent Nos. 4,954,815; 4,565,999; 4,682,159; 5,142,506; and 4,688,037.
  • Known mechanical linkage systems also constrain the user.
  • the transmitter-receiver configurations typically have a freedom of movement advantage over the mechanical linkage systems but generally require more time to process the received electromagnetic signals before the position/orientation information may be output from the device. This time is referred to as latency or lag time.
  • the off-body mechanical linkage provides almost instantaneous output, or negligible lag time, but severely limits the movement range of the user. Furthermore, such systems tend to be complex and subsequently costly to manufacture and use.
  • Another device such as that disclosed in U.S. Pat. No. 5,068,645, offers an advantage over the off-the-body link by using gravity as its fixed reference point and therefore contains only a receiver mounted on the headset.
  • This device is relatively non-restrictive to the user since gravity exists everywhere on the earth. However, such a device may not be readily used in low gravity applications or non-gravity applications such as in outer space. Secondly, this device may be prone to a pendulum effect.
  • the device measures the head position by comparing the orientation of the head to the surface level of a liquid in a spherical container. The liquid's surface stays level due to gravity while the user's head tilts the spherical container.
  • Yet another object of the invention is to provide a head tracking device for the control of cursor movement or virtual image movement that generates an output to a host computer in the form of relative incremental head movements.
  • a further object of the invention is to provide a head tracking device which outputs head position information to a host computer in the form of an absolute measurement.
  • the disclosed head tracking device tracks the orientation of at least a portion of an object, such as the head, with respect to a reference point on the object, such as the torso or upper body area of a user.
  • the present invention is a novel device used to determine the orientation of the head along one or two axes.
  • the invention includes a headset worn by the user containing an orientation sensor that determines the angular displacement of the head relative to the torso or shoulder blade of the user through an electromechanical linkage.
  • the electromechanical linkage includes a flexible rod, such as a plastic whip and attachment device that may be fastened to a user's torso area and extends to a T-joint that is fastened to a signal generating device, such as a shaft of a potentiometer (variable impedance device), a rotary optical encoder or other suitable signal generating device.
  • the signal generating device is fastened to the headset.
  • the flexible rod contains a clasping device on one end that attaches to the user's clothing or other surface coupled to the user. Another end of the rod reciprocates freely through the T-joint. When the user's head rotates left, right, up or down, the plastic flexible rod moves and rotates the shaft of the variable resistor which corresponds to the rotation of the head.
  • variable resistor may be interfaced to the digital domain through the use of an analog-to-digital converter.
  • This quantized digital value is then processed by a host computer to control the movement of a cursor or movement of a vertical image or other selected mechanism.
  • the computer compensates for any physical discrepancy that exists from user to user through a compensation method.
  • the computer reads the value of each variable resistor and can determine the orientation of the user's head by comparing the two values.
  • an additional signal generating device such as a slide potentiometer or slotted flexible rod with an optical sensor for detecting vertical movement, is added to the single orientation sensor to facilitate detection of movement along both the vertical and lateral axes.
  • One compensation method which requires user interaction to set boundary positions to define a user's selected range of movement.
  • the computer configures the tracking system for each user by executing a software calibration program before the user uses the head tracker in an application.
  • the method includes the steps of measuring position signals, such as voltage drops across the variable resistor, when the user's head is turned to a plurality of boundary or reference positions, then adjusting each value measured by applying a process that utilizes the memorized parameters.
  • the latency, or lag time, between the digitizing of the variable resistor's value, applying the adjustment method and outputting a final value is negligible since it is below the noticeable threshold value of lag time that may be approximately 50 msec.
  • FIG. 1 is a perspective view of a user wearing an orientation sensing device for tracking lateral head movement in accordance with the invention
  • FIG. 2 is a cutaway perspective view of an orientation sensor as shown in FIG. 1 in accordance with the invention
  • FIG. 3 is a schematic diagram of the orientation sensor connected to a computing device to emulate a mouse or interface with a video game controller;
  • FIG. 4 is a schematic diagram of the orientation sensor connected to serial A/D chip to interface to a video game
  • FIG. 5 is a flow chart generally illustrating the process of emulating a mouse using the orientation tracking device in accordance with the invention
  • FIG. 6 is a perspective view of a user wearing the inventive tracking device and turning his head laterally in either direction to illustrate the flexing action and rotation of the connecting member of the orientation sensor in accordance with the invention
  • FIG. 7 is a perspective view of a user wearing two orientation sensors to facilitate lateral and vertical orientation tracking in accordance with the invention.
  • FIG. 8 is a perspective view of a user wearing one orientation sensor of FIG. 2 on the temple area and another orientation sensor of FIG. 2 on the back of the head to facilitate lateral and vertical orientation tracking in accordance with the invention.
  • FIG. 9 is an partial cross-sectional view of another embodiment of an orientation sensor to facilitate lateral and vertical orientation tracking in accordance with the invention.
  • FIG. 1 illustrates a preferred embodiment of a head tracking device 10 worn by a user 12 about the head 14.
  • head 14 generally moves with respect to the torso area 16, shoulder blade or upper body area, head movement from left to right or right to left will be considered lateral movement along one axis whereas head movement in a vertical, up and down direction will be considered as longitudinal movement along a second axis.
  • the head tracking device 10 includes a housing 18 for attaching to the movable portion of the object, such as the head 14.
  • the housing 18 may be a headset which in the case of a virtual reality application may have a visor 20 containing a plurality of video display screens (not shown).
  • the head tracking device 10 further includes an orientation sensing mechanism 22 or position sensor, such as an electromechanical linkage configuration, connected to the housing 18 and having an attachment portion 24 adapted for attachment to a reference portion of the object, such as the torso 16.
  • an orientation sensing mechanism 22 or position sensor such as an electromechanical linkage configuration
  • the torso may be considered a substantially non-movable portion with respect to the head.
  • the attachment portion 24 connects to connecting member 26, such as a T-joint sleeve, through a flexible rod 28.
  • connecting member 26 attaches to a signal generating device 30, such as a rotary potentiometer (variable resistor) or optical rotary encoder, and responds to movement of flexible rod 28 to actuate the signal generating device 30.
  • the connecting member 22 may be a hollow T-joint having a channel 32 through which the flexible rod 28 may reciprocally slide, and a base 34 for rotatably connecting to a shaft 36 on the signal generating device 30.
  • the signal generating device 30 may be a rotationally adjustable 1K variable potentiometer having three connecting leads 38 as known in the art. It will be recognized that the signal generating device 30 may be another type of variable impedance device or any other suitable signal generating device such as a variable intensity optic sensor or the like.
  • the direction of reciprocation of the flexible rod 26 is shown by arrow 40 whereas the rotational movement to vary the resistance of the potentiometer is shown by arrow 42.
  • the cross-sectional shape of the flexible rod 28 and the inside cross-sectional shape of the channel 32 are formed to facilitate sliding of the rod 28 through the channel 32 during longitudinal movement of the user's head while providing suitable clearance to facilitate rotation of the potentiometer shaft 36 during lateral movement.
  • the flexible rod 28 may include an adjustable stop member 44 adapted for slidable adjustment along the length of the flexible rod 28.
  • the stop member 44 may be coupled distal the attachment portion 24 to prevent the flexible rod 28 from sliding entirely through the connecting member 26 when the user puts the headset on or removes the headset.
  • the signal generating device 30 connects to a microcomputer 46 which contains an 8 bit analog-to-digital (A/D) converting circuit to convert the analog signal to a digital signal as known in the art.
  • the microcomputer may be a Motorola 68HC11 microcomputer which has on-board ROM and RAM so that the microcomputer 46 may be suitably programmed.
  • the microcomputer 46 may be programmed to communicate via a standard protocol to a host computer 48 to emulate a mouse.
  • the host computer 48 may generate the image information to be communicated to the display screens on the visor 20 in response to head orientation information as provided by the microcomputer 46.
  • the host computer 48 may be a personal computer or other device utilizing a video display screen.
  • the attachment portion 24 includes a suitable clasping device or attachment device adapted to attach to a relatively non-movable portion of the object.
  • the attachment device 24 may be an alligator-type clip 24a, a VELCROTM attachment pad (not shown), or an inverted "U" member 24b adapted to rest on the shoulder (shown in FIG. 7) which may couple to the clothing, outer wear, or body of a user.
  • the flexible rod 28 should be of a flexible nature to allow relatively free movement of a user's head.
  • an unsuitably rigid rod may restrict the lateral movement of the user.
  • the user may rotate the head laterally along one axis which will, in turn, cause the flexible rod 28 to push against the connecting member 26, thereby causing the connecting member 26 to rotate as indicated by arrow 42.
  • the flexible rod 28 is also allowed to reciprocate through the channel 32 of the connecting member 26 to facilitate freer movement of the user's head.
  • vertical movement of the head will also cause the connecting member 26 to be slightly rotated by the flexible rod 28. Consequently, only a single orientation sensor 22 (as shown in FIG. 1) may be needed for head tracking along a single lateral axis.
  • FIG. 3 schematically illustrates a head-tracking control circuit 50 which includes the microcomputer 46 connected to the signal generating device 30 to determine the orientation of the head.
  • the microcomputer 46 also communicates with the host computer 48 via EIA RS-232A protocol using a plurality of bidirectional ports (PDO and PDI).
  • the control circuit 50 includes a clock 52 for supplying timing pulses to the microcomputer 46 and a transistor 56 such as an N-Channel FET, for use to receive information during RS-232 communication.
  • a plurality of visual indicators (LED's) D0, D1 and D2 connect to the microcomputer 46 and are activated to indicate the reference or boundary positions as selected by the user, such as the left-most position of the user's head, the right-most position of the user's head, and the center position of the user's head.
  • the LED's D0, D1 and D2 may be mounted on the visor 20 so that the user can tell when he has reached the lateral position limits of the head tracking system or may be mounted externally to the headset.
  • Such visual feedback to allow a user to set boundary positions may also be carried out on screen (display devices on the visor in the case of a virtual reality application) via computer control or may not be necessary where such boundary positions are predetermined.
  • a plurality of resistors 58 and 60 serve to terminate pins on the microcomputer 46 as known in the art.
  • a reset integrated circuit 66 such as a Motorola MC34164 serves to provide a reset condition during power-up but may not be necessary with another suitable type of computing device.
  • a first connecting lead of the potentiometer may be connected to a power supply
  • a second connecting lead may be connected to a ground return line
  • a signal connecting lead may be connected to an A/D input port on the microcomputer 46.
  • a second sensor 102 may be connected to the microcomputer by connecting the first connecting lead of each potentiometer in common on the headsets and connecting the second connecting leads in common so that only the signal connecting lead from the second sensor 102 needs to be connected to the externally mounted microcomputer 46.
  • the tracking device may be used with a number of different methods for determining the orientation of the user's head to control a cursor or otherwise move a virtual image or machine such as a medical operating instrument.
  • One method outputs the relative change of the user's head orientation to a control device such as the host computer while another method outputs an absolute value corresponding to the orientation of the user's head.
  • FIG. 4 schematically illustrates the use of the tracking device 10 as interfaced with a video game.
  • the signal generating device 30 connects to an A/D integrated circuit 70, such as an LTC1096 which converts the analog voltage generated by the signal generating device 30 into a digital position value.
  • the position value is communicated to a game connector 72 which interfaces with a game controller (not shown).
  • the game controller carries out the necessary computing so that the microcomputer 46 is not needed.
  • a transistor 74 connected to the latch output from the controller serves as a signal inverter which is needed in this case to interface with a NINTENDOTM game unit (not shown).
  • the A/D converter 70 converts the position signal to a digital signal and transmits the digital signal to the game controller for its use in determining the movement of the cursor or image.
  • FIG. 5 is a flow diagram generally indicating a method of determining the relative change of head orientation that may be used by the computer 46, or host computer, to determine the lateral orientation of the head and control the position of a cursor on a screen.
  • the process compensates for physical variances between user's head movement ranges, e.g. users having different maximum and minimum angular displacements in the lateral direction.
  • step 80 the method starts by initializing the microcomputer 46 or otherwise setting the appropriate inputs to a level to begin head tracking.
  • an alignment process begins as shown in step 82.
  • the alignment process starts with the user defining a range of lateral head movement.
  • the microcomputer 46 activates an indicating device such as D0 to inform the user to move his head to a left boundary position.
  • the user moves the head to a desirable left boundary position and activates the pushbutton switch 68.
  • the microcontroller 46 reads the voltage value from the signaling device 30 to determine a left boundary value.
  • the microcomputer 46 activates D1 to inform the user to move his head right, to a selected right boundary position.
  • the user then activates the pushbutton switch 68 to set the right boundary value.
  • a center LED, D2 is lit by the microcomputer 46 to inform the user to move his head to a center position and activate the pushbutton switch 68 to set the center boundary value.
  • the microcomputer determines the number of position segments or "mickeys" (a term used when referring to mouse usage) between the left boundary and the center boundary. This corresponds to the number of cursor positions from a half-screen to the left of the screen.
  • the computer also divides the range from the right to the center boundary position to determine a number of position segments between the center position and the right position. This corresponds to the number of cursor movements per half-screen from the center of the screen to the right of the screen.
  • step 84 the user moves his head to a current position.
  • the microcomputer 46 determines whether the voltage reading corresponding to the current position is left of center as shown in step 86. If the current value is left of center, the microcomputer 46 determines whether the prior position was left or equal to center as shown in step 88. If the prior position signal was left or equal to center, the current position value is subtracted from the prior position value to give a relative change in position value as indicated in step 90. This change in position value is then stored in a register after which time a read status signal from the game controller is acquired as shown in step 92. The change in position value as determined in step 90 is then used in step 94 to generate a packet of information understood by the control device or host computer.
  • the change in position value is then transmitted in the form of a packet to the host computer as shown in step 96. If the user no longer wishes to use the head tracking device, the user may then indicate an end session as shown in step 98 whereafter the microcomputer 46 will stop and the process ends as shown in step 100. However, the process may continue continuously to give a current position reading of the user. Consequently, the microcomputer 46 will obtain a current signal in step 84 and repeat the orientation determination process.
  • step 88 if the current signal value is left of center, but the prior signal was not left or equal to center, then the computer computes a change in position value equal to the center value minus the prior value plus the current position minus the center position as shown in step 102. This information is then sent back to the host in a packet of information as previously described. Where the current position is not left of center, the computer determines if the prior signal is to the right or equal to center as shown in step 104. Where the prior signal is to the right or equal to center, the change in position value as shown in step 106 is determined by subtracting the current value minus the prior value.
  • the change in position value is determined by subtracting the prior value from the center value and adding the result to the subtraction of the current value minus the center value as shown in step 108. Consequently, the aforedescribed method generates a relative change in relative position signal instead of an absolute position indication signal.
  • the change in position value determined by the method shown in FIG. 5 may be scaled by a suitable scaling value to facilitate disproportional movement between a user's head and the controlled unit such as the cursor, image, or a machine.
  • a user may wish to amplify or attenuate the position moved by the user based on a desired amplification or attenuation scheme. For example, where the user desires a large change in head position to result in small change in cursor movement, the change in position value may be scaled down and consequently attenuated so that the control device or video display device will not move the cursor in a proportional manner.
  • the resulting value from the method in FIG. 5 may be amplified before being sent to the control device to transform the small movement in the head to a large movement of the cursor.
  • determining a center position may be unnecessary where a less accurate position value would be suitable.
  • an increased number of predetermined boundary values may also be used to get a more accurate position determination. For example, instead of using three boundary values corresponding to the left, center and right positions, a system may use four or more predetermined boundary positions to get a more accurate reading of the lateral displacement throughout the complete displacement range.
  • an absolute position indication method Another orientation detecting method which may be incorporated with the orientation sensor 22, may be referred to as an absolute position indication method.
  • the predetermined range defined by the position boundary parameters may be represented as a digital number from 0 to 255 such that each incremental movement corresponds to a 1/256 of the range.
  • a voltage reading corresponding to the current position will be converted be the A/D connecting circuit and used as the absolute position value to indicate the current position of the head. Therefore, the microcomputer 46 need not go through the subtraction process of FIG. 5 to determine a change in position value which is sent to the host computer.
  • Such a method may be suitable for controlling a cursor in a game.
  • FIG. 7 illustrates a head-tracking device 100 which incorporates two position sensors 22 and 102 to provide both lateral and vertical head tracking.
  • the second position sensor 102 is substantially identical to that of position sensor 22 shown in FIG. 2.
  • the two orientation sensors 22 and 102 are attached to the housing 18 on either side of the user's head approximate the temple area. It has been found that the sensors 22 and 102 should be as close to the center line of the head as possible to obtain a more linear output from the sensors. However, practical considerations such as comfort of the user should also be taken into account.
  • the second orientation sensor 102 includes a signal generating device 104 substantially identical to that of the orientation sensor 22. Both signal generating devices 30 and 104 are connected to the microcomputer 46 as shown in FIG. 3 to provide head orientation signals to the microcomputer 46.
  • the microcomputer 46 receives input signals from each of the signal generating devices 22 and 102. It has been found that each of the sensors may be actuated during movement. Consequently, not all head positions generate unique position values. However, it has also been found that a small range of head movement may generate corresponding values that are unique for each position. Therefore, a one to one correspondence between the range of head movement and the range of cursor movement may be facilitated through scaling as previously described. For example, the microcomputer 46 may scale the small range of unique values so that the small range of movement corresponds with complete coverage of the entire area of the display screen. Thus, a small movement of the head may be transformed into a large movement of the cursor.
  • FIG. 8 shows a different location for the two orientation sensors 22 and 102 wherein one orientation sensor 102 is positioned in the back of the head along the center line of the head and the other sensor 22 remains proximate the temple area.
  • the placement of the sensor 102 in the back of the head along the center line of rotation affords more mutually exclusive position values for a wider range of head movement.
  • both sensors 22 and 102 are actuated.
  • the flexible rod 28a in the sensor 102 slides through the "T"-joint and does not significantly actuate the signalling device 104.
  • the flexible rod 28a may include a plurality of angles 106 and 108 to allow the user to attach the flexible rod to the torso area of the user.
  • FIG. 9 depicts a portion of a single orientation sensor 150 for measuring both lateral and vertical movement.
  • the sensor 150 includes an additional signal generating device 152 for detecting reciprocating movement of the flexible rod 28b during head movement.
  • the flexible rod 28b has a plurality of apertures 154 extending a suitable length along the rod.
  • the signal generating device 152 may be an optical reflectance sensor 156 coupled to the microcomputer 46 and positioned in the connecting member 26a adjacent the channel 32 to direct a beam of light onto the flexible rod 28b.
  • the apertures 154 serve to change the amount of optical energy reflected by the rod 28b and received by the reflectance sensor as the rod 28b reciprocates through the channel 32.
  • Such reciprocating movement tends to be greatest when the user moves the head along the vertical axis.
  • vertical movement may be readily distinguished from lateral movement.
  • the size of the apertures 154 may gradually increase or decrease along the rod so that the direction (up or down) of the user may be readily ascertained.
  • signal generating devices may also be used to detect reciprocating movement of the flexible rod.
  • the plurality of apertures may be eliminated by using a linear or sliding potentiometer that may be coupled to the rod so that reciprocating movement of the rod actuates the potentiometer.
  • the output from the potentiometer may be coupled to another of the A/D inputs of the microcomputer 46.
  • the attachment portion 24 of the orientation sensors may be attached to a relatively non-movable portion of the person which may be in an area other than the torso or upper body.
  • a user may attach the attachment portion 24 to a shoulder blade area or side of the arm where the side of the arm does not move with respect to the head.
  • the terminology used herein of "attaching to a non-movable portion" of the user includes attachment to clothing or outer covering or other surface which remains substantially fixed relative to the movement of the user's head. Therefore, a shoulder harness may also serve as a suitable attachment portion as shown in FIG. 7 for the orientation sensor 102.
  • yet another method for determining the boundary or range values of the total lateral movement of a user may be based on a priori knowledge of a statistically determined angle displacement range. For example, it may be determined that a typical user has a total angular displacement of 120°, as a result, a user may forego the range setting process of activating the push button since the computer knows the range. Therefore, the computer may assume that the boundary values lie 120° apart where the center value lies at the 60° value.
  • the Appendix is a code listing of a program for use by the microcomputer 46 of FIG. 3 to determine lateral head orientation in accordance with the method described with reference to FIG. 5.
  • the head orientation data is transmitted over the RS-232 interface in a format which emulates a MicrosoftTM mouse for an IBM PCTM compatible computer. This listing contains material which is subject to copyright protection.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Input By Displaying (AREA)

Abstract

A device used for measuring the orientation of a human head about one or two axes and converting that information into an electrical signal in the analog or digital domain includes a headset and includes one or two electromechanical orientation sensors which provide an electrical signal that corresponds to the orientation of the head without any reference to an off-of-the body reference. The orientation sensor includes a signal generating device, such as a variable resistor, coupled to the torso of the user via a mechanical linkage. As the head moves, the linkage moves and changes the resistance of the variable resistor. The change in resistance corresponds to the orientation of the head. One orientation sensor is used to measure the horizontal, or lateral angle, of the head with respect to the torso, or shoulder blades. Two orientation sensors mounted on each side of the head measure both the lateral and vertical angles of the head with respect to the torso, or shoulder blades. Also disclosed is a single sensor having two signal generating devices wherein one signal generating device detects primarily lateral movement while the other signal generating device detects primarily vertical movement.

Description

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile production 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.
BACKGROUND OF THE INVENTION
The invention relates generally to position and/or orientation sensing devices and more particularly to devices for facilitating the tracking of a head or other movable object.
Various devices are known for measuring the orientation of the head (head tracking). Head tracking finds many useful applications. For example, the military uses head tracking to aim gun turrets and to provide heads-up tactical information for the pilot of an aircraft. The private sector uses head tracking as a third hand to allow a handicapped individual to steer a motorized wheelchair, or to allow an individual to manipulate a cursor on a computer screen.
Another application includes the use of head tracking to provide a virtual environment for the user--generally known as "virtual reality", Teachings of such application may be found in U.S. Pat. Nos. 4,984,179 (Waldern); 4,884,219 (Waldern); and 5,130,794 (Ritchey). "Virtual realty" describes the host of applications that involve the use of a virtual environment to allow human-machine interaction at a more intuitive level than by typing commands on a keyboard or using a mouse-type device to communicate with a machine. Head tracking is necessary to generate a first-person virtual environment. Typically, the user wears video screens over both eyes and a host computer generates three-dimensional views that correspond to the position of the user's head.
With many known systems, a fixed reference point is compared with the position or orientation of the head by linking the head to the fixed reference point by way of mechanical linkage, optic linkage, ultrasonic linkage, or magnetic linkage, and measuring the position or orientation of the head relative to that fixed reference point. Such systems are described in U.S. Patent Nos. 4,954,815; 4,565,999; 4,682,159; 5,142,506; and 4,688,037. However, a problem arises with such known head tracking devices since the fixed reference point is off of the body and requires the use of an off-the-body transmitter and receiver configuration that limits the user to a confined space because of the limited range of the transmitters. Known mechanical linkage systems also constrain the user.
The transmitter-receiver configurations typically have a freedom of movement advantage over the mechanical linkage systems but generally require more time to process the received electromagnetic signals before the position/orientation information may be output from the device. This time is referred to as latency or lag time. The off-body mechanical linkage provides almost instantaneous output, or negligible lag time, but severely limits the movement range of the user. Furthermore, such systems tend to be complex and subsequently costly to manufacture and use.
Another device, such as that disclosed in U.S. Pat. No. 5,068,645, offers an advantage over the off-the-body link by using gravity as its fixed reference point and therefore contains only a receiver mounted on the headset. This device is relatively non-restrictive to the user since gravity exists everywhere on the earth. However, such a device may not be readily used in low gravity applications or non-gravity applications such as in outer space. Secondly, this device may be prone to a pendulum effect. The device measures the head position by comparing the orientation of the head to the surface level of a liquid in a spherical container. The liquid's surface stays level due to gravity while the user's head tilts the spherical container. However, the liquid will not stay perfectly level because of inertia, but will rock back and forth when the user's head moves quickly. Such a pendulum effect may hinder the performance of this device. Thirdly, such a device typically only measures the head's angle along a vertical axis. It cannot measure the head's lateral movement along a second axis. Consequently there exists a need for a head tracking device which overcomes the disadvantages of the aforementioned prior art devices.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a relatively simple and inexpensive head tracking device that has negligible lag time similar to conventional mechanical linkage devices while allowing more freedom of movement than the transmitter-receiver pair devices and the conventional mechanical linkages.
It is a further object of the invention to provide a head tracking device that affords lateral as well as vertical tracking.
Yet another object of the invention is to provide a head tracking device for the control of cursor movement or virtual image movement that generates an output to a host computer in the form of relative incremental head movements.
A further object of the invention is to provide a head tracking device which outputs head position information to a host computer in the form of an absolute measurement.
It is yet a further object of the invention to provide a head tracking device which allows a user to interact with the head tracking control to initialize a plurality of predetermined boundary ranges which may be used to scale position measurements to allow a larger or smaller displacement of cursor movement, or other object movement, connected to the head tracking device.
The disclosed head tracking device tracks the orientation of at least a portion of an object, such as the head, with respect to a reference point on the object, such as the torso or upper body area of a user. The present invention is a novel device used to determine the orientation of the head along one or two axes. The invention includes a headset worn by the user containing an orientation sensor that determines the angular displacement of the head relative to the torso or shoulder blade of the user through an electromechanical linkage.
In a preferred embodiment, the electromechanical linkage includes a flexible rod, such as a plastic whip and attachment device that may be fastened to a user's torso area and extends to a T-joint that is fastened to a signal generating device, such as a shaft of a potentiometer (variable impedance device), a rotary optical encoder or other suitable signal generating device. The signal generating device is fastened to the headset. The flexible rod contains a clasping device on one end that attaches to the user's clothing or other surface coupled to the user. Another end of the rod reciprocates freely through the T-joint. When the user's head rotates left, right, up or down, the plastic flexible rod moves and rotates the shaft of the variable resistor which corresponds to the rotation of the head.
The variable resistor may be interfaced to the digital domain through the use of an analog-to-digital converter. This quantized digital value is then processed by a host computer to control the movement of a cursor or movement of a vertical image or other selected mechanism. The computer compensates for any physical discrepancy that exists from user to user through a compensation method.
When one orientation sensor is used, lateral head tracking is accomplished. In this configuration, it is necessary that the movement of the shaft of the variable resistor is minimized when the user's head rotates up or down. This is accomplished by the flexible rod since it is free to move up and down in the T-joint.
When two orientation sensors are provided on each side of the user's head, lateral and vertical orientation of the head can be simultaneously measured. The computer reads the value of each variable resistor and can determine the orientation of the user's head by comparing the two values.
In another embodiment, an additional signal generating device, such as a slide potentiometer or slotted flexible rod with an optical sensor for detecting vertical movement, is added to the single orientation sensor to facilitate detection of movement along both the vertical and lateral axes.
One compensation method is disclosed which requires user interaction to set boundary positions to define a user's selected range of movement. The computer configures the tracking system for each user by executing a software calibration program before the user uses the head tracker in an application. The method includes the steps of measuring position signals, such as voltage drops across the variable resistor, when the user's head is turned to a plurality of boundary or reference positions, then adjusting each value measured by applying a process that utilizes the memorized parameters.
The latency, or lag time, between the digitizing of the variable resistor's value, applying the adjustment method and outputting a final value is negligible since it is below the noticeable threshold value of lag time that may be approximately 50 msec.
BRIEF DESCRIPTION OF THE DRAWING8
FIG. 1 is a perspective view of a user wearing an orientation sensing device for tracking lateral head movement in accordance with the invention;
FIG. 2 is a cutaway perspective view of an orientation sensor as shown in FIG. 1 in accordance with the invention;
FIG. 3 is a schematic diagram of the orientation sensor connected to a computing device to emulate a mouse or interface with a video game controller;
FIG. 4 is a schematic diagram of the orientation sensor connected to serial A/D chip to interface to a video game;
FIG. 5 is a flow chart generally illustrating the process of emulating a mouse using the orientation tracking device in accordance with the invention;
FIG. 6 is a perspective view of a user wearing the inventive tracking device and turning his head laterally in either direction to illustrate the flexing action and rotation of the connecting member of the orientation sensor in accordance with the invention;
FIG. 7 is a perspective view of a user wearing two orientation sensors to facilitate lateral and vertical orientation tracking in accordance with the invention;
FIG. 8 is a perspective view of a user wearing one orientation sensor of FIG. 2 on the temple area and another orientation sensor of FIG. 2 on the back of the head to facilitate lateral and vertical orientation tracking in accordance with the invention; and
FIG. 9 is an partial cross-sectional view of another embodiment of an orientation sensor to facilitate lateral and vertical orientation tracking in accordance with the invention.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 illustrates a preferred embodiment of a head tracking device 10 worn by a user 12 about the head 14. For purposes of discussion, since the head 14 generally moves with respect to the torso area 16, shoulder blade or upper body area, head movement from left to right or right to left will be considered lateral movement along one axis whereas head movement in a vertical, up and down direction will be considered as longitudinal movement along a second axis.
The head tracking device 10 includes a housing 18 for attaching to the movable portion of the object, such as the head 14. The housing 18 may be a headset which in the case of a virtual reality application may have a visor 20 containing a plurality of video display screens (not shown).
The head tracking device 10 further includes an orientation sensing mechanism 22 or position sensor, such as an electromechanical linkage configuration, connected to the housing 18 and having an attachment portion 24 adapted for attachment to a reference portion of the object, such as the torso 16. In the case of a person, the torso may be considered a substantially non-movable portion with respect to the head.
The attachment portion 24 connects to connecting member 26, such as a T-joint sleeve, through a flexible rod 28. For purposes that will become apparent later, the flexible rod should be made from a material having sufficient memory, such as thermoplastic, so that the rod returns to an original shape after flexing. The connecting member 26 attaches to a signal generating device 30, such as a rotary potentiometer (variable resistor) or optical rotary encoder, and responds to movement of flexible rod 28 to actuate the signal generating device 30. As shown in FIG. 2, the connecting member 22 may be a hollow T-joint having a channel 32 through which the flexible rod 28 may reciprocally slide, and a base 34 for rotatably connecting to a shaft 36 on the signal generating device 30. The signal generating device 30 may be a rotationally adjustable 1K variable potentiometer having three connecting leads 38 as known in the art. It will be recognized that the signal generating device 30 may be another type of variable impedance device or any other suitable signal generating device such as a variable intensity optic sensor or the like.
The direction of reciprocation of the flexible rod 26 is shown by arrow 40 whereas the rotational movement to vary the resistance of the potentiometer is shown by arrow 42. The cross-sectional shape of the flexible rod 28 and the inside cross-sectional shape of the channel 32 are formed to facilitate sliding of the rod 28 through the channel 32 during longitudinal movement of the user's head while providing suitable clearance to facilitate rotation of the potentiometer shaft 36 during lateral movement.
The flexible rod 28 may include an adjustable stop member 44 adapted for slidable adjustment along the length of the flexible rod 28. The stop member 44 may be coupled distal the attachment portion 24 to prevent the flexible rod 28 from sliding entirely through the connecting member 26 when the user puts the headset on or removes the headset.
The signal generating device 30 connects to a microcomputer 46 which contains an 8 bit analog-to-digital (A/D) converting circuit to convert the analog signal to a digital signal as known in the art. The microcomputer may be a Motorola 68HC11 microcomputer which has on-board ROM and RAM so that the microcomputer 46 may be suitably programmed. The microcomputer 46 may be programmed to communicate via a standard protocol to a host computer 48 to emulate a mouse. In the case of a virtual reality system, the host computer 48 may generate the image information to be communicated to the display screens on the visor 20 in response to head orientation information as provided by the microcomputer 46. Where the head tracking device is employed to facilitate cursor movement on a display screen, the host computer 48 may be a personal computer or other device utilizing a video display screen.
The attachment portion 24 includes a suitable clasping device or attachment device adapted to attach to a relatively non-movable portion of the object. For example, the attachment device 24 may be an alligator-type clip 24a, a VELCRO™ attachment pad (not shown), or an inverted "U" member 24b adapted to rest on the shoulder (shown in FIG. 7) which may couple to the clothing, outer wear, or body of a user.
The flexible rod 28 should be of a flexible nature to allow relatively free movement of a user's head. For example, an unsuitably rigid rod may restrict the lateral movement of the user.
In operation, the user may rotate the head laterally along one axis which will, in turn, cause the flexible rod 28 to push against the connecting member 26, thereby causing the connecting member 26 to rotate as indicated by arrow 42. During such lateral movement, the flexible rod 28 is also allowed to reciprocate through the channel 32 of the connecting member 26 to facilitate freer movement of the user's head. However, vertical movement of the head will also cause the connecting member 26 to be slightly rotated by the flexible rod 28. Consequently, only a single orientation sensor 22 (as shown in FIG. 1) may be needed for head tracking along a single lateral axis.
FIG. 3 schematically illustrates a head-tracking control circuit 50 which includes the microcomputer 46 connected to the signal generating device 30 to determine the orientation of the head. The microcomputer 46 also communicates with the host computer 48 via EIA RS-232A protocol using a plurality of bidirectional ports (PDO and PDI). The control circuit 50 includes a clock 52 for supplying timing pulses to the microcomputer 46 and a transistor 56 such as an N-Channel FET, for use to receive information during RS-232 communication.
A plurality of visual indicators (LED's) D0, D1 and D2 connect to the microcomputer 46 and are activated to indicate the reference or boundary positions as selected by the user, such as the left-most position of the user's head, the right-most position of the user's head, and the center position of the user's head. The LED's D0, D1 and D2 may be mounted on the visor 20 so that the user can tell when he has reached the lateral position limits of the head tracking system or may be mounted externally to the headset. Such visual feedback to allow a user to set boundary positions may also be carried out on screen (display devices on the visor in the case of a virtual reality application) via computer control or may not be necessary where such boundary positions are predetermined.
A plurality of resistors 58 and 60 serve to terminate pins on the microcomputer 46 as known in the art. A reset integrated circuit 66, such as a Motorola MC34164 serves to provide a reset condition during power-up but may not be necessary with another suitable type of computing device.
As shown, a first connecting lead of the potentiometer (variable resistor) may be connected to a power supply, a second connecting lead may be connected to a ground return line, and a signal connecting lead may be connected to an A/D input port on the microcomputer 46. Where two orientation sensors are used (best seen in FIG. 7), a second sensor 102 may be connected to the microcomputer by connecting the first connecting lead of each potentiometer in common on the headsets and connecting the second connecting leads in common so that only the signal connecting lead from the second sensor 102 needs to be connected to the externally mounted microcomputer 46.
The tracking device may be used with a number of different methods for determining the orientation of the user's head to control a cursor or otherwise move a virtual image or machine such as a medical operating instrument. One method outputs the relative change of the user's head orientation to a control device such as the host computer while another method outputs an absolute value corresponding to the orientation of the user's head.
FIG. 4 schematically illustrates the use of the tracking device 10 as interfaced with a video game. The signal generating device 30 connects to an A/D integrated circuit 70, such as an LTC1096 which converts the analog voltage generated by the signal generating device 30 into a digital position value. The position value is communicated to a game connector 72 which interfaces with a game controller (not shown). The game controller carries out the necessary computing so that the microcomputer 46 is not needed. A transistor 74 connected to the latch output from the controller serves as a signal inverter which is needed in this case to interface with a NINTENDO™ game unit (not shown). The A/D converter 70 converts the position signal to a digital signal and transmits the digital signal to the game controller for its use in determining the movement of the cursor or image.
FIG. 5 is a flow diagram generally indicating a method of determining the relative change of head orientation that may be used by the computer 46, or host computer, to determine the lateral orientation of the head and control the position of a cursor on a screen. The process compensates for physical variances between user's head movement ranges, e.g. users having different maximum and minimum angular displacements in the lateral direction.
In block 80 the method starts by initializing the microcomputer 46 or otherwise setting the appropriate inputs to a level to begin head tracking. After the system has been initialized, an alignment process begins as shown in step 82. The alignment process starts with the user defining a range of lateral head movement. The microcomputer 46 activates an indicating device such as D0 to inform the user to move his head to a left boundary position. The user moves the head to a desirable left boundary position and activates the pushbutton switch 68. The microcontroller 46 reads the voltage value from the signaling device 30 to determine a left boundary value. Next, the microcomputer 46 activates D1 to inform the user to move his head right, to a selected right boundary position. The user then activates the pushbutton switch 68 to set the right boundary value.
In a like manner, a center LED, D2 is lit by the microcomputer 46 to inform the user to move his head to a center position and activate the pushbutton switch 68 to set the center boundary value. With reference to moving a cursor, the microcomputer through communication with the host computer, determines the number of position segments or "mickeys" (a term used when referring to mouse usage) between the left boundary and the center boundary. This corresponds to the number of cursor positions from a half-screen to the left of the screen. In a like manner, the computer also divides the range from the right to the center boundary position to determine a number of position segments between the center position and the right position. This corresponds to the number of cursor movements per half-screen from the center of the screen to the right of the screen.
In step 84, the user moves his head to a current position. Next, the microcomputer 46 determines whether the voltage reading corresponding to the current position is left of center as shown in step 86. If the current value is left of center, the microcomputer 46 determines whether the prior position was left or equal to center as shown in step 88. If the prior position signal was left or equal to center, the current position value is subtracted from the prior position value to give a relative change in position value as indicated in step 90. This change in position value is then stored in a register after which time a read status signal from the game controller is acquired as shown in step 92. The change in position value as determined in step 90 is then used in step 94 to generate a packet of information understood by the control device or host computer. The change in position value is then transmitted in the form of a packet to the host computer as shown in step 96. If the user no longer wishes to use the head tracking device, the user may then indicate an end session as shown in step 98 whereafter the microcomputer 46 will stop and the process ends as shown in step 100. However, the process may continue continuously to give a current position reading of the user. Consequently, the microcomputer 46 will obtain a current signal in step 84 and repeat the orientation determination process.
Referring back to step 88, if the current signal value is left of center, but the prior signal was not left or equal to center, then the computer computes a change in position value equal to the center value minus the prior value plus the current position minus the center position as shown in step 102. This information is then sent back to the host in a packet of information as previously described. Where the current position is not left of center, the computer determines if the prior signal is to the right or equal to center as shown in step 104. Where the prior signal is to the right or equal to center, the change in position value as shown in step 106 is determined by subtracting the current value minus the prior value. However, where the prior value from step 104 is not to the right or equal to the center value, the change in position value is determined by subtracting the prior value from the center value and adding the result to the subtraction of the current value minus the center value as shown in step 108. Consequently, the aforedescribed method generates a relative change in relative position signal instead of an absolute position indication signal.
To accommodate different applications, the change in position value determined by the method shown in FIG. 5 may be scaled by a suitable scaling value to facilitate disproportional movement between a user's head and the controlled unit such as the cursor, image, or a machine. A user may wish to amplify or attenuate the position moved by the user based on a desired amplification or attenuation scheme. For example, where the user desires a large change in head position to result in small change in cursor movement, the change in position value may be scaled down and consequently attenuated so that the control device or video display device will not move the cursor in a proportional manner. Conversely, where the user desires a small movement of the head to result in a large movement of the cursor or virtual image, the resulting value from the method in FIG. 5 may be amplified before being sent to the control device to transform the small movement in the head to a large movement of the cursor.
It will also be recognized by those skilled in the art that the use of determining a center position may be unnecessary where a less accurate position value would be suitable. Conversely, it will also be recognized that an increased number of predetermined boundary values may also be used to get a more accurate position determination. For example, instead of using three boundary values corresponding to the left, center and right positions, a system may use four or more predetermined boundary positions to get a more accurate reading of the lateral displacement throughout the complete displacement range.
Another orientation detecting method which may be incorporated with the orientation sensor 22, may be referred to as an absolute position indication method. In such a method, the predetermined range defined by the position boundary parameters may be represented as a digital number from 0 to 255 such that each incremental movement corresponds to a 1/256 of the range. Hence a voltage reading corresponding to the current position will be converted be the A/D connecting circuit and used as the absolute position value to indicate the current position of the head. Therefore, the microcomputer 46 need not go through the subtraction process of FIG. 5 to determine a change in position value which is sent to the host computer. Such a method may be suitable for controlling a cursor in a game.
FIG. 7 illustrates a head-tracking device 100 which incorporates two position sensors 22 and 102 to provide both lateral and vertical head tracking. The second position sensor 102 is substantially identical to that of position sensor 22 shown in FIG. 2. The two orientation sensors 22 and 102 are attached to the housing 18 on either side of the user's head approximate the temple area. It has been found that the sensors 22 and 102 should be as close to the center line of the head as possible to obtain a more linear output from the sensors. However, practical considerations such as comfort of the user should also be taken into account.
The second orientation sensor 102 includes a signal generating device 104 substantially identical to that of the orientation sensor 22. Both signal generating devices 30 and 104 are connected to the microcomputer 46 as shown in FIG. 3 to provide head orientation signals to the microcomputer 46.
In operation, the microcomputer 46 receives input signals from each of the signal generating devices 22 and 102. It has been found that each of the sensors may be actuated during movement. Consequently, not all head positions generate unique position values. However, it has also been found that a small range of head movement may generate corresponding values that are unique for each position. Therefore, a one to one correspondence between the range of head movement and the range of cursor movement may be facilitated through scaling as previously described. For example, the microcomputer 46 may scale the small range of unique values so that the small range of movement corresponds with complete coverage of the entire area of the display screen. Thus, a small movement of the head may be transformed into a large movement of the cursor.
FIG. 8 shows a different location for the two orientation sensors 22 and 102 wherein one orientation sensor 102 is positioned in the back of the head along the center line of the head and the other sensor 22 remains proximate the temple area. The placement of the sensor 102 in the back of the head along the center line of rotation affords more mutually exclusive position values for a wider range of head movement. When the user moves the head in the lateral direction, both sensors 22 and 102 are actuated. When the user moves the head in the vertical direction, the flexible rod 28a in the sensor 102 slides through the "T"-joint and does not significantly actuate the signalling device 104. As a result, more unique position values may be obtained with this configuration. As shown, the flexible rod 28a may include a plurality of angles 106 and 108 to allow the user to attach the flexible rod to the torso area of the user.
FIG. 9 depicts a portion of a single orientation sensor 150 for measuring both lateral and vertical movement. The sensor 150 includes an additional signal generating device 152 for detecting reciprocating movement of the flexible rod 28b during head movement. The flexible rod 28b has a plurality of apertures 154 extending a suitable length along the rod. The signal generating device 152 may be an optical reflectance sensor 156 coupled to the microcomputer 46 and positioned in the connecting member 26a adjacent the channel 32 to direct a beam of light onto the flexible rod 28b. The apertures 154 serve to change the amount of optical energy reflected by the rod 28b and received by the reflectance sensor as the rod 28b reciprocates through the channel 32. Such reciprocating movement tends to be greatest when the user moves the head along the vertical axis. Hence, vertical movement may be readily distinguished from lateral movement. The size of the apertures 154 may gradually increase or decrease along the rod so that the direction (up or down) of the user may be readily ascertained.
Other types of signal generating devices may also be used to detect reciprocating movement of the flexible rod. For example, the plurality of apertures may be eliminated by using a linear or sliding potentiometer that may be coupled to the rod so that reciprocating movement of the rod actuates the potentiometer. The output from the potentiometer may be coupled to another of the A/D inputs of the microcomputer 46.
In general, it will be recognized that the attachment portion 24 of the orientation sensors may be attached to a relatively non-movable portion of the person which may be in an area other than the torso or upper body. For example, a user may attach the attachment portion 24 to a shoulder blade area or side of the arm where the side of the arm does not move with respect to the head. In addition, it will be recognized that the terminology used herein of "attaching to a non-movable portion" of the user includes attachment to clothing or outer covering or other surface which remains substantially fixed relative to the movement of the user's head. Therefore, a shoulder harness may also serve as a suitable attachment portion as shown in FIG. 7 for the orientation sensor 102.
Also, it will be recognized that yet another method for determining the boundary or range values of the total lateral movement of a user may be based on a priori knowledge of a statistically determined angle displacement range. For example, it may be determined that a typical user has a total angular displacement of 120°, as a result, a user may forego the range setting process of activating the push button since the computer knows the range. Therefore, the computer may assume that the boundary values lie 120° apart where the center value lies at the 60° value.
The Appendix is a code listing of a program for use by the microcomputer 46 of FIG. 3 to determine lateral head orientation in accordance with the method described with reference to FIG. 5. The head orientation data is transmitted over the RS-232 interface in a format which emulates a Microsoft™ mouse for an IBM PC™ compatible computer. This listing contains material which is subject to copyright protection.
Specific embodiments of novel methods and apparatus for head tracking has been described for the purposes of illustrating the manner in which the invention may be used and made. It should be understood that the implementation of other variations and modifications of the invention in its various aspects will be apparent to those skilled in the art, and that the invention is not limited by the specific embodiments described. It is therefore contemplated to cover by the present invention any and all modifications, variations, or equivalents that fall within the true spirit and scope of the basic underlying principles disclosed and claimed herein.
__________________________________________________________________________
APPENDIX                                                                  
__________________________________________________________________________
PORTA    EQU  $1000    ;Address of port A                                 
PORTB    EQU  $1004    ;Address of port B                                 
DDRD     EQU  $1009    ;PORTD data direction register                     
PACTL    EQU  $1026    ;port A control register                           
SPCR     EQU  $1028    ;spi control register                              
BAUD     EQU  $102B    ;baud set register                                 
SCCR1    EQU  $102C    ;serial ctl register 1                             
SCCR2    EQU  $102D    ;serial ctl register 2                             
STAT     EQU  $102E    ;SCI status register                               
DATA     EQU  $102F    ;serial data register                              
ADCTL    EQU  $1030    ;Address of A to D control register                
ADR1     EQU  $1031    ;A to D register 1                                 
ADR2     EQU  $1032    ;A to D register 2                                 
ADR3     EQU  $1033    ;A to D register 3                                 
ADR4     EQU  $1034    ;A to D register 4                                 
OPTION   EQU  $1039    ;OPTION control register                           
*User data RAM definitions                                                
CENTER   EQU  $0057    ;reading with tracker centered                     
LEFT     EQU  $0058    ;reading with tracker all the way left             
RIGHT    EQU  $0059    ;reading with tracker all the way right            
CONTR    EQU  $005A    ;controller reading                                
OLD      EQU  $005B    ;last tracker reading                              
CURRENT  EQU  $005C    ;current tracker reading                           
DIFFLH   EQU  $005D    ;center-left voltage difference MSB                
DIFFL    EQU  $005E    ;LSB                                               
CLICKSLH EQU  $005F    ;high byte-left clicks/ sample quantization word   
CLICKSL  EQU  $0060    ;low byte of the left clicks word                  
CLICKSRH EQU  $0061    ;high byte - right clicks/ sample quantization     
                       word                                               
CLICKSR  EQU  $0062    ;low byte of the right clicks word                 
BYTE1    EQU  $0063    ;first byte in transmit trio                       
BYTE2    EQU  $0064    ;second byte in transmit trio                      
BYTE3    EQU  $0065    ;third byte in transmit trio                       
DIFFRH   EQU  $0066    ;right-center voltage difference MSB               
DIFFR    EQU  $0067    ;LSB                                               
DELTAX   EQU  $0068    ;change in X                                       
DELTAYH  EQU  $0069                                                       
DELTAY   EQU  $006A    ;change in Y                                       
*Port A: bit 0 = data, bit 4 = clock, bit 5 = latch                       
CDATA    EQU  $01      ;controller data bit                               
CCLOCK   EQU  $10      ;controller clock high                             
CLATCH   EQU  $20      ;controller latch high                             
CCL      EQU  $30      ;controller clock and latch high                   
HALFSCN  EQU  $0200                                                       
CMOVE    EQU  $20                                                         
         ORG  $B600    ;start program here                                
INIT     LDAA #$10                                                        
         STAA PORTB    ;disable TxD, RxD connection                       
         LDAA #$00     ;load a with zero                                  
         STAA DIFFLH   ;zero out diffH                                    
         STAA DIFFRH                                                      
         STAA SCCR1                                                       
         STAA PACTL    ;zero out port A control register                  
         LDAA #$90     ;load 90hex into a                                 
         STAA OPTION   ;start up a/d charge pump, set delay bit           
         LDAA #$33                                                        
         STAA BAUD     ;set baud to 1200 for 8MHz clock                   
         LDAA #$01                                                        
         STAA DDRD                                                        
         LDAA #$08                                                        
         STAA SCCR2    ;enable transmit                                   
         LDAB M                                                           
         BSR  TBJ      ;transmit capital M for Microsoft!                 
START    LDAA #$10     ;load a with zero                                  
         STAA PORTB    ;init port b (leds) to 0                           
         LDAA #$11                                                        
         STAA PORTB    ;light led for left init                           
         BSR  STCHJ    ;wait for switch                                   
         BSR  SMPLJ    ;sample current tracker reading                    
         STAA LEFT     ;store the tracker reading for left                
         LDAA #$12                                                        
         STAA PORTB    ;light led for right init                          
         BSR  STCHJ    ;wait for switch                                   
         BSR  SMPLJ    ;sample current tracker reading                    
         STAA RIGHT    ;store tracker reading for right                   
         LDAA #$14                                                        
         STAA PORTB    ;light led for center init                         
         BSR  STCHJ    ;wait for switch                                   
         BSR  SMPLJ    ;sample current tracker reading                    
         STAA CENTER   ;store the tracker reading for center              
         STAA OLD      ;initialize last tracker value with the center     
         SUBA LEFT     ;calculate voltage diff from center to left        
         STAA DIFFL    ;store the left difference                         
         LDAA RIGHT    ;load in value for right                           
         SUBA CENTER   ;calculate voltage diff from right to center       
         STAA DIFFR    ;store the right voltage difference                
         LDD  #HALFSCN ;load double with half screen width                
         LDX  DIFFLH   ;load x with difference center to left             
         IDIV          ;calculate the number of clicks per quantization   
         STX  CLICKSLH ;store result into clicks left                     
         LDD  #HALFSCN ;load double with half screen width                
         LDX  DIFFRH   ;load x with difference right to center            
         IDIV          ;calculate clicks per quantization right           
         STX  CLICKSRH ;store result in clicks right                      
         LDAA #$17                                                        
         STAA PORTB    ;turn on all the lights                            
NOW      BSR  SMPLJ    ;get the current tracker reading                   
         STAA CURRENT  ;store it in current                               
         CMPA CENTER   ;compare it to the center                          
         BPL  RZONE    ;if it is right of center, go to the right zone    
         LDAB OLD      ;load in the old value                             
         CMPB CENTER   ;compare it to the center                          
         BPL  LEXPT    ;if it is right of center, go to the left          
                       exception                                          
         SBA           ;subtract accumulators                             
         LDAB CLICKSL  ;load the number of clicks left                    
         MUL           ;calc change in X, result in B acc.                
         JMP  XUP                                                         
LEXPT    SUBA CENTER   ;subtract current from center                      
         LDAB CLICKSL  ;load in clicks left constant                      
         MUL           ;calc clicks for this half                         
         STAB DELTAX   ;store the interim value                           
         LDAA CENTER   ;load in center                                    
         SUBA OLD      ;subtract the OLD                                  
         LDAB CLICKSR  ;load in the clicks R constant                     
         MUL           ;calc clicks for this half                         
         ADDB DELTAX   ;add in the first half, leave result in ACC B      
         JMP  XUP                                                         
STCHJ    JMP  STCH                                                        
SMPLJ    JMP  SMPLE                                                       
TBJ      JMP  TB       ;jump point to eliminate jump too far error        
RZONE    LDAB OLD                                                         
         CMPB CENTER                                                      
         BLO  REXPT                                                       
         SBA                                                              
         LDAB CLICKSR                                                     
         MUL                                                              
         JMP  XUP                                                         
REXPT    SUBA CENTER                                                      
         LDAB CLICKSR                                                     
         MUL                                                              
         STAB DELTAX                                                      
         LDAA CENTER                                                      
         SUBA OLD                                                         
         LDAB CLICKSL                                                     
         MUL                                                              
         ADDB DELTAX                                                      
XUP      STAB DELTAX   ;store the updated tracker reading                 
*This section reads in the NINTENDO controller and sets the delta values  
accordingly. The byte read                                                
*from the controller is in the following format:                          
*bit                                                                      
    7   6   5   4   3   2   1   0                                         
*   A but.  B but.                                                        
                Sel.                                                      
                    Start                                                 
                        Up  Down                                          
                                Left                                      
                                    Right                                 
*The left and right readings are reversed to reflect the reversed display 
present in the headset.                                                   
         BSR  GETC     ;get current controller reading                    
         BITA #$80                                                        
         BEQ  CT2      ;if the A button isn  t pushed, go on              
         BSET BYTE1 $20                                                   
                       ;set left mouse button active                      
CT2      BITA #$04                                                        
         BEQ  CT3      ;if the UP arrow isn  t pushed, go on              
         LDAB #CMOVE                                                      
         STAB DLETAY   ;make the DELTA Y value equal to one click left    
CT3      BITA #$08                                                        
         BEQ  CT4      ;if the DOWN arrow isn  t pushed, go on            
         LDAB #$00                                                        
         SUBB #CMOVE                                                      
         STAB DELTAY   ;make the DELTA Y value equal to -1*click left     
CT4      BITA #$01                                                        
         BEQ  CT5      ;if the right arrow isn  t pushed, go on           
         LDAB DELTAX                                                      
         SUBB #CMOVE                                                      
         STAB DELTAX   ;take a left click away from DELTA X               
CT5      BITA #$02                                                        
         BEQ  CT6      ;if the left arrow isn  t pushed, go on            
         LDAB DELTAX                                                      
         ADDB #CMOVE                                                      
         STAB DELTAX   ;add a left click to DELTA X                       
CT6      BITA # $40                                                       
         BEQ  FORM                                                        
         BSET BYTE1 $10                                                   
*This portion of the code formats the delta X and Y data for transmission 
in the three byte packet                                                  
*required by the Microsoft mouse driver.                                  
*Byte 1:                                                                  
     x 1 LB RB Y7                                                         
                 Y6                                                       
                   X7                                                     
                     X6                                                   
*Byte 2:                                                                  
     x 0 X5 X4 X3                                                         
                 X2                                                       
                   X1                                                     
                     X0                                                   
*Byte 3:                                                                  
     x 0 Y5 Y4 Y3                                                         
                 Y2                                                       
                   Y1                                                     
                     Y0                                                   
*The mouse expects 1200 7N1 for the RS-232 connection. This program       
generates an effective                                                    
*7N2 by setting the MSB of each byte to 1. The driver is fooled and sees  
7N2 as 7N1.                                                               
FORM     LDD  DELTAYH  ;get change in Y                                   
         LSLD                                                             
         LSLD          ;shift  bits  7 and 6 into ACC A                     
         LDAB DELTAX   ;get change in X                                   
         LSLD                                                             
         LSLD          ;shift  bits  7 and 6 into ACC A                     
         ORAA BYTE1    ;make sure controller button is included           
         TAB           ;move from A to B to ready for transmit            
         ORAB #$40     ;set clock bit for start of 3 byte packet          
         BSR  TBJ      ;transmit first byte                               
         LDAB DELTAX   ;get change in X                                   
         ANDB #$3F     ;mask off top two bits                             
         BSR  TBJ      ;transmit second byte                              
         LDAB DELTAY   ;get change in Y                                   
         ANDB #$3F     ;mask off top two bits                             
         BSR  TBJ      ;transmit third byte                               
         LDAA CURRENT                                                     
         STAA OLD      ;set current to old                                
         JMP  NOW      ;do it all again!                                  
*This subroutine samples the switch status attached to port A bit ONE.    
First the routine                                                         
*waits for the switch to be depressed and then waits again until it is    
released.                                                                 
STCH     LDAA #$02     ;load in the mask for the switch                   
         ANDA PORTA    ;test if the first bit in port A is high           
         BEQ  STCH     ;not set to 1, do it again                         
         LDX  #$FFFF   ;load count index into X for debounce delay        
CNT      DEX           ;decrement X by 1                                  
         BNE  CNT      ;if you haven  t reached zero, go back             
         LDX  #$FFFF   ;load count index into X for debounce delay        
CNT1     DEX           ;decrement X by 1                                  
         BNE  CNT1     ;if you haven  t reached zero, go back             
         RTS           ;it is back to zero again, go back                 
*This subroutine samples the current voltage from the tracker             
potentiometer and leaves it in                                            
*the accumulator. OK!                                                     
SMPLE    LDAA #$10     :set AD control to sample lower 4 channels         
         STAA ADCTL                                                       
NTDN1    LDAA ADCTL    ;test if CCF is set (done sampling)                
         BPL  NTDN1    ;go back if it isn  t done                         
         LDAA ADR1     ;put sample into the accumulator                   
         RTS           ;done sampling bank, go back                       
*This subroutine gets the data from the nintendo controller and leaves it 
in ACC A OK!                                                              
GETC     LDAB #CCLOCK  :clock high, latch low                             
         STAB PORTA                                                       
         LDAB #CCL     ;clock high, latch high                            
         STAB PORTA                                                       
         NOP           ;delay 3uS                                         
         NOP                                                              
         NOP                                                              
         LDAB #CCLOCK  ;clock high, latch low                             
         STAB PORTA                                                       
         LDX  #8       ;load X with 8                                     
GETCL    LSLA          ;shift the A acc left                              
         LDAB PORTA    ;read in port A                                    
         ANDB #CDATA   ;get only the data bit                             
         ABA           ;add it to the A acc                               
         LDAB #00                                                         
         STAB DELTAY   ;zero out DELTA Y for this iteration               
         STAB DELTAYH                                                     
         STAB BYTE1    ;zero out BYTE 1 for this iteration                
         STAB PORTA    ;drop the clock                                    
         LDAB #CCLOCK  ;raise the clock                                   
         STAB PORTA                                                       
         DEX           ;decrement the number of bits to go                
         BNE  GETCL    ;if it isn't zero, go back for more                
         COMA          ;invert byte - buttons are read active low         
         RTS                                                              
*this subroutine takes the ascii value in ACC B and transmits it at       
7N2(1) OK!                                                                
TB       LDAA STAT     ;test if TDRE is set (transmit empty)              
         BPL  TB                                                          
         ORAB #$80     ;make format 7N2                                   
         STAB DATA     ;transmit                                          
         RTS                                                              
M        FCB  `M`                                                         
__________________________________________________________________________

Claims (21)

What is claimed is:
1. A device for determining an orientation of at least a portion of a living body comprising:
housing means for attachment to a movable portion of the body; and
means, operatively connected to said housing means, for sensing the relative movement between said movable portion and another portion of the body, said sensing means having mechanical linkage means and position signal generating means adapted to generate a signal in response to movement of said mechanical linkage means, wherein said mechanical linkage means is adapted to respond to relative movement between said movable portion and said other portion of the body, said mechanical linkage means including a reciprocable member having a portion adapted for attachment to said other portion of the body and connector means adapted to slidably receive said reciprocable member, for moving in response to reciprocal movement of said reciprocable member so as to actuate said position signal generating means in response to movement of said movable portion of the body.
2. The device of claim 1 wherein said housing means is comprised of a headset adapted to receive a user's head.
3. The device of claim 2 wherein said headset comprises a visor adapted to house a video display device.
4. The device of claim 1 wherein said mechanical linkage means is comprised of attachment means for coupling to said other portion of the object.
5. The device of claim 1 wherein said position signal generating means is comprised of variable impedance means which generates a signal corresponding to a current impedance value which changes in response to movement of said movable portion of the body.
6. The device of claim 1 wherein said position signal generating means operatively couples to computing means which receives said signal to determine the orientation of said movable portion of the body.
7. The device of claim 5 wherein said connector means rotatably connects to said variable impedance means and slidably receives said reciprocable member to facilitate reciprocating movement of said reciprocable member during movement of said movable portion of the body.
8. The device of claim 6 wherein said computing means operatively couples to an image generating device and generates an object position signal corresponding to a current position of the movable portion of the object for use by said image generating device.
9. The device of claim 7 further comprising another signal generating means for detecting reciprocating movement of said reciprocable member.
10. A device for determining an orientation of at least a portion of a living body comprising:
housing means for attachment to a movable portion of the body;
first sensing means, connected to said housing means and adapted for attachment to another first portion of the body, said sensing means including first means for indicating relative movement between said movable portion and said first portion; said first means for indicating relative movement having a first flexible member with a portion adapted for attachment to said first portion of the body and also having first connector means adapted to operatively couple with another portion of said first flexible member so as to be movable in response to movement of said movable portion of the body;
second sensing means, connected to said housing means and adapted for attachment to another second portion of the body, said second sensing means including second means for indicating relative movement between said movement portion and said second portion; said second means for indicating relative movement having a second flexible member having a portion adapted for attachment to said second portion of the body and also having second connector means adapted to operatively couple with another portion of said second flexible member so as to be movable in response to movement of said movable portion of the body;
wherein each of said first and second sensing means further comprises position signal generating means adapted to operatively connect with said corresponding connector means such that movement of said movable portion of the body causes said first and second flexible members to operatively engage said first and second connector means and actuate each of said respective position signal generating means; and
computing means, operatively connected to both first and second sensing means, for determining both lateral displacement and vertical displacement of said movable portion of the body in response to position signals from said first and second sensing means.
11. The device of claim 10 wherein said housing means is comprised of a headset adapted to receive a user's head.
12. The device of claim 11 wherein said headset comprises a visor adapted to house a video display device.
13. The device of claim 12 wherein said first and second sensing means are opposedly mounted proximate said visor to facilitate connection of said first and second sensing means to the user's torso area.
14. The device of claim 10 wherein each of said corresponding conductor means rotatably connects to said corresponding variable impedance means and slidably receives said corresponding flexible member to facilitate reciprocating movement of said corresponding flexible members during movement of said movable portion of the object.
15. The device of claim 10 wherein each of said signal generating means is comprised of variable impedance means which generates a signal corresponding to a current impedance value which changes in response to movement of said movable portion of the object.
16. The device of claim 15 wherein each of said signal generating means operatively couples to computing means which receives said signals from said signal generating means, to determine the orientation of said movable portion of the object.
17. The device of claim 16 wherein said computing means operatively couples to an image generating device and generates an object position signal corresponding to a current position of the movable portion of the object for use by said image generating device.
18. A device for determining the orientation of an object comprising:
a headset including orientation sensor means for determining the angular displacement of a head relative to an upper body area of a headset user, said orientation sensor means having electromechanical linkage includes a reciprocable flexible member having a portion adapted for attachment to said upper body area, and connector means adapted to reciprocably couple with another portion of said reciprocable flexible member so as to be movable in response to movement of the head.
19. The device of claim 18 wherein said connector means includes a rotatably mounted sleeve member connected to a position signal generating device such that movement of said head causes said reciprocable flexible member to rotate said rotatable sleeve thereby actuating said signal generating device.
20. The device of claim 19 wherein said connector means is further adapted to allow said reciprocable flexible member to reciprocally move through said sleeve member when said head is moved in a substantially vertical position thereby reducing rotational movement of said sleeve during vertical motion.
21. The device of claim 18 further comprising computing means for determining the orientation of said head in response to an amount of movement of said connector means.
US07/984,560 1992-12-02 1992-12-02 Device for determining an orientation of at least a portion of a living body Expired - Fee Related US5323174A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US07/984,560 US5323174A (en) 1992-12-02 1992-12-02 Device for determining an orientation of at least a portion of a living body
US08/169,493 US5353042A (en) 1992-12-02 1993-12-17 Method for determining an orientation of an object

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/984,560 US5323174A (en) 1992-12-02 1992-12-02 Device for determining an orientation of at least a portion of a living body

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US08/169,493 Division US5353042A (en) 1992-12-02 1993-12-17 Method for determining an orientation of an object

Publications (1)

Publication Number Publication Date
US5323174A true US5323174A (en) 1994-06-21

Family

ID=25530663

Family Applications (2)

Application Number Title Priority Date Filing Date
US07/984,560 Expired - Fee Related US5323174A (en) 1992-12-02 1992-12-02 Device for determining an orientation of at least a portion of a living body
US08/169,493 Expired - Fee Related US5353042A (en) 1992-12-02 1993-12-17 Method for determining an orientation of an object

Family Applications After (1)

Application Number Title Priority Date Filing Date
US08/169,493 Expired - Fee Related US5353042A (en) 1992-12-02 1993-12-17 Method for determining an orientation of an object

Country Status (1)

Country Link
US (2) US5323174A (en)

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996007947A1 (en) * 1994-08-31 1996-03-14 Virtual I/O, Inc. Personal display system
US5526022A (en) 1993-01-06 1996-06-11 Virtual I/O, Inc. Sourceless orientation sensor
EP0742510A2 (en) * 1995-05-10 1996-11-13 AT&T Corp. Method and apparatus for a computer pointing device
US5642227A (en) 1992-02-07 1997-06-24 Virtual I/O, Inc. Optical correction for virtual reality and heads up displays
USD383455S (en) * 1995-08-31 1997-09-09 Virtual I/O, Inc. Head mounted display with headtracker
US5717414A (en) * 1995-05-01 1998-02-10 Lockheed-Martin Tactical Defense Systems Video image tracking and mixing system
US5764164A (en) * 1997-02-07 1998-06-09 Reality Quest Corp. Ergonomic hand-attachable controller
US5796354A (en) * 1997-02-07 1998-08-18 Reality Quest Corp. Hand-attachable controller with direction sensing
US5864326A (en) 1992-02-07 1999-01-26 I-O Display Systems Llc Depixelated visual display
US5903395A (en) 1994-08-31 1999-05-11 I-O Display Systems Llc Personal visual display system
US5903396A (en) 1997-10-17 1999-05-11 I/O Display Systems, Llc Intensified visual display
WO1999034879A1 (en) * 1998-01-07 1999-07-15 Pragmatic Designs, Inc. Electronic counting apparatus for a child's game and method therefor
US5963891A (en) * 1997-04-24 1999-10-05 Modern Cartoons, Ltd. System for tracking body movements in a virtual reality system
US5991087A (en) 1993-11-12 1999-11-23 I-O Display System Llc Non-orthogonal plate in a virtual reality or heads up display
US5991085A (en) 1995-04-21 1999-11-23 I-O Display Systems Llc Head-mounted personal visual display apparatus with image generator and holder
US6005548A (en) * 1996-08-14 1999-12-21 Latypov; Nurakhmed Nurislamovich Method for tracking and displaying user's spatial position and orientation, a method for representing virtual reality for a user, and systems of embodiment of such methods
US6052114A (en) * 1997-06-23 2000-04-18 Nec Corporation Virtual reality body-sensing apparatus
US6097543A (en) 1992-02-07 2000-08-01 I-O Display Systems Llc Personal visual display
US6144366A (en) * 1996-10-18 2000-11-07 Kabushiki Kaisha Toshiba Method and apparatus for generating information input using reflected light image of target object
US6160666A (en) 1994-02-07 2000-12-12 I-O Display Systems Llc Personal visual display system
US20030076067A1 (en) * 2001-10-19 2003-04-24 Ashmore C. Rucker Method and apparatus for electronically controlling a motorized device
DE10148006A1 (en) * 2001-09-28 2003-06-26 Siemens Ag Portable sound reproduction device for producing three-dimensional hearing impression has device for determining head orientation with magnetic field sensor(s) for detecting Earth's field
US20030184602A1 (en) * 2002-03-29 2003-10-02 Canon Kabushiki Kaisha Information processing method and apparatus
US20040119986A1 (en) * 2002-12-23 2004-06-24 International Business Machines Corporation Method and apparatus for retrieving information about an object of interest to an observer
US20040166937A1 (en) * 2003-02-26 2004-08-26 Rothschild Wayne H. Gaming machine system having a gesture-sensing mechanism
US6955603B2 (en) 2001-01-31 2005-10-18 Jeffway Jr Robert W Interactive gaming device capable of perceiving user movement
US7056216B2 (en) * 1999-06-11 2006-06-06 Canon Kabushiki Kaisha User interface apparatus, user interface method, game apparatus, and program storage medium
US20080294300A1 (en) * 2001-10-19 2008-11-27 Ashmore C Rucker Method and apparatus for electronically controlling a motorized device
US8542112B2 (en) 2011-03-25 2013-09-24 Telenav, Inc. Navigation system with physical activity safety mechanism and method of operation thereof
US20150220142A1 (en) * 2014-01-31 2015-08-06 Kopin Corporation Head-Tracking Based Technique for Moving On-Screen Objects on Head Mounted Displays (HMD)
US9149222B1 (en) * 2008-08-29 2015-10-06 Engineering Acoustics, Inc Enhanced system and method for assessment of disequilibrium, balance and motion disorders
US20160339293A1 (en) * 2014-01-27 2016-11-24 The Regents Of The University Of Michigan Imu system for assessing head and torso orientation during physical motion
US20190025907A1 (en) * 2016-01-07 2019-01-24 Harshit SHRIVASTAVA Intent Based Inputs and Forced Feedback System for a Virtual Reality System
US20190136489A1 (en) * 2017-07-25 2019-05-09 Liebherr-Hydraulikbagger Gmbh Operating device for a working machine

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598187A (en) * 1993-05-13 1997-01-28 Kabushiki Kaisha Toshiba Spatial motion pattern input system and input method
EP0702494B1 (en) * 1994-09-19 2001-12-05 Matsushita Electric Industrial Co., Ltd. Three-dimensional image display apparatus
US5635807A (en) * 1994-11-16 1997-06-03 Lautzenhiser; John L. Electronic controls for linear and rotary actuators
US5686942A (en) * 1994-12-01 1997-11-11 National Semiconductor Corporation Remote computer input system which detects point source on operator
US5796386A (en) * 1995-01-23 1998-08-18 International Business Machines Corporation Precise calibration procedure for sensor-based view point control system
US6522312B2 (en) * 1997-09-01 2003-02-18 Canon Kabushiki Kaisha Apparatus for presenting mixed reality shared among operators
GB9817834D0 (en) * 1998-08-14 1998-10-14 British Telecomm Predicting avatar movement in a distributed virtual environment
US6426600B1 (en) 1999-03-24 2002-07-30 Magitek.Com,Llc Proportional actuator control of apparatus
US20030062675A1 (en) * 2001-09-28 2003-04-03 Canon Kabushiki Kaisha Image experiencing system and information processing method
US7864159B2 (en) 2005-01-12 2011-01-04 Thinkoptics, Inc. Handheld vision based absolute pointing system
US8913003B2 (en) 2006-07-17 2014-12-16 Thinkoptics, Inc. Free-space multi-dimensional absolute pointer using a projection marker system
US9176598B2 (en) 2007-05-08 2015-11-03 Thinkoptics, Inc. Free-space multi-dimensional absolute pointer with improved performance
US9268136B1 (en) * 2012-09-28 2016-02-23 Google Inc. Use of comparative sensor data to determine orientation of head relative to body

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3229059A (en) * 1963-09-13 1966-01-11 David L Beatty Universally pivoted switch actuator mechanism
US4159474A (en) * 1975-04-21 1979-06-26 American Tractor Equipment Corporation Depth indicating means for a tractor supported tool
US4565999A (en) * 1983-04-01 1986-01-21 Prime Computer, Inc. Light pencil
US4682159A (en) * 1984-06-20 1987-07-21 Personics Corporation Apparatus and method for controlling a cursor on a computer display
US4688037A (en) * 1980-08-18 1987-08-18 Mcdonnell Douglas Corporation Electromagnetic communications and switching system
US4737773A (en) * 1984-09-04 1988-04-12 Nec Corporation Graphical display apparatus having a coordinate correction circuit
US4884219A (en) * 1987-01-21 1989-11-28 W. Industries Limited Method and apparatus for the perception of computer-generated imagery
US4954815A (en) * 1988-06-17 1990-09-04 Delmonte Jeffrey C Head positioning system
US4956794A (en) * 1986-01-15 1990-09-11 Technion Research And Development Foundation Ltd. Single camera three dimensional head position sensing system
US5038144A (en) * 1990-03-21 1991-08-06 Roger Kaye Forearm mounted multi-axis remote control unit
US5068645A (en) * 1987-10-14 1991-11-26 Wang Laboratories, Inc. Computer input device using an orientation sensor
US5130794A (en) * 1990-03-29 1992-07-14 Ritchey Kurtis J Panoramic display system
US5142506A (en) * 1990-10-22 1992-08-25 Logitech, Inc. Ultrasonic position locating method and apparatus therefor
US5229756A (en) * 1989-02-07 1993-07-20 Yamaha Corporation Image control apparatus

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60193016A (en) * 1984-03-14 1985-10-01 Toyota Motor Corp Robot device
JPH0829509B2 (en) * 1986-12-12 1996-03-27 株式会社日立製作所 Control device for manipulator
US5021969A (en) * 1988-03-17 1991-06-04 Kabushiki Kaisha Toshiba Manipulator operating apparatus
US5227985A (en) * 1991-08-19 1993-07-13 University Of Maryland Computer vision system for position monitoring in three dimensions using non-coplanar light sources attached to a monitored object

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3229059A (en) * 1963-09-13 1966-01-11 David L Beatty Universally pivoted switch actuator mechanism
US4159474A (en) * 1975-04-21 1979-06-26 American Tractor Equipment Corporation Depth indicating means for a tractor supported tool
US4688037A (en) * 1980-08-18 1987-08-18 Mcdonnell Douglas Corporation Electromagnetic communications and switching system
US4565999A (en) * 1983-04-01 1986-01-21 Prime Computer, Inc. Light pencil
US4682159A (en) * 1984-06-20 1987-07-21 Personics Corporation Apparatus and method for controlling a cursor on a computer display
US4737773A (en) * 1984-09-04 1988-04-12 Nec Corporation Graphical display apparatus having a coordinate correction circuit
US4956794A (en) * 1986-01-15 1990-09-11 Technion Research And Development Foundation Ltd. Single camera three dimensional head position sensing system
US4884219A (en) * 1987-01-21 1989-11-28 W. Industries Limited Method and apparatus for the perception of computer-generated imagery
US4984179A (en) * 1987-01-21 1991-01-08 W. Industries Limited Method and apparatus for the perception of computer-generated imagery
US5068645A (en) * 1987-10-14 1991-11-26 Wang Laboratories, Inc. Computer input device using an orientation sensor
US4954815A (en) * 1988-06-17 1990-09-04 Delmonte Jeffrey C Head positioning system
US5229756A (en) * 1989-02-07 1993-07-20 Yamaha Corporation Image control apparatus
US5038144A (en) * 1990-03-21 1991-08-06 Roger Kaye Forearm mounted multi-axis remote control unit
US5130794A (en) * 1990-03-29 1992-07-14 Ritchey Kurtis J Panoramic display system
US5142506A (en) * 1990-10-22 1992-08-25 Logitech, Inc. Ultrasonic position locating method and apparatus therefor

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864326A (en) 1992-02-07 1999-01-26 I-O Display Systems Llc Depixelated visual display
US5642227A (en) 1992-02-07 1997-06-24 Virtual I/O, Inc. Optical correction for virtual reality and heads up displays
US6097543A (en) 1992-02-07 2000-08-01 I-O Display Systems Llc Personal visual display
US5949583A (en) 1992-02-07 1999-09-07 I-O Display Systems Llc Head-mounted display with image generator, fold mirror and mirror for transmission to the eye position of the user
US5526022A (en) 1993-01-06 1996-06-11 Virtual I/O, Inc. Sourceless orientation sensor
US5991087A (en) 1993-11-12 1999-11-23 I-O Display System Llc Non-orthogonal plate in a virtual reality or heads up display
US6160666A (en) 1994-02-07 2000-12-12 I-O Display Systems Llc Personal visual display system
US5903395A (en) 1994-08-31 1999-05-11 I-O Display Systems Llc Personal visual display system
WO1996007947A1 (en) * 1994-08-31 1996-03-14 Virtual I/O, Inc. Personal display system
US5991085A (en) 1995-04-21 1999-11-23 I-O Display Systems Llc Head-mounted personal visual display apparatus with image generator and holder
US5717414A (en) * 1995-05-01 1998-02-10 Lockheed-Martin Tactical Defense Systems Video image tracking and mixing system
EP0742510A3 (en) * 1995-05-10 1997-08-27 At & T Corp Method and apparatus for a computer pointing device
EP0742510A2 (en) * 1995-05-10 1996-11-13 AT&T Corp. Method and apparatus for a computer pointing device
USD383455S (en) * 1995-08-31 1997-09-09 Virtual I/O, Inc. Head mounted display with headtracker
US6005548A (en) * 1996-08-14 1999-12-21 Latypov; Nurakhmed Nurislamovich Method for tracking and displaying user's spatial position and orientation, a method for representing virtual reality for a user, and systems of embodiment of such methods
US6144366A (en) * 1996-10-18 2000-11-07 Kabushiki Kaisha Toshiba Method and apparatus for generating information input using reflected light image of target object
US5764164A (en) * 1997-02-07 1998-06-09 Reality Quest Corp. Ergonomic hand-attachable controller
US5796354A (en) * 1997-02-07 1998-08-18 Reality Quest Corp. Hand-attachable controller with direction sensing
US5963891A (en) * 1997-04-24 1999-10-05 Modern Cartoons, Ltd. System for tracking body movements in a virtual reality system
US6052114A (en) * 1997-06-23 2000-04-18 Nec Corporation Virtual reality body-sensing apparatus
US5903396A (en) 1997-10-17 1999-05-11 I/O Display Systems, Llc Intensified visual display
WO1999034879A1 (en) * 1998-01-07 1999-07-15 Pragmatic Designs, Inc. Electronic counting apparatus for a child's game and method therefor
US5989120A (en) * 1998-01-07 1999-11-23 Pragmatic Designs, Inc. Electronic counting apparatus for a child's game and method therefor
US7056216B2 (en) * 1999-06-11 2006-06-06 Canon Kabushiki Kaisha User interface apparatus, user interface method, game apparatus, and program storage medium
US6955603B2 (en) 2001-01-31 2005-10-18 Jeffway Jr Robert W Interactive gaming device capable of perceiving user movement
DE10148006A1 (en) * 2001-09-28 2003-06-26 Siemens Ag Portable sound reproduction device for producing three-dimensional hearing impression has device for determining head orientation with magnetic field sensor(s) for detecting Earth's field
US20030076067A1 (en) * 2001-10-19 2003-04-24 Ashmore C. Rucker Method and apparatus for electronically controlling a motorized device
US20080294300A1 (en) * 2001-10-19 2008-11-27 Ashmore C Rucker Method and apparatus for electronically controlling a motorized device
US20030184602A1 (en) * 2002-03-29 2003-10-02 Canon Kabushiki Kaisha Information processing method and apparatus
US7123214B2 (en) * 2002-03-29 2006-10-17 Canon Kabushiki Kaisha Information processing method and apparatus
US6985240B2 (en) * 2002-12-23 2006-01-10 International Business Machines Corporation Method and apparatus for retrieving information about an object of interest to an observer
US20040119986A1 (en) * 2002-12-23 2004-06-24 International Business Machines Corporation Method and apparatus for retrieving information about an object of interest to an observer
US20040166937A1 (en) * 2003-02-26 2004-08-26 Rothschild Wayne H. Gaming machine system having a gesture-sensing mechanism
US7618323B2 (en) * 2003-02-26 2009-11-17 Wms Gaming Inc. Gaming machine system having a gesture-sensing mechanism
US9149222B1 (en) * 2008-08-29 2015-10-06 Engineering Acoustics, Inc Enhanced system and method for assessment of disequilibrium, balance and motion disorders
US8542112B2 (en) 2011-03-25 2013-09-24 Telenav, Inc. Navigation system with physical activity safety mechanism and method of operation thereof
US20160339293A1 (en) * 2014-01-27 2016-11-24 The Regents Of The University Of Michigan Imu system for assessing head and torso orientation during physical motion
US10293205B2 (en) * 2014-01-27 2019-05-21 The Regents Of The University Of Michigan IMU system for assessing head and torso orientation during physical motion
US20150220142A1 (en) * 2014-01-31 2015-08-06 Kopin Corporation Head-Tracking Based Technique for Moving On-Screen Objects on Head Mounted Displays (HMD)
US20190025907A1 (en) * 2016-01-07 2019-01-24 Harshit SHRIVASTAVA Intent Based Inputs and Forced Feedback System for a Virtual Reality System
US10890964B2 (en) * 2016-01-07 2021-01-12 Harshit SHRIVASTAVA Intent based inputs and forced feedback system for a virtual reality system
US20190136489A1 (en) * 2017-07-25 2019-05-09 Liebherr-Hydraulikbagger Gmbh Operating device for a working machine
US10883254B2 (en) * 2017-07-25 2021-01-05 Liebherr-Hydraulikbagger Gmbh Operating device for a working machine

Also Published As

Publication number Publication date
US5353042A (en) 1994-10-04

Similar Documents

Publication Publication Date Title
US5323174A (en) Device for determining an orientation of at least a portion of a living body
US6057828A (en) Method and apparatus for providing force sensations in virtual environments in accordance with host software
US7091950B2 (en) Force feedback device including non-rigid coupling
JP4585025B2 (en) 2-axis computer input device
US6046727A (en) Three dimensional position sensing interface with force output
US6937227B2 (en) Hand-held pointing device
JP4544682B2 (en) Biaxial interlocking computer input device and operation method
US6104379A (en) Forearm-supported exoskeleton hand-tracking device
US5628686A (en) Apparatus and method for bidirectional data communication in a game port
EP0211984B1 (en) Computer data entry and manipulation apparatus
US5793356A (en) System and method for the software emulation of a computer joystick
US5684512A (en) Ergonomic apparatus for controlling video or computer equipment
US20050162804A1 (en) Position sensor with resistive element
EP0551962A3 (en) Computer controlled exercise machine
JP2771010B2 (en) 3D input device
US10303272B2 (en) Touch sensitive electronic system, processing apparatus and method thereof for simulating stylus as joystick
Ruzaij et al. Auto calibrated head orientation controller for robotic-wheelchair using MEMS sensors and embedded technologies
CN100367170C (en) Diagnostic imaging system control with multiple control functions
JPH0363089B2 (en)
US8581845B2 (en) Hand activated input device with horizontal control surface
KR20040068510A (en) Multi-axis potentiometer
WO2005101169A1 (en) Methods and systems for interacting with virtual objects
US6707445B1 (en) Input device
KR100480770B1 (en) Method for pointing information in three-dimensional space
KR101527205B1 (en) Wrist mouse apparatus using encoder

Legal Events

Date Code Title Description
AS Assignment

Owner name: KLAPMAN, MATTHEW H., ILLINOIS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:FRERICHS, DAVID J.;REEL/FRAME:006346/0031

Effective date: 19921130

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20020621