Current methods to track the position and orientation of a person's head or other object are complex and expensive. Existing magnetic head tracking or motion tracking systems require active transmission of magnetic fields. The magnetic transmitter is typically three coils of wire energized with electric current to produce a magnetic field. This requires cabling and complex drive circuitry. The three coils are energized one at a time successively or with three different frequencies.
Attempts have been made to use just the earth's magnetic field and a magnetometer to track a person's head, but this has severe limitations since it is not possible to get all three rotations (azimuth, elevation, and roll) from the Earth's magnetic field vector alone.
Accordingly, there is a need for simpler and less costly tracking systems for both commercial and military applications.
A system and method for tracking motion of an object is provided. The system comprises at least a first magnetic source configured to generate a first static magnetic field, with the first magnetic source fixed in a first coordinate frame, and a plurality of magnetic sensors configured to be located on the object and to detect the first static magnetic field. The magnetic sensors are located in a second coordinate frame that is movable relative to the first coordinate frame. A processor is operative to receive magnetic field data from the magnetic sensors. A memory unit operatively coupled to the processor is configured to store a magnetic field model or a magnetic field database defined for the first coordinate frame, and a magnetic sensor measurement model with uncertainties defined for the second coordinate frame. The processor computes and outputs an estimated position and orientation of the object based on the magnetic field data and other information stored in the memory unit.
Features of the present invention will become apparent to those skilled in the art from the following description with reference to the drawings. Understanding that the drawings depict only typical embodiments and are not therefore to be considered limiting in scope, the invention will be described with additional specificity and detail through the use of the accompanying drawings, in which:
In the following detailed description, embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It is to be understood that other embodiments may be utilized without departing from the scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense.
A motion tracking system and method are provided that employ one or more magnetic fields to track the position and orientation of a person's head or other object. In the present system and method, one or more static magnetic fields are generated from a magnetic source, such as one or more permanent magnets, or coils of wire driven with direct current (DC).
The magnetic source generates dipole fields with different axes of orientation, which are typically 90 degrees apart. The intersection of the dipole fields creates a unique set of field gradients. The DC magnetic fields are sensed with multiple three-axis magnetic sensors such as three receiver triads comprising non-collinear receivers. The receivers can be magnetoresistive magnetometers, or any other type of receiver capable of accurately measuring DC magnetic fields. The geometric location of receivers can be either fixed or variable with respect to one another.
In one embodiment, the present system employs two or more dipoles that generate DC magnetic fields, which are sensed by three or more receiver triads capable of sensing DC magnetic fields. The receiver triads can be mounted on a head mounted display, helmet, or head band, for example.
As the multiple receiver triads move within the DC magnetic fields, unique field gradients are sensed and can be analyzed to determine the x, y, and z positions of each sensor triad. Once the position of each receiver triad is known, the angular orientation of a sensor suite of the tracking system can be determined, including azimuth, elevation, and roll. In one embodiment, this allows the tracking system to determine both the location and orientation of a person's head or other object.
The simplicity of the present tracking system results in lower cost and allows the system to be used in environments that are largely impractical for other systems where significant metal is present, which can affect AC magnetic or pulsed-DC magnetic systems. Accordingly, the present system can be implemented in aircraft, tanks, armored vehicles, consumer wearable displays, motion pointing for wheelchair bound users, as well as other commercial or military applications.
The present system also does not have the weaknesses that optical trackers have as it is impervious to interference with light sources. In addition, the present approach avoids the eddy current issues of prior AC or pulsed DC systems in environments where metal is present.
A processor unit 114 is configured to receive magnetic field data from magnetic sensors 112 and is in operative communication with a memory unit 116. The processor unit 114 computes and outputs an estimated position and orientation of object 102 based on magnetic field data from magnetic sensors 112 and other information stored in memory unit 116.
If the estimated static magnetic field is not acceptable, a standard optimization search algorithm is run (block 322), and method 300 repeats by returning to block 312 to again estimate the position and orientation of frame B in frame A. An example of an optimization search algorithm is the Levenberg-Marquardt technique, as will be evident to one of ordinary skill in the art. If the estimated static magnetic field is acceptable at block 320, an estimated position and orientation of frame B is output (block 324).
The magnetic dipoles 410 and 412 can be positioned in an FS-BL-WL (XYZ) coordinate for an aircraft 430 such as depicted in
When system 400 is implemented for pilot head tracking, the pilot's head is free to move with up to six degrees of freedom, which is defined in the coordinates of magnetic dipole 410. This allows the position and orientation of the pilot's head to be measured in up to six degrees of freedom.
During operation of motion tracking system 500, sensor coordinate O′X′Y′Z′ moves and rotates in the magnetic field coordinate OXYZ space. The location of the sensor coordinate is defined by the position (XYZ) of its origin O′ in the coordinate OXYZ. The rotational angles (attitudes) of the sensor coordinate are defined by Euler angles (phi, theta, psi) referred about the coordinate OXYZ. The positions of the sensors in the coordinate OXYZ can be derived from their locations in the sensor coordinate O′X′Y′Z, the position (XYZ) of origin O′, and Euler angles. The locations of the sensors can be further defined by the elevation angle (el) and azimuth angle (az). The sensed magnetic field is VxVyVz (defined in the sensor coordinate O′X′Y′Z) and can be transferred into BxByBz (which is defined in the coordinate OXYZ) using Euler angles. In this configuration, the position and orientation of an object such as a pilot's head can be measured in up to five degrees of freedom.
A computer or processor used in the present methods and systems can be implemented using software, firmware, hardware, or any appropriate combination thereof, as known to one of skill in the art. These may be supplemented by, or incorporated in, specially-designed application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). The computer or processor can also include functions with software programs, firmware, or other computer readable instructions for carrying out various process tasks, calculations, and control functions used in the present method and system.
The present methods can be implemented by computer executable instructions, such as program modules or components, which are executed by at least one processor. Generally, program modules include routines, programs, objects, data components, data structures, algorithms, and the like, which perform particular tasks or implement particular abstract data types.
Instructions for carrying out the various process tasks, calculations, and generation of other data used in the operation of the methods described herein can be implemented in software, firmware, or other computer- or processor-readable instructions. These instructions are typically stored on any appropriate computer program product that includes a computer readable medium used for storage of computer readable instructions or data structures. Such a computer readable medium can be any available media that can be accessed by a general purpose or special purpose computer or processor, or any programmable logic device.
Suitable processor-readable media may include storage or memory media such as magnetic or optical media. For example, storage or memory media may include conventional hard disks, compact disks, DVDs, Blu-ray discs, or other optical storage disks; volatile or non-volatile media such as Random Access Memory (RAM); Read Only Memory (ROM), Electrically Erasable Programmable ROM (EEPROM), flash memory, and the like; or any other media that can be used to carry or store desired program code in the form of computer executable instructions or data structures.
Example 1 includes a system for tracking motion of an object, the system comprising: at least a first magnetic source configured to generate a first static magnetic field, the first magnetic source fixed in a first coordinate frame; a plurality of magnetic sensors configured to be located on the object and to detect the first static magnetic field, the magnetic sensors located in a second coordinate frame that is movable relative to the first coordinate frame; a processor operative to receive magnetic field data from the magnetic sensors; and a memory unit operatively coupled to the processor and configured to store a magnetic field model or a magnetic field database defined for the first coordinate frame, and a magnetic sensor measurement model with uncertainties defined for the second coordinate frame; wherein the processor computes and outputs an estimated position and orientation of the object based on the magnetic field data and other information stored in the memory unit.
Example 2 includes the system of Example 1, wherein the first magnetic source comprises a permanent magnet, or a direct current (DC) electromagnet.
Example 3 includes the system of any of Examples 1-2, wherein the magnetic sensors comprise three-axis magnetic receivers.
Example 4 includes the system of any of Examples 1-3, further comprising a second magnetic source positioned at a fixed distance from the first magnetic source in the first coordinate frame, the second magnetic source configured to generate a second static magnetic field.
Example 5 includes the system of Example 4, wherein the first and second magnetic sources are configured to generate DC magnetic fields having different axes of orientation.
Example 6 includes the system of Example 5, wherein the three-axis magnetic receivers are configured to detect the DC magnetic fields having different axes of orientation.
Example 7 includes the system of any of Examples 3-6, wherein the three-axis magnetic receivers comprise magnetoresistive magnetometers.
Example 8 includes the system of any of Examples 3-7, wherein the estimated position and orientation of the object is computed for up to five degrees of freedom.
Example 9 includes the system of any of Examples 4-7, wherein the estimated position and orientation of the object is computed for up to six degrees of freedom.
Example 10 includes the system of any of Examples 1-9, wherein the first coordinate frame comprises an airframe coordinate, and the second coordinate frame comprises a head sensor coordinate.
Example 11 includes a method for tracking motion of an object, the method comprising: (a) defining a first coordinate frame for at least one magnetic source that generates a static magnetic field, and a second coordinate frame for a plurality of magnetic sensors; (b) estimating a position and orientation of the second coordinate frame with respect to the first coordinate frame; (c) estimating a location and orientation of the magnetic sensors in the first coordinate frame; (d) estimating a static magnetic field at the estimated location of the magnetic sensors; (e) obtaining actual measurements of the static magnetic field using the magnetic sensors; (f) comparing the estimated static magnetic field with the actual measurements of the static magnetic field to determine whether the estimated static magnetic field is within an acceptance threshold range; and (g) outputting an estimated position and orientation of the second coordinate frame when the estimated static magnetic field is within the acceptance threshold range.
Example 12 includes the method of Example 11, wherein when the estimated static magnetic field is not within the acceptance threshold range, the method further comprising: running an optimization search algorithm; and repeating the method starting at (b) until the estimated static magnetic field is within the acceptance threshold range.
Example 13 includes the method of any of Examples 11-12, wherein the at least one magnetic source comprises a permanent magnet, or a DC electromagnet.
Example 14 includes the method of any of Examples 11-13, wherein the estimated position and orientation of the second coordinate frame is computed for up to five degrees of freedom.
Example 15 includes the method of any of Examples 11-14, wherein the at least one magnetic source comprises a pair of magnetic sources positioned at a fixed distance from each other.
Example 16 includes the method of Example 15, wherein the estimated position and orientation of the second coordinate frame is computed for up to six degrees of freedom.
Example 17 includes the method of any of Examples 11-16, wherein the first coordinate frame comprises an airframe coordinate, and the second coordinate frame comprises a head sensor coordinate.
Example 18 includes a computer program product comprising: a computer readable medium having instructions stored thereon, executable by a processor, to perform a method for tracking motion of an object, the method comprising: (a) defining a first coordinate frame for at least one magnetic source that generates a static magnetic field, and a second coordinate frame for a plurality of magnetic sensors; (b) estimating a position and orientation of the second coordinate frame with respect to the first coordinate frame; (c) estimating a location and orientation of the magnetic sensors in the first coordinate frame; (d) estimating a static magnetic field at the estimated location of the magnetic sensors; (e) obtaining actual measurements of the static magnetic field using the magnetic sensors; and (f) comparing the estimated static magnetic field with the actual measurements of the static magnetic field to determine whether the estimated static magnetic field is within an acceptance threshold range, wherein: (i) when the estimated static magnetic field is not within the acceptance threshold range, running an optimization search algorithm and repeating the method starting at (b); (ii) when the estimated static magnetic field is within the acceptance threshold range, outputting an estimated position and orientation of the second coordinate frame.
Example 19 includes the computer program product of Example 18, wherein the estimated position and orientation of the second coordinate frame is determined for up to five degrees of freedom.
Example 20 includes the computer program product of Example 18, wherein the estimated position and orientation of the second coordinate frame is determined for up to six degrees of freedom when the at least one magnetic source comprises a pair of magnetic sources positioned at a fixed distance from each other.
The present invention may be embodied in other specific forms without departing from its essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore indicated by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.